Настройки отчета в HTML

advertisement
ГЕНЕРАТОР ОТЧЕТОВ XMLOPEN
Оглавление
Оглавление .....................................................................................................................................................1
Введение .........................................................................................................................................................1
Общая схема работы XMLOpen ........................................................................................................................1
Выполнение запроса к БД и получение XML-данных ...................................................................................1
Форматирование данных с помощью XSL-преобразования ...........................................................................2
Резюме .........................................................................................................................................................2
Использование XMLOpen .................................................................................................................................2
Подготовка SQL-запроса ..............................................................................................................................2
Подготовка входной формы .........................................................................................................................2
Описание предопределенных параметров ................................................................................................3
Подготовка XSL-шаблона..............................................................................................................................4
Настройки отчета в XSL-шаблоне..............................................................................................................4
Функции XMLOpen для работы со сгенерированным отчетом ..........................................................................4
Фильтрация данных .....................................................................................................................................4
Сортировка данных ......................................................................................................................................4
Печать..........................................................................................................................................................4
Отправка по e-mail .......................................................................................................................................4
Сохранение в архив .....................................................................................................................................4
Перевод на другой язык ...............................................................................................................................4
Пользовательский скрипт ................................................................................................................................5
Обработка событий ......................................................................................................................................5
Введение
Генератор отчетов XMLOpen – система, разработанная с использованием web-технологий и
предназначенная для извлечения данных из БД и представления их в виде печатных документов (в первую
очередь, отчетов), а также для экспорта этих данных в различные форматы. XMLOpen – одна из главных
составляющих intranet-портала ZAVOD.
Генератор базируется на XML-технологиях, активно развивающихся в последние годы и поддерживаемых
всеми основными программными средствами (в частности, MS SQL Server и приложениями MS Office).
Общая схема работы XMLOpen
Для подготовки отчета генератор должен выполнить 2 основных шага:
1) получить необходимые данные из БД с помощью SQL-запроса;
2) представить полученные данные в необходимом пользователю виде (т.е. отформатировать).
Выполнение запроса к БД и получение XML-данных
MS SQL Server 2000 (используемый в настоящее время на заводе в качестве платформы для системы
«Галактика») «умеет» возвращать данные по запросу в виде XML. Это позволяет использовать в работе с
данной СУБД весь комплекс XML-технологий.
На практике это реализуется следующим образом. SQL-запрос оформляется в виде специального XMLшаблона вида:
<root xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<sql:header>
<sql:param name="Date1"/>
<sql:param name="Date2"/>
</sql:header>
<sql:query>
SELECT *
FROM
T$KatSopr doc
WHERE
dbo.fnGDateToDate(F$DSopr) BETWEEN @Date1 AND @Date2
ORDER BY F$DSopr
FOR XML AUTO
</sql:query>
</root>
При обращении к данному шаблону через web-сервер (IIS) содержащийся в шаблоне SQL выполняется и
замещается результирующими данными в формате XML. «Заполненный» таким образом шаблон
возвращается web-сервером клиенту. Шаблон может содержать несколько SQL-запросов в отдельных XMLтегах.
Итак, сервер возвращает данные в формате XML; эти данные затем можно обработать с помощью любых
XML-ориентированных средств. В нашем случае, полученные данные форматируются с помощью XSLпреобразования.
Форматирование данных с помощью XSL-преобразования
XSL-преобразование настраивается (а вернее, определяется) с помощью XSL-шаблона. На входе шаблона –
XML-данные, на выходе – данные в одном из следующих форматов: XML, HTML, текст. Ограниченность
выходных форматов лишь кажущаяся – ведь формат XML позволяет создавать документы MS Excel, MS Word
и др., текстовый формат позволяет генерировать CSV-файлы и т.п.
Резюме
Таким образом, генератор должен иметь на входе SQL-запрос в виде XML-файла, а также XSL-шаблон для
форматирования данных. Кроме того, оба вышеописанных процесса (запрос к БД и форматирование)
должны настраиваться с помощью специальных параметров. Эти параметры также передаются на вход
генератора. На выходе получаем документ в виде HTML-страницы, рабочей книги MS Excel, CSV-файла и т.д.
Использование XMLOpen
В рамках intranet-портала, ориентированного на технологии Microsoft (IIS + ASP + IE), генератор отчетов,
естественно, реализован в виде ASP-страницы - XMLOPEN.ASP.
Все вышеописанные параметры (адрес SQL-запроса, адрес XSL-шаблона, дополнительные параметры) при
вызове страницы XMLOPEN.ASP передаются ей одним из двух способов:
1) в адресной строке;
2) в виде входной формы.
Обычно используется второй способ, так как в большинстве случаев перед запуском отчета пользователь
должен ввести какие-либо параметры (даты отчетного периода и т.п.). А для этого в любом случае нужна
форма.
Подготовка SQL-запроса
Подготовка входной формы
Обычно отчет запускается со специальной страницы, на которой находится входная форма (HTML-тег
<FORM>), содержащая параметры отчета. Параметры делятся на пользовательские и предопределенные.
Пользовательские параметры интерпретируются логикой SQL-запроса или XSL-шаблона. Предопределенные
параметры интерпретируются самим генератором отчетов и определяют выполняемые им действия. В
частности, именно они указывают генератору отчетов, какой SQL-запрос выполнять и с помощью какого
XSL-шаблона форматировать полученные данные.
Параметры могут храниться в любых стандартных полях ввода HTML, таких как INPUT, SELECT и т.д.
Предопределенные параметры обычно задаются с помощью тега <INPUT type=hidden> (скрытое поле
ввода).
Когда пользователь запускает отчет, данные из всех полей ввода передаются (submit) на страницу
XMLOPEN.ASP (т.е. генератору отчетов).
Основные предопределенные параметры – это UrlXML, UrlXSL, SQLParams, XSLParams. Они используются при
отправке запроса к БД и последующем форматировании полученных данных с помощью XSL-шаблона.
Как указывалось выше, генератор отчетов используется, в частности, для экспорта данных в различные
форматы (MS Excel, MS Word, CSV). В связи с этим, имеется ряд предопределенных параметров для
настройки экспорта: ExportFormat, ExportToDir, ExportToFile и др.
Ниже приводится полное описание всех предопределенных параметров.
Описание предопределенных параметров
UrlXML
Устарело. Адрес XML-шаблона, содержащего SQL-запрос. Пример:
<input type="hidden" name="UrlXML" value="/pbdb/t/my-report.xml">
UrlSQL
Адрес SQL-запроса. Пример:
<input type="hidden" name="UrlSQL" value="/pb/my-report.sql">
UrlXSL
Адрес XSL-шаблона для форматирования данных, полученных с помощью SQL-запроса. Пример:
<input type="hidden" name="UrlXSL" value="/pb/my-report.xsl">
SQLParams
Список пользовательских параметров для SQL-запроса. Состоит из имен полей ввода, находящихся в той же
форме. Имена разделяются запятыми. После отправки данных генератор отчетов (XMLOPEN.ASP) получает
значения всех полей ввода. Параметр SQLParams указывает ему, какие из этих значений передать в
качестве параметров SQL-запросу.
Например, если в форме вводятся начальная и конечная даты отчетного периода (поля Date1 и Date2),
параметр SQLParams будет выглядеть так:
<input type="hidden" name="SQLParams" value="Date1, Date2">
XSLParams
Список пользовательских параметров для XSL-шаблона. Состоит из имен полей ввода, находящихся в той
же форме. Имена разделяются запятыми. После отправки данных генератор отчетов (XMLOPEN.ASP)
получает значения всех полей ввода. Параметр XSLParams указывает ему, какие из этих значений передать
в качестве параметров XSL-шаблону при форматировании данных.
Например, если в форме вводятся начальная и конечная даты отчетного периода (поля Date1 и Date2),
параметр XSLParams будет выглядеть так:
<input type="hidden" name="XSLParams" value="Date1, Date2">
UrlScript
Адрес пользовательского java-скрипта, используемого для создания интерактивных форм. Подробнее см.
раздел «Пользовательский скрипт».
<input type="hidden" name="UrlScript" value="/pb/my-report.js ">
ExportFormat
ExportToDir
ExportToFile
ExportAddDate
ExportOverwrite
ExportAndOpen
Подготовка XSL-шаблона
Настройки отчета в XSL-шаблоне
В XSL-шаблоне можно задать ряд настроек, применяемых к сгенерированному документу. Это настройки
печати, отправки по e-mail и др. Настройки задаются в формате XML с использованием HTML-тега <XML> и
имеют следующий вид (приведены все настройки):
<xml id="xmlSetup">
<root>
<report-title value="Название отчета"/>
<mail>
<as-attachment value="yes"/>
<use-original-html value="yes"/>
</mail>
<print>
<repaginate-every-time value="yes"/>
</print>
<translate>
<dictionary value="адрес словаря для перевода"/>
</translate>
</root>
</xml>
ID тега обязательно должен быть «xmlSetup».
Функции XMLOpen для работы со сгенерированным отчетом
Отчет, сгенерированный в формате HTML, подгружается прямо в тело страницы XMLOPEN.ASP. Далее к
полученному документу можно применить несколько действий:
1) фильтрация и сортировка данных;
2) печать (и предварительный просмотр печати);
3) отправка по e-mail;
4) перевод на другой язык.
Фильтрация данных
Сортировка данных
Печать
Отправка по e-mail
Сохранение в архив
Перевод на другой язык
Пользовательский скрипт
Обработка событий
События:
xml_afterload
xml_aftertransform
selection_choose
selection_delete
selection_insert
Download