Раздел: CronosPRO | Дата редакции: 29.11.2012 | id статьи: 1414 |
Работа с переменными в формулах
Что такое?
Переменная — элемент формулы, имеющий определённое имя и принимающий в процессе вычислений различные
значения.
Какие бывают переменные?
Переменные в формулах «CronosPRO» делятся на два типа:
- локальные — область видимости локальной переменной во время выполнения одной формулы ограничена рамками текущей записи. Значение локальной переменной, вычисленное при обработке текущей записи, не может использоваться при обработке следующей записи, так как оно обнуляется при переходе от одной записи к другой;
- глобальные — область видимости глобальной переменной во время выполнения одной формулы не ограничена рамками текущей записи. Значение глобальной переменной, вычисленное при обработке текущей записи, можно использовать и при обработке следующей записи, а также обращаться к глобальной переменной из других функций и формул.
Глобальные переменные используются также для передачи информации:
- от запроса по образцу в выходную форму;
- от запроса по образцу в статистический отчёт;
- от запроса по образцу в шаблон отчёта;
- между формулами выходных форм в выходных формах;
- между формулами выходных форм в шаблонах отчётов;
- между пользовательскими функциями и формулами;
- между формулами и скриптами Lua.
@local := "123"; // в формуле создана новая локальная переменная со значением 123 @@global := "АБВ"; // в формуле создана новая глобальная переменная со значением АБВ
Как назвать переменную?
Имя переменной может состоять из букв, цифр и символов подчёркивания.
Имя должно начинаться с буквы или символа подчёркивания. Имена не чувствительны к регистру символов.
В названиях переменных можно использовать русские буквы.
@переменная := 123; @local := "АБВ"; @per_123 := "29.11.2012";
Типы переменных
Переменные в формулах не типизированы. В общем случае любая переменная рассматривается как строка.
В рамках одной формулы переменная может последовательно содержать значения различных типов (текстовые, числовые, дату, время) и, следовательно, использоваться в выражениях в различном качестве.
@local := 123; // в формуле создана новая локальная переменная, значение число — 123 @local := "АБВ"; // значение заменено на строку — АБВ @local := "29.11.2012"; // значение заменено на дату — 29.11.2012 @local(1) := 321; // переменная стала массивом, первое значение число — 321 @local(2) := "FFF"; // в массив добавилось второе значение строка — FFF
Использование переменных как динамических массивов
Переменная может одновременно иметь несколько различных значений. При этом количество таких значений,
называемых элементами массива, — не ограничено, и может изменяться во время выполнения формулы, т. е.
массив является динамическим.
@mas(1) := 1; // в формуле создана новая локальная переменная — массив @mas(2) := 2; // второму элементу массива присвоено значение — 2 @mas(-1) := 3; // в конец списка значений массива дописано новое значение — 3 @mas := ""; // переменная — пустая, все значения массива — удалены
Обратите внимание
- Каждый элемент массива имеет свой номер, который используется при обращении к данному элементу.
- Нумерация элементов начинается с 1 и является непрерывной (последовательной).
- Значения массива в строке разделены регулярным выражением @VALUESEPARATOR и, по сути, являются строкой. Это даёт возможность обрабатывать значения массива при помощи функций для работы со строками (текстом).