Курсовая на тему Принципы создания база данных Художники ВКО
Работа добавлена на сайт bukvasha.net: 2015-07-01Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Содержание
Введение
1 Аналитическая часть
1.1 Этап концептуального проектирования
1.1.1 Описание предметной области
1.1.2 Характеристика предметной области
1.1.3 Ограничения и допущения предметной области
1.1.4 Модель «Сущность-связь» (ER-диаграмма)
1.2 Этап логического проектирования
1.2.1 Выбор модели данных
1.3 Обоснование выбора СУБД
2 Проектная часть
2.1 Назначение и цель создания
2.2 Требование к системе
2.3 Требования к интерфейсу пользователя
2.4 Создание запросов
2.5 Загрузка и руководство к использованию и эксплуатации
Список литературы
Приложение А
Введение
Целью комплексной лабораторной работы является разработка базы данных «Художники ВКО». Автоматизации подлежит задача «Создание наиболее полного собрания произведений и данных о художниках ВКО» и решается с целью получения актуальной информации о художниках, его работах и прошедших выставках.
Для разработки данной базы была выбрана среда разработки приложений Delphi. В программном продукте использовалась технология ADO - способ взаимодействия приложения, созданного в среде разработки Delphi, и базы данных. Объекты БД в Delphi основаны на SQL – языке. Delphi включает в себя локальный сервер Interbase для того, чтобы можно было разработать расширяемые на любые внешние SQL-сервера приложения.
Аналитическая часть
Этап концептуального проектирования
Описание предметной области
Предметная область – Искусство, подсистема – творчество, Фрагмент предметной области - выставка.
Автоматизации подлежит задача «Создание наиболее полного собрания произведений и данных о художниках ВКО» и решается с целью получения актуальной информации о художниках, его работах и прошедших выставках.
В результате решения задачи предоставляются следующие выходные документы:
Справка «Перечень работ художников»
Ведомость «Информация о художниках»
Ведомость «Данные о проведенных выставках»
Справка «Список художников»
Ведомость «Стоимость картин более 10000»
Ведомость «Стоимость картин менее 10000»
Ведомость «Общая стоимость картин»
Справка «Список картин»
Отчет о проведенных выставках
Справка «По запросу»
В предметной области сформируем запросы, необходимые для решения задачи:
Поиск по ФИО художника и вывод информации о нем;
Поиск по месту проживания художника и вывод информации о нем;
Поиск по году рождения художника и вывод информации о нем;
Поиск по образованию художника и вывод информации о нем;
Поиск по месту работы художника и вывод информации о нем;
Поиск выставки по ФИО художника и вывод информации о проведенных выставках;
Поиск по названию выставки и вывод информации о прошедшей выставке;
Поиск по дате проведения выставки и вывод информации о прошедшей выставке;
Поиск по городу проведения выставок и вывод всех выставок проходящих в данном городе;
Поиск события приуроченного к конкретной дате, и вывод информации посвященной данному событию;
Вывод информации о стоимость картин более 10000;
Вывод информации о стоимость картин менее 10000;
Вывод общей стоимости картин по отдельным художникам и вывод общей стоимости всех картин в базе данных;
Вывод информации о картинах при выборе определенного художника;
Вывод информации о выставках при выборе определенного художника;
Характеристика предметной области
В 1962 году в городе Усть-Каменогорске были организованы художественно-производственные мастерские Художественного фонда Казахстана. Первым художником в Восточном Казахстане, вступившим в Союз Художников СССР стал в 1967 году Виктор Терентьевич Титов. В 1997 году В.Т. Титов становится первым уполномоченным филиала Союза художников в Усть-Каменогорске. Таким образом, 1977 год является годом образования филиала СХ СССР в ВКО. К этому времени членами СХ СССР становятся Л.Е. Агейкин (1974), В.С. Раппопорт (1974). Далее в их ряды вливаются П.Б. Шишов (1984), Н.И. Джуган (1991), А.Г. Куклин (1981), В. Истомин (1986) и др. новый импульс творческая деятельность художников края получает с открытием в 1979 году Дома Художника в Усть-Каменогорске. Дом Художника был торжественно открыт 25 августа 1979 года. В 1993 году мастерские были закрыты, теперь там находятся частные магазины.
В сентябре 2008 года по инициативе члена Союза художников Республики Казахстан Я.Л. Шматовой и председателя СХ РК Е.Т. Мергенова был вновь создан Восточно-Казахстанский филиал СХ РК. В данный момент в городе Усть-Каменогорске и области творчески работают 20 членов СХ РК.
Изменение политики по отношению к сфере культуры иногда тяжело сказывается на последней. Это связано с тем, что организации культуры характеризуются консервативностью, неспособностью к быстрой реорганизации и нововведениям. Чиновники из Астаны сказали, что молодых художников нет в Республике, а с искусствоведами вообще катастрофа.
Поэтому цель проекта – объединить все имеющиеся данные о художниках и их передвижения, выставках, картинах в единую базу данных. А также учет регионального культурного наследия в мировой художественной культуре.
Данный проект открывает широкий простор для художников в усилении роли художественного творчества в обществе.
Проект представляет собой наиболее полное собрание произведений региональных авторов с синтезом и анализом - это создает понимание исключительности не только целостной картины региона, но и отдельных авторов.
Сам проект способствует мобильному решению вопросов, связанных с жизнью и творчеством региональных авторов.
Ограничения и допущения предметной области
При решении данной задачи был выявлен следующий атрибутивный состав, который представлен в таблице 1.1.
Таблица 1.1
№ | Наименование атрибута | Идентификатор | Значение | Ограничения |
1 | ФИО художника | ФИО_худ | Л.Е. Агейкин | Текстовый(50) |
2 | Год рождения | Год_рож | 15.08.1932 | Текстовый(10) |
3 | Место проживания | Место_прож | Усть-Каменогорск | Текстовый(120) |
4 | Образование | Образование | Средне-спец | Текстовый(100) |
5 | Место работы | Место_раб | Колледж искусств | Текстовый(120) |
6 | Премии | Премии | Лучший художник | Текстовый(20) |
7 | Членство в СХ | Членство | да | Логический(да/нет) |
8 | Звание | Звание | Заслуженный художник ВКО | Текстовый(68) |
9 | Дата вручения премии | Дата_вруч | 15.05.1993 | Дата/время |
10 | № картины |
№ картины | 1234565 | Числовой | ||
11 | Название картины | Назв_карт | «Бухторма» | Текстовый(50) |
12 | Техника работы | Техника_раб |
| Текстовый(30) |
13 | Размеры | Размеры | 200Х250 | Текстовый(10) |
14 | Материал | Материал | холст | Текстовый(30) |
15 | Год создания | Год_соз | 1985 | Текстовый(10) |
16 | Стоимость | Стоимость | 35000 | Числовой |
17 | Номер выставки | Ном_выст | 00001 | Числовой |
18 | Название выставки | Назв_выст | «Просторы Алтая» | Текстовый(80) |
19 | Дата проведения | Дата_пров | 19.02.1990 | Числовой |
20 | Город | Город | Усть-Каменогорск | Текстовый(40) |
21 | Посвящена | Посв | 50-летию комсомола Казахстана | Текстовый(100) |
22 | Количество картин | Кол_карт | 18 | Числовой |
23 | Наименование премии | Наим_прем | Лучшая картина | Текстовый(25) |
24 | Вид вознаграждения | Вид_вознаг | денежный | Текстовый(25) |
25 | Изображение | Изображение | photo\ageikin\tn_1.bmp | Текстовый(100) |
В предметной области существуют следующие ограничения и допущения:
Место проживания – область проживания ВКО.
Членство в СХ – является членом союза художников РК.
№ картины - уникальный номер картины.
Номер выставки - уникальный номер выставки.
Наименование премии – Перечень премии должен быть уникальным.
ФИО художника – должны быть уникальны для каждого художника.
Модель «Сущность-связь» (ER-диаграмма)
Для разработки ER-диаграммы необходимо выделить объекты предметной области и их атрибутный состав. На основании перечня атрибутов выделим следующие сущности с атрибутами:
Художники (ФИО художника, год рождения, место проживания, образование, место работы, премии, членство, звание, дата вручения премии).
Картины (№ картины, ФИО художника, техника работы, название картины, размеры, материал, год создания).
Премии (Наименование премии, вид вознаграждения).
Выставки (ФИО художника, Номер выставки, Название выставки, дата проведения, количество картин, Город, Посвящена).
Проведем анализ связей между сущностями:
Художники, Картины – связь 1:М
Картины, Выставка – связь М: М
Художники, Премии – связь 1:М
После выбора сущностей, задания атрибутов и анализа связей между сущностями проектируем концептуальную схему БД. Сущность обозначается прямоугольником, связь – ромбом.
Рисунок 1.1 - ER диаграмма
Этап логического проектирования
Этап логического проектирования позволяет осуществить переход от концептуальной информационной схемы ПО к логической модели БД, ориентированной на выбранную СУБД и конфигурацию ЭВМ. Этап логического проектирования можно представить как совокупность процессов выбора СУБД и отображения концептуальной модели БД на логическую.
Для выполнения работы выбираем реляционную модель данных и СУБД, основанную на этой модели, например Access, т.к. она наиболее близко отражает внутреннюю модель данных, удовлетворяет пользователей базы данных с точки зрения технических характеристик, а также обладает широкими возможностями при проектировании приложений.
Для отображения концептуальной модели на логическую приведем отношения, сформированные на предыдущем этапе проектирования к 3НФ. При этом необходимо произвести декомпозицию предметной области до получения множества отношений, каждое из которых является составной неделимой единицей информации. Проведем анализ функциональных зависимостей между атрибутами в пределах каждого отношения.
1. Картины (№картины, ФИО_ худ, техника_ раб, назв_карт, размеры, материал, год_соз); |
Картины учитываются по № картины, поэтому в качестве ключа выберем атрибут «№ картины» - №_картины. |
Этот атрибут однозначно определяет все остальные атрибуты отношения. |
№_картины [все атрибуты] |
2. Художники ФИО_худ, год_рож, место_прож, образование, место_раб, премии, членство, звание, дата_вруч); |
Художники учитываются по ФИО художника, поэтому в качестве ключа выберем атрибут ФИО художника» - ФИО_худ. |
Этот атрибут однозначно определяет все остальные атрибуты отношения. |
ФИО_худ [все атрибуты] |
3. Премии (Наим_прем, вид_вознаг);
Премии учитываются по Наименованию премий, поэтому в качестве ключа выберем атрибут «Наименование премии» - Наим_прем. |
Этот атрибут однозначно определяет все остальные атрибуты отношения. |
Наим_прем [все атрибуты] |
4. Выставки (ФИО_худ, Ном_выст, Назв_выст, дата_пров, кол_карт, Город, Посв);
Выставки учитываются по Номеру выставки, поэтому в качестве ключа выберем атрибут «Номер выставки» - Ном_выст. |
Этот атрибут однозначно определяет все остальные атрибуты отношения. |
Ном_выст [все атрибуты]
|
1.2.1 Выбор модели данных
Для данного приложения использовалась реляционная модель данных.
Любая модель данных содержит три основных компонента:
Структуры данных описывают точку зрения пользователя на представление данных.
Набор допустимых операций, выполняемых над структурой данных.
Ограничение целостности – это механизм поддержания соответствия данных предметной области на основе формально описанных данных.
Структура данных – в основе реляционной модели данных лежит понятие отношения, которое используется, как инструмент моделирования данных.
Отношения удобно представлять в виде таблиц, строки таблицы соответствуют картежам. Каждая строка фактически представляет собой описание одного объекта реального мира, характеристики которого содержатся в столбцах. Столбцы в таблице это – атрибуты.
Атрибут, значение которого однозначно идентифицируют картежи, называется ключевым. Если картежи идентифицируются только сцеплением значений нескольких атрибутов, то отношение имеет составной ключ. Отношение может содержать несколько ключей. Но всегда один из ключей является первичным. Его значения не могут обновляться, все остальные ключи называются возможными. Для отображения ассоциаций между картежами разных отношений используется дублирование их ключей.
Ограничение целостности – в реляционной модели данных определены два базовых требования обеспечения целостности:
Целостность ссылок – сложные объекты реального мира представляются в реляционной модели данных в виде картежей нескольких нормализованных отношений, которые связаны между собой, при этом связи между данными отношениями описываются в терминах функциональных зависимостей. Для отражения функциональных зависимостей между картежами разных отношений используется дублирование первичного ключа одного отношения (родительского) в другое (дочернее). Атрибуты представляющие собой копии ключей родительских отношений называются внешними ключами. Требования целостности по ссылкам заключается в том, что для каждого значения внешнего ключа появившегося в дочернем в родительском отношении должен найтись картеж с таким же значением первичного ключа.
Целостность сущностей – требования целостности сущностей заключается в следующем:
Каждый картеж любого отношения должен отличатся от любого другого картежа этого отношения (то есть любое отношение должно обладать первичным ключом). Если данное требование не соблюдается, то в базе данных может хранится противоречивая информация об одном и том же объекте.
Операции над данными:
Операции обработки картежей. Связаны с изменением состава картежей в каком-либо отношении.
Операция обработки отношений. На входе каждой такой операции используется одно или несколько отношений результатом выполнения операций является новое отношение.
В реляционной алгебре определены следующие операции обработки отношений:
Проекция
Выборка
Объединение
Пересечение
Разность
Декартово произведение
Соединение
Реляционная модель данных существенно облегчает установление связей, дает возможность легко и быстро установить новую связь позволяет оптимальным образом осуществлять доступ к данным любого уровня.
Обоснование выбора СУБД
Для создания базы данных выбираем реляционную модель данных и СУБД, основанную на этой модели, MS Access, т.к. она наиболее близко отражает внутреннюю модель данных, удовлетворяет пользователей базы данных с точки зрения технических характеристик, а также обладает широкими возможностями при проектировании приложений.
Delphi – одна из самых мощных систем, позволяющих на самом современном уровне создавать как отдельные прикладные программы Windows, так и разветвленные комплексы, предназначенные для работы в корпоративных сетях и в Интернет. Delphi, как мощная система визуального объектно-ориентированного программирования, позволяет решать множество задач, в частности:
Создавать законченные приложения для Windows самой различной направленности, от вычислительных и логических, до графических и мультимедиа.
Быстро создавать оконный интерфейс для любых приложений, написанных на любом языке; интерфейс удовлетворяет всем требованиям Windows и автоматически настраивается на ту систему, которая установлена на компьютере пользователя, поскольку использует многие процедуры, функции, библиотеки Windows.
Создавать мощные системы работы с локальными и удаленными базами данных любых типов; при этом имеются средства автономной отладки приложений с последующим выходом в сеть.
Создавать многозвенные распределенные приложения, основанные на различных технологиях.
Создавать приложения, которые управляют другими прилодениями, в частности, такими программами Microsoft Office, как Word, Excel, Access и др.
Создавать кросс-платформенные приложения, которые можно компилировать и эксплуатировать как в Windows, так и в системе Linux.
Создавать приложения различных классов для работы в Интернет.
Создавать профессиональные программы установки для приложений Windows, учитывающие всю специфику и все требования Windows.
И многое другое, включая создание отчетов, справочных систем, библиотек DLL, компонентов ActiveX и т.п.
В Delphi 6 разработчик приложений базы данных имеет возможность выбирать не только способы реализации бизнес – логики и интерфейса программы, не только архитектуру взаимодействия с базы данных (локальная, клиент – сервер, многоуровневая), но и механизм доступа к данным.
Приложения базы данных, обращающиеся к данным через ADO, независимы от процессора базы данных Borland Database Engine.
Технология ADO завоевала широкую популярность у разработчиков благодаря универсальности – базовый набор интерфейсов OLE DB имеется в каждой операционной системе Microsoft. Поэтому для обеспечения доступа приложения к данным достаточно лишь правильно указать провайдер соединения ADO и затем переносить программу на любой компьютер, где имеется требуемая база данных, и, конечно, установленная ADO.
В палитре компонентов Delphi 7 имеется страница ADO, содержащая набор компонентов, позволяющих создавать полноценные приложения базы данных, обращающихся к данным через ADO.
Технология ADO и интерфейсы OLE DB обеспечивают для приложений единый способ доступа к источникам данных различных типов. Например, приложение, использующее ADO, может применять одинаково сложные операциии и к данным, хранящимся на корпоративном сервере SQL, и к электронным таблицам и локальным систем управление базы данных. Запрос SQL, направленный любому источнику данных через ADO, будет выполнен.
Технология ADO в целом включает в себя не только сами объекты OLE DB, но и механизмы, обеспечивающие взаимодействие объектов с данными и приложениями. На этом уровне важнейшую роль играют провайдеры ADO, координирующие работу приложений с источниками данных различных типов.
2 Проектная часть
2.1 Назначение и цель создания
Для комплексной лабораторной работы была выбрана в качестве темы база данных «Художники ВКО» по предмету «Создание и введение информационного обеспечения автоматизированных систем».
Данная программа предназначена для объединения всех имеющихся данных о художниках и их передвижения, выставках, картинах в единую базу данных. А также учет регионального культурного наследия в мировой художественной культуре.
Проект представляет собой наиболее полное собрание произведений региональных авторов с синтезом и анализом - это создает понимание исключительности не только целостной картины региона, но и отдельных авторов.
Сам проект способствует мобильному решению вопросов, связанных с жизнью и творчеством региональных авторов.
Результат работы программы можно использовать для быстрого поиска интересующей информации.
При создании комплексной лабораторной работы был разработан удобный интерфейс, состоящий из меню, которым пользователь может воспользоваться для выполнения той или иной операции. Меню состоит из ссылок на различные формы программы.
Целью создания комплексной лабораторной работы является закрепление знаний языка программирования Delphi 7 и воплощение этих знаний в комплексной лабораторной работы.
Требование к системе
Требования к системе описаны в таблице 2.1.
Таблица 2.1 - Системные требования
-
№п/п
Оборудование
Параметры
1
Процессор
Intel Celeron 400 Мгц
2
Оперативная память
От 256 Мбайт;
3
Жесткий диск
40ГБ
4
Монитор
VGA (800 x600), 256 цветов;
5
Мышь
Любая
6
Клавиатура
Любая
7
Принтер
Монохромный лазерный формата А4
2.3 Требования к интерфейсу пользователя
Основное достоинство хорошего интерфейса пользователя заключается в том, что пользователь всегда чувствует, что он управляет программным обеспечением, а не программное обеспечение управляет им. Для создания у пользователя такого ощущения «внутренней свободы» интерфейс должен обладать целым рядом свойств, описанных ниже.
Естественность интерфейса
Согласованность интерфейса
Дружественный интерфейс
Принцип «обратной связи»
Простота интерфейса
Гибкость
Эстетическая привлекательность
Естественность интерфейса. Заключается в том, что он не вынуждает пользователя существенно изменять привычные для него способы решения задач. В разрабатываемом программном продукте это свойство используется следующим образом: сообщения и результаты выполнения не требуют каких-либо дополнительных пояснений, сохранены обозначения и терминология данной предметной области, используются знакомые понятия и образы, что обеспечивает интуитивное понимание интерфейса.
Согласованность интерфейса. Позволяет пользователю использовать ранее приобретённые знания для уяснения новых аспектов работы. В программе это можно проследить в следующем: используется одно и то же наименование команды для выполнения тех или иных функций, которые кажутся пользователю аналогичными. Используется стандартный пользовательский интерфейс работы в среде Windows и т. д.
Дружественный интерфейс. Не для кого не секрет, что изучение любого программного продукта происходит методом проб и ошибок, поэтому для этого в программе предусмотрено предотвращение таких ситуаций, которые вероятнее всего закончились бы ошибками.
Принцип «обратной связи». Этот принцип подразумевает, что каждое действие пользователя сопровождается визуальным, а иногда и звуковым подтверждением того, что программа восприняла команду. Здесь нужно также учесть, что типичный пользователь способен вытерпеть только несколько секунд ожидания ответной реакции от своего электронного «собеседника».
Простота интерфейса. Перед пользователем будет отображаться минимально необходимая информация. Необходимо также избегать многословных командных имён и сообщений и размещать элементы управления на экране с учётом их смыслового значения и логической взаимосвязи.
Гибкость. Необходимо учитывать как профессиональный опыт работы с компьютером, так и производительность труда конкретного пользователя.
Эстетическая привлекательность. заключается в том, чтобы на экране формировалась такая среда, которая помогала пользователю понять предоставляемую информацию, сосредотачиваться на ней и, по возможности, уменьшать нагрузку на человека (недопустимо использование ярких красок в заголовках меню, резких перемещений, пугающих изображений и т. д.).
2.4 Создание запросов
SQL код для запроса пишется в свойстве SQL компонента ADOQuery.
Для справки «Перечень работ художников» предлагается следующая форма:
Рисунок 2.1 – Справка «Перечень работ художников»
SQL код такого запроса представлен ниже:
SELECT Kartini.Фио_худ, Kartini.Ном_карт, Kartini.Назв_карт, Kartini.Размеры, Kartini.Стоимость
FROM Kartini
Для ведомости «Информация о художниках» предлагается следующая форма:
Рисунок 2.2 – Ведомость «Информация о художниках»
SQL код такого запроса представлен ниже:
SELECT *
from Spisok_xydozhnikov
Для ведомости «Данные о проведенных выставках» предлагается следующая форма:
Рисунок 2.3 – Ведомость «Данные о проведенных выставках»
SQL код такого запроса представлен ниже:
SELECT *
from vistavka
Для справки «Список художников» предлагается следующая форма:
Рисунок 2.4 – Справка «Список художников»
SQL код такого запроса представлен ниже:
SELECT Spisok_xydozhnikov.Фио_худ, Spisok_xydozhnikov.год_рож, Spisok_xydozhnikov.место прож, Spisok_xydozhnikov.место_раб
from Spisok_xydozhnikov
Для ведомости «Стоимость картин более 10000» предлагается следующая форма:
Рисунок 2.5 – Ведомость «Стоимость картин более 10000»
SQL код такого запроса представлен ниже:
SELECT Kartini.Фио_худ, Kartini.№картины, Kartini.Назв_карт, Kartini.Размеры, Kartini.Стоимость
FROM Kartini
WHERE Kartini.Стоимость >= 10000
Для ведомости «Стоимость картин менее 10000» предлагается следующая форма:
Рисунок 2.6 – Ведомость «Стоимость картин менее 10000»
SQL код такого запроса представлен ниже:
SELECT Kartini.Фио_худ, Kartini.№картины, Kartini.Назв_карт, Kartini.Размеры, Kartini.Стоимость
FROM Kartini
WHERE Kartini.Стоимость < 10000
Для ведомости «Общая стоимость картин» предлагается следующая форма:
Рисунок 2.7 – Ведомость «Общая стоимость картин»
SQL код такого запроса представлен ниже:
SELECT Фио_худ, sum(Стоимость)
FROM Kartini
group by Фио_худ
Для подсчета общей стоимости картин был использован следующий SQL код:
SELECT sum(Стоимость)
FROM Kartini
Для справки «Список картин» предлагается следующая форма:
Рисунок 2.8 – Справка «Список картин»
Т.к. данная задача не могла быть реализована с помощью обычного SQL кода в свойствах SQL, компонента Query, был создан запрос, предоставленный ниже, позволяющий обращаться к данным БД из DBComboBox и Edit.
Edit4.Text:=DBComboBox1.Text;
DataModule2.ADOQuery10.Close;
DataModule2.ADOQuery10.sql.Clear;
s:='SELECT Kartini.Назв_карт, Kartini.Размеры, Kartini.Стоимость';
s:=s+' FROM Kartini';
s:=s+' WHERE Kartini.Фио_худ LIKE'+'"'+edit4.text+'%"';
DataModule2.ADOQuery10.sql.Add(s); DataModule2.ADOQuery10.Open;
Для отчета о проведенных выставках предлагается следующая форма:
Рисунок 2.9 – Отчет о проведенных выставках
Так же как и в предыдущем случае, данная задача не могла быть реализована с помощью обычного SQL кода в свойствах SQL, компонента Query, был создан запрос, предоставленный ниже, позволяющий обращаться к данным БД из DBComboBox и Edit.
Edit4.Text:=DBComboBox1.Text;
DataModule2.ADOQuery13.Close;
DataModule2.ADOQuery13.sql.Clear;
s:='SELECT vistavka.Назв_выст, vistavka.дата_пров, vistavka.кол_карт, vistavka.Город, vistavka.Посвящена'; s:=s+' FROM vistavka';
s:=s+' WHERE vistavka.Фио_худ LIKE'+'"'+edit4.text+'%"';
DataModule2.ADOQuery13.sql.Add(s); DataModule2.ADOQuery13.Open;
Для cправки «По запросу» предлагается следующая форма:
Рисунок 2.10 – Справка «По запросу»
Т.к. данная задача не могла быть реализована с помощью обычного SQL кода в свойствах SQL, компонента Query, был создан запрос, предоставленный ниже, позволяющий обращаться к данным БД из поля ввода Edit.
procedure TForm5.Edit1Change(Sender: TObject);
begin
DBGrid1.DataSource:=DataModule2.DataSource11;
DataModule2.ADOQuery7.Close;
DataModule2.ADOQuery7.sql.Clear;
s:='SELECT Spisok_xydozhnikov.Фио_худ, Spisok_xydozhnikov.Год_рож, Spisok_xydozhnikov.Место_прож, Spisok_xydozhnikov.образование, Spisok_xydozhnikov.Место_раб, Spisok_xydozhnikov.членство';
s:=s+' from Spisok_xydozhnikov';
s:=s+' WHERE Spisok_xydozhnikov.Фио_худ LIKE'+'"'+edit1.text+'%"';
DataModule2.ADOQuery7.sql.Add(s);
DataModule2.ADOQuery7.Open; end;
procedure TForm5.Edit2Change(Sender: TObject);
begin DBGrid1.DataSource:=DataModule2.DataSource11;
DataModule2.ADOQuery7.Close;
DataModule2.ADOQuery7.sql.Clear;
s:='SELECT Spisok_xydozhnikov.Фио_худ, Spisok_xydozhnikov.Год_рож, Spisok_xydozhnikov.Место_прож, Spisok_xydozhnikov.образование, Spisok_xydozhnikov.Место_раб, Spisok_xydozhnikov.членство';
s:=s+' from Spisok_xydozhnikov';
s:=s+' WHERE Spisok_xydozhnikov.место_прож LIKE'+'"'+edit2.text+'%"';
DataModule2.ADOQuery7.sql.Add(s);
DataModule2.ADOQuery7.Open; end;
procedure TForm5.Edit3Change(Sender: TObject);
begin DBGrid1.DataSource:=DataModule2.DataSource11;
DataModule2.ADOQuery7.Close;
DataModule2.ADOQuery7.sql.Clear;
s:='SELECT Spisok_xydozhnikov.Фио_худ, Spisok_xydozhnikov.Год_рож, Spisok_xydozhnikov.Место_прож, Spisok_xydozhnikov.образование, Spisok_xydozhnikov.Место_раб, Spisok_xydozhnikov.членство';
s:=s+' from Spisok_xydozhnikov';
s:=s+' WHERE Spisok_xydozhnikov.Год_рож LIKE'+'"'+edit3.text+'%"';
DataModule2.ADOQuery7.sql.Add(s);
DataModule2.ADOQuery7.Open; end;
procedure TForm5.Edit7Change(Sender: TObject);
begin DBGrid1.DataSource:=DataModule2.DataSource11;
DataModule2.ADOQuery7.Close;
DataModule2.ADOQuery7.sql.Clear;
s:='SELECT Spisok_xydozhnikov.Фио_худ, Spisok_xydozhnikov.Год_рож, Spisok_xydozhnikov.Место_прож, Spisok_xydozhnikov.образование, Spisok_xydozhnikov.Место_раб, Spisok_xydozhnikov.членство';
s:=s+' from Spisok_xydozhnikov';
s:=s+' WHERE Spisok_xydozhnikov.образование LIKE'+'"'+edit7.text+'%"';
DataModule2.ADOQuery7.sql.Add(s);
DataModule2.ADOQuery7.Open; end;
procedure TForm5.Edit8Change(Sender: TObject);
begin DBGrid1.DataSource:=DataModule2.DataSource11;
DataModule2.ADOQuery7.Close;
DataModule2.ADOQuery7.sql.Clear;
s:='SELECT Spisok_xydozhnikov.Фио_худ, Spisok_xydozhnikov.Год_рож, Spisok_xydozhnikov.Место_прож, Spisok_xydozhnikov.образование, Spisok_xydozhnikov.Место_раб, Spisok_xydozhnikov.членство';
s:=s+' from Spisok_xydozhnikov';
s:=s+' WHERE Spisok_xydozhnikov.Место_раб LIKE'+'"'+edit8.text+'%"';
DataModule2.ADOQuery7.sql.Add(s);
DataModule2.ADOQuery7.Open; end;
Загрузка и руководство к использованию и эксплуатации
Для запуска программы необходимо запустить командный файл «Художники ВКО».exe после чего на экране появится форма программы (см. рисунок 2.11).
Рисунок 2.11 –Загрузка приложения
После нажатия левой клавиши мыши в любом месте формы осуществляется переход к форме «Меню».
На форме «Меню» имеются 6 кнопок: «Добавить данные в таблицу», «Таблицы», «Запросы», «Каталог работ», «Справка», «Выход» (см. рисунок 2.12).
Рисунок 2.12 –Меню программы
Выбрав кнопку «Добавить данные в таблицу», появится форма, на которой располагаются 4 вкладки: «Список художников», «Список картин», «Выставки», «Премии» (см. рисунок 2.13).
Рисунок 2.13 – Формы добавления данных в таблицу
На форме после ввода информации в нужные поля необходимо начать кнопку «Внести данные», для того что бы введенная информация сохранилась в базе данных. Для добавления новой записи необходимо нажать кнопку «Новая запись». Для просмотра уже имеющихся данных в базе необходимо нажать кнопку «К таблицам». Для возврата в главное меню программы нажмите кнопку «На главную».
При выборе кнопки «Таблицы» в меню программы, перед пользователем откроется форма, на которой расположены 4 вкладки: «Список художников», «Список картин», «Выставки», «Премии» (см. рисунок 2.14).
Рисунок 2.14 – Базы данных
Каждая из вкладок содержит: несколько видов сортировки данных, 3 способа создания отчетов (с помощью word, excel и QuickRep), а так же возможность редактирования данных.
Выбрав кнопку «Запросы» в меню программы, появится форма, на которой располагаются 4 вкладки: «Поиск», «Денежные операции», «Поиск №2», «Перечень картин и выставок» (см. рисунок 2.15).
Рисунок 2.15 – Общий вид формы «Запросы»
На рисунке 2.15 изображен поисковый запрос с возможностью одновременного поиска по нескольким критериям, а также возможно создание отчета по найденным данным.
На вкладке «Денежные операции» расположены 3 кнопки: «Стоимость картин менее 10000», «Стоимость картин более 10000» и кнопка «Общая стоимость всех картин» (см. рисунок 2.16). С помощью данных кнопок осуществляется быстрый просмотр данных о стоимости картин, с возможностью просмотра общей стоимости картин как по отдельным художникам так по всем работам художников находящихся в базе. Для каждого запроса предусмотрен вывод отчета.
Рисунок 2.16 – Денежные операции
На рисунке 2.17 изображен поисковый запрос с возможностью одновременного поиска по нескольким критериям, а также возможно создание отчета по найденным данным о прошедших выставках.
Рисунок 2.17 – Форма поиска информации о прошедших выставках
Вкладка «Перечень картин и выставок» позволяет вывести информацию о выставках либо о картинах по отдельным художникам, с возможностью создания отчета (см. рисунок 2.18).
Рисунок 2.18 – Вывод информации о выставках либо о картинах по отдельным художникам
Выбрав кнопку «Каталог работ» в меню программы, откроется документ, в котором пользователь сможет просмотреть полную информацию о художнике и его работах (см. рисунок 2.19).
Рисунок 2.19 – Каталог работ художников
Выбрав кнопку «Справка» в меню программы, откроется документ, в котором пользователь сможет получить полную информацию об использовании данной программы (см. рисунок 2.20).
Рисунок 2.20 – Справка
Заключение
При обследовании была выявлена предметная область – Искусство, подсистемой которой является – творчество. На основаниях этого была разработана база данных «Художники ВКО», которая выполняет следующие функции:
Предоставляет всю информацию о художниках ВКО;
Предоставляет всю информацию о картинах;
Предоставляет всю информацию о прошедших выставках.
В соответствии с поставленной целью были рассмотрены следующие задачи: сортировка по различным параметрам, разработан каталог работ художников, создана справочная система. Программа позволяет создавать редактировать или удалять информацию. Также программа предназначена для поиска необходимой информации.
В процессе работы над проектированием БД была решена главная задача проекта – реализация подсистем, ведение данных и формирование выходных документов базы.
Задание было выполнено при помощи системы визуального программирования Delphi 7.0 Также были созданы запросы по критериям, необходимые для оперативного нахождения требуемой информации. На основе выполненных запросов формируются отчёты в электронном виде по выведенным данным, которые впоследствии при необходимости можно вывести на печать при помощи принтера.
Можно с уверенностью сказать, что дальнейшая проработка данной предметной области и современные средства реализации баз данных помогут создать программный продукт, отвечающий самым высоким требованиям пользователей.
Список литературы
П. Дарахвелидзе «Программирование в Delphi 7»
В. Гофман, А.Хомоненко «Работа в Delphi»
В.Корняков «Программирование документов и приложений MS Offise в Delphi»
Н. Алгоритмы и структуры данных / Пер. с англ. — М.: Мир, 1989. - 360 с., ил.
Инзоу Лу. Философия программирования для Windows 95/NT / Пер. с англ. — СПб.: Символ-Плюс, 1997. — 640 с., ил.
Лковиц М., Шоу А., Гэннон Дж. Принципы разработки программного обеспечения / Пер. с англ. — М.: Мир, 1982. — 386 с., ил.
Практическое руководство по программированию / Пер. с англ. Б. Мик, П. Хит, Н. Рашби и др.; под ред. Б. Мика, П. Хит, Н. Рашби. — М.: Радио и связь, 1986. — 168 с., ил.
Дж. Программное обеспечение и его разработка / Пер. с англ. — М.: Мир, 1985. - 368 с., ил.
«Компьютер и БД». Пер. с англ, под ред. и с предисл. В. М. Курочкина. — М.: Мир, 1989. - 240 с., ил.
Приложение А
Текст программы
unit Unit0;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, jpeg, ExtCtrls, StdCtrls, Menus, HTTPApp, HTTPProd, OleCtnrs,
Buttons, Spin, ImgList, ComCtrls,ShellApi, ExtDlgs, CheckLst, Mask, AxCtrls, OleCtrls, VCF1;
type
TForm0 = class(TForm)
Image1: TImage;
Image2: TImage;
Image3: TImage;
Image4: TImage;
Image5: TImage;
Image6: TImage;
Image7: TImage;
Image8: TImage;
Image9: TImage;
Image10: TImage;
Image11: TImage;
Image12: TImage;
Image13: TImage;
procedure Image3Click(Sender: TObject);
procedure Image2Click(Sender: TObject);
procedure Image4Click(Sender: TObject);
procedure Image6Click(Sender: TObject);
procedure Image7Click(Sender: TObject);
procedure Image5Click(Sender: TObject);
procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure Image3MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure Image8MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Image2MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure Image9MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Image4MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure Image10MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Image5MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure Image11MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Image7MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure Image12MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Image6MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure Image13MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form0: TForm0;
implementation
uses Unit1, Unit4, Unit3, Unit5;
{$R *.dfm}
procedure TForm0.Image3Click(Sender: TObject);
begin
form3.show;
form0.Hide;
end;
procedure TForm0.Image2Click(Sender: TObject);
begin
form1.show;
form0.Hide;
end;
procedure TForm0.Image4Click(Sender: TObject);
begin
form5.show;
form0.Hide;
end;
procedure TForm0.Image6Click(Sender: TObject);
begin
close;
end;
procedure TForm0.Image7Click(Sender: TObject);
var
s:string;
begin
s:='СПРАВКА.HTM';
ShellExecute(0,nil,pchar(s),'','',SW_SHOWNORMAL);
end;
procedure TForm0.Image5Click(Sender: TObject);
var
s:string;
begin
s:='katalog\index.HTM';
ShellExecute(0,nil,pchar(s),'','',SW_SHOWNORMAL);
end;
procedure TForm0.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
image10.Visible:=false;
image11.Visible:=false;
image12.Visible:=false;
image13.Visible:=false;
image8.Visible:=false;
image9.Visible:=false;
end;
procedure TForm0.Image3MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
image8.Visible:=true;
end;
procedure TForm0.Image8MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
image8.Visible:=false;
end;
procedure TForm0.Image2MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
image9.Visible:=true;
end;
procedure TForm0.Image9MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
image9.Visible:=false;
end;
procedure TForm0.Image4MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
image10.Visible:=true;
end;
procedure TForm0.Image10MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
image10.Visible:=false;
end;
procedure TForm0.Image5MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
image11.Visible:=true;
end;
procedure TForm0.Image11MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
image11.Visible:=false;
end;
procedure TForm0.Image7MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
image12.Visible:=true;
end;
procedure TForm0.Image12MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
image12.Visible:=false;
end;
procedure TForm0.Image6MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
image13.Visible:=true;
end;
procedure TForm0.Image13MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
image13.Visible:=false;
end;
procedure TForm0.FormCreate(Sender: TObject);
begin
image10.Visible:=false;
image11.Visible:=false;
image12.Visible:=false;
image13.Visible:=false;
image8.Visible:=false;
image9.Visible:=false;
end;
end.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, ComCtrls, ExtCtrls, DBCtrls, StdCtrls, Buttons,
jpeg, Comobj;
type
TForm1 = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
TabSheet3: TTabSheet;
DBGrid1: TDBGrid;
DBGrid2: TDBGrid;
DBGrid3: TDBGrid;
DBNavigator2: TDBNavigator;
DBNavigator3: TDBNavigator;
DBNavigator1: TDBNavigator;
TabSheet4: TTabSheet;
DBGrid4: TDBGrid;
DBNavigator4: TDBNavigator;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
Image1: TImage;
Image2: TImage;
Image3: TImage;
Image4: TImage;
Image5: TImage;
ComboBox1: TComboBox;
Label1: TLabel;
Image6: TImage;
Label2: TLabel;
ComboBox2: TComboBox;
ComboBox3: TComboBox;
Label3: TLabel;
ComboBox4: TComboBox;
Label4: TLabel;
SpeedButton2: TSpeedButton;
SpeedButton1: TSpeedButton;
SpeedButton3: TSpeedButton;
SpeedButton4: TSpeedButton;
SpeedButton5: TSpeedButton;
SpeedButton6: TSpeedButton;
SpeedButton7: TSpeedButton;
SpeedButton8: TSpeedButton;
SpeedButton9: TSpeedButton;
SpeedButton10: TSpeedButton;
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure DBGrid2CellClick(Column: TColumn);
procedure ComboBox1Change(Sender: TObject);
procedure ComboBox2Change(Sender: TObject);
procedure ComboBox3Change(Sender: TObject);
procedure ComboBox4Change(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure SpeedButton3Click(Sender: TObject);
procedure SpeedButton4Click(Sender: TObject);
procedure SpeedButton7Click(Sender: TObject);
procedure SpeedButton6Click(Sender: TObject);
procedure SpeedButton5Click(Sender: TObject);
procedure SpeedButton8Click(Sender: TObject);
procedure SpeedButton9Click(Sender: TObject);
procedure SpeedButton10Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
A,B,C,D:variant;
n,m,l,r,z,h,k,x:integer;
implementation
uses Unit2, Unit3, Unit4, Unit0;
{$R *.dfm}
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
close;
form3.show;
end;
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
close;
form0.show;
end;
procedure TForm1.DBGrid2CellClick(Column: TColumn);
begin
Image5.Picture.LoadFromFile(DataModule2.kartini.Fields[8].Value);
end;
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
if form1.ComboBox1.ItemIndex=0 then DataModule2.kartini.IndexFieldNames:='№картины';
if form1.ComboBox1.ItemIndex=1 then DataModule2.kartini.IndexFieldNames:='ФИО_худ';
if form1.ComboBox1.ItemIndex=2 then DataModule2.kartini.IndexFieldNames:='Техника_раб';
if form1.ComboBox1.ItemIndex=3 then DataModule2.kartini.IndexFieldNames:='Назв_карт';
if form1.ComboBox1.ItemIndex=4 then DataModule2.kartini.IndexFieldNames:='Размеры';
if form1.ComboBox1.ItemIndex=5 then DataModule2.kartini.IndexFieldNames:='Материал';
if form1.ComboBox1.ItemIndex=6 then DataModule2.kartini.IndexFieldNames:='Год_соз';
if form1.ComboBox1.ItemIndex=7 then DataModule2.kartini.IndexFieldNames:='Стоимость';
end;
procedure TForm1.ComboBox2Change(Sender: TObject);
begin
if form1.ComboBox2.ItemIndex=0 then DataModule2.xydozhniki.IndexFieldNames:='Фио_худ';
if form1.ComboBox2.ItemIndex=1 then DataModule2.xydozhniki.IndexFieldNames:='Год_рож';
if form1.ComboBox2.ItemIndex=2 then DataModule2.xydozhniki.IndexFieldNames:='Место_прож';
if form1.ComboBox2.ItemIndex=3 then DataModule2.xydozhniki.IndexFieldNames:='Образование';
if form1.ComboBox2.ItemIndex=4 then DataModule2.xydozhniki.IndexFieldNames:='Место_раб';
if form1.ComboBox2.ItemIndex=5 then DataModule2.xydozhniki.IndexFieldNames:='Членство';
if form1.ComboBox2.ItemIndex=6 then DataModule2.xydozhniki.IndexFieldNames:='Звание';
end;
procedure TForm1.ComboBox3Change(Sender: TObject);
begin
if form1.ComboBox3.ItemIndex=0 then DataModule2.vistavka.IndexFieldNames:='ФИО_худ';
if form1.ComboBox3.ItemIndex=1 then DataModule2.vistavka.IndexFieldNames:='Ном_выст';
if form1.ComboBox3.ItemIndex=2 then DataModule2.vistavka.IndexFieldNames:='Назв_выст';
if form1.ComboBox3.ItemIndex=3 then DataModule2.vistavka.IndexFieldNames:='Дата_пров';
if form1.ComboBox3.ItemIndex=4 then DataModule2.vistavka.IndexFieldNames:='Кол_карт';
if form1.ComboBox3.ItemIndex=5 then DataModule2.vistavka.IndexFieldNames:='Город';
if form1.ComboBox3.ItemIndex=6 then DataModule2.vistavka.IndexFieldNames:='Посвящена';
end;
procedure TForm1.ComboBox4Change(Sender: TObject);
begin
if form1.ComboBox4.ItemIndex=0 then DataModule2.premii.IndexFieldNames:='Наим_прем';
if form1.ComboBox4.ItemIndex=1 then DataModule2.premii.IndexFieldNames:='Вид_вознаг';
end;
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
form4.QuickRep1.Preview;
end;
procedure TForm1.SpeedButton2Click(Sender: TObject);
begin
form4.QuickRep2.Preview;
end;
procedure TForm1.SpeedButton3Click(Sender: TObject);
var j,i:integer;
begin
datamodule2.xydozhniki.FindFirst;
A:=CreateOleObject('Excel.Application');
A.Workbooks.add;
A.visible:=true;
A.ActiveWorkBook.WorkSheets[1].Cells[1, 2]:='Справка "Список художников"';
A.ActiveWorkBook.WorkSheets[1].Range['B1:G1'].Select;
A.Selection.Font.Size:=18;
A.Selection.Font.Bold:=true;
A.ActiveWorkBook.WorkSheets[1].Range['B1:G1'].Merge;
A.Selection.WrapText:=true;
A.ActiveWorkBook.WorkSheets[1].Range['a3:I3'].Select;
A.Selection.Font.Size:=12;
A.Selection.Font.Bold:=true;
A.DisplayAlerts:= false;
n:=datamodule2.xydozhniki.FieldCount;//kol-vo stolbchov
m:=datamodule2.xydozhniki.RecordCount;//kol-vo zapisei
for i:=1 to n do begin
A.WorkSheets[1].cells[1+2,i]:=datamodule2.xydozhniki.Fields[i-1].FieldName;
end;
for i:=1 to m do begin
for j:=1 to n do begin
A.WorkSheets[1].cells[i+3,j]:=datamodule2.xydozhniki.Fields[j-1].Value;
end;
datamodule2.xydozhniki.Next;
end;
end;
procedure TForm1.SpeedButton4Click(Sender: TObject);
var j,i:integer;
begin
datamodule2.kartini.FindFirst;
A:=CreateOleObject('Excel.Application');
A.Workbooks.add;
A.visible:=true;
A.ActiveWorkBook.WorkSheets[1].Cells[1, 2]:='Справка "Перечень работ художников"';
A.ActiveWorkBook.WorkSheets[1].Range['B1:K1'].Select;
A.Selection.Font.Size:=18;
A.Selection.Font.Bold:=true;
A.ActiveWorkBook.WorkSheets[1].Range['B1:K1'].Merge;
A.ActiveWorkBook.WorkSheets[1].Range['a3:I3'].Select;
A.Selection.Font.Size:=12;
A.Selection.Font.Bold:=true;
A.DisplayAlerts:= false;
n:=datamodule2.kartini.FieldCount;//kol-vo stolbchov
m:=datamodule2.kartini.RecordCount;//kol-vo zapisei
for i:=1 to n do begin
A.WorkSheets[1].cells[1+2,i]:=datamodule2.kartini.Fields[i-1].FieldName;
end;
for i:=1 to m do begin
for j:=1 to n do begin
A.WorkSheets[1].cells[i+3,j]:=datamodule2.kartini.Fields[j-1].Value;
end;
datamodule2.kartini.Next;
end;
end;
procedure TForm1.SpeedButton7Click(Sender: TObject);
var j,i:integer;
begin
datamodule2.vistavka.FindFirst;
A:=CreateOleObject('Excel.Application');
A.Workbooks.add;
A.visible:=true;
A.ActiveWorkBook.WorkSheets[1].Cells[1, 2]:='Ведомость "Данные о провиденных выставках"';
A.ActiveWorkBook.WorkSheets[1].Range['B1:K1'].Select;
A.Selection.Font.Size:=18;
A.Selection.Font.Bold:=true;
A.ActiveWorkBook.WorkSheets[1].Range['B1:K1'].Merge;
A.ActiveWorkBook.WorkSheets[1].Range['a3:I3'].Select;
A.Selection.Font.Size:=12;
A.Selection.Font.Bold:=true;
A.DisplayAlerts:= false;
n:=datamodule2.vistavka.FieldCount;//kol-vo stolbchov
m:=datamodule2.vistavka.RecordCount;//kol-vo zapisei
for i:=1 to n do begin
A.WorkSheets[1].cells[1+2,i]:=datamodule2.vistavka.Fields[i-1].FieldName;
end;
for i:=1 to m do begin
for j:=1 to n do begin
A.WorkSheets[1].cells[i+3,j]:=datamodule2.vistavka.Fields[j-1].Value;
end;
datamodule2.vistavka.Next;
end;
end;
procedure TForm1.SpeedButton6Click(Sender: TObject);
var
W:Variant;
MyDir:String;
begin
Getdir(0,MyDir);
W:=CreateOleObject('Word.Application');
//W.Workbooks.add;
W.Documents.Open(MyDir + '\1.doc');
W.Visible:=true;
// Печатаем заголовок
W.Selection.TypeParagraph;
W.Selection.Paragraphs.Alignment:=1;
W.Selection.Font.Size:=20;
W.Selection.Font.Bold:=true;
W.Selection.TypeText('Справка "Данные о художниках"'+#13+#10);
// Изменяем стиль текущего абзаца,
// потому что он будет в таблице
W.Selection.Font.Size:=12;
W.Selection.Paragraphs.Alignment:=3;
W.Selection.Font.Bold:=false;
// Создание таблицы
W.ActiveDocument.Tables.Add(Range:=W.Selection.Range,
NumRows:=2, NumColumns:=7,
DefaultTableBehavior:=1,
AutoFitBehavior:= 0);
// Заполнение таблицы
W.Selection.Font.Bold:=true;
W.Selection.TypeText('Фио_худ');
W.Selection.MoveRight(12.1);
W.Selection.Font.Bold:=true;
W.Selection.TypeText('Год_рож');
W.Selection.MoveRight(12.1);
W.Selection.Font.Bold:=true;
W.Selection.TypeText('Место_прож');
W.Selection.MoveRight(12.1);
W.Selection.Font.Bold:=true;
W.Selection.TypeText('Место_раб');
W.Selection.MoveRight(12.1);
W.Selection.Font.Bold:=true;
W.Selection.TypeText('Премии');
W.Selection.MoveRight(12.1);
W.Selection.Font.Bold:=true;
W.Selection.TypeText('Членство');
W.Selection.MoveRight(12.1);
W.Selection.Font.Bold:=true;
W.Selection.TypeText('Звание');
W.Selection.MoveRight(12.1);
W.Selection.Font.Bold:=true;
DataModule2.xydozhniki.First;
while not DataModule2.xydozhniki.eof do begin
W.Selection.TypeText (DataModule2.xydozhniki.FieldByName('Фио_худ').asstring);
W.Selection.MoveRight(12.1);
W.Selection.TypeText(DataModule2.xydozhniki.FieldByName('Год_рож').asstring);
W.Selection.MoveRight(12.1);
W.Selection.TypeText(DataModule2.xydozhniki.FieldByName('Место_прож').asstring);
W.Selection.MoveRight(12.1);
W.Selection.TypeText(DataModule2.xydozhniki.FieldByName('Место_раб').asstring);
W.Selection.MoveRight(12.1);
W.Selection.TypeText(DataModule2.xydozhniki.FieldByName('Премии').asstring);
W.Selection.MoveRight(12.1);
W.Selection.TypeText (DataModule2.xydozhniki.FieldByName('Членство').asstring);
W.Selection.MoveRight(12.1);
W.Selection.TypeText(DataModule2.xydozhniki.FieldByName('Звание').asstring);
W.Selection.MoveRight(12.1);
DataModule2.xydozhniki.Next;
end;
end;
procedure TForm1.SpeedButton5Click(Sender: TObject);
var
W:Variant;
MyDir:String;
begin
Getdir(0,MyDir);
W:=CreateOleObject('Word.Application');
//W.Workbooks.add;
W.Documents.Open(MyDir + '\1.doc');
W.Visible:=true;
// Печатаем заголовок
W.Selection.TypeParagraph;
W.Selection.Paragraphs.Alignment:=1;
W.Selection.Font.Size:=20;
W.Selection.Font.Bold:=true;
W.Selection.TypeText('Справка "Перечень работ художников"'+#13+#10);
// Изменяем стиль текущего абзаца,
// потому что он будет в таблице
W.Selection.Font.Size:=12;
W.Selection.Paragraphs.Alignment:=3;
W.Selection.Font.Bold:=false;
// Создание таблицы
W.ActiveDocument.Tables.Add(Range:=W.Selection.Range,
NumRows:=2, NumColumns:=8,
DefaultTableBehavior:=1,
AutoFitBehavior:= 0);
// Заполнение таблицы
W.Selection.Font.Bold:=true;
W.Selection.TypeText('№картины');
W.Selection.MoveRight(12.1);
W.Selection.Font.Bold:=true;
W.Selection.TypeText('ФИО_худ');
W.Selection.MoveRight(12.1);
W.Selection.Font.Bold:=true;
W.Selection.TypeText('Техника_раб');
W.Selection.MoveRight(12.1);
W.Selection.Font.Bold:=true;
W.Selection.TypeText('Назв_карт');
W.Selection.MoveRight(12.1);
W.Selection.Font.Bold:=true;
W.Selection.TypeText('Размеры');
W.Selection.MoveRight(12.1);
W.Selection.Font.Bold:=true;
W.Selection.TypeText('Материал');
W.Selection.MoveRight(12.1);
W.Selection.Font.Bold:=true;
W.Selection.TypeText('Год_соз');
W.Selection.MoveRight(12.1);
W.Selection.Font.Bold:=true;
W.Selection.TypeText('Стоимость');
W.Selection.MoveRight(12.1);
W.Selection.Font.Bold:=true;
DataModule2.kartini.First;
while not DataModule2.kartini.eof do begin
W.Selection.TypeText (DataModule2.kartini.FieldByName('№картины').asstring);
W.Selection.MoveRight(12.1);
W.Selection.TypeText(DataModule2.kartini.FieldByName('ФИО_худ').asstring);
W.Selection.MoveRight(12.1);
W.Selection.TypeText(DataModule2.kartini.FieldByName('Техника_раб').asstring);
W.Selection.MoveRight(12.1);
W.Selection.TypeText(DataModule2.kartini.FieldByName('Назв_карт').asstring);
W.Selection.MoveRight(12.1);
W.Selection.TypeText(DataModule2.kartini.FieldByName('Размеры').asstring);
W.Selection.MoveRight(12.1);
W.Selection.TypeText (DataModule2.kartini.FieldByName('Материал').asstring);
W.Selection.MoveRight(12.1);
W.Selection.TypeText(DataModule2.kartini.FieldByName('Год_соз').asstring);
W.Selection.MoveRight(12.1);
W.Selection.TypeText(DataModule2.kartini.FieldByName('Стоимость').asstring);
W.Selection.MoveRight(12.1);
DataModule2.kartini.Next;
end;
end;
procedure TForm1.SpeedButton8Click(Sender: TObject);
var
W:Variant;
MyDir:String;
begin
Getdir(0,MyDir);
W:=CreateOleObject('Word.Application');
//W.Workbooks.add;
W.Documents.Open(MyDir + '\1.doc');
W.Visible:=true;
// Печатаем заголовок
W.Selection.TypeParagraph;
W.Selection.Paragraphs.Alignment:=1;
W.Selection.Font.Size:=20;
W.Selection.Font.Bold:=true;
W.Selection.TypeText('Ведомость "Данные о провиденных выставках"'+#13+#10);
// Изменяем стиль текущего абзаца,
// потому что он будет в таблице
W.Selection.Font.Size:=12;
W.Selection.Paragraphs.Alignment:=3;
W.Selection.Font.Bold:=false;
// Создание таблицы
W.ActiveDocument.Tables.Add(Range:=W.Selection.Range,
NumRows:=2, NumColumns:=7,
DefaultTableBehavior:=1,
AutoFitBehavior:= 0);
// Заполнение таблицы
W.Selection.Font.Bold:=true;
W.Selection.TypeText('ФИО_худ');
W.Selection.MoveRight(12.1);
W.Selection.Font.Bold:=true;
W.Selection.TypeText('Ном_выст');
W.Selection.MoveRight(12.1);
W.Selection.Font.Bold:=true;
W.Selection.TypeText('Назв_выст');
W.Selection.MoveRight(12.1);
W.Selection.Font.Bold:=true;
W.Selection.TypeText('Дата_пров');
W.Selection.MoveRight(12.1);
W.Selection.Font.Bold:=true;
W.Selection.TypeText('Кол_карт');
W.Selection.MoveRight(12.1);
W.Selection.Font.Bold:=true;
W.Selection.TypeText('Город');
W.Selection.MoveRight(12.1);
W.Selection.Font.Bold:=true;
W.Selection.TypeText('Посвящена');
W.Selection.MoveRight(12.1);
W.Selection.Font.Bold:=true;
DataModule2.vistavka.First;
while not DataModule2.vistavka.eof do begin
W.Selection.TypeText (DataModule2.vistavka.FieldByName('ФИО_худ').asstring);
W.Selection.MoveRight(12.1);
W.Selection.TypeText(DataModule2.vistavka.FieldByName('Ном_выст').asstring);
W.Selection.MoveRight(12.1);
W.Selection.TypeText(DataModule2.vistavka.FieldByName('Назв_выст').asstring);
W.Selection.MoveRight(12.1);
W.Selection.TypeText(DataModule2.vistavka.FieldByName('Дата_пров').asstring);
W.Selection.MoveRight(12.1);
W.Selection.TypeText(DataModule2.vistavka.FieldByName('Кол_карт').asstring);
W.Selection.MoveRight(12.1);
W.Selection.TypeText (DataModule2.vistavka.FieldByName('Город').asstring);
W.Selection.MoveRight(12.1);
W.Selection.TypeText(DataModule2.vistavka.FieldByName('Посвящена').asstring);
W.Selection.MoveRight(12.1);
DataModule2.vistavka.Next;
end;
end;
procedure TForm1.SpeedButton9Click(Sender: TObject);
begin
form4.QuickRep4.Preview;
end;
procedure TForm1.SpeedButton10Click(Sender: TObject);
begin
form4.QuickRep3.Preview;
end;
end.
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, DBCtrls, Mask, Buttons, jpeg, ExtCtrls;
type
TForm3 = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
TabSheet3: TTabSheet;
TabSheet4: TTabSheet;
DBEdit21: TDBEdit;
DBEdit17: TDBEdit;
DBEdit20: TDBEdit;
DBEdit16: TDBEdit;
DBEdit15: TDBEdit;
DBEdit14: TDBEdit;
DBComboBox3: TDBComboBox;
DBEdit19: TDBEdit;
DBEdit18: TDBEdit;
BitBtn3: TBitBtn;
BitBtn4: TBitBtn;
BitBtn5: TBitBtn;
BitBtn1: TBitBtn;
BitBtn6: TBitBtn;
Image1: TImage;
Label11: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label10: TLabel;
Label9: TLabel;
Label1: TLabel;
BitBtn2: TBitBtn;
DBEdit7: TDBEdit;
DBEdit6: TDBEdit;
DBCheckBox1: TDBCheckBox;
DBComboBox1: TDBComboBox;
DBEdit5: TDBEdit;
DBEdit4: TDBEdit;
DBEdit3: TDBEdit;
DBEdit2: TDBEdit;
DBEdit1: TDBEdit;
Image2: TImage;
Label19: TLabel;
Label18: TLabel;
Label12: TLabel;
Label14: TLabel;
Label13: TLabel;
Label15: TLabel;
Label16: TLabel;
Label17: TLabel;
DBEdit13: TDBEdit;
DBEdit12: TDBEdit;
DBEdit11: TDBEdit;
DBEdit10: TDBEdit;
DBEdit9: TDBEdit;
DBComboBox2: TDBComboBox;
DBEdit8: TDBEdit;
Image3: TImage;
Label24: TLabel;
Label20: TLabel;
Label8: TLabel;
Label21: TLabel;
Label22: TLabel;
Label23: TLabel;
Label28: TLabel;
Label29: TLabel;
Label30: TLabel;
Image4: TImage;
Label27: TLabel;
Label25: TLabel;
Label26: TLabel;
Label31: TLabel;
Label32: TLabel;
DBEdit22: TDBEdit;
Label33: TLabel;
SpeedButton1: TSpeedButton;
OpenDialog1: TOpenDialog;
BitBtn7: TBitBtn;
BitBtn8: TBitBtn;
BitBtn9: TBitBtn;
BitBtn10: TBitBtn;
procedure TabSheet1Show(Sender: TObject);
procedure TabSheet2Show(Sender: TObject);
procedure TabSheet3Show(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
procedure BitBtn5Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn6Click(Sender: TObject);
procedure TabSheet4Show(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure BitBtn7Click(Sender: TObject);
procedure BitBtn8Click(Sender: TObject);
procedure BitBtn9Click(Sender: TObject);
procedure BitBtn10Click(Sender: TObject);
{ Private declarations }
public
{ Public declarations }
end;
var
Form3: TForm3;
s:string;
implementation
uses Unit2, Unit1, Unit0;
{$R *.dfm}
procedure TForm3.TabSheet1Show(Sender: TObject);
begin
DBComboBox1.Items.clear;
DataModule2.premii.Open;
DataModule2.xydozhniki.Append;
DataModule2.premii.First;
while not DataModule2.premii.EOF do begin DBComboBox1.Items.Add(DataModule2.premii.Fields[0].value);
DataModule2.premii.Next;
end;
end;
procedure TForm3.TabSheet2Show(Sender: TObject);
begin
DBComboBox2.Items.clear;
DataModule2.xydozhniki.Open;
DataModule2.kartini.Append;
DataModule2.xydozhniki.First;
while not DataModule2.xydozhniki.EOF do begin DBComboBox2.Items.Add(DataModule2.xydozhniki.Fields[0].value);
DataModule2.xydozhniki.Next;
end;
end;
procedure TForm3.TabSheet3Show(Sender: TObject);
begin
DBComboBox3.Items.clear;
DataModule2.xydozhniki.open;
DataModule2.vistavka.Append;
DataModule2.xydozhniki.First;
while not DataModule2.xydozhniki.Eof do Begin DBComboBox3.Items.Add(DataModule2.xydozhniki.Fields[0].Value);
DataModule2.xydozhniki.Next;
end;
end;
procedure TForm3.BitBtn2Click(Sender: TObject);
begin
dataModule2.xydozhniki.Post;
end;
procedure TForm3.BitBtn3Click(Sender: TObject);
begin
DataModule2.kartini.fields[8].Value:=OpenDialog1.FileName;
OpenDialog1.FileName:=s;
dataModule2.kartini.Post;
end;
procedure TForm3.BitBtn4Click(Sender: TObject);
begin
dataModule2.vistavka.Post;
end;
procedure TForm3.BitBtn5Click(Sender: TObject);
begin
dataModule2.premii.Post;
end;
procedure TForm3.BitBtn1Click(Sender: TObject);
begin
close;
form0.show;
end;
procedure TForm3.BitBtn6Click(Sender: TObject);
begin
close;
form1.show;
end;
procedure TForm3.TabSheet4Show(Sender: TObject);
begin
DataModule2.premii.Append;
end;
procedure TForm3.SpeedButton1Click(Sender: TObject);
begin
getdir(0,s);
OpenDialog1.Execute;
end;
procedure TForm3.BitBtn7Click(Sender: TObject);
begin
DataModule2.kartini.Append;
end;
procedure TForm3.BitBtn8Click(Sender: TObject);
begin
DataModule2.xydozhniki.Append;
end;
procedure TForm3.BitBtn9Click(Sender: TObject);
begin
DataModule2.vistavka.Append;
end;
procedure TForm3.BitBtn10Click(Sender: TObject);
begin
DataModule2.premii.Append;
end;
end.
unit Unit5;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ExtCtrls, DBCtrls, Grids, DBGrids, ComCtrls,
Mask, ActnList, Gauges, OleServer, ExcelXP, jpeg;
type
TForm5 = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
Image1: TImage;
Label4: TLabel;
Label5: TLabel;
Label10: TLabel;
Label7: TLabel;
Label8: TLabel;
DBGrid1: TDBGrid;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit7: TEdit;
Edit8: TEdit;
TabSheet3: TTabSheet;
Image2: TImage;
Label1: TLabel;
DBGrid2: TDBGrid;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
BitBtn6: TBitBtn;
DBGrid3: TDBGrid;
TabSheet2: TTabSheet;
Image3: TImage;
DBGrid4: TDBGrid;
TabSheet4: TTabSheet;
Image4: TImage;
Label2: TLabel;
DBGrid5: TDBGrid;
Edit4: TEdit;
DBComboBox1: TDBComboBox;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
SpeedButton1: TSpeedButton;
SpeedButton2: TSpeedButton;
SpeedButton3: TSpeedButton;
SpeedButton4: TSpeedButton;
SpeedButton5: TSpeedButton;
SpeedButton6: TSpeedButton;
SpeedButton7: TSpeedButton;
SpeedButton8: TSpeedButton;
Edit5: TEdit;
Edit6: TEdit;
Edit9: TEdit;
Edit10: TEdit;
Edit11: TEdit;
Label3: TLabel;
Label6: TLabel;
Label9: TLabel;
Label11: TLabel;
Label12: TLabel;
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure BitBtn6Click(Sender: TObject);
procedure Edit1Change(Sender: TObject);
procedure Edit2Change(Sender: TObject);
procedure Edit3Change(Sender: TObject);
procedure Edit7Change(Sender: TObject);
procedure Edit8Change(Sender: TObject);
procedure TabSheet4Show(Sender: TObject);
procedure Image4MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure DBGrid5MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure SpeedButton3Click(Sender: TObject);
procedure SpeedButton4Click(Sender: TObject);
procedure SpeedButton5Click(Sender: TObject);
procedure SpeedButton6Click(Sender: TObject);
procedure SpeedButton7Click(Sender: TObject);
procedure SpeedButton8Click(Sender: TObject);
procedure Edit5Change(Sender: TObject);
procedure Edit6Change(Sender: TObject);
procedure Edit9Change(Sender: TObject);
procedure Edit10Change(Sender: TObject);
procedure Edit11Change(Sender: TObject);
procedure DBComboBox1Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form5: TForm5;
s:string;
implementation
uses Unit0, Unit2, ComObj, Unit4;
{$R *.dfm}
procedure TForm5.BitBtn1Click(Sender: TObject);
begin
close;
form0.show;
end;
procedure TForm5.BitBtn2Click(Sender: TObject);
begin
DBGrid2.DataSource:=DataModule2.DataSource5;
DataModule2.ADOQuery1.Close;
DataModule2.ADOQuery1.Open;
Label1.Visible:=false;
DBGrid3.Visible:=false;
SpeedButton6.Visible:=false;
SpeedButton8.Visible:=false;
SpeedButton7.Visible:=true;
end;
procedure TForm5.BitBtn3Click(Sender: TObject);
begin
DBGrid2.DataSource:=DataModule2.DataSource6;
DataModule2.ADOQuery2.Close;
DataModule2.ADOQuery2.Open;
Label1.Visible:=false;
DBGrid3.Visible:=false;
SpeedButton6.Visible:=false;
SpeedButton8.Visible:=true;
SpeedButton7.Visible:=false;
end;
procedure TForm5.BitBtn6Click(Sender: TObject);
begin
DBGrid2.DataSource:=DataModule2.DataSource7;
DataModule2.ADOQuery3.Close;
DataModule2.ADOQuery3.Open;
Label1.Visible:=True;
DBGrid3.Visible:=True;
SpeedButton6.Visible:=true;
SpeedButton8.Visible:=false;
SpeedButton7.Visible:=false;
DBGrid3.DataSource:=DataModule2.DataSource8;
DataModule2.ADOQuery4.Close;
DataModule2.ADOQuery4.Open;
end;
procedure TForm5.Edit1Change(Sender: TObject);
begin
DBGrid1.DataSource:=DataModule2.DataSource11;
DataModule2.ADOQuery7.Close;
DataModule2.ADOQuery7.sql.Clear;
s:='SELECT Spisok_xydozhnikov.Фио_худ, Spisok_xydozhnikov.Год_рож, Spisok_xydozhnikov.Место_прож, Spisok_xydozhnikov.образование, Spisok_xydozhnikov.Место_раб, Spisok_xydozhnikov.членство';
s:=s+' from Spisok_xydozhnikov';
s:=s+' WHERE Spisok_xydozhnikov.Фио_худ LIKE'+'"'+edit1.text+'%"';
DataModule2.ADOQuery7.sql.Add(s);
DataModule2.ADOQuery7.Open;
end;
procedure TForm5.Edit2Change(Sender: TObject);
begin
DBGrid1.DataSource:=DataModule2.DataSource11;
DataModule2.ADOQuery7.Close;
DataModule2.ADOQuery7.sql.Clear;
s:='SELECT Spisok_xydozhnikov.Фио_худ, Spisok_xydozhnikov.Год_рож, Spisok_xydozhnikov.Место_прож, Spisok_xydozhnikov.образование, Spisok_xydozhnikov.Место_раб, Spisok_xydozhnikov.членство';
s:=s+' from Spisok_xydozhnikov';
s:=s+' WHERE Spisok_xydozhnikov.место_прож LIKE'+'"'+edit2.text+'%"';
DataModule2.ADOQuery7.sql.Add(s);
DataModule2.ADOQuery7.Open;
end;
procedure TForm5.Edit3Change(Sender: TObject);
begin
DBGrid1.DataSource:=DataModule2.DataSource11;
DataModule2.ADOQuery7.Close;
DataModule2.ADOQuery7.sql.Clear;
s:='SELECT Spisok_xydozhnikov.Фио_худ, Spisok_xydozhnikov.Год_рож, Spisok_xydozhnikov.Место_прож, Spisok_xydozhnikov.образование, Spisok_xydozhnikov.Место_раб, Spisok_xydozhnikov.членство';
s:=s+' from Spisok_xydozhnikov';
s:=s+' WHERE Spisok_xydozhnikov.Год_рож LIKE'+'"'+edit3.text+'%"';
DataModule2.ADOQuery7.sql.Add(s);
DataModule2.ADOQuery7.Open;
end;
procedure TForm5.Edit7Change(Sender: TObject);
begin
DBGrid1.DataSource:=DataModule2.DataSource11;
DataModule2.ADOQuery7.Close;
DataModule2.ADOQuery7.sql.Clear;
s:='SELECT Spisok_xydozhnikov.Фио_худ, Spisok_xydozhnikov.Год_рож, Spisok_xydozhnikov.Место_прож, Spisok_xydozhnikov.образование, Spisok_xydozhnikov.Место_раб, Spisok_xydozhnikov.членство';
s:=s+' from Spisok_xydozhnikov';
s:=s+' WHERE Spisok_xydozhnikov.образование LIKE'+'"'+edit7.text+'%"';
DataModule2.ADOQuery7.sql.Add(s);
DataModule2.ADOQuery7.Open;
end;
procedure TForm5.Edit8Change(Sender: TObject);
begin
DBGrid1.DataSource:=DataModule2.DataSource11;
DataModule2.ADOQuery7.Close;
DataModule2.ADOQuery7.sql.Clear;
s:='SELECT Spisok_xydozhnikov.Фио_худ, Spisok_xydozhnikov.Год_рож, Spisok_xydozhnikov.Место_прож, Spisok_xydozhnikov.образование, Spisok_xydozhnikov.Место_раб, Spisok_xydozhnikov.членство';
s:=s+' from Spisok_xydozhnikov';
s:=s+' WHERE Spisok_xydozhnikov.Место_раб LIKE'+'"'+edit8.text+'%"';
DataModule2.ADOQuery7.sql.Add(s);
DataModule2.ADOQuery7.Open;
end;
procedure TForm5.TabSheet4Show(Sender: TObject);
begin
DBComboBox1.Items.clear;
DataModule2.xydozhniki.open;
DataModule2.xydozhniki.First;
while not DataModule2.xydozhniki.Eof do Begin DBComboBox1.Items.Add(DataModule2.xydozhniki.Fields[0].Value);
DataModule2.xydozhniki.Next;
end;
end;
procedure TForm5.Image4MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
Edit4.Text:=DBComboBox1.Text;
DataModule2.ADOQuery10.Close;
DataModule2.ADOQuery10.sql.Clear;
s:='SELECT Kartini.Назв_карт, Kartini.Размеры, Kartini.Стоимость';
s:=s+' FROM Kartini';
s:=s+' WHERE Kartini.Фио_худ LIKE'+'"'+edit4.text+'%"';
DataModule2.ADOQuery10.sql.Add(s);
DataModule2.ADOQuery10.Open;
{ SELECT Kartini.Назв_карт, Kartini.Размеры, Kartini.Стоимость
FROM Kartini
WHERE Фио_худ LIKE :par
DataModule2.ADOQuery10.Close;
DataModule2.ADOQuery10.Parameters[0].Value:=edit4.Text+'%';
DataModule2.ADOQuery10.Open; }
end;
procedure TForm5.DBGrid5MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
Edit4.Text:=DBComboBox1.Text;
DataModule2.ADOQuery10.Close;
DataModule2.ADOQuery10.sql.Clear;
s:='SELECT Kartini.Назв_карт, Kartini.Размеры, Kartini.Стоимость';
s:=s+' FROM Kartini';
s:=s+' WHERE Kartini.Фио_худ LIKE'+'"'+edit4.text+'%"';
DataModule2.ADOQuery10.sql.Add(s);
DataModule2.ADOQuery10.Open;
end;
procedure TForm5.Button1Click(Sender: TObject);
begin
form0.Show;
form5.Hide;
end;
procedure TForm5.Button3Click(Sender: TObject);
begin
form0.Show;
form5.Hide;
end;
procedure TForm5.Button2Click(Sender: TObject);
begin
form0.Show;
form5.Hide;
end;
procedure TForm5.Button4Click(Sender: TObject);
begin
form0.Show;
form5.Hide;
end;
procedure TForm5.Button5Click(Sender: TObject);
begin
form0.Show;
form5.Hide;
end;
procedure TForm5.SpeedButton1Click(Sender: TObject);
begin
DBGrid5.DataSource:=DataModule2.DataSource14;
end;
procedure TForm5.SpeedButton2Click(Sender: TObject);
begin
DBGrid5.DataSource:=DataModule2.DataSource17;
end;
procedure TForm5.SpeedButton3Click(Sender: TObject);
begin
form4.QRLabel47.Caption:=form5.edit4.text;
form4.QuickRep6.Preview;
end;
procedure TForm5.SpeedButton4Click(Sender: TObject);
begin
form4.QRLabel49.Caption:=form5.edit4.text;
form4.QuickRep7.Preview;
end;
procedure TForm5.SpeedButton5Click(Sender: TObject);
begin
form4.QuickRep5.Preview;
end;
procedure TForm5.SpeedButton6Click(Sender: TObject);
begin
form4.QuickRep8.Preview;
end;
procedure TForm5.SpeedButton7Click(Sender: TObject);
begin
form4.QuickRep9.Preview;
end;
procedure TForm5.SpeedButton8Click(Sender: TObject);
begin
form4.QuickRep10.Preview;
end;
procedure TForm5.Edit5Change(Sender: TObject);
begin
DBGrid4.DataSource:=DataModule2.DataSource9;
DataModule2.ADOQuery5.Close;
DataModule2.ADOQuery5.sql.Clear;
s:='SELECT vistavka.Фио_худ, vistavka.Назв_выст, vistavka.Дата_пров, vistavka.кол_карт, vistavka.Город, vistavka.Посвящена';
s:=s+' from vistavka';
s:=s+' WHERE vistavka.Фио_худ LIKE'+'"'+edit5.text+'%"';
DataModule2.ADOQuery5.sql.Add(s);
DataModule2.ADOQuery5.Open;
end;
procedure TForm5.Edit6Change(Sender: TObject);
begin
DBGrid4.DataSource:=DataModule2.DataSource9;
DataModule2.ADOQuery5.Close;
DataModule2.ADOQuery5.sql.Clear;
s:='SELECT vistavka.Фио_худ, vistavka.Назв_выст, vistavka.Дата_пров, vistavka.кол_карт, vistavka.Город, vistavka.Посвящена';
s:=s+' from vistavka';
s:=s+' WHERE vistavka.Назв_выст LIKE'+'"'+edit6.text+'%"';
DataModule2.ADOQuery5.sql.Add(s);
DataModule2.ADOQuery5.Open;
end;
procedure TForm5.Edit9Change(Sender: TObject);
begin
DBGrid4.DataSource:=DataModule2.DataSource9;
DataModule2.ADOQuery5.Close;
DataModule2.ADOQuery5.sql.Clear;
s:='SELECT vistavka.Фио_худ, vistavka.Назв_выст, vistavka.Дата_пров, vistavka.кол_карт, vistavka.Город, vistavka.Посвящена';
s:=s+' from vistavka';
s:=s+' WHERE vistavka.Дата_пров LIKE'+'"'+edit9.text+'%"';
DataModule2.ADOQuery5.sql.Add(s);
DataModule2.ADOQuery5.Open;
end;
procedure TForm5.Edit10Change(Sender: TObject);
begin
DBGrid4.DataSource:=DataModule2.DataSource9;
DataModule2.ADOQuery5.Close;
DataModule2.ADOQuery5.sql.Clear;
s:='SELECT vistavka.Фио_худ, vistavka.Назв_выст, vistavka.Дата_пров, vistavka.кол_карт, vistavka.Город, vistavka.Посвящена';
s:=s+' from vistavka';
s:=s+' WHERE vistavka.Город LIKE'+'"'+edit10.text+'%"';
DataModule2.ADOQuery5.sql.Add(s);
DataModule2.ADOQuery5.Open;
end;
procedure TForm5.Edit11Change(Sender: TObject);
begin
DBGrid4.DataSource:=DataModule2.DataSource9;
DataModule2.ADOQuery5.Close;
DataModule2.ADOQuery5.sql.Clear;
s:='SELECT vistavka.Фио_худ, vistavka.Назв_выст, vistavka.Дата_пров, vistavka.кол_карт, vistavka.Город, vistavka.Посвящена';
s:=s+' from vistavka';
s:=s+' WHERE vistavka.Посвящена LIKE'+'"'+edit11.text+'%"';
DataModule2.ADOQuery5.sql.Add(s);
DataModule2.ADOQuery5.Open;
end;
procedure TForm5.DBComboBox1Change(Sender: TObject);
begin
Edit4.Text:=DBComboBox1.Text;
DataModule2.ADOQuery13.Close;
DataModule2.ADOQuery13.sql.Clear;
s:='SELECT vistavka.Назв_выст, vistavka.дата_пров, vistavka.кол_карт, vistavka.Город, vistavka.Посвящена';
s:=s+' FROM vistavka';
s:=s+' WHERE vistavka.Фио_худ LIKE'+'"'+edit4.text+'%"';
DataModule2.ADOQuery13.sql.Add(s);
DataModule2.ADOQuery13.Open;
end;
end.