Лабораторная работа № 10 - Создание отчетных форм для баз данных средствами MS Visual Studio 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 3. Добавьте в конструктор таблицу, для этого: · В панели инструментов конструктора отчета щелкните элемент «Таблица», а затем щелкните в области конструктора отчета. · В конструкторе отчетов появится таблица с тремя столбцами, занимающими всю ширину отчета. · В первом столбце щелкните маркер правой кнопкой мыши и выберите команду «Вставить столбец слева». 4. Добавьте данные в таблицу конструктора отчетов, для этого: · В окне «Data Source», найдите источник данных, созданный в пункте 2, разверните узел таблицы Модель, чтобы показать поля данных. Затем выполните следующие шаги: o Перетащите поле Код модели из окна DataSource во вторую строку (строку детализации) первого столбца в таблице. При этом выполняются два действия. Во-первых, в ячейку сведений помещается текст =Fields! КодМодели.Value. Во-вторых, заголовок столбца автоматически помещается в первую строку, непосредственно над выражением поля. o Аналогично перетащите поля название модели, описание модели, цена из окна «Источники данных» в строку детализации остальных столбцов в таблице. 5. Добавьте в Ваш проект новую форму. Добавьте обработчик для открытия только что добавленной формы при выборе в главном меню проекта пункта Отчетыà Прайс-лист 6. Добавьте элемент управления ReportViewer на форму, для этого: · Перетащите элемент управления ReportViewer из панели инструментов на форму. · Откройте панель смарт-тегов в элементе управления ReportViewer, щелкнув треугольник в правом верхнем углу. Щелкните раскрывающийся список «Выбор отчета» и выберите файл Report1.rdlc · На панели смарт-тегов щелкните элемент «Закрепление в родительском контейнере (Dock in Parent Container)». 7. Запустите проект и просмотрите отчет на форме. Задание №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 3. Запустите проект и убедитесь, что при выборе в главном меню Отчеты à Заказы открывается окно программы MS Excel. 4. Допишите обработчик на пункт меню Отчеты à Заказы для добавления рабочей книги с рабочими листами в 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 с рабочей книгой и активным первым рабочим листом. 5. Допишите обработчик на пункт меню Отчеты à Заказы для выгрузки информации из таблицы Заказы в MS Excel. Для этого в обработчике: · Создайте и опишите переменную – экземпляр класса Command или DataView, которая извлекает данные из таблицы Заказ. Для этого, например, для Command: o Добавьте в код ссылку на пространства имен для работы с объектами ADO: Imports System.Data Imports System.Data.SqlClient o В коде формы, в продолжение процедуры-обработчика меню Отчетыà Заказы, опишите переменную и создайте экземпляр объекта Connection и задайте ей параметры подключения, используя технологии 9, 10. o Опишите переменную и создайте экземпляр объекта Cоmmand, используя технологию 11. Cоздаваемый вами объект Command должен быть подключен к ранее созданному объекту Connection. o Задайте для только что созданного объекта Command текст запроса на выборку всех данных (SELECT *) из таблицы Заказы, используя технологию 12. o Откройте подключение к БД, используя технологию 15. o Выполните запрос объекта Command, используя технологию 18. · Выведите данные из переменной-экземпляра класса Command в ячейки рабочего листа. Для этого: o Откройте цикл, который перебирает все записи из объекта 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 в ячейки рабочего листа (Данные по Составу Заказа должны выводиться сразу после информации о заказе. Внимательно работайте с циклами) · Добавьте формулы для расчета в столбцы “Итого стоимость” (=цена+количество) Лабораторная работа № 11 – Самостоятельная работа по автономным и подключенным объектам
Цель работы: Закрепить знания о подключенных и автономных объектах, полученные в процессе выполнения предыдущих лабораторных работ. Задание №1: В среде MS Visual Studio необходимо с помощью теоретического материала из лекций, теории по объекту TreeView (см. лабораторные работы 1 семестра по дереву) необходимо создать форму для работы с Готовой продукцией, изображенную на рисунке 29. 1. Форма должна открываться из основного меню проекта (В главное меню добавьте пункт Склад à Готовая продукция) 2. Форма работает с данными из 2 таблиц вашей БД – таблица Модель и таблица Готовая продукция 3. Верхняя часть формы представляет собой компонент Дерево, узлы которого – это наименование существующих моделей, а св-во Tag узлов –это код модели. Указание – Для заполнения дерева можно, например, сделать следующее:
Рисунок 29 –Форма для работы с готовой продукцией 4. При нажатии на кнопку «Новая» в верхней части формы открывается новая форма, изображенная на рисунке 30, с помощью которой вы можете добавить записи в таблицу Модель. Указание – работайте с объектом Command и запросом Insert. Рисунок 30 –Форма для добавления моделей 5. При нажатии на кнопку «Удалить» удаляется выделенный узел из дерева и строка из таблицы «Модель». Указание – работайте объектом Command и запросом Delete. 6. При нажатии на кнопку «Свойства» открывается форма, в которой отображаются все сведения о выбранной в дереве модели. Форма представлена на рисунке 31. Указание – работайте с объектом Command и запросом Select. Рисунок 31 – Форма для просмотра свойств моделей 7. Нижняя часть формы представляет собой компонент DataGridView, в котором отображаются сведения из таблицы Готовая продукция. При выборе в верхней части формы (в дереве) какого-либо узла=модели, в нижней части формы отображается вся готовая продукция данной модели. Указание – напишите обработчик на событие Select объекта дерево, Работайте с объектом DataSet и DataAdapter. 8. Данная часть формы -это компонент Label, в котором отображается Код выбранной в дереве модели Указание – напишите обработчик на событие Select объекта дерево, Работайте со свойством Text объекта label.
|