Динамические колонки

Динамические колонки

Продукты SaveToDB поддерживают отображение, скрытие и именование колонок данных в зависимости от параметров запроса.

Предположим, есть таблица с данными по всем клиентам.

При этом, у каждого клиента свой специфический набор колонок, или, по крайнем мере, наименований колонок.

Вы можете настроить соответствие наборов колонок клиентам, чтобы показывать только актуальные колонки и скрывать другие, когда пользователь выберет нового клиента.

Например, таблица данных (s14.data) содержит колонки:

idclient_idid1id2id3string1string2int1int2float1float2
 

Таблица соответствия (s14.view_aliases) содержит следующие настройки:

client_idtable_namecolumn_namealiasis_active
1s14.datafloat1sales
1s14.dataid1state
1s14.datastring1product
2s14.datafloat1sales
2s14.datastring1region
2s14.datastring2manager

Для настройки динамических колонок, следует указать таблицу соответствия и тип DynamicColumns в таблице xls.handlers:

IDTABLE_SCHEMATABLE_NAMECOLUMN_NAMEEVENT_NAMEHANDLER_SCHEMAHANDLER_NAMEHANDLER_TYPEHANDLER_CODE
 s14dataDynamicColumnss14dynamic_columnsCODE<SQL code>

Ниже приведен SQL код:

SELECT
    column_name, alias, is_active
FROM
    s14.view_aliases
WHERE
    client_id = @client_id AND table_name = 's14.data'

В результате, пользователи будут видеть только колонки, специфичный для клиента.

Вместо SQL кода можно использовать обычные объекты базы данных. Следует просто возвращать данные для настройки колонок.

Обработчики динамических колонок должны возвращать три колонки:

  1. Имя исходной колонки
  2. Имя колонки для отображения
  3. Флаг видимости колонки

Флаг видимости может иметь следующие значения:

  • NULL, чтобы оставить колонку в ее текущем состоянии
  • 0, чтобы скрыть видимую колонку
  • 1, чтобы отобразить скрытую колонку