Построение перекрестной таблицы-шахматки (универсальная функция)
Алгоритм: из источника создается промежуточная выборка по заданному условию, в которой методом разворачивания по Информационным полям и полю Группировки производится слияние (группировка) записей с числовой обработкой группы "слитых" строк по Информационному полю на основе выражения (по умолчанию - это SUM). На основе промежуточной отсортированной выборки строится Кросс-таблица путем добавления и заполнения в ней сводных числовых колонок (разворачиванием) по значению Группирующего поля и добавления строк по значению составного ключа нформационных полей.
Функцию можно использовать автономно или в составе Генератора Отчетов DBRAD32 - в качестве предварительно создаваемой таблицы для Кросс-отчета, который "умеет" выводить в Word и форматировать переменное число колонок (т.н. блок числовых колонок), перенося по полосам колонки, не помещающиеся на страницу. Из FLD-файла генератор автоматически загружает заголовки блока числовых колонок, вычисленные в функции. В результате клиент получает законченный отчет для любой выборки из источника данных. Пример такого Кросс-отчета см. на www.dbrad32.narod.ru ("Автономный генератор отчетов"). Функцию построения кросс-таблицы можно вызывать в методе Load Кросс-шаблона или в тексте Макро-шаблона (входящего в составной отчет Макро+Кросс ).
Для демонстрации работы функции распакуйте архив и запустите файл cross.prg.
Выражаю благодарность Юрию Ч. за окончательное тестирование функции.
Вложенные файлы
# |
Название |
Тип файла |
Размер |
---|---|---|---|
1 | 190cross | .zip | 15,95 КБ |