Рекомендация №1. Как спроектировать простой отчет в среде XMLP

Преамбула:

Под простым отчетом будем понимать отчет, который:

  1. содержит две части:
    1. табличную
    2. заголовочную
  2. табличная часть не содержит группировок и итогов

  • Проектированию отчетов должно предшествовать получение учетной записи от Администратора XMLP.
  • Учетная запись должна обеспечивать разработчику доступ к необходимым источникам данных:
    • JDBC mysql - соединение с базой, содержащей таблицы данных.
  • Проектирование отчетов начинается с регистрации пользователя на сервере XMLP.

  • Процесс проектирования будет проиллюстрирован на примере отчета "Журнал недостоверных значений".

Проектирование:

  1. Проектирование простого отчета начинается с проектирования основного SQL-запроса к соответствующей базе данных.
  2. Основным называем запрос, осуществляющий выборку информации из БД для заполнения табличной части отчета.
  3. Основной запрос - запрос с параметрами.
  4. Настоятельно рекомендуется предварительно протестировать этот запрос в среде подходящего менеджера баз данных.
    1. Тестируем запрос для Журнала недостоверных значений:
      1. Версия наивная и прямолинейная, обречена на неудачу, потому что SQL не позволяет употреблять параметр в качестве имени таблицы.
      2. Версия для частного случая. h2-часовой уровень истории. Запрос вслепую, потому что неудачно выбрано значение параметра pStamp.
        1. Вспомогательный запрос для частного случая. Определение области допустимых значений pStamp на часовом уровне истории.
        2. Область допустимых значений pStamp для часового уровня истории.
      3. Удовлетворительный тестовый запрос для часового уровня истории.
        1. Удовлетворительный результат теста для часового уровня истории.
      4. Предентент на роль удовлетворительного запроса в технике хранимых процедур и динамического SQL:
        1. Тело хранимой процедуры
        2. Тестирование хранимой процедуры в менеджере БД
        3. SQL синтаксис вызова хранимой процедуры
        4. Результат выполнения хранимой процедуры в менеджере БД
  5. Имея на руках дееспособный параметризованный запрос можно начинать работу с XMLP
    1. Регистрация в среде XMLP
    2. В среда пользователя следует открыть папку "Мои папки"
    3. и внутри неё создать новую папку для отчета(ов) с подходящим именем, например, invalid.
    4. Внутри созданной папки можно создавать пустой пока проект отчёта с подходящим именем
    5. Чтобы конфигурировать проект, надо щелкнуть "Изменить"
    6. Минимально дееспособный проект отчета содержит:
      1. запрос с параметрами,
      2. отдельно, перечень этих параметров с описанием их свойств и способов представления в пользовательском интерфейсе.
    7. Такой проект можно подвергнуть начальному тестированию путем исполнения операции Просмотр. На этой стадии возможно единственное представление отчета - в форме XML-документа. Если анализ XML-документа устраивает, то можно переходить к последующим стадиям проектирования отчета. Но в данном случае был получен странный результат, создающий проблему:
    8. Возникли проблемы на стыке динамического SQL, MySQL и XMLP. Поэтому было решено отказаться от использования динамического SQL. Следствием такого подхода явилась разбиение проекта на несколько частей - по числу таблиц данных h2,h3,h4,h5. Подпроекты при этом используют статический SQL с параметрами, относящимися к критерию отбора, WHERE. Они различаются только в части, имеющей отношение к опции FROM. Достаточно отработать один подпроект, например, h2. Прочие проектируются по аналогии с ним.
      1. Результат начального тестирования подпроекта h2 выглядит так
      2. На этой стадии готовности проект можно подвергать содержательному тестированию с заданием различных значений основных параметров. Неудобством является необходимость ручного набора значений этих параметров. XMLP предоставляет механизм конфигурирования пользовательского интерфейса, который позволяет заменить ввод значений в однострочные текстовые поля на выбор из выпадающих списков. Для этого в разделе проекта "Список значений" надо создать необходимые списки и связать их с параметрами из раздела "Параметры":
        1. Создаём список типов сигналов pTypeList
        2. Создаём список групп оборудования pServList
        3. Создаём список временных рядов pStampList.
        4. Соединяем параметр pType со списком pTypeList
        5. Соединяем параметр pServ со списком pServList
        6. Соединяем параметр pStamp со списком pStampList
        7. Просмотр
    9. Пока созданы только все условия для тестирования содержимого отчета (контента). Ещё не спроектированы макеты разметки отчета, определяющие форматное представление отчета как документа. Проектирование внешнего вида отчета ведется в разделе "Разметки".
      1. Разметки имеют формат RTF-файла.
      2. Быстро создать разметку можно с помощью функции "Автоматическое создание макета". На основании запроса из модели данных XMLP генерирует и размещает в своем репозитории RTF-файл черновой разметки и связывает с ним ссылку из раздела "Разметки". Файл разметки можно выгружать на клиентский компьютер и редактировать в среде MS Word.
      3. Итак, визуальным дизайнером разметок в XMLP является MS Word.
      4. Стандартную(черновую) разметку можно сразу испытать:
        1. Генерация документа в формате HTML
        2. Генерация документа в формате PDF
      5. Представленная черновая разметка имеет два недостатка:
        1. Очевидный, но непринципиальный недостататок состоит в наличии проблем с оформлением табличной части документа. Это касается заголовков столбцов, их ширины и шрифтовых форматов. Эти проблемы вполне рутинные и разрешаются соответствующим использованием текстового процессора.
        2. Неочевидный и принципиальный недостаток документа состоит в отсутствии у него релевантного заголовка. Под таковым понимается заголовок, содержащий информацию о параметрах, в соответствии с которыми был сгенерирован данный экземпляр документа (его табличная часть).
        3. Откуда бы этим параметрам взяться ?
          • Можно предложить принцип, в соответствии с которым в релевантном заголовке печатного документа отображалась бы информация из пользовательского интерфейса.
          • Такой возможности XMLP не предоставляет. Оставаясь в его рамках нельзя передать на сервер отчетов в качестве параметров как значение из списка (первостепенный параметр), так и соответствующую ему метку(второстепенный параметр). Например, значение=m; метка=Расчетные значения.
          • Но, хотя XMLP не позволяет автоматически формировать второстепенные(заголовочные) параметры, принимать и обрабатывать их позволяет. Для этого необходимо:
            1. прописать таковые в том же разделе параметров,
            2. определенным образом включить их в файл разметки (это делается на клиентском компьютере),
            3. загрузить модифицированный файл разметки на сервер и сформировать на него ссылку из раздела Разметки,
            4. Просмотр

Резюме:

В среде XMLP разработан проект отчета Журнал недостоверных значений. У проекта есть недостатки, неустранимые в рамка XMLP:

  1. Проект состоит из нескольких подпроектов, которые следует как-то объединить.
  2. Пользовательский интерфейс- неказистый.

Для завершения проекта требуется устранить указанные недостатки, но уже за рамками XMLP.
Как спроектировать пользовательский интерфейс отчету XMLP