Руководство разработчика

Формирование уровней отчета «на лету»

При проектировании больших отчетов с глубоким уровнем вложенности формировать данные всех уровней сразу очень долго и ресурсозатратно. Для таких случаев предусмотрены обработчики событий вход и выход, которые формируют данные и заполняют уровень отчета в момент перехода на уровень.

У этих обработчиков есть ряд особенностей, связанных с текущим и видимым уровнями. При вызове обработчика вход осуществляется переход на нижний уровень, то есть происходит смена текущего уровня, то есть теперь текущий уровень - это уровень, на который осуществлен переход. Но уровень, на который осуществлен переход не является видимым, видимым уровнем будет являться уровень, с которого осуществлялся переход.

Пример

Пример иллюстрирует функцию обработчика "вход" для формирования и заполнения отчета при переходе на уровень.

  ...
  ПОДМЕНА вход = {Формирование_дочернего_уровня};
  ФУНКЦИЯ Формирование_дочернего_уровня
    ЕСЛИ КОЛ_СТРОК < 10 ТО
      ЦИКЛ ДЛЯ (стр = 1, 10)
        ДОБАВИТЬ_СТРОКУ(СТР(стр))
        ЦИКЛ ДЛЯ (столб = 1, КОЛ_СТОЛБЦОВ) 
          ЯЧЕЙКА(СТР(столб), стр, "столбец" + СТР(столб))
          столб++
        КОНЕЦ_ЦИКЛА 
        стр++
      КОНЕЦ_ЦИКЛА
    КОНЕЦ_ЕСЛИ
  КОНЕЦ_ФУНКЦИИ
  ...

См. также: