КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Создание отчета на основе параметрического запроса
Для создания отчета на основе параметрического запроса поступают следующим образом. 1. Подготовка формы с полем, содержащим список. Вызов отчета целесообразно осуществить не с главного окна, а из специальной формы. В этой форме должен быть создан список для выбора параметра поиска и кнопка вызова отчета. Пусть требуется выдать список студентов конкретной группы, шифр которой выбирается из списка. Тогда форма для реализации параметрического запроса и отчета на основе этого запроса может иметь вид, представленный на рис. 5.3.
Рис. 5.3. Форма для параметрического отчета в режиме редактирования
В тексте программы для данной формы в разделе implementation необходимо выставить uses unit2 (если модуль данных был создан вторым) для доступа к компонентам модуля данных.
На данную форму помещены следующие компоненты: компонент Label1 (надпись «Выберите шифр группы»); компонент ComboBox1 (поле с раскрывающимся списком); компонент Button1 (кнопка Вывести отчет). Для формы в целом в событии OnActivate записывают следующую процедуру:
имя_модуля_данных.ADOTable1.First; While not имя_модуля_данных.ADOTable1.Eof do begin ComboBox1.Items.Add(имя_модуля_данных.ADOTable1.fieldByName('Sh_gr').Value); имя_модуля_данных.ADOTable1.Next; end;
Данная процедура для компонента ComboBox1 создает список шифров групп, который выбирается из компонента имя_модуля_данных.ADOTable1, связанного с таблицей Group. 2. Подготовка параметрического запроса. Расположить на модуле данных компонент ADOQuery (панель ADO). Для данного компонента настроить следующие свойства: в свойстве Connection выбрать ADOConnection1; в свойстве SQL щелкнуть по кнопке … и в открывшемся окне набрать параметрический запрос на языке SQL. Select S.* from Stud S where Sh_gr =:Sh_gr; В данном запросе имя параметра совпадает с именем поля (запрос выбирает записи по шифру группы (поле Sh_gr)). Закрыть окно, щелкнув по кнопке ОК. В Инспекторе Объектов выбрать свойство Parameters и щелкнуть по кнопке … в строке этого свойства. В появившемся окне будут показаны имена всех параметров, введенных в тексте параметрического SQL-запроса. Каждому параметру из списка необходимо поставить в соответствие определенный тип и стартовое значение. Стартовое значение задавать необязательно. В строке ParamType задают ptInputOutput, раскрывают список Value и в строке Type задают тип данных (текстовый, числовой или дата). Для активации запроса в свойстве Active выбрать true. Во вкладке Events модуля данных для события onCreate в процедуре обработки события дописать: ADOQuery1.Active:= true; Номер компонента может быть отличным от единицы.
3. Создание компонентов для связи с отчетом. После создания запроса следует поместить на форму компонент RvDataSetConnections из закладки Rave - . В его свойстве DataSet необходимо указать имя запроса – имя_модуля_данных. ADOQuery1. Затем следует поместить на форму компонент RvProject из закладки Rave (). В его свойстве ProjectFile, когда будет создан макет отчета в Rave Designer, следует указать имя файла проекта отчета и путь к нему.
4. Создать макет отчета в Rave Designer так, как это было описано в предыдущем пункте. Возможный вид макета отчета представлен на рис. 5.4.
Рис. 5.4. Макет отчета в Rave Designer
Существуют некоторые особенности при формировании макета. Пока не выбран в форме параметр поиска (шифр группы), запрос не осуществляет выбор данных, т.е. источник данных пуст. Это приводит к тому, что при просмотре отчета в режиме Rave Designer не видны данные (отчет пуст). Вторая особенность заключается в том, что при помещении компонентов полей (компонент DataText из вкладки Report) в полосу DataBand1 в свойстве DataView для каждого поля пусто. Поэтому необходимо в свойстве DataView для каждого поля вручную набирать DataView1, тогда в свойстве DataField появляется список полей, из которых можно выбрать нужное поле. При этом произойдет связь компонента DataText с конкретным полем из запроса (с полем Num_z, Fam и т.д.). Отчет в режиме просмотра в Rave Designer будет выглядеть, как на рис. 5.5.
Рис. 5.5. Отчет в Rave Designer в режиме просмотра
Как видно из рисунка отчет пуст. После создания макета отчета он должен быть сохранен с помощью команды меню File/Save, файлу макета отчета задают имя (например Project1. rav или Project2. rav, или какое-то другое).
5. Реализация вызова отчета из формы. Для вызова отчета необходимо кнопку Вывести отчет связать со следующей процедурой.
With имя_модуля_данных.ADOQuery1 do begin Close; Parameters.ParamByName('Sh_gr').Value:= ComboBox1.Items[ComboBox1.ItemIndex]; Open; end; RvProject1.Execute;
В этой процедуре программа сначала закрывает имя_модуля_данных.ADOQuery1, затем присваивает значение выбранного параметра поиска из компонента ComboBox1 и повторно открывает запрос. Команда RvProject1.Execute генерирует отчет на основе макета отчета, сохраненного в файле Project1. rav (или каком-то другом). Если список содержит даты, то используют функцию StrToDate для преобразования строки в дату. Для преобразования строки в целое число используют функцию StrToInt. Для преобразования строки в вещественное число используют функцию StrToFloat. Для формирования автоматического поиска места нахождения отчета (файл отчета должен быть сохранен в папке вместе с проектом и файлом project1) необходимо для формы, где вызывается отчет, на событии формы onShow создать следующую процедуру: Var Path: string; Begin Path:= ExtractFilePath(Application.ExeName); RvProject1.ProjectFile:= Path + ‘Project1.rav’; End; В данном тексте Project1.rav – имя файла отчета.
В дальнейшем необходимо привязать пункт главного меню, связанного с данным отчетом, к вызову формы. А уже из формы после выбора параметра поиска будет вызываться сам отчет. Вид формы с выбранным параметром поиска представлен на рис. 5.6.
Рис. 5.6. Форма с выбранным параметром поиска
Вид отчета на основе параметрического запроса, когда параметр поиска выбирается из списка, представлен на рис. 5.7.
Рис. 5.7. Отчет в режиме предварительного просмотра ЗАКЛЮЧЕНИЕ
Информационные системы находят широкое применение во всех сферах деятельности человека. Любая информационная система состоит из двух основных элементов: базы данных и приложения для работы с ней. Данное пособие содержит теоретический и практический материал, позволяющий освоить технологии разработки приложений для работы с базами данных в среде программирования Delphi. Пособие охватывает широкий круг вопросов, связанных с обработкой данных средствами Delphi: реализация доступа к локальным и сетевым базам данных; создание и редактирование таблиц и схем баз данных; создание и редактирование форм для ввода данных; дизайн форм; реализация сортировки, вычислений и фильтрации; создание и редактирование различных запросов на выборку данных, вычислительных запросов, запросов на выполнение действий; создание, редактирование и дизайн отчетов. Полученные навыки создания баз данных и разработки приложений для работы с ними позволят студентам специальности «Вычислительные машины, комплексы, системы и сети» квалифицированно создавать и эксплуатировать приложения для обработки данных в любых предметных областях.
Дата добавления: 2015-05-09; Просмотров: 895; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |