LinkedFieldValue


Членство

FORM_ZONE

Характеристика

Доступен только в выражениях полей окон

Синтаксис

PROCEDURE LinkedFieldValue(LinkPath: STRING[]): ANYTYPE;

Описание

Метод возвращает значение поля таблицы БД, являющейся справочником или историческим справочником к зоне или мастеру зоны. Строковый параметр LinkPath задает путь от зоны до целевой таблицы БД, имя поля в этой таблице, индекс для массивового поля (необязательно). Если метод не сможет разобрать переданный путь, будет выброшено исключение.

Ниже приведен формальный синтаксис пути к полю.

ИмяСвязи1 { "->" ИмяСвязиN } "." ИмяПоля [ "["  ИндексПоля "]" ]

В пути используются имена связей таблиц БД, назначаемые процедурой CREATE_LINK при создании связи. Поскольку CREATE_LINK создает только справочные связи, имена для обратных связей назначаются автоматически по принципу ИмяТаблицы@ИмяСправочнойСвязи. Начиная с версии 14.134.070 в качестве первой связи пути можно использовать справочную связь зоны.

Метод предъявляет следующие требования к зоне и пути.

  1. Путь должен начинаться от мастера зоны или от справочной связи зоны. Если первая связь в пути не является справочной связью зоны, должна быть определена мастер-таблица зоны, иначе будет выброшено исключение 266.
  2. Путь должен быть непрерывным. Если связь N приводит в таблицу T, связь N+1 должна быть связью таблицы T. При несоблюдении данных условий будет выброшено исключение 814.
  3. В пути должна быть хотя бы одна связь, иначе будет выброшено исключение 19.
  4. Путь должен определять позицию в целевой таблице, т.е. все связи пути должны быть справочными или историческими. Иначе будет выброшено исключение 816.
  5. Путь должен оканчиваться полем таблицы, в которую привела последняя связь, иначе будет выброшено исключение 19 (если имени поля нет в пути) или исключение 815 (если в конечной таблице нет такого поля).
  6. Индекс может быть указан только для массивового поля (исключение 817) и не должен выходить за границы массива (исключение 12).

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

Пример

В зоне с мастером RWayJ

SELF.Zone.LinkedFieldValue("RWayS->Exit.Exit")

SELF.Zone.LinkedFieldValue("Trip->Exit.Exit")