При разработке отчетов и дашбордов в дизайнере отчетов присутствует возможность создать пользовательскую функцию. Сценарий функции можно описать с использованием визуального средства программирования Blockly или на одном из языков программирования, который установлен как скриптовый язык отчета: JS, C#, VB.NET. Функции создаются в словаре данных отчета.
Для того чтобы создать новую функцию, следует:
Выбрать пункт Новая функция... (New Function...) в меню Создать (New);
Выбрать команду Новая функция... (New Function...) контекстном меню словаря данных.
Пользовательскую функцию можно отредактировать. Для этого следует:
Выделить пользовательскую функцию в словаре данных, и нажать элемент управления Редактировать (Edit);
Выделить пользовательскую функцию в словаре данных, и нажать команду Редактировать (Edit) в контекстном меню словаря данных.
Редактор пользовательской функции
Создание функции осуществляется в специальном редакторе:
Поле Наименование (Name) предоставляет возможность изменить наименование функции. Является обязательным полем, т.к. обращение к функции осуществляется по ее имени.
Поле Описание (Description) предоставляет возможность указать дополнительную информацию для функции. Если это поле не является пустым, то дополнительная информация будет отображаться на панели описаний в словаре данных.
Параметр Категория (Category) предоставляет возможность определить категорию словаря данных, в которую будет добавлена новая функция. Содержит перечень предустановленных категорий, а также режим По выбору (Custom). Если выбрано значение По выбору, то будет отображаться поле Пользовательская категория (Custom Category). Категории используются для каталогизации функций и сами по себе не несут какой-либо функциональности.
Поле Пользовательская категория (Custom Category) отображается только если параметр Категория установлен в значение По выбору. В этом поле можно указать наименование пользовательской категории, которая будет создана при создании функции. Если поле Пользовательская категория будет не заполнено, то функция будет добавлено в корень категории Функции (Functions).
Параметр Тип возвращаемого значения (Return Type) предоставляет возможность установить тип данных, который будет возвращать функция.
Кнопка Добавить (Add) предоставляет добавить аргументы функции. Максимально, в функцию можно передать 10 аргументов.
Список аргументов функции. Если добавлен хотя бы один аргумент, будут отображаться параметры при помощи которых можно определить тип данных аргумента и его наименование.
Параметр Тип аргумента (Argument Type) предоставляет возможность установить тип данных аргумента.
Поле Наименование аргумента (Argument Name) предоставляет возможность установить имя аргумента, по которому можно обращаться к нему в сценарии функции.
Параметр Режим сценария (Script Mode) предоставляет возможность выбрать режим создания сценария Блоки (Blocks) или Код (Code). Сценарий созданный при помощи Blockly, является универсальным для всех платформ. Сценарий функции будет работать во всех генераторах отчетов Stimulsoft. Однако, сценарий может быть реализовано и при помощи скриптового языка отчета - JS, C#, VB.NET.
Поле сценария функции, в котором отображается код функции или надпись (Блоки) (Blocks), что в свою очередь означает реализацию сценария при помощи Blockly.
Особенности сценария функции с помощью кода
При реализации сценария функции при помощи кода, следует иметь в виду несколько ограничений и особенностей:
Во-первых, сценарий должен быть реализован на том языке программирования, который установлен как скриптовый язык отчета. Изменить его при помощи одноименного свойства шаблона отчета Скриптовый язык (Script Language).
Во-вторых, в случае построения отчета в генераторе отчетов для .NET и .NET Framework, сценарий функции написанный при помощи кода будет выполняться только в случае если режим вычисления отчета определен как Компиляция (Compilation).
В-третьих, при выполнении кода сценария функции в генераторе отчетов для .NET и .NET Framework следует учитывать значение параметра Доступ к компиляции (Compilation Access) на вкладке Главные (Main) в меню Параметры (Options) дизайнера отчетов. Если параметр Доступ к компиляции установлен в значение Запретить (Deny) или Включить режим интерпретации (Force Interpretation), то код сценария не будет выполняться. В генераторе отчетов для JS, PHP и Python следует учитывать значение параметра Доступ к событиям (Events Access) на вкладке Главные (Main) в меню Параметры (Options) дизайнера отчетов. Если параметр Доступ к событиям установлен в значение Запретить (Deny), то код сценария не будет выполняться.