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