В статье “QlikView Иерархия Hierarchy() и HierarchyBelongsTo(). Пример, разбор как работает” будет разобраны примеры работы с функциями иерархических структур. Раскрою свои наработки по работе с иерархией в QlikView.
Contents
- 1 Разберем пример работы функций Hierarchy() и HierarchyBelongsTo() с иерархией в QlikView 12
- 1.1 Пример работы с Hierarchy()
- 1.2 Пример работы с HierarchyBelongsTo()
- 1.3 Отображение иерархии в таблице Pivot
- 1.4 Отображение иерархии в ListBox
- 1.5 Комбинация функций Hierarchy() и HierarchyBelongsTo() для Отображения иерархии в ListBox
- 1.6 Литература по функциям QlikView для работы с иерархиями Hierarchy() и HierarchyBelongsTo()
Разберем пример работы функций Hierarchy() и HierarchyBelongsTo() с иерархией в QlikView 12
Пусть у нас есть иерархия:
Тестовые данные для демонстрации работы с функциями Hierarchy() и HierarchyBelongsTo():
Документ с исходными данными, с которыми мы будем работать:
Пример работы с Hierarchy()
1 2 3 4 5 6 7 8 |
[Иерархия Hierarchy]: Hierarchy([Элемент ID], [Элемент Родитель ID], [Имя Элемента], ParentName, [Имя Элемента], PathName, '\', Depth) LOAD [Элемент ID], [Элемент Родитель ID], [Имя Элемента] FROM [C:\Users\Иван\Desktop\Иерархия\InputData_Hierarchy_QlikView.xlsx] (ooxml, embedded labels, table is [Исходные данные]); |
Пример работы с HierarchyBelongsTo()
1 2 3 4 5 6 7 8 |
[Иерархия HierarchyBelongsTo]: HierarchyBelongsTo ([Элемент ID], [Элемент Родитель ID], [Имя Элемента], AncestorID, AncestorName, DepthDiff) LOAD [Элемент ID], [Элемент Родитель ID], [Имя Элемента] FROM [C:\Users\Иван\Desktop\Иерархия\InputData_Hierarchy_QlikView.xlsx] (ooxml, embedded labels, table is [Исходные данные]); |
Полный результат выглядит так:
Элемент ID | AncestorID | Имя Элемента | AncestorName | DepthDiff |
E00001 | E00001 | Главная категория | Главная категория | 0 |
E00002 | E00001 | Подкатегория 1 | Главная категория | 1 |
E00003 | E00001 | Подкатегория 2 | Главная категория | 1 |
E00004 | E00001 | Подкатегория 3 | Главная категория | 1 |
E00009 | E00001 | Конечный элемент 4 | Главная категория | 2 |
E00010 | E00001 | Конечный элемент 5 | Главная категория | 2 |
E00019 | E00001 | Конечный элемент 11 | Главная категория | 2 |
E00005 | E00001 | Подкатегория 1.1 | Главная категория | 2 |
E00011 | E00001 | Подкатегория 2.1 | Главная категория | 2 |
E00014 | E00001 | Подкатегория 3.1 | Главная категория | 2 |
E00006 | E00001 | Конечный элемент 1 | Главная категория | 3 |
E00007 | E00001 | Конечный элемент 2 | Главная категория | 3 |
E00008 | E00001 | Конечный элемент 3 | Главная категория | 3 |
E00012 | E00001 | Конечный элемент 6 | Главная категория | 3 |
E00013 | E00001 | Конечный элемент 7 | Главная категория | 3 |
E00016 | E00001 | Конечный элемент 8 | Главная категория | 3 |
E00015 | E00001 | Подкатегория 3.1.1 | Главная категория | 3 |
E00017 | E00001 | Конечный элемент 9 | Главная категория | 4 |
E00018 | E00001 | Конечный элемент 10 | Главная категория | 4 |
E00002 | E00002 | Подкатегория 1 | Подкатегория 1 | 0 |
E00009 | E00002 | Конечный элемент 4 | Подкатегория 1 | 1 |
E00010 | E00002 | Конечный элемент 5 | Подкатегория 1 | 1 |
E00005 | E00002 | Подкатегория 1.1 | Подкатегория 1 | 1 |
E00006 | E00002 | Конечный элемент 1 | Подкатегория 1 | 2 |
E00007 | E00002 | Конечный элемент 2 | Подкатегория 1 | 2 |
E00008 | E00002 | Конечный элемент 3 | Подкатегория 1 | 2 |
E00003 | E00003 | Подкатегория 2 | Подкатегория 2 | 0 |
E00011 | E00003 | Подкатегория 2.1 | Подкатегория 2 | 1 |
E00012 | E00003 | Конечный элемент 6 | Подкатегория 2 | 2 |
E00013 | E00003 | Конечный элемент 7 | Подкатегория 2 | 2 |
E00004 | E00004 | Подкатегория 3 | Подкатегория 3 | 0 |
E00019 | E00004 | Конечный элемент 11 | Подкатегория 3 | 1 |
E00014 | E00004 | Подкатегория 3.1 | Подкатегория 3 | 1 |
E00016 | E00004 | Конечный элемент 8 | Подкатегория 3 | 2 |
E00015 | E00004 | Подкатегория 3.1.1 | Подкатегория 3 | 2 |
E00017 | E00004 | Конечный элемент 9 | Подкатегория 3 | 3 |
E00018 | E00004 | Конечный элемент 10 | Подкатегория 3 | 3 |
E00005 | E00005 | Подкатегория 1.1 | Подкатегория 1.1 | 0 |
E00006 | E00005 | Конечный элемент 1 | Подкатегория 1.1 | 1 |
E00007 | E00005 | Конечный элемент 2 | Подкатегория 1.1 | 1 |
E00008 | E00005 | Конечный элемент 3 | Подкатегория 1.1 | 1 |
E00006 | E00006 | Конечный элемент 1 | Конечный элемент 1 | 0 |
E00007 | E00007 | Конечный элемент 2 | Конечный элемент 2 | 0 |
E00008 | E00008 | Конечный элемент 3 | Конечный элемент 3 | 0 |
E00009 | E00009 | Конечный элемент 4 | Конечный элемент 4 | 0 |
E00010 | E00010 | Конечный элемент 5 | Конечный элемент 5 | 0 |
E00011 | E00011 | Подкатегория 2.1 | Подкатегория 2.1 | 0 |
E00012 | E00011 | Конечный элемент 6 | Подкатегория 2.1 | 1 |
E00013 | E00011 | Конечный элемент 7 | Подкатегория 2.1 | 1 |
E00012 | E00012 | Конечный элемент 6 | Конечный элемент 6 | 0 |
E00013 | E00013 | Конечный элемент 7 | Конечный элемент 7 | 0 |
E00014 | E00014 | Подкатегория 3.1 | Подкатегория 3.1 | 0 |
E00016 | E00014 | Конечный элемент 8 | Подкатегория 3.1 | 1 |
E00015 | E00014 | Подкатегория 3.1.1 | Подкатегория 3.1 | 1 |
E00017 | E00014 | Конечный элемент 9 | Подкатегория 3.1 | 2 |
E00018 | E00014 | Конечный элемент 10 | Подкатегория 3.1 | 2 |
E00015 | E00015 | Подкатегория 3.1.1 | Подкатегория 3.1.1 | 0 |
E00017 | E00015 | Конечный элемент 9 | Подкатегория 3.1.1 | 1 |
E00018 | E00015 | Конечный элемент 10 | Подкатегория 3.1.1 | 1 |
E00016 | E00016 | Конечный элемент 8 | Конечный элемент 8 | 0 |
E00017 | E00017 | Конечный элемент 9 | Конечный элемент 9 | 0 |
E00018 | E00018 | Конечный элемент 10 | Конечный элемент 10 | 0 |
E00019 | E00019 | Конечный элемент 11 | Конечный элемент 11 | 0 |
Отображение иерархии в таблице Pivot
…
Отображение иерархии в ListBox
Для того, чтобы иерархия отображалась в ListBox в виде дерева:
Необходимо в листбоксе выбрать поле PathName и отметить галочкой “Show as TreeView”:
Для того, чтобы при выборе родительского элемента выбирались также и дочерние элементы (подчиненные элементы), необходимо применить комбинацию функций Hierarchy() и HierarchyBelongsTo(). Ниже будет приведен код загрузки иерархии и пример в QlikView 12.
Комбинация функций Hierarchy() и HierarchyBelongsTo() для Отображения иерархии в ListBox
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
[Иерархия Hierarchy]: Hierarchy([Элемент ID], [Элемент Родитель ID], [Имя Элемента], ParentName, [Имя Элемента], PathName, '\', Depth) LOAD [Элемент ID], [Элемент Родитель ID], [Имя Элемента] FROM [F:\#QlikProject\Иерархия тест\InputData_Hierarchy_QlikView.xlsx] (ooxml, embedded labels, table is [Исходные данные]); [Иерархия HierarchyBelongsTo]: HierarchyBelongsTo ([Элемент ID], [Элемент Родитель ID], [Имя Элемента], AncestorID, AncestorName, DepthDiff) LOAD [Элемент ID], [Элемент Родитель ID], [Имя Элемента] FROM [F:\#QlikProject\Иерархия тест\InputData_Hierarchy_QlikView.xlsx] (ooxml, embedded labels, table is [Исходные данные]); DROP Fields [Имя Элемента], AncestorName From [Иерархия HierarchyBelongsTo]; Left Join([Иерархия HierarchyBelongsTo]) LOAD [Элемент ID] as AncestorID, PathName Resident [Иерархия Hierarchy]; DROP Fields PathName,Depth From [Иерархия Hierarchy]; |
Скачать пример в QlikView 12 (архив) >>>