Рекомендация №1. Как спроектировать простой отчет в среде XMLP
Преамбула:
Под простым отчетом будем понимать отчет, который:
- содержит две части:
- табличную
- заголовочную
- табличная часть не содержит группировок и итогов
- Проектированию отчетов должно предшествовать получение учетной записи от Администратора XMLP.
- Учетная запись должна обеспечивать разработчику доступ к необходимым источникам данных:
- JDBC mysql - соединение с базой, содержащей таблицы данных.
- Проектирование отчетов начинается с регистрации пользователя на сервере XMLP.
- Процесс проектирования будет проиллюстрирован на примере отчета "Журнал недостоверных значений".
Проектирование:
- Проектирование простого отчета начинается с проектирования основного SQL-запроса к соответствующей базе данных.
- Основным называем запрос, осуществляющий выборку информации из БД для заполнения табличной части отчета.
- Основной запрос - запрос с параметрами.
- Настоятельно рекомендуется предварительно протестировать этот запрос в среде подходящего менеджера баз данных.
- Тестируем запрос для Журнала недостоверных значений:
- Версия наивная и прямолинейная, обречена на неудачу, потому что SQL не позволяет употреблять параметр в качестве имени таблицы.
- Версия для частного случая. h2-часовой уровень истории. Запрос вслепую, потому что неудачно выбрано значение параметра pStamp.
- Вспомогательный запрос для частного случая. Определение области допустимых значений pStamp на часовом уровне истории.
- Область допустимых значений pStamp для часового уровня истории.
- Удовлетворительный тестовый запрос для часового уровня истории.
- Удовлетворительный результат теста для часового уровня истории.
- Предентент на роль удовлетворительного запроса в технике хранимых процедур и динамического SQL:
- Тестируем запрос для Журнала недостоверных значений:
- Имея на руках дееспособный параметризованный запрос можно начинать работу с XMLP
- Регистрация в среде XMLP
- В среда пользователя следует открыть папку "Мои папки"
- и внутри неё создать новую папку для отчета(ов) с подходящим именем, например, invalid.
- Внутри созданной папки можно создавать пустой пока проект отчёта с подходящим именем
- Чтобы конфигурировать проект, надо щелкнуть "Изменить"
- Минимально дееспособный проект отчета содержит:
- запрос с параметрами,
- отдельно, перечень этих параметров с описанием их свойств и способов представления в пользовательском интерфейсе.
- Такой проект можно подвергнуть начальному тестированию путем исполнения операции Просмотр. На этой стадии возможно единственное представление отчета - в форме XML-документа. Если анализ XML-документа устраивает, то можно переходить к последующим стадиям проектирования отчета. Но в данном случае был получен странный результат, создающий проблему:
- так он выглядит в брузере Firefox
- так он выглядит в брузере Internet Explorer
- так он выглядит в брузере Google Chrome
- Возникли проблемы на стыке динамического SQL, MySQL и XMLP. Поэтому было решено отказаться от использования динамического SQL. Следствием такого подхода явилась разбиение проекта на несколько частей - по числу таблиц данных h2,h3,h4,h5. Подпроекты при этом используют статический SQL с параметрами, относящимися к критерию отбора, WHERE. Они различаются только в части, имеющей отношение к опции FROM. Достаточно отработать один подпроект, например, h2. Прочие проектируются по аналогии с ним.
- Результат начального тестирования подпроекта h2 выглядит так
- На этой стадии готовности проект можно подвергать содержательному тестированию с заданием различных значений основных параметров. Неудобством является необходимость ручного набора значений этих параметров. XMLP предоставляет механизм конфигурирования пользовательского интерфейса, который позволяет заменить ввод значений в однострочные текстовые поля на выбор из выпадающих списков. Для этого в разделе проекта "Список значений" надо создать необходимые списки и связать их с параметрами из раздела "Параметры":
- Создаём список типов сигналов pTypeList
- Создаём список групп оборудования pServList
- Создаём список временных рядов pStampList.
- Соединяем параметр pType со списком pTypeList
- Соединяем параметр pServ со списком pServList
- Соединяем параметр pStamp со списком pStampList
- Просмотр
- Пока созданы только все условия для тестирования содержимого отчета (контента). Ещё не спроектированы макеты разметки отчета, определяющие форматное представление отчета как документа. Проектирование внешнего вида отчета ведется в разделе "Разметки".
- Разметки имеют формат RTF-файла.
- Быстро создать разметку можно с помощью функции "Автоматическое создание макета". На основании запроса из модели данных XMLP генерирует и размещает в своем репозитории RTF-файл черновой разметки и связывает с ним ссылку из раздела "Разметки". Файл разметки можно выгружать на клиентский компьютер и редактировать в среде MS Word.
- Итак, визуальным дизайнером разметок в XMLP является MS Word.
- Стандартную(черновую) разметку можно сразу испытать:
- Представленная черновая разметка имеет два недостатка:
- Очевидный, но непринципиальный недостататок состоит в наличии проблем с оформлением табличной части документа. Это касается заголовков столбцов, их ширины и шрифтовых форматов. Эти проблемы вполне рутинные и разрешаются соответствующим использованием текстового процессора.
- Неочевидный и принципиальный недостаток документа состоит в отсутствии у него релевантного заголовка. Под таковым понимается заголовок, содержащий информацию о параметрах, в соответствии с которыми был сгенерирован данный экземпляр документа (его табличная часть).
- Откуда бы этим параметрам взяться ?
- Можно предложить принцип, в соответствии с которым в релевантном заголовке печатного документа отображалась бы информация из пользовательского интерфейса.
- Такой возможности XMLP не предоставляет. Оставаясь в его рамках нельзя передать на сервер отчетов в качестве параметров как значение из списка (первостепенный параметр), так и соответствующую ему метку(второстепенный параметр). Например, значение=m; метка=Расчетные значения.
- Но, хотя XMLP не позволяет автоматически формировать второстепенные(заголовочные) параметры, принимать и обрабатывать их позволяет. Для этого необходимо:
- прописать таковые в том же разделе параметров,
- определенным образом включить их в файл разметки (это делается на клиентском компьютере),
- загрузить модифицированный файл разметки на сервер и сформировать на него ссылку из раздела Разметки,
- Просмотр
Резюме:
В среде XMLP разработан проект отчета Журнал недостоверных значений. У проекта есть недостатки, неустранимые в рамка XMLP:
- Проект состоит из нескольких подпроектов, которые следует как-то объединить.
- Пользовательский интерфейс- неказистый.
Для завершения проекта требуется устранить указанные недостатки, но уже за рамками XMLP.
Как спроектировать пользовательский интерфейс отчету XMLP