Отбор документов для отчета с помощью Lotes Script

advertisement
Отбор документов для отчета с помощью Lotus Script.
В Q&R предусмотрена расширенная возможность, позволяющая отбирать документы
для отчета не на основе документа запроса, а с помощью кода, реализованного на
Lotus Script. Например, это может быть специально написанный агент, запускаемый из
меню «Действия» и приводящий к построению отчета. В данном документе описана
методика построения такого агента.
Методика построения агента
1.
2.
3.
4.
5.
6.
Создайте новый агент в БД со встроенным Q&R.
Сделайте его общим, если хотите, что бы он был доступен для всех.
Укажите, что агент должен запускаться вручную из меню действия.
Задайте для него опцию «Однократное выполнение».
Укажите, что формула для него будет написана на Lotus Script’е.
В теле Script’а в разделе «Options» напишите строку: Use "QRWork", для скрипта,
это значит, что в коде могут быть использованы функции из библиотеки «QRWork».
Эта библиотека встраивается в базу при установки в нее Q&R и содержит функции,
необходимые, для построения отчета по отобранным в коде документам.
7. Далее, например, в разделе «Initialize», следует написать код создающий
коллекцию документов, по которым будет построен отчет. Следует отметить, что эта
коллекция может содержать, как документы, хранящиеся в БД, так и созданные в
скрипте, но не сохраненные в базе.
8. Далее необходимо указать шаблон, по которому будет построен отчет, для этого в
скрипте следует использовать функции GetTemplate или GetTemplateByIdent
(параметры и действия функций описана ниже).
9. И, наконец, необходимо вызвать функцию QRReport, передав ей в качестве
параметров коллекцию отобранных документов и ссылку на шаблон отчета.
10. Теперь агент можно сохранить и использовать для построения отчета.
Функция GetTemplate
Действия: В результате работы этой функции появится стандартное Q&R диалоговое
окно со списком всех шаблонов из базы, из которого пользователь сможет выбрать
шаблон, или указать шаблон с диска. В случае если шаблон выбирается из базы, он
будет сохранен во временном файле на диске.
Описание: GetTemplate(TemplateName$,IsNeedDeleteTemplate%)
Параметры: TemplateName$ - это должна быть переменная, в которой после отработки
функции будет храниться путь ко временному файлу шаблона на диске (переменная
передается по ссылке)
IsNeedDeleteTemplate% - это должна быть переменная, в которой после отработки
функции будет храниться 1 или 0, в зависимости от того выбран шаблон из базы и
следовательно его временный файл подлежит удалению или с диска.
(переменная передается по ссылке)
Пример использования:
Dim s$ As String, IsDelTmpl As Integer
GetTemplate(s$, IsDelTmpl)
MsgBox (s$) ‘ выдаст путь ко временному файлу.
Функция GetTemplateByIdent
Действия: В результате работы этой функции шаблон с указанным именем из БД будет
сохранен во временном файле на диске.
Описание: GetTemplateByIdent(TemplateName$,TemplateIdent$,TemplateDescribe$)
Параметры: TemplateName$ - это должна быть переменная, в которой после отработки
функции будет храниться путь ко временному файлу шаблона на диске (переменная
передается по ссылке)
TemplateIdent$ - текстовая строка содержащая идентификатор шаблона (значение из
аналогичного поля в документе с присоединенным шаблоном).
TemplateDescribe$ - текстовая строка содержащая название шаблона (значение из
аналогичного поля в документе с присоединенным шаблоном).
Пример использования:
Dim s$ As String
GetTemplate(s$, “MyFirstTemplate”, “Мой шаблон”)
MsgBox (s$) ‘ выдаст путь ко временному файлу.
Функция QRReport
Действия: передает дальнейшее управление по построению отчета Q&R, в качестве
основных параметров передается коллекция документов, по которым будет построен
отчет и путь к файлу шаблона на диске.
Описание: QRReport(ExtTemplateName$, InputDocuments,
ExtParams,IsNeedDeleteTemplate%,IsAppend%,IfIsAppendIsNewPage%,IsNeedMaximize%
)
Параметры: ExtTemplateName$ - путь к файлу шаблона на диске.
InputDocuments – коллекция документов, причем эта переменная может содержать
либо реальную коллекцию документов, либо массив из документов, либо массив из
UNID документов.
ExtParams – в данном документе не раскрывается смысл этой переменной, важно, что
она должна быть типа variant.
IsNeedDeleteTemplate% - значение параметра (1 или 0) определяет, будет ли удален с
диска файл шаблона. Если для выбора шаблона используется функция GetTemplate, то
это значение можно взять из ее параметра.
IsAppend% - значение 1 указывает, что новый отчет будет добавлен в конец текущего
документа Word или Excel.
IfIsAppendIsNewPage% - значение 1 указывает, что новый отчет будет добавлен в
конец текущего документа Word с новой страницы.
IsNeedMaximize% - значение 1 указывает, что после построения отчета будет
развернуто приложение Word или Excel с построенным отчетом.
Замечания
1. Такой метод отбора документов существенно расширяет возможности Q&R:
- появляется возможность использовать метод Search базы данных с гибким
критерием отбора
- документы могут отбираться непосредственно алгоритмом кода
- документы могут отбираться одновременно из нескольких БД
- коллекция документов может состоять из сгенерированных скриптом
документов, каждый из которых содержит сборную информацию из нескольких
документов
- продолжите этот список…
2. Для задания параметров в диалоговом окне используйте метод DialogBox объекта
Notesuiworkspace. Введенные значения параметров можно получить из объекта
Notesdocument, переданного как параметр этому методу.
Download