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

Тема в разделе "Lotus - Программирование", создана пользователем dimat, 15 апр 2010.

  1. dimat

    dimat Lotus team
    Lotus team

    Регистрация:
    31 июл 2008
    Сообщения:
    518
    Симпатии:
    0
    На форме помимо остальных элементов дизайна присутствует внедренное представление.
    Проблема в том, что при печати этого документа, записи которые не поместелись в окно внедр. представления остаются не напечатанными.
    Возможно ли как то печтать все записи из внедренного представления вместе с другими элементами дизайна? если да-то как?
     
  2. Klido

    Klido Гость

    поместите в окно всё, что надо...
     
  3. dimat

    dimat Lotus team
    Lotus team

    Регистрация:
    31 июл 2008
    Сообщения:
    518
    Симпатии:
    0
    не совсем понял, что имеете ввиду...
    Галка "вписать в окно по высоте"?
     
  4. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Недавно ходил по этим граблям :). Другая проблема — представления печатаются совсем не так, как выглядят на экране. Если потенциально табличная часть может "уползти" на другую страницу(ы), лучше смотреть в сторону pdf, word и т.д. Если нет — можно нарисовать спецформу для печати. В кнопке печати исходной формы прописываем что-то вроде:
    Код (LotusScript):
    Dim ws As New NotesUIWorkspace
    Dim doc As NotesDocument
    Set doc = ws.CurrentDocument.Document
    Call doc.ReplaceItemValue("Form", "MyPrintForm")
    Call ws.EditDocument(False, doc, True, , , True)
    В печатной форме SaveOptions = "0", в QueryOpen перебираем респонсы и запихиваем данные в строку, обрамляя тегами <tr><td></td></tr>. Затем значение строки присваиваем скрытому полю на форме (напр., "MyTable"), в месте, где должна быть таблица вставляем вычисляемый html текст вида <table> + MyTableHeader + MyTable + </table>, где MyTableHeader — скрытое поле со строкой заголовка.
    P.S. Можно использовать объединение ячеек по строкам/столбцам, выделение шрифтами, в общем всю мощь html
    Если важен порядок строк, перебирать нужно entry из навигатора, полученного от той же внедрённой вьюшки, а не doc.responses.
     
  5. Klido

    Klido Гость

    dimat
    я имел ввиду настроить вьюху так, чтоб всё влезало в видимую часть..

    nvy
    лотус никогда не отличался возможностями печати :)
     
  6. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Ну так я об этом и упомянул. Однако для простых бланков, влезающих на одну страницу не вижу смысла извращаться выгрузкой в сторонние программы. По крайней мере то, что я описал, реализовано и работает.
     
  7. dimat

    dimat Lotus team
    Lotus team

    Регистрация:
    31 июл 2008
    Сообщения:
    518
    Симпатии:
    0
    Сделал все так. в результате: отображается стена текста из значений полей доков в перемешку с тегами html, куда еще надо тыкнуть?:)
     
  8. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    nvy только если в поле - помнить о лимитах в 64К или 32К.
    галка есть в меню - Pass-thru html
     
  9. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Выделить в форме вычисляемый текст и установить ему свойство Path-Thru HTML (в меню Text). Форме установить галку "Render pass through HTML in Notes" (первая закладка свойств). Да и данные из респонсов заворачивать типа
    strtbl = strtbl + "<tr>" + "<td>" + doc.GetItemValue("Field1")(0) + "</td>" + "<td>" + doc.GetItemValue("Field2")(0) + "</td>" + ... + "</tr>"

    Добавлено:
    Думаю, для одной страницы хватит, а если больше — то это совсем другая (грустная) история...
     
  10. dimat

    dimat Lotus team
    Lotus team

    Регистрация:
    31 июл 2008
    Сообщения:
    518
    Симпатии:
    0
    не могу найти
     
  11. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    В панели меню пункт Text, далее на четыре позиции ниже :).
     
  12. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    dimat, у вас какая версия дизайнера?
     
  13. dimat

    dimat Lotus team
    Lotus team

    Регистрация:
    31 июл 2008
    Сообщения:
    518
    Симпатии:
    0
    OKEN
    7.0.2
     
  14. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Попробуйте в строке поиска справки дизайнера ввести "Pass-Thru HTML", в разделе типа "Using HTML on a page, form, or subform" должно быть описано, как устанавливать это свойство тексту.
     
  15. dimat

    dimat Lotus team
    Lotus team

    Регистрация:
    31 июл 2008
    Сообщения:
    518
    Симпатии:
    0
    нашел: Select the text and choose Text - Pass-Thru HTML
    2.png

    немогу понять где это свойство
     
  16. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Да не в свойствах оно, а в меню. F10 -> Text -> Pass-Thru HTML
     
  17. dimat

    dimat Lotus team
    Lotus team

    Регистрация:
    31 июл 2008
    Сообщения:
    518
    Симпатии:
    0
    Поставил, теперь вобше ничего не отображается
     
  18. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Попробуйте для отладки следующее:
    1) В вычисляемое поле заголовка ввести формулу: "<tr><th>Заголовок1</th><th>Заголовок2</th></tr>"
    2) В вычисляемое поле строк таблицы ввести формулу: "<tr><td>Поле1</td><td>Поле2</td></tr>"
    3) Создать временно видимое cfd-поле с такой же формулой, что и в вычисляемом тексте. Там должно получаться что-то вроде
    <table><tr><th>Заголовок1</th><th>Заголовок2</th></tr><tr><td>Поле1</td><td>Поле2</td></tr></table>
    4) сканирование ответных доков и заполнение поля таблицы временно отключить
    При открытии формы должна отображаться таблица
    0) Проверить, не скрыт ли текст, и в нужном ли порядке расположены поля на форме.
     
  19. dimat

    dimat Lotus team
    Lotus team

    Регистрация:
    31 июл 2008
    Сообщения:
    518
    Симпатии:
    0
    во временном поле отображается хтмл, в вычисляемом тексте отображается таблица, текст не скрыт, поля расположены правильно.
    сделал поле строк таблицы видимым, скопировал его содержимое, после выполнения скрипта, в файл с расширением html, открыл в браузере, все данные отображаются в виде таблицы.
    Есть еще какие нибудь идеи?
     
  20. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Теперь сделать то же самое, только строки таблицы заполнить данными из респонсов и посмотреть, что формируется в этом случае.
     
Загрузка...

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