Генератор отчетов: ReportEngine
- Подробности
- Дата публикации
- Автор: AnDS
- Просмотров: 11453
Мощная система формирования отчетов
Программа позволяет формировать отчеты на основе шаблонов
(Определенным образом подготовленных файлов Word или Excel).
Основные достоинства:
- Использование шаблонов (Word или Excel-файлов) для печати отчетов
- Возможность использования разных источников данных:
- TPS-файла (Clarion) и
- текстового файла (так называемый формат Basic - поля разделены запятыми)
- Настройки предварительного просмотра, сохранения отчета в файл, печати прямо на принтер
- Возможность использования интерфейса для настройки программы (добавление новых шаблонов и т.д.)
- Возможность автоматического сохранения каждого файла отчета после каждого формирования
- Полностью управляется из командной строки
- Сохранение настроек в ini-файле
- Возможность использования генератора отчетов в своих проектах
Генератор отчетов: ReportEngine, использование.
Использование:
REngine.exe [ ключи ], где ключи могут быть:
REngine.exe [ ключи ], где ключи могут быть:
- [ /Help ] - справка
- [ /Preview ] - Предварительный просмотр отчета
- [ /Close ] - Закрывать Excel после печати отчета
- [ /SaveFile ] - Сохранять отчет в файл
- [ /PrintOut ] - Печатать сразу на принтер
- [ /RepID=NNN ] - Вызвать отчет с номером NNN
- [ /RepType=TTT ] - Использовать тип отчета с номером TTT
- [ /Face=ИНТЕРФЕЙС ] - Вызвать интерфейс:
- [ /Face=Variables ] - Настройка переменных для отчетов
- [ /Face=Reports ] - Создание/Изменение отчетов
- [ /Face=Select ] - Выбор отчета и печать выбранного отчета
- [ /TXT[=имя файла] ] - Полный путь до файла с данными в текстовом формате
- Имя файла можно не указывать, тогда используется: C:\Temp\repdata.txt
- [ /TPS[=имя файла] ] - Полный путь до файла с данными в формате TPS
- Имя файла можно не указывать, тогда используется: C:\Temp\repdata.tps
- [ /TplName=имя файла ] - Имя файла, содержащего шаблон (.xls)
- [ /SaveTo=путь ] - Полный путь до директории, куда сохранять отчеты
- Если путь не указан, тогда используется директория: .\Reports\
Rep_Vars FILE,DRIVER('BASIC'),NAME('Template\Variable.cfg'),
PRE(RV),BINDABLE,CREATE,THREAD
Record RECORD,PRE()
Type STRING(20)
Name STRING(40)
Formats STRING(80)
END
END
Rep_Data FILE,DRIVER('TOPSPEED'),RECLAIM,NAME(GLO:FileRep_Data),
PRE(RPD),BINDABLE,CREATE,THREAD
kl_ID KEY(RPD:ID),NOCASE,OPT,PRIMARY
Record RECORD,PRE()
ID LONG
Type SHORT
Name STRING(40)
Value STRING(254)
END
END
Rep_Txt FILE,DRIVER('BASIC'),NAME(GLO:FileRep_TXT),
PRE(RPD1),BINDABLE,CREATE,THREAD
Record RECORD,PRE()
ID LONG
Type SHORT
Name STRING(40)
Value STRING(254)
END
END
Reports FILE,DRIVER('TOPSPEED'),RECLAIM,NAME('dat\reports.tps'),
PRE(REP),BINDABLE,CREATE,THREAD
kl_ID KEY(REP:ID),NOCASE,OPT,PRIMARY
kl_Name KEY(REP:Name),DUP,NOCASE
kl_TypeDoc_Name KEY(REP:TypeDoc,REP:Name),DUP,NOCASE
Record RECORD,PRE()
ID LONG
TypeDoc LONG
Name STRING(100)
Nam STRING(20)
Template STRING(80)
END
END
Описание шаблона:
Файл с шаблоном состоит из трех листов:
Первый лист пустой (на нем будет формироваться отчет).
Второй лист содержит описание переменных и деталей отчета:
Ячейка с координатами должны иметь имя, совпадающее с именем переменной.
Детали отчета имеют следующее описание:
Header - Заголовок отчета
Detail - Повторяющаяся деталь (Деталей может быть несколько,
тогда они называются Detail1, Detail2 и т.д.
Footer - "Подвал" отчета
Эти три переменные должны иметь значения вида: A1:M7
Следующие переменные привязаны к деталям и должны содержать высоту детали (в строках):
HeadSize, DetSize, FootSize
При наличии в отчете нескольких деталей вида Detail, должна быть описана переменная NumberOfDetails,
содержащая количество таких деталей, а также переменные Det1Size, Det2Size и т.д.
Переменные, использующиеся в деталях могут иметь любое имя.
Для упрощения их наименования, я обычно использую префиксы (h - Header, d - Detail, f - Footer)
Координаты переменных записываются в виде Y:X, т.е. номер строки и через двоеточие номер колонки.
Эти координаты отсчитываются от начала текущей детали.
Третий лист содержит собственно сам шаблон (оформление деталей -- форматы ячеек, выравнивание и т.п.)
Первый лист пустой (на нем будет формироваться отчет).
Второй лист содержит описание переменных и деталей отчета:
Ячейка с координатами должны иметь имя, совпадающее с именем переменной.
Детали отчета имеют следующее описание:
Header - Заголовок отчета
Detail - Повторяющаяся деталь (Деталей может быть несколько,
тогда они называются Detail1, Detail2 и т.д.
Footer - "Подвал" отчета
Эти три переменные должны иметь значения вида: A1:M7
Следующие переменные привязаны к деталям и должны содержать высоту детали (в строках):
HeadSize, DetSize, FootSize
При наличии в отчете нескольких деталей вида Detail, должна быть описана переменная NumberOfDetails,
содержащая количество таких деталей, а также переменные Det1Size, Det2Size и т.д.
Переменные, использующиеся в деталях могут иметь любое имя.
Для упрощения их наименования, я обычно использую префиксы (h - Header, d - Detail, f - Footer)
Координаты переменных записываются в виде Y:X, т.е. номер строки и через двоеточие номер колонки.
Эти координаты отсчитываются от начала текущей детали.
Третий лист содержит собственно сам шаблон (оформление деталей -- форматы ячеек, выравнивание и т.п.)
Описание файла, содержащего исходные данные для отчета:
Строка файла с исходными данными содержит четыре поля:
1. Номер по порядку
2. Код команды, выполняемой подсистемой печати:
0 - описание переменной, использующейся в шаблоне (имя переменной и ее формат)
-1 - печать заголовка отчета (Header)
-2 - печать "подвала" отчета (Footer)
-3,-4,-5 и т.д. - печать детали 1,2,3 и т.д.
1 - размещение значения переменной в заголовке
2 - размещение значения переменной в "подвале"
3,4,5 - размещение значения переменной в детали 1,2,3 и т.д.
255 - выполнить дополнительную команду (возможно дальнейшее расширение функциональности):
Значение третьего поля для этой команды:
fitallrows - выровнять по высоте все строки, начиная с первой
fitdetrows - выровнять по высоте все строки в детали
fitlastrow - выровнять по высоте последнюю строку
fitrows (fitrow) - выровнять по высоте указанные строки (в четвертом поле)
3. Имя переменной (или доп.команды для кода команды 255)
4. Значение (для кода команды 0 - формат)
Для правильного отображения отчета, сначала выполняем код 0 - описываем переменные,
затем печатаем деталь (-1 например), затем размещаем значения переменных (1 например),
печатаем новую деталь (-3), размещаем значения (3) и т.д. и т.п.
Файл Template\Variables.cfg содержит описание переменных и их форматов
для использования совместно с файлом reports.tps, в котором хранятся описания шаблонов.
При работе в командной строке файл Variables.cfg не используется.
1. Номер по порядку
2. Код команды, выполняемой подсистемой печати:
0 - описание переменной, использующейся в шаблоне (имя переменной и ее формат)
-1 - печать заголовка отчета (Header)
-2 - печать "подвала" отчета (Footer)
-3,-4,-5 и т.д. - печать детали 1,2,3 и т.д.
1 - размещение значения переменной в заголовке
2 - размещение значения переменной в "подвале"
3,4,5 - размещение значения переменной в детали 1,2,3 и т.д.
255 - выполнить дополнительную команду (возможно дальнейшее расширение функциональности):
Значение третьего поля для этой команды:
fitallrows - выровнять по высоте все строки, начиная с первой
fitdetrows - выровнять по высоте все строки в детали
fitlastrow - выровнять по высоте последнюю строку
fitrows (fitrow) - выровнять по высоте указанные строки (в четвертом поле)
3. Имя переменной (или доп.команды для кода команды 255)
4. Значение (для кода команды 0 - формат)
Для правильного отображения отчета, сначала выполняем код 0 - описываем переменные,
затем печатаем деталь (-1 например), затем размещаем значения переменных (1 например),
печатаем новую деталь (-3), размещаем значения (3) и т.д. и т.п.
Файл Template\Variables.cfg содержит описание переменных и их форматов
для использования совместно с файлом reports.tps, в котором хранятся описания шаблонов.
При работе в командной строке файл Variables.cfg не используется.