Формирование уровней отчета «на лету»
При проектировании больших отчетов с глубоким уровнем вложенности формировать данные всех уровней сразу очень долго и ресурсозатратно. Для таких случаев предусмотрены обработчики событий вход и выход, которые формируют данные и заполняют уровень отчета в момент перехода на уровень.
У этих обработчиков есть ряд особенностей, связанных с текущим и видимым уровнями. При вызове обработчика вход осуществляется переход на нижний уровень, то есть происходит смена текущего уровня, то есть теперь текущий уровень - это уровень, на который осуществлен переход. Но уровень, на который осуществлен переход не является видимым, видимым уровнем будет являться уровень, с которого осуществлялся переход.
Пример
Пример иллюстрирует функцию обработчика "вход" для формирования и заполнения отчета при переходе на уровень.
... ПОДМЕНА вход = {Формирование_дочернего_уровня}; ФУНКЦИЯ Формирование_дочернего_уровня ЕСЛИ КОЛ_СТРОК < 10 ТО ЦИКЛ ДЛЯ (стр = 1, 10) ДОБАВИТЬ_СТРОКУ(СТР(стр)) ЦИКЛ ДЛЯ (столб = 1, КОЛ_СТОЛБЦОВ) ЯЧЕЙКА(СТР(столб), стр, "столбец" + СТР(столб)) столб++ КОНЕЦ_ЦИКЛА стр++ КОНЕЦ_ЦИКЛА КОНЕЦ_ЕСЛИ КОНЕЦ_ФУНКЦИИ ...