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

Тема в разделе "Lotus - Программирование", создана пользователем oleg7, 9 дек 2009.

  1. oleg7

    oleg7 Гость

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

    Alexander (Criz) Гость

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

    xKlonx Lotus team
    Lotus team

    Регистрация:
    10 сен 2009
    Сообщения:
    412
    Симпатии:
    0
    Dim workspace As New NotesUIWorkspace
    Dim uidoc As NotesUIDocument
    Set uidoc = workspace.CurrentDocument
    Call uidoc.Print

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

    oleg7 Гость

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

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Насколько я помню @Command( [FilePrint] ) открывает окно свойств печати, там есть кнопка предпросмотра и кнопка печати. Открыть окно предпросмотра сразу скорее всего не получится. Да и кнопки печати в нём нет.
     
  6. oleg7

    oleg7 Гость

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

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.083
    Симпатии:
    300
    от задачи зависит..., и почему сразу в ворд, а не ПДФ (кот. именно для печати и хорош)
     
  8. oleg7

    oleg7 Гость

    решил делать печать в Word, использую код, который нашел на сайте:
    Код (Text):
    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?
     
  9. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    oleg7
    address = doc.GetItemValue("addres")(0)
     
  10. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    Если поле адреса мультизначное, то соединить в строку, например, через запятую:
    Код (Text):
    address = join(doc.GetItemValue("addres"), ", ")
     
  11. oleg7

    oleg7 Гость

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

    xKlonx Lotus team
    Lotus team

    Регистрация:
    10 сен 2009
    Сообщения:
    412
    Симпатии:
    0
    oleg7
    Пробовал под дебагом твой код вылетает на :
    Set word = CreateObject("Word.Application") 'Создание объекта Word'a
     
  13. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    а точно одно s в имени?
    Код (Text):
    if doc.hasitem("addres") then
    address = join(doc.GetItemValue("addres"), ", ")
    else
    address ="" ' или пробел или что надо
    end if
     
  14. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    А документ открыт?

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

    amigolinx Гость

    ну дык чтоб брать значения полей, нужно сначала сам док из базы получить, а в коде я чёто не вижу строк типа
    Код (Text):
    Dim uiws As New NotesUIWorkspace
    Dim doc as NotesDocument

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

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

    xKlonx Lotus team
    Lotus team

    Регистрация:
    10 сен 2009
    Сообщения:
    412
    Симпатии:
    0
  17. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.083
    Симпатии:
    300
    здесь есть подстановка из шаблона http://www.notesnet.ru/library/docid/5E77A5
    и рекомендовалбы именно так
    Код (Text):
    ' 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
    "лучше день потерять..."
     
  18. oleg7

    oleg7 Гость

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

Поделиться этой страницей