Платформа 3V/Отчет/1. Настроить строки/1.4. Дополнительные настройки/Алгоритм поиска родителя при построении строк по координатам: различия между версиями
Перейти к навигации
Перейти к поиску
м (A.neklyudova переименовал страницу Платформа 3V/Отчет/Источники в строках/Алгоритм поиска родителя при построении элементов боковика по координатам в Платформа 3V/Отчет/1. Настроить строки/1.4. Дополнительные настрой/Алгоритм поиска родителя при построении строк по координатам: Переименовано в связи с новой структурой) |
м (A.neklyudova переименовал страницу Платформа 3V/Отчет/1. Настроить строки/1.4. Дополнительные настрой/Алгоритм поиска родителя при построении строк по координатам в Платформа 3V/Отчет/1. Настроить строки/1.4. Дополнительные настройки/Алгоритм поиска родителя при построении строк по координатам: Переименовано в связи с новой структурой) |
Текущая версия на 09:39, 1 июля 2021
- Обходим координату с последнего измерения.
Например, для координаты [1, 2, 3] обход будет с элемента последнего измерения 3. - Ищем для элемента измерения родителя.
- Если родитель есть, то подставляем его в изначальную координату и ищем по ней элемент уже добавленный в боковик.
Например, изначальная координата [1, 2, 3] для элемента последнего измерения 3 есть родитель 2, значит в боковике будет искаться элемент по координате [1, 2, 2]. - Если родителя нет, то значит это измерение не нужно учитывать при поиске родителя, а родителем будет первый элемент найденный по частичной координате.
Например, изначальная координата [1, 2, 3] для элемента последнего измерения 3 нет родителя, значит в боковике будет искаться первый элемент координата которого соответствует частичной координате [1, 2, *]. (где * любой идентификатор).
- Если родитель есть, то подставляем его в изначальную координату и ищем по ней элемент уже добавленный в боковик.
- Повторяем пункт 2 для каждого измерения координаты начиная с последнего, до тех пор, пока не будет найден родитель, если в итоге родитель не найден, то элемент будет добавлен в корень.
- Частичная координата после второй итерации будет выглядеть так [1, *, *].
Пример
Справочник А
Идентификатор | Наименование | Родитель |
---|---|---|
1 | Всего | - |
2 | Элемент А №1 | 1 |
3 | Элемент А №2 | 1 |
Справочник Б
Идентификатор | Наименование | Родитель |
---|---|---|
1 | Элемент Б №1 | - |
2 | Элемент Б №2 | 1 |
3 | Элемент Б №3 | - |
В боковике отчёта справочник А и справочник Б.
Уже отстроенные элементы боковика.
Координата элемента | Координата родителя |
---|---|
[1,1] | - |
[1,2] | [1,1] |
[1,3] | [1,1] |
[2,1] | [1,1] |
- Нужно построить элемент с координатой [2, 2].
В справочнике Б родитель для элемента 2 является элемент 1, значит формируем координату [2, 1] и находим по ней элемент боковика, который будет родителем для [2,2]. - Нужно построить элемент с координатой [3, 1].
В справочнике Б для элемента 1 нет родителя, значит формируем частичную координату [3, *] и не находим по ней ни одного подходящего элемента. Делаем тоже самое для справочника А, в справочника А для элемента 3 родителем является элемент 1, значит заменяем элемент в частичной координате и получаем частичную координату [1, *] и находим по ней первый элемент [1,1], который будет родителем для [3, 1].