В каждом приложении QlikView у нас есть стандартный набор элементов — выражения, набор вкладок, настройка представления объектов и переменные. Хочется дать универсальный инструмент по управлению изменения в приложении QlikView, такой, что при изменении части выражения, универсально модифицировались связанные объекты и элементы.
Управление изменениями в QlikView: Постановка и решения задачи
Итак, перед нами стоит задача – придумать универсальный метод управления изменениями в выражениях и представлении объектов QlikView. Для этого есть простой способ – определить выражения и цвета уже вне приложения QlikView, что позволит управлять изменениями в приложении более удобным образом и использовать модификации выражения несколько раз внутри приложения.
QlikView: управление изменения в приложении через Excel
Итак, для описания данного подхода к управлению изменениями в QlikView, опишу инструкцию по шагам.
- Сначала создам файл MS Excel с несколькими листами (назвав его GUI_PARAMS.xlsx). Этот файл я сохраню в ту же папку, что и приложение QlikView.
Немного о структуре книги Excel: на первом листе хранятся названия листов внутри файла Excel (это своего рода содержание книги), которые будут переноситься в приложение, поэтому этот лист будет называться vSHEETS.
Так, у нас получится три листа vCOLOR, vLABEL и vVARIABLES_CALC, которые будут обрабатываться в процессе управления изменениями в нашем приложении QlikView.
- В приложении QlikView создаю листы с такими же названиями, что в файле Excel.
3. Перейдем на последующие листы книги Excel. Каждый лист содержит две колонки – с переменной и заданным значением.
4. Идем далее: в скрипт загрузки QlikView пропишем код для vSHEETS.
1234567891011121314151617181920212223PARAM_TMP:LOAD vSHEET, EntryFROM GUI_Params.xlsx(ooxml, embedded labels, table is vSHEETS)where not isnull(vSHEET);FOR I = 0 TO NoOfRows('PARAM_TMP') -1vSHEET = PEEK('vSHEET',$(I),'PARAM_TMP');LET $(vSHEET) = PEEK('Entry',$(I),'PARAM_TMP');$($(vSHEET)):LOAD $($(vSHEET)) ,EntryFROM GUI_Params.xlsx(ooxml, embedded labels, table is $($(vSHEET)));FOR I_2 = 0 TO NoOfRows('$($(vSHEET))')vSHEET_2 = PEEK('$($(vSHEET))',$(I_2),'$($(vSHEET))');LET $(vSHEET_2) = PEEK('Entry',$(I_2),'$($(vSHEET))');NEXT I_2DROP TABLES $($(vSHEET));NEXT IDROP TABLES PARAM_TMP;Когда вы запустите скрипт, то увидите новые параметры в обзоре переменных (во вкладке настроек).
На этом все на сегодня. Отличных вам разработок с QlikView!
Свежие комментарии