Для получения значения элемента бланка и для получения условий формирования шаблона строки можно использовать пользовательские функции. Для этого в элемент записывается служебное слово «CALL» + пробел + «НаименованиеФункции».

«НаименованиеФункции» - наименование пользовательской функции, которая должна находиться в общем модуле базы данных Microsoft Office Access и описана с ключевым словом Public.

Пользовательская функция должна принимать три параметра:

·         Текущий источник данных.

·         Дополнительный источник данных (см. раздел 17.1.10.3.4 третье служебное поле). Будет определен, если функция используется для элемента шаблона строки и у данного шаблона строки есть дополнительный источник данных. В остальных случаях будет передаваться Nothing.

·         Вариантный массив, содержащий следующие элементы:

·         Порядковый номер листа выходного документа.

·         Порядковый номер листа выходного документа, сформированного на основе текущего бланка.

·         Порядковый номер сформированной строки на листе (см. «НомерСтрокиНаЛисте» в разделе 17.1.10.3.4).

·         Порядковый номер сформированной строки относительно начала документа с учетом всех сформированных листов (см. «НомерСтроки» в разделе 17.1.10.3.4).

·         Порядковый номер сформированной позиции относительно начала документа с учетом всех сформированных листов (см. «НомерПозиции» в разделе 17.1.10.3.4).

·         Значение 1, если текущий лист выходного документа формируется на основании области «Карта1», значение 2, если на основании «Карта2».

Источники данных будут передаваться как объекты Recordset библиотеки ADO, с установленным курсором на текущей записи, которую в данный момент обрабатывает модуль формирования выходных форм. Тип курсора «Keyset» (см. описание библиотеки ADO). Объект Recordset рекомендуется принимать по ссылке и при этом не переопределять его. Можно только перемещать курсор и читать значения полей.

Пользовательская функция должна возвращать:

·         Если функция используется для получения значения элемента бланка, то должна возвращать текстовое значение. Если элементу нужно присвоить несколько значений, то функция должна вернуть конкатенацию этих значений, используя в качестве символа разделителя «|».

·         Если функция используется для получения условия формирования шаблона строки, то должна возвращать в качестве истинного значения «-1», а в качестве ложного значения «0».

 

См. также:

17.1.10 Создание бланка