В качестве источника данных для отчета используется перекрестный запрос OutTable. В отчете производится группировка данных по строкам – по NameCategory и по столбцам – по полю NameArea таблицы Customers (группировка по регионам заказчиков). Форма ввода данных (заказов) – Ordering. Форма открытия, просмотра и создания отчета – ViewReport. Предлагаемые методы создания отчета с переменным количеством полей , в частности http://nsa.chat.ru/UserInterfase_BuildVFR.html, ftp://guestnsa:guest@realty.ru/dda/NSA/zip/NSA_BVFR_ForMDE.zip реализуют два способа создания: 1. Создание заготовки отчета и в дальнейшем копирование необходимых полей нужное число раз. 2. Создание максимального количество полей и в дальнейшем отображение только необходимых. Приведенный пример отличается от названных тем, что: 1. Отчет создается в отдельном файле, что позволяет реализовать работу из файла mde 2. Проводится группировка по столбцам 3. Проводится группировка по строкам с необходимым форматированием области данных (в частности раскрашивание категорий) 4. Созданный отчет в своем первоначальном виде НЕ СОХРАНЯЕТСЯ Отчеты Access полноценно сохранить (вид) можно только с помощью утилиты Snapview.exe (просмотр снимков), входящей в состав Access2000. После создания отчета создается снимок отчета, который и хранится в базе данных в ТАБЛИЦЕ. Предполагаемые плюсы этого подхода : отчет уже не зависит отданных, а является фиксированным на момент создания, соответственно есть возможность переправлять отчеты и при потере данных отчеты сохраняются в своем виде, реализуется режим предварительного просмотра (как при открытии документов Word) Краткое описание работы 1. При необходимости создается отдельный файл mdb 2. Создается модуль с процедурой форматирования области данных. Размещение процедуры в отдельном модуле обусловлено тем, что при создании модуля отчета активизируется окно VB 3. В этом файле из БД программным путем создается отчет, при этом число полей зависит от выполнения перекрестного запроса 4. С целью нанесения вертикальных надписей наименований столбцов, созданный отчет вставляется как подчиненный в основной, вновь созданный отчет, где и создаются посредством Excel вертикальные надписи. В связи с этим возможно ограничение : высота области данных основного отчета должна быть несколько больше полной (когда отчет открыт) высоты подчиненного, что накладывает некоторые ограничения при большом количестве записей. 5. Создается снимок отчета, который помещается как OLE-объект в таблицу 6. Созданный отчет в дополнительном файле и его таблица данных удаляются Замечания по таблицам Таблица AuxiliaryTable – здесь хранится текст модуля отчета (помещение в таблицу и выборку из таблицы модуля можно сделать с помощью процедур модуля «Вспомогательный» Таблица ListReport – имена отчетов и комментарии Таблица ViewReport – имена отчетов и сами отчеты (подобное разбиение сделано для организации без лишних затрат полос прокрутки в окне предварительного просмотра ) Таблица Area – коды регионов России (действующие) ( в форме ViewReport реализовано перемещение границы список-вид)