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

Работа со сложными полями в формулах

Работа со сложными полями отличается от работы с локальными переменными. Сложное поле может использоваться в формулах:
  • для перехода по связи;
  • для создания записей в связанных базах;
  • создания корневых связей;
  • для получения массива системных номеров связанных записей.
Для добавления поля в формулу необходимо дважды щёлкнуть левой кнопкой мыши по нему в окне диалога «Выбор поля» (рис. 1) или набрать имя поля вручную.
добавление поля в формулу
Рис. 1. Добавление поля в формулу
Обозначения сложных полей базы в формулах
Имена полей в формулах могут иметь следующий вид:
  • БА4 — сложное поле, связывающее базу А и базу Б;
    отображение сложного поля в формулах
    Рис. 2. Отображение сложного поля в формулах

Пример работы со сложными полями

Получение массива системных номеров связанных записей
Подобный приём можно использовать для определения количества связанных записей.
// Получение системных номеров связанных записей
@a := БА4_ББ; // в переменную @a будет записан массив системных номеров связанных записей
@n := VALCOUNT(@a) // в переменную @n будет записано количество связанных записей
Обработка связанных записей в цикле при помощи функции LOOP()
Следует помнить, что функция LOOP() является циклом, т. е. при вызове этой функции будут обработаны все связанные записи. Обработка будет происходить по возрастанию системных номеров.
// получение значения поля связанной записи
@p_a1 := БА1; // переменной p_a1 присвоено значение поля БА1 (База А)
LOOP(БА4_ББ,
	@p_b2 (-1) := ББ2; // в массив p_b2 добавлен новый элемент со значением поля ББ2 (База Б)
);

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

  • Так как функция LOOP() — это цикл обработки связанных записей, накапливать значения следует при помощи массива (в примере это переменная @p_b2).
Создание связанной записи, при помощи функции NEW()
Следует отметить, что функция NEW() после выполнения возвращает системный номер созданной записи. Возвращаемое значение необходимо присвоить переменной.
// Создание новой связанной записи
@sn_new := NEW( БА4_ББ ); // В базе ББ создана новая связанная запись
// Системный номер новой записи присвоен переменной @sn_new

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

  • Системный номер связанной записи (переменная @sn_new) необходим для последующего обращения к записи в связанной базе.
Другие функции для работы со сложными полями, Вы можете найти в документации по языку формул в разделе «Функции для работы с записями баз данных».