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

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

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

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

@command([fileprint]; .....)

  • Автор темы oleg7
  • Дата начала
O

oleg7

на виде есть кнопка печати @Command([FilePrint]; "";"";"";"";"";"PrintA")
Скажите пожалуйста, как сделать, чтобы печать шла не сразу, а сначала появлялась страница просмотра, а потом только можно было печатать
 
A

Alexander (Criz)

Лучше выводите в word и печатайте через него. У лотуса две слабые стороны - печать и отчёты, намучаетесь...
 
X

xKlonx

Dim workspace As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Set uidoc = workspace.CurrentDocument
Call uidoc.Print

Добавлено: Сори не правильно понял вопрос;)
 
O

oleg7

спасибо за ответ.
А что в таком виде, как вначале написал, нельзя сделать просмотр?! сразу только можно на печать?
 
N

nvyush

на виде есть кнопка печати @Command([FilePrint]; "";"";"";"";"";"PrintA")
Скажите пожалуйста, как сделать, чтобы печать шла не сразу, а сначала появлялась страница просмотра, а потом только можно было печатать
Насколько я помню @Command( [FilePrint] ) открывает окно свойств печати, там есть кнопка предпросмотра и кнопка печати. Открыть окно предпросмотра сразу скорее всего не получится. Да и кнопки печати в нём нет.
 
O

oleg7

nvy
спасибо, извеняюсь не видел ответ, поэтому дописал вопрос выше.
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 941
609
BIT
215
Лучше выводите в word и печатайте через него. У лотуса две слабые стороны - печать и отчёты, намучаетесь...
от задачи зависит..., и почему сразу в ворд, а не ПДФ (кот. именно для печати и хорош)
 
O

oleg7

решил делать печать в Word, использую код, который нашел на сайте:
Код:
Dim s As New notessession
Dim todaydate As New notesdatetime("Today")

Dim word As Variant
Dim wordoc As Variant

Dim todaysdate As String
Dim orderid As String
Dim producedby As String
Dim storeid As String
Dim customername As String
Dim address As String
Dim citytown As String
Dim postcode As String
Dim daytimeno As String
Dim eveningno As String

'Присваивание значений пересенным (Lotus)
todaysdate = todaydate.localtime
orderid = "2183763248"
producedby = s.username
storeid = "12345"
customername = "John Doe"
address = "Apartment 5c, 5 Test Avenue"
citytown = "Testtown"
postcode = "XX5 5XX"
daytimeno = "1234567890"
eveningno = "0987654321"

'Создание Word-документа
Set word = CreateObject("Word.Application") 'Создание объекта Word'a
Call word.documents.add("Return and Uplift.dot") 'Создание нового документа по шаблону Return and Uplift.dot
Set worddoc = word.activedocument 'Активация объекта

'Присваивание полям-Word'a значений из полей notes-документа
worddoc.FormFields(1).result = todaysdate
worddoc.FormFields(2).result = orderid
worddoc.FormFields(3).result = producedby
worddoc.FormFields(4).result = storeid
worddoc.FormFields(5).result = customername
worddoc.FormFields(6).result = address
worddoc.FormFields(7).result = citytown
worddoc.FormFields(8).result = postcode
worddoc.FormFields(9).result = daytimeno
worddoc.FormFields(10).result = eveningno

worddoc.saveas(customername) 'сохранение документа-Word'a с именем файла "John Doe.doc"
word.visible = True 'Сделать видимым окно Word'a
'word.quit 'закрытие Word'a
в этом примере используются данные, которые берутся не из документа. А как, например, вместо address = "Apartment 5c, 5 Test Avenue" добавить адрес из поля addres?
 
H

hosm

Если поле адреса мультизначное, то соединить в строку, например, через запятую:
Код:
address = join(doc.GetItemValue("addres"), ", ")
 
O

oleg7

пробовал уже так, пишет "Variant does not contain an object" . не могу понять из-за чего
 
X

xKlonx

oleg7
пробовал уже так, пишет "Variant does not contain an object" . не могу понять из-за чего
Пробовал под дебагом твой код вылетает на :
Set word = CreateObject("Word.Application") 'Создание объекта Word'a
 
H

hosm

а точно одно s в имени?
Код:
if doc.hasitem("addres") then
address = join(doc.GetItemValue("addres"), ", ")
else
address ="" ' или пробел или что надо
end if
 
N

nvyush

пробовал уже так, пишет "Variant does not contain an object" . не могу понять из-за чего
А документ открыт?

Код:
dim db as Notesdatabase
set db = s.Currentdatabase
dim doc as Notesdocument
set doc = db.GetdocumentByUNID("unid документа")
или
Код:
dim ws as New Notesuiworkspace
dim doc as Notesdocument
set doc = ws.Currentdocument.Document
 
A

amigolinx

пробовал уже так, пишет "Variant does not contain an object" . не могу понять из-за чего
ну дык чтоб брать значения полей, нужно сначала сам док из базы получить, а в коде я чёто не вижу строк типа
Код:
Dim uiws As New NotesUIWorkspace
Dim doc as NotesDocument

Set doc = uiws.CurrentDocument.Document
'...... и так далее .....


nvy - просто-таки сорвал с языка :please:
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 941
609
BIT
215
здесь есть подстановка из шаблона
и рекомендовалбы именно так
Код:
' TmpDocName – путь на диске к документу-шаблону
' bookmark01 – имя закладки определенной в MS Word
wObj.Documents.Add TmpDocName ' работа с шаблоном (открытие файла)
wObj.Selection.GoTo wdGoToBookmark, , , bookmark01 'переход к закладке
wObj.Selection.Delete wdCharacter, 1 ' удаление закладки и текста закладки, курсор остается на месте закладки
wObj.Selection.TypeText doc.ResultField(0) ' вывод информации в текущую позицию курсора
с полями - нахлебаетесь ("неожиданные" несовпадения типов и т.п. прелести МСО, при доступе из нотусей)

и еще раз повторю - лучше ПДФ, и добавлю - из java :)
читать FOP и XML, XSLT
"лучше день потерять..."
 
O

oleg7

спасибо за ответы. Решил делать в Excel по шаблону.
 
Мы в соцсетях:

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