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

Использование формул структуры

Для чего нужны?

Основное (но не единственно возможное) назначение формул структуры — автоматическое вычисление значений каких-либо полей базы данных (например, на основании значений других полей). Эти формулы могут вычисляться в различных режимах:
Формулы CronosPRO. Работа формулы структуры
Рис. 1. Пример работы формулы структуры

Как создать?

Для проектирования формул структуры необходимо зайти в основное меню ПроектированиеСтруктуры банка данных. В открывшемся окне необходимо выбрать нужную базу и нажать кнопку «Свойства». Далее выбираем самую правую вкладку — «Формулы» (рис. 2).
Вкладка Формулы в окне свойств выбранной базы
Рис. 2. Вкладка «Формулы» в окне свойств выбранной базы
Для добавления новой формулы нажмите кнопку «Добавить». Откроется редактор формул «CronosPRO», в котором можно приступить к написанию кода новой формулы структуры.

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

  • Формулы структуры работают с конкретной записью базы данных (которая изменяется, сохраняется, передаётся через таблицы обмена), поэтому мы можем обращаться к полям текущей записи как к локальным переменным или динамическим массивам.

Когда запускается формула структуры?

У любой формулы структуры, есть набор свойств, определяемых в соответствующем окне (рис. 3). Данное окно доступно только для формул структуры.
Окно свойст формулы структуры
Рис. 3. Окно свойств формулы структуры
Вы можете задать следующие свойства формулы структуры:
  • «Имя» (обязательно для заполнения) — название формулы (желательно, чтобы оно отражало назначение формулы);
  • «Отключена», «Обязательная» и группа «Не вычислять при» указывают, в каких ситуациях должна выполняться формула структуры. Рассмотрим вопрос использования таких флажков более подробно.
Статус «Отключена», доступен с версии 6
Если в свойствах формулы структуры установлен флажок «Отключена», то формула структуры не будет запускаться ни при каких обстоятельствах.
Статус «Обязательная»
По умолчанию формула пересчитывается для некоторой записи только в тех случаях, когда изменяются значения одного или нескольких полей (данной записи или связанных записей), участвующих в формуле справа от знака присвоения.
Если в свойствах формулы структуры установлен флажок «Обязательная», то изменения значений любых полей записи (в том числе и не участвующих в формуле) приводят к пересчёту формулы для этой записи.

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

  • Изменение значений полей, не участвующих в формуле, не приводит к пересчёту формулы в связанных записях. Таким образом, флажок «Обязательная формула» действует только для той базы, в которой описана формула.
Группа «Не вычислять при»
Причины, по которым значение некоторого поля может измениться, а формула подвергнуться пересчёту, можно разделить на две группы:
  • коррекция (ручная, массовая и пр.);
  • слияние (идентификация, в результате ввода, обмена).
Кроме того, формула считается для каждой новой записи, вне зависимости от способа её создания (ручной ввод, импорт файлов, формулы). Таким образом, можно сказать, что формулы будут пересчитываться в одном из трёх случаев: загрузка новых записей, слияние записей, коррекция записей.
Флажки группы «Не вычислять при»: «Загрузке новых», «Слиянии», «Коррекции», как следует из их названий, соответствуют трём видам действий, вызывающим пересчёт формул. Следовательно, если Вы устанавливаете для формулы один или несколько таких флажков, то при возникновении соответствующей ситуации формула пересчитываться не будет.

Последовательность запуска формул структуры

В различных режимах запуск формул структуры происходит в разные моменты времени. Эту особенность следует учитывать при создании алгоритмов автоматизации обработки информации.
Обмен данными между банками Создание новой записи Массовая коррекция
  • Сохранение записи
  • Построение индексов
  • Идентификация
  • Запуск формул структуры
  • Построение индексов
  • Идентификация
  • Построение индексов
  • Сохранение записи
  • Запуск формул структуры
  • Построение индексов
  • Изменение полей
  • Сохранение записи
  • Идентификация
  • Запуск формул структуры
  • Построение индексов

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

  • Если в результате выполнения формулы структуры было изменено значение одного из полей, входящих в любой идентифицирующий набор, то последовательность действий повторяется начиная с пункта «идентификация».
  • Повторное построение индексов запускается только в случае изменения проиндексированных полей.