Информационная панель – это структура, отображающая перечень визуальных элементов.
Панель описывается xml-файлом, расположенным в папке userdata/datapanelstorage.
На информационной панели могут быть одна или более вкладок с различным содержимым. Вкладка может содержать один или несколько элементов, определяемых следующими типами:
-
grid – таблица (см. п. 4)
-
webtext – произвольный html-текст (см. п. 5);
-
xforms – элемент для ввода данных с помощью XForms (см. п. 6).
Примерный вид xml-файла, описывающего информационную панель представлен ниже.
<?xml version="1.0" encoding="UTF-8"?> <datapanel> <tab id="1" name="Сотрудники и оргструктура"> <element id="10" type="xforms" template="orgFilter.xml" proc="orgFilter"> <proc id="proc1" name="orgFilterSave" type="SAVE"/> </element> <element id="20" type="webtext" proc="orgButtons"/> <element id="30" type="grid" proc="orgGrid"> <related id="10"/> </element> <element id="40" type="xforms" template="orgCard.xml" proc="orgCard" neverShowInPanel="true"> <related id="30"/> <proc id="proc2" name="orgCardSave" type="SAVE"/> </element> <element id="120" type="webtext" proc="employeesButtons" hideOnLoad="true"> <related id="130"/> </element> <element id="130" type="grid" proc="employeesGrid" hideOnLoad="true"> <related id="30"/> </element> <element id="140" type="xforms" template="employeesCard.xml" proc="employeesCard" neverShowInPanel="true"> <related id="30"/> <related id="130"/> <proc id="proc3" name="employeesCardSave" type="SAVE"/> </element> </tab> </datapanel>
Данный xml-файл имеет многоуровневую древовидную структуру:
-
datapanel – корневой элемент;
-
tab – вкладка;
-
element – уровень конкретных элементов панели. Каждый элемент в свою очередь может содержать:
-
proc – дополнительные процедуры (ССЫЛКА НА РАЗДЕЛ);
-
related – ссылки на другие элементы (ССЫЛКА НА РАЗДЕЛ).
Вкладка (tab) может иметь следующие атрибуты:
-
@id – уникальный внутри панели идентификатор;
-
@name – наименование вкладки для отображения;
Элементы содержимого вкладки (element) имеют следующие атрибуты:
-
@id – уникальный внутри панели идентификатор;
-
@type – тип элемента, принимающий одно из следующих значений: grid, webtext или xforms;
-
@proc – функция, загружающая данные в элемент.
-
@hideOnLoad – необязательный атрибут. Если hideOnLoad = «true», то при загрузке вкладки элемент не отображается, и требуется специальное событие для его отображения (ссылка на раздел). Элемент с таким атрибутом называется зависимым, а элемент, от которого он зависит – главным. Главный элемент должен находиться на той же вкладке, что и зависимый. Зависимость означает, что данный элемент должен заполняться после элемента, от которого он зависит, а также то, что его содержимое может зависеть от текущего контекста главного элемента. Фактически, данная опция служит для оптимизации быстродействия.
-
@neverShowInPanel – необязательный атрибут. Если neverShowInPanel = true, то элемент никогда не будет отображен внутри вкладки панели, а будет отображаться в модальном окне. Следует отличать его от атрибута hideOnLoad, который нужен для оптимизации загрузки зависимых элементов.
Для элементов типа webtext может быть задан необязательный атрибут @transform, который указывает на xslt-преобразование, которое необходимо применить к полученному из процедуры xml-коду. Значение атрибута transform – путь к файлу преобразования *.xsl (обычно располагаются в userdata/xslttransforms).