Спонсор: Microsoft
Опубликован: 22.11.2010 | Доступ: свободный | Студентов: 4103 / 1007 | Оценка: 4.44 / 4.34 | Длительность: 09:23:00
Лекция 12:

Отчеты. Объекты для работы с отчетами

Аннотация: Содержит описание отчётов и объектов для работы с ними.

Цели:

  1. Изучить порядок создания отчетов
  2. Рассмотреть объекты для работы с отчетами

Отчёты

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

  1. Отчёты содержат только объекты для отображения информации (Например, подписи, рисунки, текстовые поля, геометрические фигуры и линии), но не содержат объекты для управления системой (Например, кнопки или выпадающие списки);
  2. В отчётах сразу же выводятся все записи из источника данных (таблицы, запроса или фильтра) и вывод производится на листы;
  3. Отчёт нельзя создать без наличия в системе принтера, так как настройки внешнего вида отчёта берутся из настроек драйвера принтера;
  4. В отличие от форм отчёты состоят из пяти разделов:
    • Заголовок - верхняя часть первого листа отчёта. В заголовке располагают название отчёта и некоторую служебную информацию. Например, герб и юридический адрес фирмы или имя автора отчёта.
    • Примечание - нижняя часть последнего листа отчёта. В примечание помещают итоговую информацию по отчёту (Например, общий объём продаж, всех сделок представленных в отчёте) и место для печати и подписи руководителя.
    • Верхний колонтитул - верхняя часть каждого листа отчёта. В данный раздел помещают номера листов отчёта и дополнительную служебную информацию. Например, дату и время создания отчёта.
    • Нижний колонтитул - нижняя часть каждого листа отчёта. В данном разделе располагается та же информация что и в верхнем колонтитуле, но не дублирует информацию из верхнего колонтитула.
    • Область данных - средняя часть каждого листа отчёта.

Замечание: Существует два вида дизайна отчетов:

  • Ленточный дизайн - выводит информацию по каждой записи отдельно. То есть для каждого поля каждой записи отображается название поля и его значение;
  • Табличный дизайн - выводит информацию в виде таблицы. То есть в заголовок отчёта помещают названия полей, а в области данных под названием полей отображаются их значения.

Объекты для работы с отчётами

Работа с отчётами в Visual Basic2008 состоит из нескольких этапов:

  1. Создаётся пустой отчёт;
  2. В отчёт помещают объекты для отображения информации;
  3. Создаётся форма для отображения отчёта;
  4. На форму помещают объект Reportviewer, отображающий отчёты;
  5. К объекту Reportvewer подключают созданный ранее отчёт.

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

Для создания пустого отчёта в оконном меню необходимо выбрать пункт "Project\Add New Item…" и в появившемся окне в разделе "Reporting" дважды щёлкнуть ЛКМ по пункту "Report" появится вкладка с пустым отчётом. Теперь в отчёт необходимо добавить объекты для отображения данных.

Замечание: Работа с объектами в отчёте полностью аналогична работе с объектами на форме. То есть мы можем перетаскивать поля в отчёт из окна "Data Sources" либо можем создать объекты в отчёте вручную, а затем подключить их к полям через панель свойств.

Замечание: В отчётах все объекты делятся на объекты контейнеры, объекты для отображения данных и объекты оформления.

  • Объекты контейнеры - это объекты, содержащие объекты для отображения данных и определяющие дизайн отчёта.
  • Объекты для отображения данных - это объекты, отображающие значения полей источника данных или дополнительную служебную информацию.
  • Объекты оформления - объекты, применяемые только для оформления отчёта.

Рассмотрим объекты для отображения данных, к ним относятся:

  • TextBox - текстовое поле ввода, предназначено для отображения значений полей и любой текстовой информации. Если объект TextBox используется для отображения информации из источника данных, и он находится вне объекта контейнера, то в нём будет отображено значение выбранного поля только первой записи из источника данных;
  • Image - объект отображающий содержимое полей с графической информацией либо отображающий рисунки (графические файлы);
  • Chart - объект, отображающий график или гистограмму построенную по информации из источника данных.

Теперь рассмотрим объекты контейнеры. В отчёт можно поместить следующие объекты контейнеры:

  • Table - таблица выводит информацию в виде таблицы с ограниченным количеством столбцов и неограниченным количеством строк. То есть в количество строк в таблице зависит от объёма выводимых данных;
  • Matrix - таблица выводит информацию в виде таблицы с неограниченным количеством столбцов и строк. То есть в количество строк и столбцов в таблице зависит от объёма выводимых данных;
  • List - объект выводящий информацию в виде списков;
  • Subreport - объект содержащий внутри себя дополнительный отчёт, созданный ранее.

Наконец, рассмотрим объекты оформления. К ним относятся:

  • Line - отображает линию;
  • Rectangle - отображает прямоугольник, используется для группировки полей.

Замечание: Работа со строками, столбцами или ячейками объектов Table, Matrix и List осуществляется как в программе "Microsoft Excel".

Замечание: В ячейках объектов Table, Matrix и List можно печатать текст, как и в ячейках таблиц "Microsoft Excel". Чтобы поместить в ячейку значение поля его можно перетащить из окна "Data Sources" в ячейку, либо в ячейке написать код, имеющий следующий синтаксис: = Fields!<Имя поля>.Value, где Имя поля - это имя отображаемого поля. Аналогично можно производить вычисления в ячейках.

Пример: В ячейке отобразить средний бал трёх полей: Оценка1, Оценка2 и Оценка3. для решения этой задачи в ячейке необходимо набрать код:

= (Fields!Оценка1.Value+Fields!Оценка2.Value+ Fields!Оценка3.Value)/3

На этом мы заканчиваем рассмотрение отчётов. Дополнительную информацию можно найти в "лабораторной работе №12" .

Татьяна Казакова
Татьяна Казакова
Олег Андриевский
Олег Андриевский

Также весьма интересен фильтр данных, вводимый вручную:

Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
        If Trim(TextBox1.Text) = "" Then
            Me.СтудентыBindingSource.RemoveFilter()
        Else
            Me.СтудентыBindingSource.Filter = String.Format("{0} LIKE '{1}%'", "ФИО", Trim(TextBox1.Text))
        End If
    End Sub

Василий Лазорик
Василий Лазорик
Украина, Украина