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

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

oleg7

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

Alexander (Criz)

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

xKlonx

Lotus team
10.09.2009
410
0
#3
Dim workspace As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Set uidoc = workspace.CurrentDocument
Call uidoc.Print

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

oleg7

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

nvyush

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

oleg7

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

lmike

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

oleg7

#8
решил делать печать в 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?
 

hosm

* so what *
18.05.2009
2 442
6
#10
Если поле адреса мультизначное, то соединить в строку, например, через запятую:
Код:
address = join(doc.GetItemValue("addres"), ", ")
 
O

oleg7

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

xKlonx

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

hosm

* so what *
18.05.2009
2 442
6
#13
а точно одно s в имени?
Код:
if doc.hasitem("addres") then
address = join(doc.GetItemValue("addres"), ", ")
else
address ="" ' или пробел или что надо
end if
 

nvyush

Lotus team
22.04.2009
2 317
0
#14
пробовал уже так, пишет "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

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

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

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

lmike

нет, пердело совершенство
Премиум
27.08.2008
6 567
263
#17
здесь есть подстановка из шаблона http://www.notesnet.ru/library/docid/5E77A5
и рекомендовалбы именно так
Код:
' 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

#18
спасибо за ответы. Решил делать в Excel по шаблону.