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


Учебник 2: Группировка данных отчета

В данном учебнике приведены инструкции по группировке данных о клиентах по размеру кредита. Сначала нужно создать отчет в соответствии с инструкциями, приведенными в разделе Учебник 1: "создание простого списка". В ходе выполнения этого упражнения создается отчет, в котором клиенты отсортированы по алфавиту. В данном отчете клиенты будут сгруппированы по размеру кредита в блоки по 50000 долларов, то есть от 0 до 49999, от 50000 до 99999, от 100000 до 149999 и т.д.

Перед тем как приступить к данному упражнению, нужно выполнить инструкции из первого учебника.

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

Задача 1: Откройте проект отчета

При выполнении первого упражнения вы создали проект отчета Customers.rptdesign в папке Мои отчеты. Выполните следующие действия для того, чтобы открыть проект отчета Customers.rptdesign:

Файл будет открыт в редакторе макета, как показано на рис. 8-1.

Рис. 8-1 Проект отчета о клиентах в редакторе макета

Задача 2: Сохраните отчет в новом файле

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

  1. Выберите Файл->Сохранить как. В окне Сохранить как будут показаны текущее имя и расположение файла.
  2. измените имя файла с Customers.rptdesign на Customers_grouped.rptdesign и нажмите кнопку Готово. Проектировщик отчетов BIRT создаст копию файла Customers.rptdesign. Новый файл будет показан в редакторе макета.

Задача 3: Добавьте поле размера кредита в набор данных

Для того чтобы в отчете были показаны данные о размере кредита, нужно добавить в набор данных поле CREDITLIMIT.

  1. Откройте меню данных.
  2. Разверните список наборов данных и дважды щелкните на наборе данных Customers. В окне Изменить набор данных будет показан запрос SQL для набора данных Customers.
  3. Добавьте запятую (,) после поля phone.
  4. В следующей строке введите следующий текст:
  5. creditLimit 
    
    Измененный запрос должен выглядеть так, как показано на рис. 8-2.

    Рис. 8-2 Запрос с добавленным полем creditLimit
  6. Нажмите кнопку Просмотр результатов и убедитесь в том, что запрос возвращает строки с информацией о размере кредита.
  7. Нажмите кнопку ОК для сохранения набора данных.

Задача 4: Добавьте поле размера кредита в отчет

В ходе этой процедуры в таблицу будет добавлено поле размера кредита.

  1. Выберите таблицу в редакторе макета. Над таблицей и слева от нее будут показаны направляющие ячейки.
  2. Щелкните правой кнопкой мыши на ячейке над первым столбцом и выберите опции Вставить->Столбец слева, как показано на рис. 8-3.
  3. Рис. 8-3 Вставка столбца слева от существующего столбца
    Появится новый столбец.
  4. В меню данных разверните наборы данных, а затем набор данных Customers. В наборе данных Customers будет показан список полей, указанных в запросе.
  5. Перенесите поле CREDITLIMIT из меню данных в ячейку строки рядом с [CUSTOMERNAME].
  6. Проектировщик отчетов BIRT создает именованный столбец, привязанный к полю набора данных. Эта привязка столбцов будет показана в окне Выбрать привязку данных.
  7. Нажмите кнопку ОК, чтобы принять привязку столбцов, предложенную по умолчанию.
  8. В редакторе макета будет показана таблица с добавленным полем. Помимо этого элемента будет показан элемент метки, который автоматически создается для строки заголовка. Элемент метки выступает в роли заголовка столбца и представляет собой имя поля. Отчет должен выглядеть так, как показано на рис. 8-4.

    Рис. 8-4 Отчет в редакторе макета после добавления поля размера кредита
  9. Измените метку CREDITLIMIT на Credit Limit.
  10. Просмотрите отчет. Отчет должен выглядеть так, как показано на рис. 8-5.
  11. Рис. 8-5 Просмотр отчета с добавленным полем размера кредита
    У некоторых клиентов размер кредита равен 0. Это новые клиенты, для которых еще не был установлен размер кредита.

Задача 5: Сгруппируйте данные о клиентах по размеру кредита

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

  1. Откройте вкладку Макет для возврата в редактор макета.
  2. Щелкните правой кнопкой мыши на таблице и выберите Вставить группу->Выше. Появится окно Создать группу со списком свойств группы, показанное на рис. 8-6.
  3. Рис. 8-6 Создание группы
  4. Для группировки клиентов по размеру кредита с шагом в 50000 выполните следующие действия:
    1. В поле Имя укажите следующий текст в качестве имени группы:
    2. credit_group 
      
    3. В поле Группировать по выберите значение CREDITLIMIT.
    4. В поле Интервал выберите значение Интервал в выпадающем списке.
    5. В поле Диапазон укажите значение 50000.
    6. Оставьте без изменения значения других опций, предложенные по умолчанию.
    7. Нажмите кнопку OK.
    В таблицу будут добавлены верхние и нижние колонтитулы групп, как показано на рис. 8-7. Кроме того, будет показан элемент данных, автоматически добавленный редактором макета в строку заголовка группы. Этот элемент данных выступает в роли заголовка группы, и при создании отчета в нем будет указано первое значение размера кредита в пределах группы.

    Рис. 8-7 Колонтитулы групп в проекте отчета
  5. Выберите элемент данных [CREDITLIMIT] в верхнем колонтитуле группы. Не выберите элемент [CREDITLIMIT] в строке данных по ошибке.
  6. В редакторе свойств выберите раздел Общие и отметьте опцию Ж для вывода верхнего колонтитула полужирным шрифтом.
  7. Просмотрите отчет. Пролистайте его до конца для просмотра всех данных. Как показано на рис. 8-8, в отчете будут присутствовать четыре группы клиентов по размеру кредита. В начале каждой группы будет указано минимальное значение размера кредита для данной группы: 0, 61100, 113000 и 227600. Эти числа соответствуют минимальному размеру кредита в каждой группе. В каждой группе клиенты отсортированы по алфавиту.
  8. Рис. 8-8 Просмотр отчета - одна из четырех групп клиентов по размеру кредита

Задача 6: Добавьте информацию о диапазоне размеров кредита в заголовок группы

Отчет будет гораздо информативнее, если в заголовках групп вместо первых значений размера кредита будет показан диапазон значений, как указано ниже:

0 - 49999 
50000 - 99999 
100000 - 149999 

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

  1. Откройте вкладку Макет для возврата в редактор макета.
  2. Выберите таблицу, а затем выберите опцию Привязка в редакторе свойств.
  3. Создайте привязку столбцов:
    1. Нажмите кнопку Добавить.
    2. Введите следующее выражение в редакторе выражений:
    3. for(i=50000; i<300000; i+=50000){ 
      if( row["CREDITLIMIT"] < i ){ 
        rangeStart = i-50000; 
        rangeEnd = i-1; 
        break; 
      } 
      } 
      displayString=rangeStart + " - " + rangeEnd; 
      
    4. Нажмите кнопку OK. На странице привязок редактора свойств будет показана новая привязка с выделенным именем столбца.
    5. Укажите вместо имени Новая привязка следующее значение:
    6. CREDIT_GROUP_HEADER 
      
  4. Обновите элемент CREDITLIMIT в заголовке группы для того, чтобы с ним применялась новая привязка. Для этого нужно дважды щелкнуть на элементе данных и выбрать значение CREDIT_GROUP_HEADER, а затем нажать кнопку OK.
  5. Просмотрите отчет. В заголовках групп будут показаны диапазоны размеров кредита. На рис. 8-9 показан заголовок группы 50000 - 99999.
  6. Рис. 8-9 Просмотр отчета с диапазонами размеров кредита

Задача 7: Добавьте сводные данные

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

  1. Откройте вкладку Макет для возврата в редактор макета.
  2. Выведите количество клиентов в каждой группе:
    1. Перенесите элемент данных из палитры в первую ячейку нижнего колонтитула группы. Элементы колонтитула группы находятся в конце группы.
    2. В окне Выбрать привязку данных создайте привязку столбцов:
      1. В новой строке введите следующее значение в поле Имя:
      2. GROUP_CUSTOMER_COUNT 
        
      3. Оставьте без изменения тип данных по умолчанию (Любой).
      4. Введите следующее выражение в редакторе выражений:
      5. "Customers: " + Total.count() 
        
        Функция Total.count( ) возвращает количество строк.
      6. Оставьте без изменения значение по умолчанию в поле Совокупные данные по (credit_group). Данное значение указывает, что функция Total.count( ) возвращает количество строк в каждой группе клиентов.
      7. Выберите новую привязку столбцов и нажмите кнопку ОК. С элементом данных будет применяться выбранная привязка.
    3. Просмотрите отчет. В конце каждой группы будет приведено количество клиентов в ней, как показано на рис. 8-10.
    4. Рис. 8-10 Отчет с информацией о количестве строк в каждой группе
  3. Откройте вкладку Макет для возврата в редактор макета.
  4. Выведите общее количество клиентов:
    1. Выберите таблицу.
    2. Над таблицей и слева от нее будут показаны направляющие ячейки.
    3. Щелкните правой кнопкой мыши на направляющей ячейке слева от первой строки, Таблица - Заголовок, и выберите опцию Вставить->Строку->Сверху.
    4. Над строкой с заголовками столбцов появится новая строка заголовка таблицы. Она будет цветной, поскольку она унаследует свойства строки после нее.
    5. Выберите новую строку и измените ее цвет фона на белый в редакторе свойств.
    6. Перенесите элемент данных из палитры в первую ячейку новой строки заголовка таблицы. Элементы заголовка таблицы показаны в начале раздела.
    7. В окне Выбрать привязку данных создайте привязку столбцов:
      1. В новой строке введите следующее значение в поле Имя:
      2. TOTAL_CUSTOMER_COUNT 
        
      3. Оставьте без изменения тип данных по умолчанию (Любой).
      4. Введите следующее выражение в редакторе выражений:
      5. "Number of customers: " + Total.count() 
        
      6. Оставьте без изменения значение по умолчанию в поле Совокупные данные по (ВСЕ). Данное значение указывает, что функция Total.count( ) возвращает количество строк во всей таблице.
      7. Выберите новую привязку столбцов и нажмите кнопку ОК. С элементом данных будет применяться выбранная привязка.
    Отчет должен выглядеть так, как показано на рис. 8-11.

    Рис. 8-11 Отчет с информацией об общем количестве клиентов
  5. Просмотрите отчет. В начале таблицы будет приведено количество клиентов в ней, как показано на рис. 8-12.
  6. Рис. 8-12 Отчет с информацией об общем количестве клиентов

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

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

Удалите данные о размере кредита из строк данных

Для проверки правильности группировки данных полезно выводить данные о размере кредита для каждого клиента. Теперь, когда вы убедились, что данные группируются правильно, можно удалить из отчета сведения о размере кредита отдельных клиентов.

  1. Откройте вкладку Макет для возврата в редактор макета.
  2. Удалите элемент данных [CREDITLIMIT] из строки данных.
  3. Просмотрите отчет. Он должен выглядеть так, как показано на рис. 8-13.
  4. Рис. 8-13 Предварительный просмотр отчета без информации о размере кредита в каждой строке

Настройте вывод заголовка в первой строке каждой группы

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

  1. Откройте вкладку Макет для возврата в редактор макета.
  2. Выберите ячейку, которая содержит заголовок группы, как показано на рис. 8-14. Обратите внимание на то, что нужно выбрать ячейку, а не элемент в ячейке.
  3. Рис. 8-14 Выбранная ячейка заголовка группы
  4. В разделе Общие редактора свойств выберите опцию Поместить в строку данных. В проекте отчета заголовки групп по-прежнему будут находиться над строками данных, поскольку технически этот элемент все равно относится к строке заголовка отчета.
  5. В разделе Отступ редактора свойств укажите 12 пунктов в поле Отступ-Сверху. Это позволит более точно выровнять заголовки групп со строками данных. Если вы помните, в первом упражнении вы установили отступ в размере 12 пунктов для ячеек данных.
  6. Просмотрите отчет. Заголовки групп будут показаны в первой строке каждой группы, как проиллюстрировано на рис. 8-15.
  7. Рис. 8-15 Просмотр отчета с заголовками групп в строках данных

Отделите группы линиями друг от друга

Для повышения наглядности отчета можно отделить группы линиями друг от друга.

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

Задача 9: Просмотр отчета в программе просмотра отчетов BIRT

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

  1. Выберите Файл->Просмотр отчета в программе просмотра Web-страниц.
  2. Отчет будет показан в программе просмотра отчетов.

  3. Нажмите кнопку Оглавление (левую кнопку в верхней части окна) для просмотра оглавления.
  4. В оглавлении указаны первые значения в каждой из четырех групп размеров кредита. Выбрав значение, можно перейти к соответствующему разделу отчета. Например, если вы выберете значение 61100, будут показаны строки с размером кредита от 50000 до 99999 (см. рис. 8-17).

    Рис. 8-17 Выберите значение в оглавлении для просмотра соответствующей группы

Задача 10: Добавьте информацию о диапазоне размеров кредита в оглавление

Оглавление станет нагляднее, если вместо первых значений в нем будут показаны диапазоны размеров кредита для групп. Для этого нужно задать то же самое выражение JavaScript, которое использовалось ранее для вывода диапазонов размеров (0 - 49999, 50000 - 99999 и т.д.) в заголовках групп.

  1. Вернитесь в окно проектировщика отчетов BIRT.
  2. Выберите таблицу в редакторе макета, а затем откройте вкладку Группы в редакторе свойств.
  3. Дважды щелкните на значении credit_group в списке групп.
  4. Появится окно Изменить группу со списком свойств группы. По умолчанию в поле Выражение элемента оглавления указано поле группировки: row["CREDITLIMIT"].
  5. Нажмите кнопку с многоточием (...) и замените в редакторе выражений значение row["CREDITLIMIT"] значением, приведенным ниже. Это то же самое выражение привязки столбцов, которое было указано для элементов данных в заголовках групп. Вместо того чтобы вводить его заново, проще скопировать его из элемента данных и вставить в это поле.
  6. for(i=50000; i<300000; i+=50000){ 
    if( row["CREDITLIMIT"] < i ){ 
      rangeStart = i-50000; 
      rangeEnd = i-1; 
      break; 
    } 
    } 
    displayString=rangeStart + " - " + rangeEnd; 
    
  7. Нажмите кнопку OK.
  8. Просмотрите отчет в программе просмотра отчетов и проверьте оглавление.
  9. В оглавлении теперь будут приведены диапазоны размеров кредита, как показано на рис. 8-18.

    Рис. 8-18 Обновленное оглавление


(c) Copyright Actuate Corporation 2006

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