Предыдущий разделСледующий раздел


Учебник 3: Создание отчета с параллельными вложенными отчетами

В этом разделе приведены пошаговые инструкции по созданию отчета со списком клиентов. Для каждого клиента в отчете будут приведены данные о заказах и платежах. Данные о заказах и данные о платежах находятся в разных вложенных отчетах, показанных друг напротив друга. В роли главного отчета выступает внешний отчет, а в роли вложенных (внутренних) - отчеты о заказах и платежах.

Отчеты получают данные из различных таблиц базы данных Classic Models. В отчете о клиентах используются данные из таблицы Customers. В отчете о заказах используются данные из таблицы Orders. Сведения о платежах поступают из таблицы Payments.

Данные отчетов соединяются по общему полю CUSTOMERNUMBER. Данные вложенных отчетов зависят от значения этого поля в главном отчете. Например, если в главный отчет будет включен клиент с номером 173, во вложенных отчетах будут показаны сведения о заказах и платежах клиента 173.

На рис. 13-1 показан фрагмент готового отчета.

Рис. 13-1 Главный отчет о клиентах со вложенными отчетами о заказах и платежах

Данное упражнение сводится к выполнению последовательности задач:

Задача 1: Создайте отчет.

Если вы пользуетесь проектировщиком отчетов BIRT, в данной задаче предполагается, что уже создан проект для отчетов. Если вы пользуетесь проектировщиком отчетов BIRT RCP, проект не нужен.

  1. Выберите Файл->Создать->Отчет.
  2. В окне Создать отчет выберите проект, в котором нужно сохранить отчет.
  3. Введите следующее имя файла:
  4. Cust_Orders_Payments.rptdesign 
    
  5. Нажмите кнопку Далее.
  6. Выберите опцию Пустой отчет и нажмите кнопку Готово. Новый отчет будет показан в редакторе макета.

Задача 2: Создайте источник данных

Перед созданием макета отчета нужно создать источник данных для подключения отчета к базе данных Classic Models.

  1. Откройте меню данных.
  2. Щелкните правой кнопкой мыши на опции Источники данных и выберите опцию Создать источник данных.
  3. Выберите в списке источников данных базу данных Classic Models Inc. и нажмите кнопку Далее. Будут показаны параметры соединения с источником данных.
  4. Нажмите кнопку Готово. Проектировщик отчетов BIRT создаст источник данных и соединение с указанным примером базы данных. Источник данных будет показан в списке источников данных в модели данных.

Задача 3: Создайте набор данных для отчета о клиентах

В ходе данной процедуры будет создан набор данных для извлечения информации из таблицы Customers. Этот набор данных будет использоваться в отчете о клиентах, который будет создан позже.

  1. В меню данных щелкните правой кнопкой на опции Наборы данных и выберите опцию Создать набор данных.
  2. В окне Создать набор данных введите следующее имя для набора данных:
  3. Customers 
    
  4. Оставьте значения по умолчанию в остальных полях:
    • В поле Источник данных будет указано имя источника данных, созданного ранее.
    • В поле Тип набора данных будет указан оператор SQL SELECT.
  5. Нажмите кнопку Далее. В поле Запрос будет показана дополнительная информация по созданию запроса SQL. В текстовой области в правой части окна будут показаны необходимые ключевые слова оператора SQL SELECT.
  6. Разверните таблицу CUSTOMERS. Будет показан список столбцов таблицы Customers.
  7. Для выборки данных воспользуйтесь оператором SQL SELECT, указанным ниже. Можно либо перенести столбцы и таблицы из левой части окна, либо указать их имена напрямую в операторе SELECT.
  8. SELECT Customers.customerName,  Customers.customerNumber  FROM
    Customers 
    
    Новый оператор, показанный на рис. 13-2, будет извлекать значения из столбцов CUSTOMERNAME и CUSTOMERNUMBER таблицы CUSTOMERS.

    Рис. 13-2 Запрос
  9. Нажмите кнопку Готово для сохранения набора данных. В окне Изменить набор данных будут показаны столбцы, выбранные для запроса, и опции изменения набора данных.
  10. Нажмите кнопку Просмотр результатов для проверки запроса и правильности возвращаемых данных. Если оператор SELECT указан правильно, запрос выдаст результаты, показанные на рис. 13-3. Это строки данных, возвращаемые запросом.
  11. Рис. 13-3 Просмотр данных
  12. Нажмите кнопку ОК.

Задача 4: Создайте набор данных для вложенного отчета orders

В ходе данной процедуры будет создан набор данных для извлечения информации из таблицы Orders. Этот набор данных будет использоваться во вложенном отчете о заказах, который будет создан позже.

  1. В меню данных щелкните правой кнопкой на опции Наборы данных и выберите опцию Создать набор данных в контекстном меню.
  2. В окне Создать набор данных введите следующее имя для набора данных:
  3. Orders 
    
  4. Оставьте значения по умолчанию в остальных полях и нажмите кнопку Далее.
  5. В меню Запрос разверните таблицу Orders для просмотра списка ее столбцов.
  6. Для выборки данных воспользуйтесь оператором SQL SELECT, указанным ниже:
  7. SELECT Orders.orderNumber, 
    Orders.orderDate 
    FROM Orders 
    WHERE Orders.customerNumber = ? 
    
    Данный оператор извлекает столбцы ORDERNUMBER и ORDERDATE из таблицы Orders. В компоненте WHERE указан маркер параметра для значения поля CUSTOMERNUMBER. При выполнении запроса вложенный отчет о заказах получит значение CUSTOMERNUMBER из отчета о клиентах.
  8. Нажмите кнопку Готово для сохранения набора данных. В окне Изменить набор данных будут показаны столбцы, выбранные для запроса, и опции изменения набора данных.
  9. Создайте параметр набора данных для передачи значения CUSTOMERNUMBER в компонент WHERE:
    1. Выберите опцию Параметры в левой части окна. Появится окно Изменить набор данных с информацией о параметрах.
    2. Укажите следующие значения в первой строке таблицы:
      • Имя: CustID
      • Тип данных: Integer
      • Направление: Входной
      • Значение по умолчанию: 103
      • 103 - это одно из значений в столбце CUSTOMERNUMBER. Значение по умолчанию требуется проектировщику отчетов BIRT для тестирования отчета.
    Окно Изменить набор данных должно выглядеть так, как показано на рис. 13-4.

    Рис. 13-4 Определение параметров во вложенном отчете orders
  10. Нажмите кнопку Просмотр результатов для проверки запроса и правильности возвращаемых данных. Если правильно созданы параметр набора данных и оператор SELECT, запрос выдаст результаты, показанные на рис. 13-5. Это строки данных, возвращаемые запросом для клиента с номером 103.
  11. Рис. 13-5 Просмотр данных вложенного отчета orders
  12. Нажмите кнопку ОК для сохранения изменений в наборе данных.

Задача 5: Создание набора данных для вложенного отчета payments

В ходе данной процедуры будет создан набор данных для извлечения информации из таблицы Payments. Этот набор данных будет использоваться во вложенном отчете о платежах, который будет создан позже.

  1. В меню данных щелкните правой кнопкой на опции Наборы данных и выберите опцию Создать набор данных в контекстном меню.
  2. В окне Создать набор данных введите следующее имя для набора данных:
  3. Payments 
    
  4. Оставьте значения по умолчанию в остальных полях и нажмите кнопку Далее.
  5. В меню Запрос разверните таблицу Payments для просмотра списка ее столбцов.
  6. Для выборки данных воспользуйтесь оператором SQL SELECT, указанным ниже:
  7. SELECT Payments.paymentDate, 
    Payments.checkNumber, 
    Payments.amount 
    FROM Payments 
    WHERE Payments.customerNumber = ? 
    
    Данный оператор извлекает столбцы PAYMENTDATE, CHECKNUMBER и AMOUNT из таблицы Payments. В компоненте WHERE указан маркер параметра для значения поля CUSTOMERNUMBER. При выполнении запроса вложенный отчет о платежах получит значение CUSTOMERNUMBER из отчета о клиентах.
  8. Нажмите кнопку Готово для сохранения набора данных. В окне Изменить набор данных будут показаны столбцы, выбранные для запроса, и опции изменения набора данных.
  9. Создайте параметр набора данных для передачи значения CUSTOMERNUMBER в компонент WHERE:
    1. Откройте раздел Параметры. Появится окно Изменить набор данных с информацией о параметрах.
    2. Укажите следующие значения в первой строке таблицы:
      • Имя: CustID
      • Тип данных: Integer
      • Направление: Входной
      • Значение по умолчанию: 103
  10. Нажмите кнопку Просмотр результатов для проверки запроса и правильности возвращаемых данных. Если правильно созданы параметр набора данных и оператор SELECT, запрос выдаст результаты, показанные на рис. 13-6. Это строки данных, возвращаемые запросом для клиента с номером 103.
  11. Рис. 13-6 Просмотр данных вложенного отчета payments
  12. Нажмите кнопку ОК для сохранения изменений в наборе данных.

Задача 6: Создание главного отчета о клиентах

Для создания главного отчета и размещения в нем вложенных отчетов orders и payments применяется элемент list (список). Этот элемент будет последовательно анализировать строки данных отчета о клиентах и создавать вложенные отчеты о заказах и платежах для каждой из этих строк. Для простоты примера из отчета о клиентах выводится только имя клиента. При необходимости можно выводить и дополнительные данные, например адрес клиента, номер телефона и размер кредита.

  1. Выберите палитру.
  2. Перенесите элемент списка из палитры в отчет. Элемент списка будет включен в отчет, как показано на рис. 13-7.
  3. Рис. 13-7 Элемент list
  4. Привяжите элемент list к набору данных Customers:
    1. Откройте вкладку Привязка в редакторе свойств.
    2. В списке наборов данных выберите Customers.
  5. Откройте меню данных, разверните категорию Наборы данных, а затем разверните набор данных Customers. В разделе Customers будет показан список столбцов запроса.
  6. Перенесите столбец CUSTOMERNAME из меню данных в область данных списка. Проектировщик отчетов BIRT создает именованный столбец, привязанный к полю набора данных. Эта привязка столбцов будет показана в окне Выбрать привязку данных.
  7. Нажмите кнопку ОК, чтобы принять привязку столбцов, предложенную по умолчанию. В редакторе макета будет показан список с добавленным полем (см. рис. 13-8).
  8. Рис. 13-8 Поле набора данных в элементе list
  9. Нажмите кнопку Просмотр для предварительного просмотра отчета. Отчет должен выглядеть так, как показано на рис. 13-9. В отчете будут перечислены все имена заказчиков в том порядке, в котором они будут получены запросом.
  10. Рис. 13-9 Просмотр данных главного отчета
  11. Отсортируйте имена клиентов по возрастанию:
    1. Откройте вкладку Макет для возврата в редактор макета.
    2. В редакторе макета выберите элемент list. Наведите указатель мыши на нижний левый угол таблицы и дождитесь появления вкладки Список, а затем щелкните на этой вкладке.
    3. Откройте вкладку Сортировка в редакторе свойств.
    4. На странице Сортировка нажмите кнопку Добавить для создания условия сортировки. Под полем Сортировать по появится пустая строка.
    5. Щелкните в области под полем Ключ сортировки, нажмите появившуюся кнопку со стрелкой и выберите значение CUSTOMERNAME в выпадающем списке.
    6. Оставьте без изменения значение По возрастанию в поле Направление сортировки, как показано на рис. 13-10.
    7. Рис. 13-10 Выражение сортировки
  12. Просмотрите отчет. Имена клиентов будут отсортированы по возрастанию.

Задача 7: Создайте вложенный отчет orders

Вложенный отчет orders применяется для формирования таблиц со списками заказов отдельных клиентов. Для каждого заказа указаны номер и дата размещения. Для вывода и форматирования строк набора данных применяется элемент table.

  1. Откройте вкладку Макет для возврата в редактор макета.
  2. Перенесите элемент table из палитры в элемент данных [CUSTOMERNAME] в области данных. В окне Вставить таблицу нужно будет указать количество строк и столбцов.
  3. Укажите, что вы хотите создать 2 столбца и 1 строку, и нажмите кнопку ОК. В макет будет добавлена таблица, состоящая из двух столбцов и одной строки.
  4. Привяжите таблицу к набору данных Orders:
    1. Откройте вкладку Привязка в редакторе свойств.
    2. В списке наборов данных выберите Orders.
  5. Откройте меню данных, разверните категорию Наборы данных, а затем разверните набор данных Orders. В разделе Orders будет показан список столбцов запроса.
  6. Перенесите столбец ORDERNUMBER из меню данных в первую ячейку строки результатов таблицы. Проектировщик отчетов BIRT создает именованный столбец, привязанный к полю набора данных. Эта привязка столбцов будет показана в окне Выбрать привязку данных.
  7. Нажмите кнопку ОК, чтобы принять привязку столбцов, предложенную по умолчанию.
  8. В ячейке таблицы, в которую было перенесено поле набора данных, будет показан элемент данных [ORDERNUMBER]. Над этим элементом будет показан элемент метки, который автоматически создается для строки заголовка. Элемент метки представляет собой имя поля и выступает в роли заголовка столбца.
  9. Перенесите поле ORDERDATE из меню данных во вторую ячейку строки данных. Нажмите кнопку ОК, чтобы принять привязку столбцов, предложенную по умолчанию. Страница отчета должна выглядеть так, как показано на рис. 13-11.
  10. Рис. 13-11 Проект отчета с вложенным отчетом orders
  11. Отсортируйте строки набора данных по номеру заказа:
    1. Выберите таблицу orders.
    2. Откройте вкладку Сортировка в редакторе свойств.
    3. На странице Сортировка нажмите кнопку Добавить для создания условия сортировки. Под полем Сортировать по появится пустая строка.
    4. Щелкните в области под полем Ключ сортировки, нажмите появившуюся кнопку со стрелкой и выберите значение ORDERNUMBER в выпадающем списке.
    5. Оставьте без изменения значение По возрастанию в поле Направление сортировки.
  12. Просмотрите отчет.
  13. Отчет должен выглядеть так, как показано на рис. 13-12.

    Рис. 13-12 Отчет с повторяющимися записями таблицы заказов
    Для каждого клиента в отчете показан один и тот же набор записей, поскольку в поле customerNumber подставляется значение 103, указанное в качестве значения по умолчанию для набора данных CustID. Из-за этого значения по умолчанию во вложенном отчете для всех клиентов будет показана информация о заказах клиента 103.
    Решение заключается в том, чтобы динамически обновлять значение параметра CustID при каждом изменении строки клиента в главном отчете. Дополнительные сведения приведены в описании следующей задачи.

Задача 8: Привяжите вложенный отчет о заказах к главному отчету о клиентах

Привязка вложенного отчета о заказах к главному отчету о клиентах заключается в том, что параметр CustID привязывается к полю набора данных CUSTOMERNUMBER в отчете о клиентах. Для каждой строки отчета о заказчиках параметру CustID присваивается соответствующее значение CUSTOMERNUMBER.

Перед привязкой параметра CustID к полю набора данных CUSTOMERNUMBER нужно создать привязку столбца к полю набора данных. Параметры не могут напрямую обращаться к полям набора данных.

  1. Откройте вкладку Макет для возврата в редактор макета.
  2. Создайте привязку столбца для поля CUSTOMERNUMBER набора данных:
    1. Выберите список.
    2. Откройте вкладку Привязка в редакторе свойств.
    3. В окне Привязка нажмите кнопку Добавить.
    4. В редакторе выражений выберите опцию Доступные наборы данных, затем выберите набор данных Customer и дважды щелкните на поле CUSTOMERNUMBER. В редакторе выражений будет показано выражение dataSetRow["CUSTOMERNUMBER"] (см. рис. 13-13).
    5. Рис. 13-13 Редактор выражений с выражением привязки столбца.
    6. Нажмите кнопку ОК. На странице привязок редактора свойств будет показана новая привязка с выделенным именем столбца.
    7. Укажите вместо имени Новая привязка следующее значение:
    8. CUSTOMER_NUMBER 
      
  3. Выберите таблицу orders.
  4. Откройте вкладку Привязка в редакторе свойств.
  5. В окне Привязка нажмите кнопку Привязка параметров к набору данных. В окне Привязка параметров к набору данных будет показан параметр CustID (см. рис. 13-14). Ему будет присвоено значение по умолчанию, 103, указанное при создании параметра набора данных.
  6. Рис. 13-14 Привязка параметра к набору данных для таблицы заказов
  7. Измените значение параметра на поле CUSTOMERNUMBER отчета о клиентах:
    1. Щелкните в поле Значение и нажмите кнопку, которая появится справа.
    2. Появится окно Редактор выражений.
    3. В редакторе выражений выберите опцию Доступные привязки столбцов, нажмите кнопку Список и дважды щелкните на значении CUSTOMER_NUMBER. В редакторе выражений будет показано выражение row["CUSTOMER_NUMBER"] (см. рис. 13-15).
    4. Рис. 13-15 Поле CUSTOMERNUMBER в редакторе выражений
    5. Нажмите кнопку ОК для сохранения выражения. На странице Привязка параметров набора данных будет показано новое значение параметра CustID - row["CUSTOMER_NUMBER"].
  8. Нажмите кнопку OK для сохранения измененной привязки параметра набора данных.
  9. Просмотрите отчет. Он должен выглядеть так, как показано на рис. 13-16.
  10. Рис. 13-16 Отчет с правильными данными о заказах
    Теперь для разных клиентов показаны разные данные. Не для всех клиентов есть данные о заказах. Для того чтобы оставить в отчете только данные о клиентах, у которых есть заказы, нужно изменить запрос для отчета о клиентах. Соответствующая процедура описана в разделе Задача 11: "Оставьте в отчете только данные о клиентах, у которых есть заказы или платежи."

Задача 9: Создайте вложенный отчет payments

Во вложенном отчете payments приведены сведения о платежах, проведенных клиентом. В нем указаны дата платежа, номер чека и сумма оплаты по каждому из заказов. Для вывода и форматирования строк набора данных применяется элемент table.

  1. Откройте вкладку Макет для возврата в редактор макета.
  2. Перенесите элемент table из палитры в макет и поместите его под вложенным отчетом orders в области данных. В окне Вставить таблицу нужно будет указать количество строк и столбцов.
  3. Укажите, что вы хотите создать 3 столбца и 1 строку, и нажмите кнопку ОК. В макет будет добавлена таблица, состоящая из трех столбцов и одной строки.
  4. Привяжите таблицу к набору данных Payments:
    1. Откройте вкладку Привязка в редакторе свойств.
    2. В списке наборов данных выберите Payments.
  5. Откройте меню данных, разверните категорию Наборы данных, а затем разверните набор данных Payments. В разделе Payments будет показан список столбцов запроса.
  6. Перенесите указанные ниже столбцы из меню данных в первую, вторую и третью ячейки строки данных таблицы. Нажмите кнопку ОК, чтобы принять привязку столбцов, предложенную по умолчанию.
    • PAYMENTDATE
    • CHECKNUMBER
    • AMOUNT
    Страница отчета должна выглядеть так, как показано на рис. 13-17.

    Рис. 13-17 Проект отчета с вложенным отчетом payments
    В таблице будут показанные добавленные поля набора данных. Помимо этого, в ней будут показаны метки, автоматически вставленные редактором макета в строку заголовка. Метки представляют собой статические строки с именами полей, используемые в качестве заголовков столбцов.
  7. Отсортируйте строки отчета payment по дате платежа.
    1. Выберите таблицу payments.
    2. Откройте вкладку Сортировка в редакторе свойств.
    3. На странице Сортировка нажмите кнопку Добавить для создания условия сортировки. Под полем Сортировать по появится пустая строка.
    4. Щелкните в области под полем Ключ сортировки, нажмите появившуюся кнопку со стрелкой и выберите значение PAYMENTDATE в выпадающем списке.
    5. Оставьте без изменения значение По возрастанию в поле Направление сортировки.
  8. Просмотрите отчет. Отчет должен выглядеть так, как показано на рис. 13-18.
  9. Рис. 13-18 Отчет с повторяющимися данными о платежах
    Как и в случае с вложенным отчетом о заказах, сначала для всех клиентов будут показаны одни и те же данные о платежах, поскольку для параметра CustID в наборе данных Payments было задано значение по умолчанию (103). Из-за этого значения по умолчанию во вложенном отчете для всех клиентов будет показана информация о платежах клиента 103.
    Как и в случае со вложенным отчетом о заказах, необходимо настроить динамическое обновление параметра CustID для каждого клиента в главном отчете.

Задача 10: Привяжите вложенный отчет о заказах к главному отчету о клиентах

Привязка вложенного отчета о платежах к главному отчету о клиентах заключается в том, что параметр CustID привязывается к полю CUSTOMERNUMBER в отчете о клиентах.

  1. Откройте вкладку Макет для возврата в редактор макета.
  2. Выберите таблицу payments.
  3. Откройте вкладку Привязка в редакторе свойств.
  4. В окне Привязка нажмите кнопку Привязка параметров к набору данных. В окне Привязка параметров к набору данных будет показан параметр CustID. Ему будет присвоено значение по умолчанию, 103, указанное при создании параметра набора данных.
  5. Измените значение параметра на поле CUSTOMERNUMBER отчета о клиентах:
    1. Щелкните в поле Значение и нажмите кнопку, которая появится справа.
    2. В редакторе выражений выберите опцию Доступные привязки столбцов, нажмите кнопку Список и дважды щелкните на значении CUSTOMER_NUMBER. В редакторе выражений будет показано выражение row["CUSTOMER_NUMBER"].
    3. Нажмите кнопку ОК для сохранения выражения. На странице Привязка параметров набора данных будет показано новое значение параметра CustID - row["CUSTOMER_NUMBER"].
  6. Нажмите кнопку OK для сохранения измененной привязки параметра набора данных.
  7. Просмотрите отчет. Теперь в отчете показаны разные данные о платежах для разных клиентов. Данные о платежах есть не для всех клиентов. Для того чтобы оставить в отчете только данные о клиентах, у которых есть платежи, нужно изменить запрос для отчета о клиентах.

Задача 11: Оставьте в отчете только данные о клиентах, у которых есть заказы или платежи

В базе данных есть клиенты, у которых нет заказов и платежей. Однако запрос к базе данных возвращает данные обо всех клиентах. Как следствие, при выполнении отчета для некоторых клиентов указаны только заголовки столбцов в таблицах заказов и платежей (см. рис. 13-19).

Рис. 13-19 Отчет с отсутствующими данными об отчетах и заказах для одного из клиентов

Изменив запрос отчета о клиентах, можно исключить из отчета тех клиентов, у которых нет заказов и платежей.

  1. Откройте вкладку Макет для возврата в редактор макета.
  2. В меню данных разверните наборы данных, а затем набор данных Customers. Нажмите кнопку Изменить.
  3. Добавьте следующий фрагмент SQL в конец существующего запроса:
  4. WHERE  
    EXISTS  
    (SELECT Orders.customerNumber 
    FROM Orders  
    WHERE Customers.customerNumber =  
    Orders.customerNumber) 
    OR 
    EXISTS  
    (SELECT Payments.customerNumber 
    FROM Payments  
    WHERE Customers.customerNumber =  
    Payments.customerNumber) 
    
    Компонент WHERE EXISTS проверяет наличие в таблицах Orders и Payments ключа customerNumber с тем же значением, что у ключа customerNumber в таблице Customers. Запрос вернет только строки, для которых будут найдены совпадения по ключу customerNumber. Полный запрос должен выглядеть так, как показано на рис. 13-20.

    Рис. 13-20 Предложение WHERE EXISTS в окне Изменить набор данных
  5. Нажмите кнопку Просмотр результатов, проверьте правильность результатов и нажмите кнопку ОК.
  6. Просмотрите отчет. Пролистайте его до конца для просмотра всех данных. В отчете больше нет клиентов с отсутствующей информацией о заказах и платежах.

Задача 12: Разместите вложенные отчеты друг напротив друга

Убедившись в том, что вложенные отчеты возвращают правильные данные, можно перейти к повышению наглядности результатов. Две таблицы нельзя расположить по горизонтали, поскольку проектировщик отчетов BIRT создает элементы на уровне блоков, и поэтому каждый элемент должен быть расположен в отдельной строке. Для того чтобы расположить таблицы по горизонтали, нужно вставить их в сетку. Сетки очень удобны для управления расположением элементов.

  1. Откройте вкладку Макет для возврата в редактор макета.
  2. Перенесите элемент сетки из палитры в строку данных над таблицей заказов. В окне Вставить сетку нужно будет указать количество строк и столбцов сетки.
  3. В поле Число столбцов укажите значение 2, а в поле Число строк - значение 1. Затем нажмите кнопку ОК.
  4. В макет будет добавлена сетка, состоящая из двух столбцов и одной строки.
  5. Переместите таблицу заказов в первую ячейку сетки. Для этого нужно открыть вкладку Таблица в нижнем левом углу сетки, а затем перенести таблицу в ячейку сетки с помощью мыши.
  6. Переместите таблицу платежей во вторую ячейку сетки. Макет отчета должен выглядеть так, как показано на рис. 13-21.
  7. Рис. 13-21 Вложенные отчеты в сетке макета отчета
  8. Просмотрите отчет. Отчет должен выглядеть так, как показано на рис. 13-22.
  9. Рис. 13-22 Отчет с вложенными отчетами, упорядоченными по горизонтали

Задача 13: Отформатируйте отчет

После проверки правильности данных и макета отчета можно приступить к оптимизации оформления отчета. Для этого нужно выполнить следующие задачи:

Выделите имена клиентов

  1. Откройте вкладку Макет для возврата в редактор макета.
  2. В редакторе макета выберите элемент данных [CUSTOMERNAME].
  3. Откройте вкладку Свойства редактора свойств.
  4. Выберите категорию Общие в списке свойств. В редакторе свойств будут показаны общие параметры форматирования элемента данных.
  5. В поле Размер выберите значение Большой для увеличения размера шрифта при выводе элемента. Размер текста будет увеличен.
  6. Нажмите кнопку Ж для выделения текста полужирным шрифтом. Текст станет полужирным.

Измените заголовки столбцов

При вставке поля из набора данных в таблицу проектировщик отчетов BIRT автоматически вставляет метку с именем поля набора данных в заголовок столбца. Зачастую имена полей наборов данных недостаточно информативны в качестве имен столбцов, и имена столбцов желательно изменить.

  1. Дважды щелкните на заголовке первого столбца в таблице заказов. Текст будет выделен.
  2. Замените ORDERNUMBER следующим текстом и нажмите Enter:
  3. Номер заказа 
    
  4. Повторите предыдущие шаги и измените заголовки остальных столбцов:
  5. Order Date 
    Payment Date 
    Check Number 
    Amount 
    
    Макет отчета должен выглядеть так, как показано на рис. 13-23.

    Рис. 13-23 Отчет с измененными заголовками столбцов
  6. Просмотрите отчет. Отчет должен выглядеть так, как показано на рис. 13-24.
  7. Рис. 13-24 Отчет с измененными заголовками столбцов

Измените формат даты

По умолчанию проектировщик отчетов BIRT вставляет значения даты в формате, соответствующем локали системы. При этом проектировщик отчетов BIRT поддерживает много различных форматов даты, которыми можно пользоваться, если стандартный формат даты не подходит. При выполнении данной процедуры создается стиль, изменяющий формат значений ORDERDATE и PAYMENTDATE с Jun 3, 2005 12:00 AM на 6/3/05.

  1. Откройте вкладку Макет для возврата в редактор макета.
  2. Выберите элемент данных [ORDERDATE].
  3. Выберите Элемент->Создать стиль в главном меню. Появится окно Создать стиль со списком свойств стиля, показанное на рис. 13-25.
  4. Рис. 13-25 Создание стиля
  5. Укажите следующие свойства пользовательского стиля:
  6. Date_data 
    
  7. Выберите Формат даты и времени в списке свойств стиля в левой части окна.
  8. Выберите формат м/д/гг в выпадающем списке. Значения в выпадающем списке показаны в виде примеров форматирования текущей даты.
  9. Нажмите кнопку OK.
  10. Стиль Date_data будет применен к элементу данных [ORDERDATE], как показано на рис. 13-26.

    Рис. 13-26 Стиль Date_data, примененный к элементу данных
  11. Примените стиль Date_data к элементу данных, соответствующему дате платежа.
    1. Выберите элемент данных [PAYMENTDATE], как показано на рис. 13-27.
    2. Рис. 13-27 Элемент [PAYMENTDATE]
    3. Щелкните правой кнопкой мыши на выбранном элементе, а затем выберите Стиль->Применить стиль->Date_data.
  12. Просмотрите отчет. Формат значений даты должен измениться с Jun 3, 2005 12:00 AM на 6/3/05.

Измените формат чисел

По умолчанию проектировщик отчетов BIRT вставляет числовые значения в формате, соответствующем локали системы. При этом проектировщик отчетов BIRT поддерживает много различных форматов чисел, которыми можно пользоваться, если стандартный формат не подходит. При выполнении данной процедуры создается стиль, изменяющий формат числовых значений с 48425.69 на $48,425.69.

  1. Откройте вкладку Макет для возврата в редактор макета.
  2. Выберите элемент данных [AMOUNT] в таблице платежей.
  3. Выберите Элемент->Создать стиль в главном меню. Появится окно Создать стиль со списком общих свойств стиля.
  4. Укажите следующие свойства пользовательского стиля:
  5. Currency_data 
    
  6. Выберите Формат чисел в списке свойств стиля в левой части окна.
  7. Укажите следующие атрибуты формата, как показано на рис. 13-28:
    • В поле Форматировать числа как выберите значение Денежная единица.
    • В поле Число знаков после запятой укажите значение 2.
    • Отметьте опцию Разделитель тысяч.
    • В поле Символ выберите значение $.
    • Оставьте без изменения значения других опций, предложенные по умолчанию.
    • Рис. 13-28 Свойства форматирования чисел
  8. Нажмите кнопку ОК. Стиль Currency_data будет применен к элементу данных [AMOUNT], как указано в свойстве Стиль элемента в редакторе свойств.
  9. Просмотрите отчет. Числовые значения будут показаны в виде денежных единиц, как показано на рис. 13-29.
  10. Рис. 13-29 Формат денежных единиц в отчете

Увеличьте расстояние между элементами по вертикали

В ходе данной процедуры будет увеличено расстояние между именами клиентов и линиями над и под ними. Отступ по вертикали можно изменять несколькими способами:

Сетки - очень удобный и надежный инструмент форматирования объектов. Разные браузеры по-разному интерпретируют отступы и поля. В данной процедуре применяется третий метод.

  1. Откройте вкладку Макет для возврата в редактор макета.
  2. Поместите элемент данных [CUSTOMERNAME] в сетку, в которой находятся две таблицы:
    1. Выберите сетку. Наведите указатель мыши на нижний левый угол сетки и дождитесь появления вкладки Сетка, а затем щелкните на этой вкладке. Над выбранной сеткой и слева от нее будут показаны направляющие ячейки.
    2. В редакторе макета будут показаны границы отдельных элементов данных, сеток, таблиц и ячеек, и иногда довольно сложно определить, где находится элемент. Для повышения наглядности контейнеров и содержащихся в них элементов можно включить режим структуры для просмотра иерархического дерева элементов. Кроме того, в режиме структуры удобнее выделять элементы, которые сложно выделить в обычном режиме. Например, при работе с сеткой довольно сложно выделить сетку вместо находящейся в ней таблицы. Для переключения в режим структуры нужно выбрать опцию Окно->Показать представление->Структура.
    3. Щелкните правой кнопкой мыши на ячейке над первым столбцом и выберите опции Вставить->Строку->Выше, как показано на рис. 13-30.
    4. Рис. 13-30 Вставка строки
      Над выделенной строкой появится новая строка.
    5. Перенесите элемент [CUSTOMERNAME] в первую ячейку новой строки сетки, как показано на рис. 13-31.
    6. Рис. 13-31 Элемент данных в новой строке
  3. Вставьте новые строки сетки над и под строкой с элементом данных [CUSTOMERNAME] с помощью процедуры, описанной выше.
  4. Выберите сетку, а затем выберите ее первую строку, как показано на рис. 13-32.
  5. Рис. 13-32 Выбор первой строки
  6. В разделе Общие редактора свойств установите высоту строки в 0,2 дюйма, как показано на рис. 13-33.
  7. Рис. 13-33 Изменение высоты строки
  8. Выберите третью строку в сетке и установите ее высоту равной 0,1 дюйма. Отчет должен выглядеть так, как показано на рис. 13-34.
  9. Рис. 13-34 Отчет с измененной высотой строк
  10. Просмотрите отчет. Над именем клиента и под ним будет больше места. Отчет будет выглядеть так, как показано на рис. 13-35.
  11. Рис. 13-35 Отчет с увеличенными отступами

Увеличьте расстояние между таблицами заказов и платежей по горизонтали

В ходе данной процедуры будет увеличено расстояние между таблицами заказов и платежей. Как и в случае с расстоянием по вертикали, расстояние между элементами по горизонтали можно увеличить несколькими способами:

Сетки - очень удобный и надежный инструмент форматирования объектов. Разные браузеры по-разному интерпретируют отступы и поля. В данной процедуре применяется третий метод.

  1. Откройте вкладку Макет для возврата в редактор макета.
  2. Выберите сетку. Наведите указатель мыши на нижний левый угол сетки и дождитесь появления вкладки Сетка, а затем щелкните на этой вкладке. Над выбранной сеткой и слева от нее будут показаны направляющие ячейки.
  3. Щелкните правой кнопкой мыши на ячейке над первым столбцом и выберите опции Вставить->Столбец справа, как показано на рис. 13-36.
  4. Рис. 13-36 Вставка столбца
    Между первым и третьим столбцами появится новый столбец. По умолчанию проектировщик отчетов BIRT создает столбцы одинаковой ширины.
  5. Выберите только что вставленный столбец и установите его ширину равной 0,4 дюйма, как показано на рис. 13-37.
  6. Рис. 13-37 Изменение ширины столбца
    Ширина второго столбца будет уменьшена.
  7. Просмотрите отчет.
  8. Расстояние между таблицами заказов и платежей станет больше, как показано на рис. 13-38.

    Рис. 13-38 Отчет с увеличенным расстоянием между таблицами

Добавьте рамки вокруг таблиц

В ходе выполнения данной процедуры для повышения наглядности отчета создаются рамки вокруг таблиц заказов и платежей.

  1. Откройте вкладку Макет для возврата в редактор макета.
  2. Выберите таблицу orders. Наведите указатель мыши на нижний левый угол таблицы и дождитесь появления вкладки Таблица, а затем щелкните на этой вкладке. Над выбранной таблицей и слева от нее будут показаны направляющие ячейки.
  3. Выберите опцию Рамка в редакторе свойств и задайте свойства рамки:
    • Выберите сплошную линию в поле Стиль.
    • Нажмите все кнопки для создания полной рамки вокруг таблицы, как показано на рис. 13-39.
    • Рис. 13-39 Создание рамки вокруг таблицы
  4. Повторите предыдущие шаги для создания рамки вокруг таблицы платежей.
  5. Просмотрите отчет. Отчет должен выглядеть так, как показано на рис. 13-40.
  6. Рис. 13-40 Отчет с рамками вокруг таблиц

Увеличьте отступ от рамки до содержимого таблиц

Верхняя и левая стороны рамок расположены слишком близко к содержимому таблиц. В ходе данной процедуры будет увеличено расстояние от левой и верхней сторон рамок до содержимого таблиц.

  1. Откройте вкладку Макет для возврата в редактор макета.
  2. Выберите первую ячейку в строке заголовка таблицы заказов. Обратите внимание на то, что нужно выбрать именно ячейку, как показано на рис. 13-41, а не элемент данных в ней.
  3. Рис. 13-41 Выбор ячейки
    В названии окна в редакторе свойств будет показано имя выбранного элемента. Убедитесь в том, что показан следующий текст:
    Редактор свойств - Ячейка 
    
  4. Откройте группу свойств Отступ и задайте отступ сверху и слева в размере 6 пунктов.
  5. Соответствующие свойства показаны на рис. 13-42.

    Рис. 13-42 Изменение отступа для ячейки в редакторе свойств
    В редакторе макета будет увеличен отступ ячейки сверху и слева, как показано на рис. 13-43.

    Рис. 13-43 Отступ ячейки в макете отчета
  6. Выберите ячейку рядом с только что отформатированной ячейкой и установите для нее отступ слева и сверху в размере 6 пунктов.
  7. Выберите две ячейки в строке данных и установите для них отступ слева в размере 6 пунктов.
  8. Выберите аналогичные ячейки в таблице платежей и установите для них те же свойства, что для ячеек таблицы заказов.
  9. Просмотрите отчет. Отчет будет выглядеть так, как показано на рис. 13-44.
  10. Рис. 13-44 Отчет с увеличенным расстоянием между таблицами


(c) Copyright Actuate Corporation 2006

Предыдущий разделСледующий раздел