продолжение статьи.
Долгое время был занят по работе, но теперь снова есть время продолжить начатое.
Время проходит и ничто не стоит на месте.
Базу данных непернес с Paradox на платформу СУБД MySQL, для этого пришлось написать конвертер, но об этом в другой раз.
Вернемся к тому что сам отчет строится из 3х файлов:
Долгое время был занят по работе, но теперь снова есть время продолжить начатое.
Время проходит и ничто не стоит на месте.
Базу данных непернес с Paradox на платформу СУБД MySQL, для этого пришлось написать конвертер, но об этом в другой раз.
Вернемся к тому что сам отчет строится из 3х файлов:
1)
<файл>.SQL
Это файл SQL запроса к базе данных, именно вернувшийся набор данных и
будет дальше рассматриваться программой.
2) <файл>.XLS
Это файл MS Excel составленный по определенному шаблону именно в него будут
помещены данные полученные запросом, но именно в такой форме как указано в
шаблоне. Фактически Excel это
дизайнер выходного бланка отчета.
3) <файл>.INI
Это
файл Param имеет расширение .ini и служит файлом дополнительных
параметров, которые могут использоваться на разных этапах генерации отчета.
SQL файл
запроса
Файл
запроса содержит текст в формате ANSI написанный на языке запросов SQL поддерживаемый
версией MySQL. За
дополнительной документацией по отличиям языка именно в этой СУБД можно
обратится на сайт производителя MySQL.
Примером файла запроса будет служить следующий фрагмент:
select main.prim,main.ser,
main.dataP,main.nal,s_kart.caption,s_stat.stat from
main left join s_kart on
(main.kart=s_kart.id) left join s_stat
on (main.stat=s_stat.id)
PRIM
|
SER
|
DATAP
|
NAL
|
CAPTION
|
STAT
|
Данные
|
Данные
|
Данные
|
Данные
|
Данные
|
Данные
|
К названию возвращаемых столбцов нужно относится внимательно
так как для передачи в форму отчета
необходимо будет их указать.
Дополнительно SQL запрос был расширен новым
функционалом поддерживаемым только Генератором отчетов. Можно использовать
такие функции:
#[GETDATE][Текст сообщения]# - будет выведен запрос
на ввод даты при этом показан текст сообщения
#[GETTABLE][Table:Field View:Field Result:Сообщение]# -Будет показан список в
котором можно выбрать одно значение
Параметры
Table – имя таблицы из которой берутся данные
Field View – поле
которое будет показано пользователю для выбора
FieldResult – поле которое вернется в SQL запрос как
результат
Сообщение – Текст который будет показан
пользователю
Пример:
select *
from test where date='#[GETDATE][Введите текущую дату]#'
select * from test where id_Printer=#[GETTABLE][spr_printers:printer_name:printer_id:Выберите модель принтера для обслуживания]#
После обработки функции запрос будет выглядеть так:
select * from test where date='2012-07-01'
select * from test where id_Printer=24
XLS файл
дизайна отчета
Файл дизайна отчета подготавливается в программе MS Excel на
текущий момент генератор отчетов благополучно работает с форматами
2003/2007 года, но уверен что и
последующие выпуски будут работать нормально, так как кардинальных изменений в
механизме быть не может.
Файл дизайна строится по такой схеме:
Весь отчет делится на 3 части: Шапка, Тело отчета, Подвал
Именно по этому 1 столбец таблицы является служебным.
Для указания разделения блоков в первом столбце указываются
служебные слова:
Title –Шапка
Line – Тело таблицы. Будет
повторятся столько раз сколько строк вернет SQL запрос
Foot - подвал
Поля из SQL запроса передаются в отчет специальной дериктивой #ПОЛЕ#
Как мы видим PRIM это
поле таблицы которое вернул запрос, но для того что бы его учитывать обрамляем
решетками #
Кроме того есть ряд дополнительных функций которые можно
использовать
#FCURRENTDATE# -в это место будет вставлена текущая дата
#FCOUNTER# -счетчик номеров записей, будет выведено номер по
порядку.
#FCOUNT# - вставит количество записей вернувшееся запросом
INI файл
параметров
В файле параметров записываются константы которые можно
использовать в MS Excel шаблоне
Формат записи:
КОНСТАНТА = ЗНАЧЕНИЕ
Пример:
FIRMA = Наша фирма
Для того что бы эта константа появилась в отчете необходимо в XLS шаблоне
указать #FIRMA#
Кроме того есть
служебная функция которая объявляется 3 параметрами. При обнаружении
этой функции Excel выполнит «Промежуточные итоги». Для использования этой возможности объявляем
3 константы
ONCHANGE=<число>
При
изменении в столбце <число>
таблицы Excel
ONACTION=< SUMM | COUNT>
Будет
выполнено действие SUMM-
сумма, COUNT - количество
ONRESULT=<число>
По
столбцу <число>
И добавлена строка содержащая информацию по выделенному
блоку.
Пример:
Комментариев нет:
Отправить комментарий