Раздел: CronosPRO Дата редакции: 12.02.2014 id статьи: 1451

Работа с пользовательскими функциями

Пользовательские функции представляют собой проектируемые пользователем поименованные формулы, выполняющие, подобно стандартным функциям, роль подпрограмм. Как и стандартные функции, они могут многократно вызываться из других формул (в т. ч. из других, определяемых пользователем, функций), получать параметры и возвращать результат.
Когда стоит использовать пользовательские функции?
Если Вы видите в своих алгоритмах повторяющиеся участки кода, то рекомендуется вынести их в пользовательскую функцию. Это позволит существенно уменьшить объём кода и сделать алгоритм более удобным.

Схема работы пользовательских функций

Рассмотрим схему работы пользовательских функции, показанную на рисунке 1.
Схема работы пользовательских функций
Рис. 1. Схема работы пользовательских функций
Пользовательские функции вызываются из любых формул в банке, выполняют набор указанных пользователем операций и возвращают итоговое значение в основную формулу через переменную @ret.
Пользователь имеет возможность передавать значение в пользовательские функции через локальные и глобальные переменные.

Синтаксис пользовательских функций

Аналогично стандартным функциям, пользовательские функции могут иметь набор параметров. Число и порядок следования параметров определяется пользователем.
Имя пользовательской функции задаётся пользователем и может быть произвольным.
Рассмотрим пример пользовательской функции, показанной на рисунке 2.
Синтаксис пользовательских функций
Рис. 2. Синтаксис пользовательских функций
Как видно из рисунка, вызов пользовательской функции идентичен вызову стандартной функции. Разница заключается в знаке $ (доллар), стоящим перед именем функции (user-func).
Вызов пользовательской функции
Пользовательская функция $user-func имеет два параметра, которые передаются через локальные переменные @par1 и @par2. Параметры функции перечисляются при вызове функции через запятую.

Обратите внимание

  • Количество параметров пользовательской функции — не ограничено.
Содержимое пользовательской функции
Рассмотрим содержимое пользовательской функции. В первых строчках текста любой пользовательской функции перечисляются входные параметры — локальные переменные.

Обратите внимание

  • Имена входных параметров (локальных переменных) значения не имеют — важен порядок объявления.
  • При вызове пользовательской функции параметры должны передаваться в порядке их объявления в начале текста пользовательской функции (цифры на рисунке 2).
Возвращаемое значение
После выполнения пользовательская функция может вернуть в основную формулу значение в виде строки или массива. Для возврата значения необходимо использовать локальную переменную @ret (аналогично возврату значения на выходную форму в формулах выходных форм).

Как создать?

Для проектирования пользовательских функции необходимо зайти в основное меню ПроектированиеПользовательских функций. В открывшемся окне будут отображены все пользовательские функции текущего банка (рис. 3).
Список пользовательских функций
Рис. 3. Список пользовательских функций
Для создания новой пользовательской функции нажмите на кнопку «Добавить новую». Будет открыто окно свойств новой пользовательской функции (рис. 4). Поле «Имя» является обязательным для заполнения.
Свойства новой пользовательской функции
Рис. 4. Свойства новой пользовательской функции

Обратите внимание

  • Пользовательские функции вызываются из формул по имени, поэтому рекомендуется в названии использовать латинские символы.
После заполнения свойств пользовательской функции нажмите на кнопку «Сохранить». Будет открыт редактор формул «CronosPRO». Вы можете приступать к написанию Вашей пользовательской функции.

Как запустить?

Для того чтобы запустить Вашу пользовательскую функцию, Вам необходимо написать в любой формуле следующий код:
// вызов пользовательской функции
@a := $new_user_function(); // в скобках следует передать параметры через запятую