Кэширование данных отчёта – тривиальная реализация

Предположим, что у нас есть отчёт в виде Z-разработки.

Кэширование данных отчёта нам может пригодиться в нескольких случаях, например:

  1. Отчёт часто требуется, но долго выполняется; при этом от результатов особой оперативности не требуется;
  2. Результат выполнения данного отчёта требуется отразить в другом отчёте (сводном); но при этом рассчитывать в сводном отчёте множество под-отчётов не хочется;

Для начала допустим, что:

  • отчёт имеет простые и стабильные параметры;
  • процедуры сбора и показа данных строго разделены;
  • данные отчёта находятся в одной внутренней таблице.

Ну например, отчёт по просмотру таблицы T001Z:

Тривиальный отчёт

Первым делом надо создать таблицу, в которой будут находиться кэшированные результаты. Можно использовать такой подход:

  • Имя таблицы = имя программы + “_DATA”
  • Столбцы таблицы = мандант + все параметры + столбцы внутренней таблицы
  • Ключи таблицы = мандант + все параметры + нужные поля таблицы данных

Таблица, хранящая данный отчёт

Затем добавляем “галочку” на селективный экран:

Добавка на селективный экран

Затем добавляются подпрограммы, которые делают чтение и запись этой таблицы. Текст совсем не сложный: SELECT и DELETE+INSERT соответственно.

Ну и последний этап – совместить всё это в главной программе:

Изменённый текст главной программы

Вот и всё.

Конечно, этот метод имеет организационные и технические нюансы, но с ними можно жить.

Отложил тексты в виде слинков — тут.

Добавить комментарий

Ваш адрес email не будет опубликован.