Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практикум_ИСРКЭС_Сусленкова.doc
Скачиваний:
273
Добавлен:
16.03.2015
Размер:
3.35 Mб
Скачать

Лабораторная работа № 10 - Создание отчетных форм для баз данных средствамиMsVisualStudio 2008

Цель работы: Познакомиться с возможностями по созданию отчетов, предоставляемыми MS Visual Studio.

Задание №1. В среде MS Visual Studio необходимо создать Windows-приложение, которое позволит выводить и печатать прайс-лист организации, представленного на рисунке 26. Отчет необходимо создать средствами MS Report Viewer.

Рисунок 26 – Отчет, созданный средствами MS Report

Ход работы:

  1. Добавьте в Ваш проект новый источник данных, содержащий все сведения из таблицы «Модель», используя технологию 19. Обратите внимание, что в окне SolutionExplorer появился новый элемент MMM_ВашеФИО­_DataSet.xsd

  2. Добавьте в проект конструктор отчета, для этого:

  • В окне SolutionExplorer вызовите контекстное меню решения и выберите Add New item  закладка Reporting  Report Кнопка Add

  • Обратите внимание, что в окне SolutionExplorer появился новый элемент Report1.rdlc

  1. Добавьте в конструктор таблицу, для этого:

  • В панели инструментов конструктора отчета щелкните элемент «Таблица», а затем щелкните в области конструктора отчета.

  • В конструкторе отчетов появится таблица с тремя столбцами, занимающими всю ширину отчета.

  • В первом столбце щелкните маркер правой кнопкой мыши и выберите команду «Вставить столбец слева».

  1. Добавьте данные в таблицу конструктора отчетов, для этого:

  • В окне «Data Source», найдите источник данных, созданный в пункте 2, разверните узел таблицы Модель, чтобы показать поля данных. Затем выполните следующие шаги:

    • Перетащите поле Код модели из окна DataSource во вторую строку (строку детализации) первого столбца в таблице. При этом выполняются два действия. Во-первых, в ячейку сведений помещается текст =Fields!КодМодели.Value. Во-вторых, заголовок столбца автоматически помещается в первую строку, непосредственно над выражением поля.

    • Аналогично перетащите поля название модели, описание модели, цена из окна «Источники данных» в строку детализации остальных столбцов в таблице.

  1. Добавьте в Ваш проект новую форму. Добавьте обработчик для открытия только что добавленной формы при выборе в главном меню проекта пункта ОтчетыПрайс-лист

  2. Добавьте элемент управления ReportViewer на форму, для этого:

  • Перетащите элемент управления ReportViewer из панели инструментов на форму.

  • Откройте панель смарт-тегов в элементе управления ReportViewer, щелкнув треугольник в правом верхнем углу. Щелкните раскрывающийся список «Выбор отчета» и выберите файл Report1.rdlc

  • На панели смарт-тегов щелкните элемент «Закрепление в родительском контейнере (Dock in Parent Container)».

  1. Запустите проект и просмотрите отчет на форме.

Задание №2: В среде MS Visual Studio необходимо создать Windows-приложение, которое позволит формировать и передавать в MS Excel отчет по заказам вида, изображенного на рисунке 27. Отчет должен быть создан с использованием технологии COM.

Рисунок 27 –Отчет по заказам в MS Excel

Ход работы:

Указание: При выполнении данного задания используйте лекционный материал (Лекция – Отчеты в Visual Studio).

  1. Добавьте в главное меню Вашего проекта пункт Отчеты  Заказы

  2. Добавьте обработчик для открытия программы MS Excel при выборе только что добавленного пункта меню. Для этого

  • Подключите библиотеку для работы с MS Excel в меню Project (Проект)  команду Add Reference (Добавить ссылку) В открывшемся диалоговом окне Add Reference (Добавить ссылку) пе­рейдите на вкладку СОМ и выберите нужную библиотеку объектов. Например, для взаимодействия с Microsoft Excel требуется подключить библиотеку Microsoft Excel 11.0 Objecl Library. Цифра 11 обозначает установленную на компьютере версию Microsoft Excel (11 соответствует версии Microsoft Office 2003)  Нажмите кнопку ОК.

  • Добавьте в код ГЛАВНОЙ ФОРМЫ проекта ссылку на пространство имен, содержащие объек­ты продуктов Microsoft Office:

Imports Microsoft.Office.Interop

  • Откройте обработчик пункта меню Отчеты  Заказы и напишите код, запускающий программу MS Excel:

Dim ЗадайтеИмяПеременнойExcel As New Excel.Application

ИмяПеременнойExcel.Visible = True

  1. Запустите проект и убедитесь, что при выборе в главном меню Отчеты  Заказы открывается окно программы MS Excel.

  2. Допишите обработчик на пункт меню Отчеты  Заказы для добавления рабочей книги с рабочими листами в MS Excel. Для этого в обработчике:

  • Опишите и создайте переменную-экземпляр рабочей книги

Dim ЗадайтеИмяПеременнойРабочейКниги As Excel.Workbook

ИмяПеременнойРабочейКниги = ИмяПеременнойExcel.Workbooks.Add

  • Опишите переменную – экземпляр рабочего листа, присвойте ему значение первого листа рабочей книги, активизируйте его.

Dim ЗадайтеИмяПеременнойРабочегоЛиста As New Excel.Worksheet

ИмяПеременнойРабочегоЛиста = ИмяПеременнойРабочейКниги.Worksheets(1)

ИмяПеременнойРабочегоЛиста.Activate()

  • Выведите на рабочий лист заголовок отчета «заказы» и заголовки столбцов таблицы Заказы из вашей БД. (Номер заказа, Код магазина, Дата заказа). Зададим жирный крупный шрифт для заголовков. Для этого добавьте в код:

ИмяПеременнойРабочегоЛиста.Cells(1, 1) = "Заказы"

ИмяПеременнойРабочегоЛиста.Range("a2").Value = "Номер заказа"

ИмяПеременнойРабочегоЛиста.Range("b2").Value = "Код магазина"

ИмяПеременнойРабочегоЛиста.Range("c2").Value = "Дата заказа"

ИмяПеременнойРабочегоЛиста.Range("a1:c2").Font.Bold = True

ИмяПеременнойРабочегоЛиста.Range("a1:c2").Font.Size = 16

  • Запустите проект и убедитесь, что при выборе в главном меню Отчеты  Заказы открывается окно программы MS Excel с рабочей книгой и активным первым рабочим листом.

  1. Допишите обработчик на пункт меню Отчеты  Заказы для выгрузки информации из таблицы Заказы в MS Excel. Для этого в обработчике:

  • Создайте и опишите переменную – экземпляр класса Command или DataView, которая извлекает данные из таблицы Заказ. Для этого, например, для Command:

    • Добавьте в код ссылку на пространства имен для работы с объектами ADO: Imports System.Data

Imports System.Data.SqlClient

    • В коде формы, в продолжение процедуры-обработчика меню ОтчетыЗаказы, опишите переменную и создайте экземпляр объекта Connection и задайте ей параметры подключения, используя технологии 9,10.

    • Опишите переменную и создайте экземпляр объекта Cоmmand, используя технологию 11. Cоздаваемый вами объект Command должен быть подключен к ранее созданному объекту Connection.

    • Задайте для только что созданного объекта Command текст запроса на выборку всех данных (SELECT *) из таблицы Заказы, используя технологию 12.

    • Откройте подключение к БД, используя технологию 15.

    • Выполните запрос объекта Command, используя технологию 18.

  • Выведите данные из переменной-экземпляра класса Command в ячейки рабочего листа. Для этого:

    • Откройте цикл, который перебирает все записи из объекта DataRead и записывает их в нужные ячейки Excel, начиная с третьей строки (потому что первая строка – заголовок отчета, вторая строка – заголовок таблицы уже заполнены ранее)

Dim I As Integer

I=3

While ИмяОбъектаDataReader.Read

‘ Выводим номер заказа в ячейку из строки i, столбца 1

ws.Cells(i, 1) = ИмяОбъектаDataReader (“ЗадайтеИмяСтолбцаИзНабораДанных,КоторыйВамНеобходимоВывести")

‘ Выводим код магазина в ячейку из строки i, столбца 2

ws.Cells(i, 2) = ИмяОбъектаDataReader (“ЗадайтеИмяСтолбцаИзНабораДанных,КоторыйВамНеобходимоВывести")

‘ Выводим дату заказа в ячейку из строки i, столбца 3

ws.Cells(i, 3) = ИмяОбъектаDataReader (“ЗадайтеИмяСтолбцаИзНабораДанных,КоторыйВамНеобходимоВывести")

i=i+1

End While

ИмяОбъектаDataReader.Close()

  • Добавьте формулы для расчета итоговой суммы заказа на рабочий лист Excel. Для этого необходимо в ячейку из строки с номером i+1, столбца 2 добавить такую формулу Excel: =Сумм(диапазон, по которому считается сумма). В нашей таблице Заказы не предусмотрен столбец суммы, поэтому, просто для примера!! Посчитаем сумму по коду магазинов. Код магазина у нас начинается выводиться в ячейке B3, заканчивает в ячейке столбца B, строки I-2. Для этого добавьте в обработчик такой код:

ws.Cells(i+1, 1) = "Сумма кода магазинов"

ws.Cells(i+1, 2) = "=Сумм(B3:B" & Cstr(I-2) & “)”

  • Запустите проект и убедитесь, что при выборе в главном меню Отчеты  Заказы открывается в программе MS Excel отчет по данным из таблицы Заказы.

Задание №3: Самостоятельно измените созданное вами ранее приложение по отчету Заказов в Excel, добавив в него возможность просматривать информацию по Составу_заказов таким образом, чтобы приложение выглядело как изображение на рисунке 28.

Рисунок 28 –Отчет по составу заказов в MS Excel

Указание:

  • Создайте и опишите переменную – экземпляр класса Command или DataSet, которая извлекает данные из таблицы Состав_Заказа.

  • Выведите данные из переменной-экземпляра класса Command или DataSet в ячейки рабочего листа (Данные по Составу Заказа должны выводиться сразу после информации о заказе. Внимательно работайте с циклами)

  • Добавьте формулы для расчета в столбцы “Итого стоимость” (=цена+количество)