Расширение функциональности

Для запуска алгоритмов расчета, выполнения модулей, написанных на Fore или Fore.NET, открытия объекта репозитория создайте пользовательскую кнопку.

Для использования пользовательских кнопок:

  1. Создайте алгоритм расчета, модуль Fore или Fore.NET/JS-функцию или объект репозитория. В качестве открываемого объекта репозитория может быть выбран: справочник, регламентный отчёт, форма ввода.

  2. Создайте пользовательскую кнопку.

  3. Примените пользовательскую кнопку.

Создание пользовательских кнопок

Для создания пользовательской кнопки используйте диалог «Пользовательские кнопки»:

Для открытия диалога

Диалог состоит из области операций с кнопками и области настроек кнопки.

Для создания кнопки:

  1. Нажмите кнопку в области операций с кнопками для создания новый кнопки.

  2. Введите наименование кнопки в поле «Наименование кнопки», отражающее её функциональность. По умолчанию наименование кнопки «Пользовательская кнопка N», где N - порядковый номер кнопки.

  3. Выберите из раскрывающегося списка тип объекта: «Алгоритм расчета», «Модуль Fore/JS-функция» или «Открытие объекта».

  4. Загрузите пиктограмму для кнопки. Нажмите кнопку «Загрузить», в открывшемся окне выберите путь до файла пиктограммы с расширением *.png, *.jpg, *.jpeg, *.bmp. После загрузки в поле «Значок» отобразится указанная пиктограмма. Если пиктограмма не загружена, то на вкладке «Пользовательские функции» ленты инструментов будет отображено только название кнопки.

Примечание. Для корректного отображения пиктограмм пользовательских кнопок используйте 32-битные изображения с прозрачностью.

  1. Выберите размер пиктограммы, отображаемой на вкладке «Пользовательские функции», установив переключатель в области «Размер значка»: мелкий или крупный. При выборе крупной пиктограммы наименование кнопки будет отображаться под кнопкой, при выборе мелкой - рядом с ней. При добавлении нескольких кнопок с мелкими пиктограммами они располагаются в несколько строк на ленте инструментов, тогда как кнопки с крупными пиктограммами располагаются последовательно, занимая всю высоту ленты инструментов.

  1. Определите нужно ли активировать или деактивировать кнопку по условию. Для этого установите флажок «Управление активностью кнопки». В списке «Модуль» выберите модуль, написанный на языке Fore или Fore.NET, список содержит все модули в репозитории и папки, в которых есть модули. В списке «Fore метод/функция» выберите функцию, список содержит все функции выбранного модуля, соответствующие сигнатуре:

Function <Название функции>(<Report>: IPrxReport): Boolean;

Параметр:

Report. В параметр передается форма ввода в формате IPrxReport. При работе с этим объектом будут доступны все свойства и методы интерфейса IPrxReport.

Доступные значения:

Задать можно только одну функцию в качестве условия активации/деактивации кнопки.

В качестве условия может быть использовано значение параметра или атрибута, результат расчёта.

Если флажок установлен, а модуль/функция не выбраны, то при завершении настройки кнопки будет выводиться сообщение, что не выбран исполняемый объект.

Примечание. Проверка выполнения условия проходит постоянно, поэтому fore-функция должна быстро выполняться, иначе форма ввода будет неработоспособной.

  1. Задайте предобработчик для вывода текстового сообщения с произвольным текстом при нажатии на пользовательскую кнопку. Для этого установите флажок «Предобработчик». В списке «Модуль» выберите модуль, написанный на языке Fore или Fore.NET, список содержит все модули в репозитории и папки, в которых есть модули. В списке «Fore метод/функция» выберите функцию, список содержит все функции выбранного модуля, соответствующие сигнатуре:

Function <Название функции>(<Report>: IPrxReport): String;

Параметр:

Report. В параметр передается форма ввода в формате IPrxReport. При работе с этим объектом будут доступны все свойства и методы интерфейса IPrxReport.

В поле «JS-функция» укажите имя js-функции, которую необходимо запустить в веб-приложении сразу после нажатия кнопки, в виде:

javascript:<Наименование функции(callback, Параметры)>

Параметры:

Callback. Обязательный параметр. Функция обратного вызова;

Параметры. Требуемые параметры.

Для добавления js-функции используйте конструктор бизнес-приложений: с помощью кнопки  «Добавить» загрузите файл в кодировке UTF-8. Функция должна иметь требуемую сигнатуру:

function <Наименование функции>(callback, параметры)
{
…callback();
}

Если указаны js-функция и Fore-функция, то в веб-приложении сначала выполняется Fore-функция, затем js-функция, в настольном приложении выполняется только Fore-функция;

  1. Задайте постобработчик для возможности выполнять требуемые действия после:

Примечание. Постобработчик срабатывает после закрытия объекта, если в качестве объекта выбрана форма ввода и установлен флажок «Открывать в модальном окне».

Для этого установите флажок «Постобработчик». В списке «Модуль» выберите модуль, написанный на языке Fore или Fore.NET, список содержит все модули в репозитории и папки, в которых есть модули. В списке «Fore метод/функция» выберите метод или функцию, список содержит все методы/функции выбранного модуля, соответствующие сигнатуре:

Sub <Название метода>(<Report>: IPrxReport);

Function <Название функции>(<Report>: IPrxReport): Type;

Параметр:

Report. В параметр передается форма ввода в формате IPrxReport. При работе с этим объектом будут доступны все свойства и методы интерфейса IPrxReport.

В поле «JS-функция» укажите имя js-функции, которую необходимо запустить в веб-приложении после выполнения действия кнопки, в виде:

javascript:<Наименование функции(callback, Параметры)>

Параметры:

Callback. Обязательный параметр. Функция обратного вызова;

Параметры. Требуемые параметры.

Для добавления js-функции используйте конструктор бизнес-приложений: с помощью кнопки  «Добавить» загрузите файл в кодировке UTF-8. Функция должна иметь требуемую сигнатуру:

function <Наименование функции>(callback, параметры)
{
…callback();
}

Если указаны js-функция и Fore-функция, то в веб-приложении сначала выполняется Fore-функция, затем js-функция, в настольном приложении выполняется только Fore-функция;

Задать можно только один постобработчик.

  1. Выберите из раскрывающегося списка объект, который будет исполняться при нажатии на кнопку. Список представляет собой дерево объектов репозитория, в котором отображаются объекты, выбранного типа, и папки, содержащие эти объекты. В зависимости от выбранного типа наименование списка и набор настроек будет различным:

Настройка аналогична настройке параметров для алгоритмов расчёта в табличной области.

Public Sub <Название функции>(<Report>: IPrxReport);

Begin

End Sub <Название функции>;

Параметр:

Report. В параметр передается форма ввода в формате IPrxReport. При работе с этим объектом будут доступны все свойства и методы интерфейса IPrxReport.

Если в указанном модуле нет класса, то список «Название класса» будет скрыт.

В поле «JS-функция» укажите имя js-функции, которую необходимо запустить в веб-приложении, в виде:

javascript:<Наименование функции(callback, Параметры)>

Параметры:

Callback. Обязательный параметр. Функция обратного вызова;

Параметры. Требуемые параметры.

Для добавления js-функции используйте конструктор бизнес-приложений: с помощью кнопки  «Добавить» загрузите файл в кодировке UTF-8. Функция должна иметь требуемую сигнатуру:

function <Наименование функции>(callback, параметры)
{
…callback();
}

Если указаны js-функция и Fore-функция, то в веб-приложении сначала выполняется Fore-функция, затем js-функция, в настольном приложении выполняется только Fore-функция;

Установите флажок «Открывать в модальном окне» для блокировки работы с родительской формой во время открытия объекта. Доступно, если объект, который настраивается для открытия, является формой ввода.

Установите флажок «Обновлять после закрытия окна» и выберите листы, которые необходимо обновить после закрытия объекта. Выбрать можно один, несколько или все листы. Флажок становится доступным после установки флажка «Открывать в модальном окне».

Ниже отображена область параметров, представляющая собой список из параметров объекта, если у выбранного объекта есть параметры:

Задайте:

      1. Способ передачи значения. В раскрывающемся списке выберите:

        • Не передавать. Значение по умолчанию. При открытии объекта в параметр ничего не будет передаваться;

        • Параметр формы. При открытии объекта в параметр передается значение параметра формы;

        • Атрибут измерения. При открытии объекта в параметр передается значение атрибута первого элемента или всех элементов выбранного измерения из выделенной в таблице области;

        • Вручную. При открытии объекта в параметр передается указанное значение;

      1. Учитывать таблицу. Флажок доступен, если выбран способ передачи «Атрибут измерения». Для отображения только всех атрибутов всех измерений, без указания табличных областей, снимите флажок «Учитывать табличную область». По умолчанию флажок установлен;

      2. Значение. Наполнение поля зависит от выбранного способа передачи значения:

      1. Тип отметки. Раскрывающийся список доступен если был выбран способ передачи значения «Атрибут измерения». В раскрывающемся списке выберите:

        • Первый элемент. В параметр передается выбранный атрибут первого элемента измерения из выделения;

        • Все элементы. В параметр передаются значения выбранного атрибута всех элементов измерения из выделения.

Для изменения порядка расположения кнопок на вкладке «Пользовательские функции» ленты инструментов используйте кнопки /.

Для удаления кнопок используйте кнопку в области пользовательских операций.

Применение пользовательских кнопок

Созданные пользовательские кнопки отображаются на вкладке «Пользовательские функции» ленты инструментов. Вкладка становится доступной после добавления пользовательской кнопки.

Если кнопка была настроена на выполнение алгоритма расчёта, то при нажатии на неё будет запущен расчёт. Если кнопка была настроена на модуль Fore, то при нажатии на неё будет запущен указанный модуль. Если кнопка была настроена на открытие объекта репозитория, то при нажатии на неё будет открыт объект.

Если для кнопки была настроена активация/деактивация, то по после выполнения условия, указанного в модуле, кнопка станет активной/недоступной.

Если для кнопки был настроен предобработчик, то сразу после нажатия на кнопку будет выведен диалог с текстом, который вернёт функция предобработчника. В диалоге будут доступны кнопки «ОК» и «Отмена». Для выполнения действия пользовательской кнопки нажмите кнопку «ОК» в диалоге. Для отмены действия пользовательской кнопки нажмите кнопку «Отмена» в диалоге.

Если для кнопки был настроен постобработчик, то после выполнения действия пользовательской кнопки будет произведены действия описанные в модуле, указанном в качестве постобработчика.

См. также:

Построение формы ввода | Работа с готовой формой ввода