Метаданные (Metadata)

Метаданные можно условно считать как набор "переменных" привязанных к графическому элементу. Эти "переменные" можно добавлять или удалять только в режиме разработки. На рисунке показана вкладка "Метаданные" графического элемента "Набор образов". В колонке "имя" задается имя "переменной" а в значение - ее значение при старте страницы, на котором этот элемент находится. 

В режиме исполнения метаданные можно считывать или записывать. Для этого можно воспользоваться рядом функций. Доступ к метаданным конкретного элемента обеспечивается через его точку анимации (AN - Animation Number) - уникальный номер (аля дескриптор) элемента в пределах страницы. Узнать AN (или изменить, если включена соотв. опция в настройках ) можно во вкладке "Доступ".
Ниже пример пользовательской Cicode функции для записи значения в "переменную" с использованием функции DspAnSetMetadata:
FUNCTION setVindicator(INT ANM, STRING TagName, REAL AH, REAL AL)
    REAL TagMin= StrToReal(TagInfo (TagName, 4));
    REAL TagMax= StrToReal(TagInfo (TagName, 5));
    REAL TagScale = TagMax-TagMin;
    //записать в переменную "H1" элемента с AN=ANM, значение=(AH-AL)/TagScale
    DspAnSetMetadata (ANM, "H1", (AH-AL)/TagScale);
END

Следующий вызов считывает значение с "переменной" H11 элемента с AN=1234.  
DspAnGetMetadata(1234, "H11")
Примеры использования метаданных также даны в справочной системе Citect/VCitect. Я их использую как внутренние переменные джинов. Недостаток такого подхода - в указании AN с содержанием метаданных. Однако узнать его не так сложно даже в элементе экземпляра джина. Для этого достаточно кликнуть с удержанием "CTRL" по нужному элементу.
  
 
Comments