Функция определяет, каким образом будет выполняться расчёт блока. Функция должна быть написана в модуле Fore и иметь следующую сигнатуру:
Public Function <Название функции>([<дополнительные параметры>,]Paramarray parameters: Array Of Variant): Variant;
Где:
[<дополнительные параметры>,]. Константные пользовательские параметры, которые могут дополнительно управлять расчётом функции. Если параметров несколько, то они перечисляются через запятую. Могут отсутствовать;
parameters. Перечень значений параметров блока, состав и порядок которых задан на странице «Параметры» в мастере редактирования блока функции.
Для получения примера функции обратитесь к разделу «Пример пользовательской функции».
Выбор пользовательской функции выполняется на странице «Параметры блока» в мастере редактирования блока функции:
Для выбора пользовательской функции:
Выберите модуль с функцией или сборку, содержащую модуль с функцией, в раскрывающемся списке «Модуль». Модуль или сборка должны быть написаны на языке Fore. Для просмотра выбранного модуля или формы в среде разработки нажмите кнопку «Открыть».
Совет. Для создания модуля, содержащего требуемую сигнатуру функции, нажмите кнопку «Создать». Будет открыт диалог, в котором выберите место хранения модуля и задайте его наименование и идентификатор. После этого модуль будет открыт в среде разработки.
Выберите пользовательскую функцию в раскрывающемся списке «Функция». В списке содержатся только те функции модуля, которые имеют требуемую сигнатуру.
Если в сигнатуре функции определены константные пользовательские параметры, то задайте их значения в поле «Дополнительные значения параметров». Если параметров несколько, то их значения приводятся через запятую. Строковые параметры приводятся в кавычках.
Проверьте правильность задания параметров функции. Нажмите кнопку «Проверить синтаксис». Если всё настроено верно, то будет отображено соответствующее сообщение, в обратном случае - текст ошибки.
В результате будет выбрана пользовательская функция, рассчитываемая блоком.
Пример выполняет команду СУБД, ключ которой передаётся в качестве константного пользовательского параметра.
Для выполнения примера добавьте ссылки на системные сборки: Db, Metabase, Ui.
Public Function callDBCommand(Command: Integer; Param: Array Of Variant): Variant;
Var
comInst: ISQLCommandInstance;
Begin
If WinApplication.ConfirmationBox("Выполнение расчёта может занять продолжительное время. Продолжить?") Then
comInst := MetabaseClass.Active.Item(Command).Open(Null) As ISQLCommandInstance;
comInst.Execute;
End If;
Return 0;
End Function callDBCommand;
См. также: