Предположим, что у нас есть отчёт в виде Z-разработки.
Кэширование данных отчёта нам может пригодиться в нескольких случаях, например:
- Отчёт часто требуется, но долго выполняется; при этом от результатов особой оперативности не требуется;
- Результат выполнения данного отчёта требуется отразить в другом отчёте (сводном); но при этом рассчитывать в сводном отчёте множество под-отчётов не хочется;
Для начала допустим, что:
- отчёт имеет простые и стабильные параметры;
- процедуры сбора и показа данных строго разделены;
- данные отчёта находятся в одной внутренней таблице.
Ну например, отчёт по просмотру таблицы T001Z:
Первым делом надо создать таблицу, в которой будут находиться кэшированные результаты. Можно использовать такой подход:
- Имя таблицы = имя программы + “_DATA”
- Столбцы таблицы = мандант + все параметры + столбцы внутренней таблицы
- Ключи таблицы = мандант + все параметры + нужные поля таблицы данных
Затем добавляем “галочку” на селективный экран:
Затем добавляются подпрограммы, которые делают чтение и запись этой таблицы. Текст совсем не сложный: SELECT и DELETE+INSERT соответственно.
Ну и последний этап – совместить всё это в главной программе:
Вот и всё.
Конечно, этот метод имеет организационные и технические нюансы, но с ними можно жить.
Отложил тексты в виде слинков — тут.