• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Печать документа с внедренным представлением

N

nvyush

Заголовок+html код с данными из документов
И? Таблица с данными из респонсов отображается? Если нет, то надо просто сравнить, чем структура полученного во втором случае html отличается от структуры первого и искать, где косяк.
P.S. А если самому трудно разобраться — код и html — в студию (с).
 

dimat

Well-known member
31.07.2008
508
0
BIT
0
Код:
<table><tr><th>Заголовок1</th><th>Заголовок2</th></tr><tr><td>ФИО 1</td><td>Орг 1</td><td>01.04.2010</td><td>Этап 1</td><td>Тип 1</td></tr><tr><td>ФИО 2</td><td>Орг 2</td><td>01.04.2010</td><td>Этап 2</td><td>Тип 2</td></tr></table>
 
A

amigolinx

Может это и нипричем, но таблица то заломанная получается... Надо бы:
<table><tr><th>Заголовок1</th><th>Заголовок2</th><td> </td><td> </td><td> </td></tr><tr><td>ФИО 1</td><td>Орг 1</td><td>01.04.2010</td><td>Этап 1</td><td>Тип 1</td></tr><tr><td>ФИО 2</td><td>Орг 2</td><td>01.04.2010</td><td>Этап 2</td><td>Тип 2</td></tr></table>
 
N

nvyush

Не пойму, что не отображается.
Попробуйте вставить следующий текст и установить ему Pass-Thru HTML
Код:
<STYLE TYPE="text/css">
<!--
table {margin-left:1px; margin-right:1px}
th {border:1px solid black; font-family:"Default serif, serif"; font-size:8pt; font-weight:normal; color:"#000000"; text-align:center; vertical-align:middle}
td {border:1px solid black; font-family:"Default MultiLingual, Default sans serif, sans-serif"; font-size:8pt; font-weight:normal; color:"#000000"; text-align:center; vertical-align:middle;}
-->
</STYLE>
<TABLE>
<Computed Value>
</TABLE>
Где <Computed Value> — вычисляемый текст с формулой MyTableHeader + MyTable.
Выше текста вычисляемые поля MyTableHeader с заголовком и MyTable со строками.
И проверьте, стоит ли галка у формы "Render pass through HTML in Notes" (первая закладка свойств).
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
В одном месте сделал так. Без лишних окон и т.п. Печатает на дефолтный принтер.
Код:
Dim ie As Variant
Dim htmldoc As Variant

Set ie = CreateObject("InternetExplorer.Application")
Call ie.Navigate("about:blank")
Set htmldoc = ie.Document

htmldoc.WriteLn("<B>Привет</B>")

Call htmldoc.Close()
Call ie.ExecWB(6, 2, 2)
Call ie.Quit()
Msgbox("Отправлен на печать")

В другом так. Открывается новый документ, диалог печати, после печати или отмены закрывается.
Код:
Dim ws As New NotesUIWorkspace
Dim session As New NotesSession
Dim db As NotesDatabase
Dim stream As NotesStream
Dim body As NotesMIMEEntity
Dim html As Variant
Dim prindDoc As NotesDocument
Dim prindUIDoc As NotesUIDocument

Set prindDoc = db.CreateDocument()
Call prindDoc.ReplaceItemValue("Form", "($PrintForm)")
' ($PrintForm) - это форма с ричтекстовым полем Body(стоит галка Store contents as HTML and MIME) и SaveOptions="0"
html = html + "<B>Привет</B>"	

Set stream = session.CreateStream
session.ConvertMIME = False
Set body = prindDoc.CreateMIMEEntity

Call stream.WriteText(html)
Call body.SetContentFromText(stream, {text/html; charset="UTF-8"}, ENC_IDENTITY_BINARY)
Call prindDoc.ComputeWithForm(False, False)
Set prindUIDoc = ws.EditDocument(False, prindDoc, False)
Call prindUIDoc.Print()
Call prindUIDoc.Close
session.ConvertMIME = True
 
N

nvyush

Они обязательно должны быть вычисляемые?
В принципе нет. В отладочных целях их можно сделать редактируемыми, править в них html и смотреть результат по F9. Но в итоге то должна получаться форма для печати с SaveOptions = "0", в ней по идее не должно быть редактируемых полей.
P.S. Да, в итоге то они должны быть скрытыми
 

dimat

Well-known member
31.07.2008
508
0
BIT
0
скрипт который заполняет поле с хтмл, висит на PostOpen, а не на QueryOpen. Может быть в этом проблема?
 

dimat

Well-known member
31.07.2008
508
0
BIT
0
nvy
ТОгда подскажи как заполнять поле в этом событии?
на постопен через ui а тут как?
 
N

nvyush

пробовал, пишет Object variable not set
Это если документ новый, то Source.Document = Nothing. Но если есть респонсы, как он может быть новым?
Для нового документа все манипуляции с полями нужно делать до вызова ws.EditDocument
 

VladSh

начинающий
Lotus Team
11.12.2009
1 786
157
BIT
78
Это если документ новый, то Source.Document = Nothing. Но если есть респонсы, как он может быть новым?
Я так понимаю, что новый - это временный документ, который создаётся для печати методом Compose, вот потому на QO Source.Document = Nothing.

dimat
Что-то типа этого должно быть:
- создание дока по "печатной форме" с помощью CreateDocument
- заполнение полей
- открытие дока с помощью ws.EditDocument
+ кнопка, по которой док отправляется на печать и закрывается
 

dimat

Well-known member
31.07.2008
508
0
BIT
0
Все получилось :)
Всем огромное спасибо за помощь!!!
Отдельное СПСАИБО nvy :)
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!