Информатика программирование : Дипломная работа: Организация автоматизации учета на предприятиях
Дипломная работа: Организация автоматизации учета на предприятиях
СОДЕРЖАНИЕ
Введение
1. Теоретический раздел
1.1. Постановка задачи
1.1.1. Описание входной информации
1.1.2.Описание выходной информации
1.2. Схема и описание схемы алгоритма задачи
1.2.1. Схема и описание схемы разработки проекта
1.2.2 Схема и описание схемы алгоритма программы
1.3. Обоснование выбора языка программирования
1.4. Описание операционной системы
1.5. Описание структуры базы данных
2. Экспериментальный раздел
2.1. Описание процесса отладки программы
2.2. Характеристика программы
2.3. Контрольный пример
2.4. Инструкция пользователя
Заключение
Литература
Приложение
Введение
Современное общество невозможно представить без компьютера. Они
настолько широко и глубоко внедрились в нашу жизнь, что очень трудно назвать
какую-либо сферу деятельности человека, где бы они не использовались.
В связи с этим серьезные требования предъявляются и к аппаратной
части современных компьютеров, и к используемому программному обеспечению. В
основном именно программное обеспечение, или, иными словами, программные
продукты, обеспечивают возможность широкого использования компьютеров. Стоит
нам переустановить программное обеспечение компьютера или добавить какой-либо
новый программный продукт, и мы сможем решать на этом компьютере совершенно
новые задачи. Следовательно, используемые программные продукты должны
соответствовать определенным критериям, обеспечивающим надежность работы
компьютера и удобство работы пользователя.
Если аппаратура компьютера, даже самые простейшие ее компоненты, с
самого начала разрабатывались и выпускались в соответствии с установленным
технологическим процессом, то какой-то определенной технологии разработки
программных продуктов первое время не существовало. Разработчики опирались в
основном на свой личный опыт, используя кустарные способы разработки. Такой
подход не мог не отразиться на качестве разрабатываемых программных продуктов,
сроках их разработки и, следовательно, на их стоимости. Данная ситуация была
названа кризисом программирования.
Чтобы
выйти из кризиса, необходимо было создать индустриальные способы разработки
программных продуктов, т.е. технологию их разработки, которая включала бы в
себя различные передовые инженерные методы и средства создания программных
продуктов. В дальнейшем эти методы и средства были объединены общим понятием
«программная инженерия» (software engineering). Создание
указанной технологии в совокупности с системой оценки ее использования при
разработке программных продуктов позволило повысить надежность программных
продуктов и качество их разработки, а также облегчило заказчикам выбор
организации для разработки необходимого им программного продукта.
За
полвека своего существования программное обеспечение претерпело огромные
изменения, пройдя путь от программ, способных выполнять только простейшие
логические и арифметические операции, до сложных систем управления предприятиями.
В программном обеспечении всегда можно было выделить два основных направления
развития: выполнение вычислений; накопление и обработка информации.
Хотя
первоначально компьютеры предназначались главным образом для выполнения
сложных математических расчетов (в первую очередь для расчетов, связанных с
созданием ядерного оружия и ракетной техники), в настоящее время доминирующим
является второе направление. Такое перераспределение основных функций,
выполняемых вычислительной техникой, вполне понятно — гражданские области
применения компьютеров гораздо более распространены, чем военные и научные, а
снижение стоимости компьютеров сделало их доступными для совсем небольших
предприятий и даже частных лиц.
Компьютеры давно и прочно вошли в
такие области управления, как бухгалтерский учет, управление складом,
ассортиментом и закупками. Однако современный бизнес требует гораздо более
широкого применения информационных технологий в управлении предприятием.
Жизнеспособность и развитие информационных технологий объясняется тем, что
современный бизнес крайне чувствителен к ошибкам в управлении. Интуиции,
личного опыта руководителя и размеров капитала уже мало для того, чтобы быть
первым. Для принятия любого грамотного управленческого решения в условиях
неопределенности и риска необходимо постоянно держать под контролем различные
аспекты финансово-хозяйственной деятельности, будь то торговля, производство или предоставление каких-либо услуг.
Поэтому современный подход к управлению предполагает вложение средств в
информационные технологии.
Теоретический раздел
1.1. Постановка задачи
Основной
задачей данного курсового проекта является разработка базы данных и
соответствующего приложения для автоматизации ведения кадрового учёта
некоторого предприятия. Конечная цель этой задачи формирование таблицы анкетных
данных. В программе используется много информации, и ее нужно где то хранить.
Поэтому мы будем использовать базу данных. Очевидно, что первой задачей и
является разработка базы данных для хранения всей необходимой информации. В
зависимости от расположения программы, использующей данные, и самих данных, а
также способа разделения данных между несколькими пользователями различают
локальные (Paradox, dBase, FoxPro и Access) и удаленные (Interbase Sybase, Oracle и т.д.) базы данных. В данном случае
мы будем создавать удалённую базу данных. Данные удалённой базы данных (файлы
данных) находятся на одном удалённом устройстве, в качестве которого может
выступать диск компьютера.
База данных
это набор файлов (таблиц), в которых находится информация. Как правило, база
данных состоит из нескольких таблиц, которые размещают в одном каталоге.
Каталог для новой базы данных создается обычным образом, например, при помощи
Проводника. Таблицу мы будем создавать, воспользовавшись утилитой IBConsole. Сначала
при помощи этой утилиты мы создадим сами таблицы, а затем еще генераторы и
триггеры. Генератор – это специальная функция
InterBase, с помощью которой создается счетчик для поля базы данных. А триггер
нужен для того, чтобы привязать генератор к нужной таблице и к нужному полю.
Таким
образом, процесс создания базы данных может быть представлен как
последовательность следующих шагов:
·
создание каталога;
·
создание таблиц;
·
создание
генераторов;
·
создание триггеров.
Следующей
задачей является разработка графического интерфейса пользователя клиентских
приложений. Говоря понятным языком, данный программный продукт ориентирован на
конечного пользователя (в нашем случае на преподавателя), не обладающего
высокой квалификацией в области вычислительной техники. Поэтому наше
приложение должно обладать простым, удобным, легко осваиваемым интерфейсом,
который предоставляет конечному пользователю все необходимые для работы функции
и в то же время не дает ему возможность выполнять какие-либо лишние действия.
И
последняя наша задача - это связать нашу программу с базой данных, и обеспечить
возможность подключиться к удаленной базе данных по сети с любого компьютера.
Итак,
чтобы перейти к конечной цели нашего курсового проекта надо разобраться со
следующими задачами:
·
разработка
структуры таблиц базы данных;
·
создание
таблиц;
·
создание
генераторов и триггеров;
·
связать
программу с базой данных, находящейся на удалённом компьютере;
·
разработка
графического интерфейса пользователя клиентских приложений;
·
обеспечить
работоспособность программного продукта на любом компьютере.
1.1.1. Описание входной информации
В данной
программе в качестве входной информации выступают данные в таблицу: Анкета. В
этой таблице хранится фамилия, имя, отчество, пол, рост, вес, фото, дата
рождения, адрес(страна), адрес(область), адрес(город), адрес(улица),
адрес(квартира), адрес(индекс), адрес(телефон), место рождения(страна), место
рождения(область), место рождения(город), гражданство, образование, номер
страхового свидетельства, ИНН, серия трудовой книжки, номер трудовой книжки,
номер паспорта, серия паспорта, выдан паспорт, дата выдачи паспорта.
Визуально
ввод данных обеспечивается следующими компонентами:
·
TRadioButton – визуальный компонент, позволяющий зафиксировать
одно значение, из нескольких, принадлежащих к одной группе.
·
TEdit
однострочный текстовый редактор, при помощи которого вводится нужная информация,
например пароль и имя преподавателя.
·
TDBEdit
компонент, имеющий такие же свойства как и TEdit, но с дополнительной
возможностью связи с каким либо полем таблицы базы данных;
·
TComboBox – визуальный
компонент, позволяет выбрать одно значение из списка.
1.1.2.Описание выходной информации
Выходной
информацией являются отчёты, которые формируются программой из записей,
содержащейся в базе данных.
Пример
отчета
1.2. Схема и описание схемы алгоритма задачи
1.2.1. Схема и описание схемы разработки проекта
Данная
блок-схема отображает структуру приложения, где Particulars.exe – это exe-файл
программы, а DBCtrls, Grids, ExtCtrls и проч. – модули, используемые
exe-файлом.
1.2.2
Схема и описание схемы алгоритма программы
Данная блок-схема отображает алгоритм добавления фотографии
1.3. Обоснование выбора языка программирования
Delphi
- это греческий город, где жил дельфийский оракул. И этим именем был назван
программный продукт с феноменальными характеристиками. Delphi - это потомок Turbo Pascal, который был
выпущен для операционной системы CP/M в 1983 году. В феврале 1994 года Turbo Pascal был перенесён
на операционную систему MS-DOS.
На
раннем этапе развития компьютеров IBM PC, Turbo Pascal являлся одним
из наиболее популярных языков разработки программного обеспечения - главным
образом потому, что это был вполне серьезный компилятор, который, включая
компилятор, редактор и все остальное, стоил всего $19.95 и работал на машине с
64 Kb оперативной памяти.
Под
Windows - Turbo Pascal был перенесен
фирмой Borland в 1990 году. А версия Borland Pascal 7.0, не считая Delphi,
вышла в свет в 1992 году.
Разработка
Delphi началась в 1993 году. После проведения beta-тестирования Delphi показали
на "Software Development '95". И 14 февраля 1995 года официально
объявили о ее продаже в США. В торговлю Delphi попала спустя 14 дней, 28
февраля 1995 года.
Итак,
Delphi - это комбинация нескольких важнейших технологий:
· высокопроизводительный
компилятор в машинный код.
Этот
компилятор в настоящее время является одним их самых быстрых в мире, его
скорость компиляции составляет свыше 120 тысяч строк в минуту на компьютере
486DX33. Он предлагает легкость разработки и быстрое время проверки готового
программного блока, характерного для языков четвертого поколения (4GL) и в то
же время обеспечивает качество кода, характерного для компилятора 3GL. Кроме
того, Delphi обеспечивает быструю разработку без необходимости писать вставки
на С++ или ручного написания кода (хотя это возможно).
Еще
до компиляции разработчик видит результаты своей работы - после подключения к
источнику данных их можно видеть отображенными на форме, можно перемещаться по
данным, представлять их в том или ином виде. В этом смысле проектирование в
Delphi мало чем отличается от проектирования в интерпретирующей среде, однако
после выполнения компиляции мы получаем код, который исполняется в 10-20 раз
быстрее, чем то же самое, сделанное при помощи интерпретатора. Кроме того, в
Delphi компиляция производится непосредственно в родной машинный код, в то
время как существуют компиляторы, превращающие программу в так называемый
p-код, который затем интерпретируется виртуальной p-машиной. Это не может не
сказаться на фактическом быстродействии готового приложения;
· объектно-ориентированная
модель компонент.
Основной
упор этой модели в Delphi делается на максимальном «реиспользовании» кода. Это
позволяет разработчикам строить приложения весьма быстро из заранее подготовленных
объектов, а также дает им возможность создавать свои собственные объекты для
среды Delphi. Никаких ограничений по типам объектов, которые могут создавать
разработчики, не существует. Действительно, все в Delphi написано на нем же,
поэтому разработчики имеют доступ к тем же объектам и инструментам, которые
использовались для создания среды разработки. В результате нет никакой разницы
между объектами, поставляемыми Borland или третьими фирмами, и объектами,
которые вы можете создать;
· визуальное (а,
следовательно, и скоростное) построение приложений из программных прототипов;
· масштабируемые
средства для построения баз данных.
Объекты
БД в Delphi основаны на SQL и включают в себя полную мощь Borland Database
Engine. В состав Delphi также включен Borland SQL Link, поэтому доступ к СУБД
Oracle, Sybase, Informix и InterBase происходит с высокой эффективностью. Кроме
того, Delphi включает в себя локальный сервер Interbase для того, чтобы можно
было разработать расширяемые на любые внешние SQL-сервера приложения в
«офлайновом» режиме. Разработчик в среде Delphi, проектирующий информационную
систему для локальной машины (к примеру, небольшую систему учета медицинских
карточек для одного компьютера), может использовать для хранения информации
файлы формата .dbf (как в dBase или Clipper) или .db (Paradox). Если же он
будет использовать локальный InterBase for Windows 4.0 (это локальный
SQL-сервер, входящий в поставку), то его приложение безо всяких изменений будет
работать и в составе большой системы с архитектурой клиент-сервер.
Вот
она - масштабируемость на практике - одно и то же приложение можно использовать
как для локального, так и для более серьезного клиент-серверного вариантов.
1.4. Описание операционной системы
Данная
информационно-справочная система разрабатывалась в операционной системе Windows XP Professional.
Windows
XP базируется на Windows 2000, более старой, но мощной версией Windows, которую
компания Microsoft создала для работы, главным образом, в больших сетях.
По этой причине Windows XP работает намного стабильнее, чем Windows Me или
Windows 98. Существует
две версии
Windows XP: Windows XP Home и Windows XP Professional. Windows XP Home
поддерживает работу в сети, совместное использование модема и другие средства.
Windows XP Professional предназначена для выполнения более сложных вычислений.
Она поддерживает сложные средства обеспечения безопасности, групповые политики,
перемещаемые профили пользователей, протокол безопасности Kerberos и многое
другое. Windows XP Professional лучше работает на переносных компьютерах, чем
Windows XP Ноmе, поскольку
содержит лучшие средства управления питанием, а также лучше работает с беспроводными
подключениями к Internet.
1.5. Описание структуры базы данных
С
точки зрения пользователя, база данных — это программа, которая обеспечивает
работу с информацией. При запуске такой программы на экране, как правило,
появляется таблица, просматривая которую пользователь может найти интересующие
его сведения. Если система позволяет, то он может внести изменения в базу
данных: добавить новую информацию или удалить ненужную.
С
точки зрения программиста, база данных — это набор файлов, содержащих
информацию. Разрабатывая базу данных для пользователя, программист создает
программу, которая обеспечивает работу с файлами данных.
В
настоящее время существует достаточно большое количество программных систем,
позволяющих создавать и использовать локальные (dBASE, FoxPro, Access, Paradox)
и удаленные (Interbase, Oracle, Sysbase, Infomix, Microsoft SQL Server) базы
данных.
В
состав Delphi входят компоненты, позволяющие создавать программы работы с
файлами данных, созданными различными системами: от dBASE до Infomix и Oracle. Delphi
также позволяет программисту создавать файлы баз данных в различных форматах,
используя различные утилиты. В нашем случае база данных, используемая в
программе, создана в системе InterBase, при помощи утилиты IBConsole.
База
данных содержит 1 таблицу: ANKETA, описание полей которой приведено
ниже.
Nom – поле, которое
является ключевым в таблице «ANKETA». Это поле имеет тип данных как
числовой – Smallint, и
автоматически увеличивает своё значение. Этот тип данных как поле Autoincrement (+).
Fam – Поле
предназначенное для хранения фамилии. Тип данных поля: Varchar. Максимально
допустимый размер поля – 20 символ.
Name – Поле,
предназначенное для хранения имени. Тип данных поля: Varchar. Максимально
допустимый размер поля – 15 символ.
Otch – Поле,
предназначенное для хранения отчества. Тип данных поля: Varchar. Максимально
допустимый размер поля – 15 символ.
Pol – Поле,
предназначенное для хранения информации о пола. Тип данных поля: Varchar.
Максимально допустимый размер поля – 1 символов.
Rost – Поле,
предназначенное для хранения информации о росте. Тип данных поля: Varchar.
Максимально допустимый размер поля – 5 символов.
Ves – Поле,
предназначенное для хранения информации о весе. Тип данных поля: Varchar.
Максимально допустимый размер поля – 5 символов.
Foto – Поле,
предназначенное для хранения фотографии. Тип данных поля: BLOB.
DR – Поле,
предназначенное для хранения даты рождения. Тип данных поля: DATE.
Ard_str – Поле, предназначенное
для хранения информации о стране. Тип данных поля: Varchar. Максимально
допустимый размер поля – 25 символов.
Ard_obl – Поле,
предназначенное для хранения информации об области. Тип данных поля: Varchar.
Максимально допустимый размер поля – 25 символов.
Ard_gor – Поле,
предназначенное для хранения информации о городе. Тип данных поля: Varchar.
Максимально допустимый размер поля – 15 символов.
Ard_yl – Поле,
предназначенное для хранения информации о улице. Тип данных поля: Varchar.
Максимально допустимый размер поля – 20 символов.
Ard_dom – Поле,
предназначенное для хранения информации о доме. Тип данных поля: Varchar.
Максимально допустимый размер поля – 5 символов.
Ard_kv – Поле,
предназначенное для хранения информации о квартире. Тип данных поля: Varchar.
Максимально допустимый размер поля – 5 символов.
Ard_ind – Поле,
предназначенное для хранения информации о индексе. Тип данных поля: Varchar.
Максимально допустимый размер поля – 6 символов.
Ard_tel – Поле,
предназначенное для хранения информации о телефоне. Тип данных поля: Varchar.
Максимально допустимый размер поля – 15 символов.
Mroz_str – Поле,
предназначенное для хранения информации о стране, месте рождения. Тип данных
поля: Varchar. Максимально допустимый размер поля – 25 символов.
Mroz_obl – Поле,
предназначенное для хранения информации об области, месте рождения. Тип данных
поля: Varchar. Максимально допустимый размер поля – 25 символов.
Mroz_gor – Поле,
предназначенное для хранения информации о городе, месте рождения. Тип данных поля:
Varchar. Максимально допустимый размер поля – 15 символов.
Grazdan – Поле,
предназначенное для хранения информации о гражданстве. Тип данных поля:
Varchar. Максимально допустимый размер поля – 15 символов.
Obrazov – Поле,
предназначенное для хранения информации об образовании. Тип данных поля:
Varchar. Максимально допустимый размер поля – 30 символов.
Nom_strax_sved – Поле,
предназначенное для хранения информации о номере страхового сведетельства. Тип
данных поля: Varchar. Максимально допустимый размер поля – 13 символов.
INN – Поле,
предназначенное для хранения информации о ИНН. Тип данных поля: Varchar.
Максимально допустимый размер поля – 12 символов.
Tryd_kn_seriya – Поле,
предназначенное для хранения информации о серии трудовой книжки. Тип данных
поля: Varchar. Максимально допустимый размер поля – 6 символов.
Tryd_kn_nomer – Поле,
предназначенное для хранения информации о номере трудовой книжки. Тип данных
поля: Varchar. Максимально допустимый размер поля – 20 символов.
Paspost_nom – Поле, предназначенное
для хранения информации о номере паспорта. Тип данных поля: Varchar.
Максимально допустимый размер поля – 4 символов.
Paspost_ ser – Поле,
предназначенное для хранения информации о серии паспорта. Тип данных поля:
Varchar. Максимально допустимый размер поля – 6 символов.
Paspost_vidan – Поле,
предназначенное для хранения информации о том кем паспорт был выдан. Тип данных
поля: Varchar. Максимально допустимый размер поля – 50 символов.
Paspost_data – Поле,
предназначенное для хранения информации о том когда паспорт был выдан. Тип
данных поля: DATE.
2. Экспериментальный раздел
2.1.
Описание процесса отладки
Успешное
завершение процесса компиляции не означает, что в программе нет ошибок.
Убедиться, что программа работает правильно можно только в процессе проверки ее
работоспособности, который называется тестирование.
Обычно
программа редко сразу начинает работать так, как надо, или работает правильно
только на некотором ограниченном наборе исходных данных. Это свидетельствует о
том, что в программе есть алгоритмические ошибки. Процесс поиска и устранение
ошибок называется отладкой.
Delphi
обладает мощнейшим, встроенным в редактор графическим отладчиком, позволяющим
находить и устранять ошибки в коде. Мы можем установить точки остановки,
проверить и изменить переменные, при помощи пошагового выполнения в точности
понять поведение программы.
В
процессе отладки программы я столкнулся с ошибкой. Эта ошибка возникла, когда
программой не была найдена база данных.
Исправил
я эту ошибку, создав папку «BD» и поместил в неё базу «BD». Далее в
свойстве DatabaseName компонента IBDatabase1 я написал
следуюшее:
BD\BD.gdb
Программа
автоматически определяет свое место положения и сообщает компоненту IBDatabase путь до базы
данных.
2.2. Характеристика программы
Разработанный
программный продукт представляет собой программу, которая формирует базу данных
и соответствующее приложение для автоматизации ведения кадрового учёта
некоторого предприятия.
При
запуске программы появляется окошко, содержащее компоненты визуализирующие
содержимое базы данных, кнопки, с помощью которых можно добавлять, изменять,
удалять записи в базе данных.
Окно
о программе
2.4. Инструкция пользователя
Для
работы в данной программе вам не потребуются большие навыки работы с Windows-приложениями.
Сам интерфейс программы прост и ясен.
Для
начала работы необходимо в корневой директории диска открыть папку «Анкетные
данные», в которой находиться программа и запустить файл Анкетные данные.exe.
При запуске программы на экране появиться главное окно в котором вы можите
просмотреть все личные данные. При нажатии на кнопку «Поиск» можно произвести
поиск по трем полям: фамилия, пол, ИНН. При нажатии на кнопку «Сортировка»
можно провести сортировку по полям указанным в программе.
При
нажатии на вкладку «Редактировать» возникает окошко с данными той записи, на
которой стоит указатель. Здесь можно изменить информацию любую информацию,
имеющуюся в базе данных.
При
нажатии на кнопку «Фильтрация» можно включить или выключить фильтр. Фильтрация
происходит по всем полям базы данных.
При
выборе вкладки «Добавление записи» можно добавить в базу свои анкетные данные
предварительно заполнив все поля после чего нажимаем на кнопку «Добавить» поля добавляются.
Также можно добавить свою фотографию нажав на кнопку «Добавить фото» и
прописать путь к своей фотографии.
При
нажатии на вкладку «Редактирование записей» возникает окошко с данными той записи,
на которой стоит указатель. Здесь можно изменить информацию любую информацию,
имеющуюся в базе данных.
Чтобы
вывести распечатать анкетные данные в главном окне выбираем нужное поле
нажимаем кнопку «Отчет» и распечатываем.
При
нажатии на кнопку «О программе» на панели сверху, возникает окно с информацией
о разработчике данного программного продукта.
Заключение
Бурное
развитие вычислительной техники, потребность в эффективных средствах разработки
программного обеспечения привели к появлению систем программирования,
ориентированных на так называемую "быструю разработку", среди которых
можно выделить Borland Delphi и Microsoft Visual Basic. В основе систем быстрой
разработки (RAD-систем, Rapid Application Development — среда быстрой
разработки приложений) лежит технология визуального проектирования и
событийного программирования, суть которой заключается в том, что среда
разработки берет на себя большую часть рутинной работы, оставляя программисту
работу по конструированию диалоговых окон и функций обработки событий.
Программный
продукт, разработанный в рамках данного курсового проекта, предназначается для
проектирования баз данных и соответствующего приложение для автоматизации ведения
кадрового учёта некоторого предприятия.
Программа
имеет возможности фильтровать записи, осуществлять поиск необходимой записи,
печатать записи, содержащиеся в базе.
Литература
1.
Бобровский
С.И. Delphi7. Учебный курс.- СПб.: Питер.2004.
2.
Избачков
Ю. С., Петров В. Н. Информационные системы: Учебник. - СПб.: Питер, 2005.
3.
Волков
Ю.С., Петров В.Н. Информационные системы. - СПб.: Питер. 2005.
4.
Рудаков
А. В. Технология разработки программных продуктов: Учеб. пособие. – М.:
Издательский центр «Академия», 2005.
5.
Стандартная
документация Delphi.
Приложение
Основной
модуль приложения
program
Project1;
uses
Forms,
Unit1
in 'Unit1.pas' {Form1},
Unit2
in 'Unit2.pas' {DataModule2: TDataModule},
Unit3
in 'Unit3.pas' {Form3},
Unit4
in 'Unit4.pas' {Form4},
Unit5
in 'Unit5.pas' {Form5};
{$R
*.res}
begin
Application.Initialize;
Application.Title
:= 'Àíêåòíûå äàííûå';
Application.CreateForm(TForm1,
Form1);
Application.CreateForm(TForm4,
Form4);
Application.CreateForm(TDataModule2,
DataModule2);
Application.CreateForm(TForm3,
Form3);
Application.CreateForm(TForm5,
Form5);
Application.Run;
end.
Модуль
хранения невизуальных компонентов
unit
Unit2;
interface
uses
SysUtils,
Classes, IBDatabase, DB;
type
TDataModule2
= class(TDataModule)
IBDatabase1: TIBDatabase;
IBTransaction1: TIBTransaction;
private
{ Private declarations }
public
{ Public declarations }
end;
var
DataModule2:
TDataModule2;
implementation
{$R
*.dfm}
end.
Модуль основной формы
unit
Unit1;
interface
uses
Windows,
Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,
DB, Grids, DBGrids, IBCustomDataSet, IBTable, ExtCtrls,
StdCtrls,
Mask, DBCtrls, XPMan, Menus, IBQuery, ComCtrls, ExtDlgs;
type
TForm1
= class(TForm)
DataSource1: TDataSource;
Panel1: TPanel;
Panel2: TPanel;
DBGrid1: TDBGrid;
XPManifest1: TXPManifest;
OpenDialog1: TOpenDialog;
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
IBQuery1: TIBQuery;
IBQuery2: TIBQuery;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
GroupBox4: TGroupBox;
Label19: TLabel;
Label21: TLabel;
Label22: TLabel;
Label23: TLabel;
Edit18: TEdit;
Edit20: TEdit;
Edit21: TEdit;
Edit22: TEdit;
GroupBox5: TGroupBox;
Label24: TLabel;
Label25: TLabel;
Edit23: TEdit;
Edit24: TEdit;
GroupBox2: TGroupBox;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
Label15: TLabel;
Label16: TLabel;
Edit8: TEdit;
Edit9: TEdit;
Edit10: TEdit;
Edit11: TEdit;
Edit12: TEdit;
Edit13: TEdit;
Edit15: TEdit;
Edit14: TEdit;
GroupBox3: TGroupBox;
Label17: TLabel;
Label18: TLabel;
Label20: TLabel;
Edit16: TEdit;
Edit17: TEdit;
Edit19: TEdit;
GroupBox6: TGroupBox;
Label28: TLabel;
Label29: TLabel;
Edit27: TEdit;
Edit28: TEdit;
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label26: TLabel;
Label27: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit5: TEdit;
Edit4: TEdit;
Edit6: TEdit;
Edit7: TEdit;
Edit25: TEdit;
Edit26: TEdit;
Button1: TButton;
Button3: TButton;
TabSheet3: TTabSheet;
IBQuery1NOM: TSmallintField;
IBQuery1FAM: TIBStringField;
IBQuery1NAME: TIBStringField;
IBQuery1OTCH: TIBStringField;
IBQuery1POL: TIBStringField;
IBQuery1ROST: TIBStringField;
IBQuery1VES: TIBStringField;
IBQuery1FOTO: TBlobField;
IBQuery1DR: TDateField;
IBQuery1ADR_STR: TIBStringField;
IBQuery1ADR_OBL: TIBStringField;
IBQuery1ADR_GOR: TIBStringField;
IBQuery1ADR_YL: TIBStringField;
IBQuery1ADR_DOM: TIBStringField;
IBQuery1ADR_KV: TIBStringField;
IBQuery1ADR_IND: TIBStringField;
IBQuery1ADR_TEL: TIBStringField;
IBQuery1MROZ_STR: TIBStringField;
IBQuery1MROZ_OBL: TIBStringField;
IBQuery1MROZ_GOR: TIBStringField;
IBQuery1GRAZDAN: TIBStringField;
IBQuery1OBRAZOV: TIBStringField;
IBQuery1NOM_STRAX_SVED: TIBStringField;
IBQuery1INN: TIBStringField;
IBQuery1TRYD_KN_SERIYA: TIBStringField;
IBQuery1TRYD_KN_NOMER: TIBStringField;
IBQuery1PASPOST_NOM: TIBStringField;
IBQuery1PASPOST_SER: TIBStringField;
IBQuery1PASPOST_VIDAN: TIBStringField;
IBQuery1PASPOST_DATA: TDateField;
GroupBox8: TGroupBox;
Label30: TLabel;
Label31: TLabel;
Label32: TLabel;
Label33: TLabel;
Label34: TLabel;
Label35: TLabel;
Label36: TLabel;
Label37: TLabel;
Label38: TLabel;
Label39: TLabel;
GroupBox9: TGroupBox;
Label40: TLabel;
Label41: TLabel;
GroupBox10: TGroupBox;
Label42: TLabel;
Label43: TLabel;
Label44: TLabel;
GroupBox11: TGroupBox;
Label45: TLabel;
Label46: TLabel;
Label47: TLabel;
Label48: TLabel;
Label49: TLabel;
Label50: TLabel;
Label51: TLabel;
Label52: TLabel;
GroupBox12: TGroupBox;
Label53: TLabel;
Label54: TLabel;
Label55: TLabel;
Label56: TLabel;
GroupBox13: TGroupBox;
Label57: TLabel;
Label58: TLabel;
DBEdit1: TDBEdit;
DBEdit2: TDBEdit;
DBEdit3: TDBEdit;
DBEdit4: TDBEdit;
DBEdit5: TDBEdit;
DBEdit6: TDBEdit;
DBEdit7: TDBEdit;
DBEdit8: TDBEdit;
DBEdit9: TDBEdit;
DBEdit10: TDBEdit;
DBEdit11: TDBEdit;
DBEdit12: TDBEdit;
DBEdit13: TDBEdit;
DBEdit14: TDBEdit;
DBEdit15: TDBEdit;
DBEdit16: TDBEdit;
DBEdit17: TDBEdit;
DBEdit18: TDBEdit;
DBEdit19: TDBEdit;
DBEdit20: TDBEdit;
DBEdit21: TDBEdit;
DBEdit22: TDBEdit;
DBEdit23: TDBEdit;
DBEdit24: TDBEdit;
DBEdit25: TDBEdit;
DBEdit26: TDBEdit;
DBEdit27: TDBEdit;
DBEdit28: TDBEdit;
GroupBox7: TGroupBox;
ComboBox1: TComboBox;
Edit500: TEdit;
Button2: TButton;
DBNavigator3: TDBNavigator;
IBQueryFoto: TIBQuery;
OpenPictureDialog1: TOpenPictureDialog;
DBImage2: TDBImage;
DBImage1: TDBImage;
GroupBox14: TGroupBox;
Label59: TLabel;
Label60: TLabel;
Label61: TLabel;
Label62: TLabel;
Label63: TLabel;
Label64: TLabel;
Label65: TLabel;
Label66: TLabel;
Label67: TLabel;
Label68: TLabel;
Edit29: TEdit;
Edit30: TEdit;
Edit31: TEdit;
Edit32: TEdit;
Edit33: TEdit;
Edit34: TEdit;
Edit35: TEdit;
Edit36: TEdit;
Edit37: TEdit;
GroupBox15: TGroupBox;
Label69: TLabel;
Label70: TLabel;
Edit38: TEdit;
Edit39: TEdit;
GroupBox16: TGroupBox;
Label71: TLabel;
Label72: TLabel;
Label73: TLabel;
Edit40: TEdit;
Edit41: TEdit;
Edit42: TEdit;
GroupBox17: TGroupBox;
Label74: TLabel;
Label75: TLabel;
Label76: TLabel;
Label77: TLabel;
Label78: TLabel;
Label79: TLabel;
Label80: TLabel;
Label81: TLabel;
Edit43: TEdit;
Edit44: TEdit;
Edit45: TEdit;
Edit46: TEdit;
Edit47: TEdit;
Edit48: TEdit;
Edit49: TEdit;
Edit50: TEdit;
GroupBox18: TGroupBox;
Label82: TLabel;
Label83: TLabel;
Edit51: TEdit;
Edit52: TEdit;
GroupBox19: TGroupBox;
Label84: TLabel;
Label85: TLabel;
Label86: TLabel;
Label87: TLabel;
Edit53: TEdit;
Edit54: TEdit;
Edit55: TEdit;
Edit56: TEdit;
Button4: TButton;
IBQuery3: TIBQuery;
DBImage3: TDBImage;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
N9: TMenuItem;
N10: TMenuItem;
N11: TMenuItem;
Button5: TButton;
N12: TMenuItem;
N13: TMenuItem;
N14: TMenuItem;
N15: TMenuItem;
N16: TMenuItem;
N17: TMenuItem;
IBQuery4: TIBQuery;
N18: TMenuItem;
procedure FormDestroy(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure IBQuery1AfterScroll(DataSet: TDataSet);
procedure
N5Click(Sender: TObject);
procedure N6Click(Sender: TObject);
procedure N7Click(Sender: TObject);
procedure N9Click(Sender: TObject);
procedure N10Click(Sender: TObject);
procedure N11Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure N13Click(Sender: TObject);
procedure N14Click(Sender: TObject);
procedure N15Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure N16Click(Sender: TObject);
procedure N18Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1:
TForm1;
implementation
uses
Unit2, Unit3, Unit4, Unit5;
{$R
*.dfm}
procedure
TForm1.FormDestroy(Sender: TObject);
begin
IBQuery1.Close;
end;
procedure
TForm1.Button1Click(Sender: TObject);
begin
if
OpenPictureDialog1.Execute Then
begin
DBImage2.Picture.LoadFromFile(OpenPictureDialog1.FileName);
IBQueryFoto.ParamByName('FOTO').LoadFromFile(OpenPictureDialog1.FileName,ftBlob);
IBQueryFoto.ParamByName('Nom').Value := IBQuery1.FieldByName('Nom').Value;
Try
IBQueryFoto.ExecSQL;
Except
DataModule2.IBTransaction1.RollbackRetaining;
ShowMessage('Ошибка
установки фотографии');
Exit;
End;
DataModule2.IBTransaction1.CommitRetaining;
IBQuery1.Close;
IBQuery1.Open;
ShowMessage('Фотография установлена');
end;
end;
procedure
TForm1.N2Click(Sender: TObject);
begin
close;
end;
procedure
TForm1.Button2Click(Sender: TObject);
var
s
: String;
begin
case
ComboBox1.ItemIndex of
0
: S := 'Fam';
1
: S := 'Pol';
2
: S := 'INN';
end;
IBQuery1.Locate(S,
Edit500.Text,[loPartialKey]);
end;
procedure
TForm1.N3Click(Sender: TObject);
begin
Form3.QuickRep1.Preview;
end;
procedure
TForm1.Button3Click(Sender: TObject);
begin
IBQuery2.Params.ParamByName('Fam').Value:=Edit1.Text;
IBQuery2.Params.ParamByName('Name').Value:=Edit2.Text;
IBQuery2.Params.ParamByName('Otch').Value:=Edit3.Text;
IBQuery2.Params.ParamByName('Pol').Value:=Edit4.Text;
IBQuery2.Params.ParamByName('DR').Value:=Edit5.Text;
IBQuery2.Params.ParamByName('Ves').Value:=Edit6.Text;
IBQuery2.Params.ParamByName('Rost').Value:=Edit7.Text;
IBQuery2.Params.ParamByName('Adr_str').Value:=Edit8.Text;
IBQuery2.Params.ParamByName('Adr_obl').Value:=Edit9.Text;
IBQuery2.Params.ParamByName('Adr_gor').Value:=Edit10.Text;
IBQuery2.Params.ParamByName('Adr_yl').Value:=Edit11.Text;
IBQuery2.Params.ParamByName('Adr_dom').Value:=Edit12.Text;
IBQuery2.Params.ParamByName('Adr_kv').Value:=Edit13.Text;
IBQuery2.Params.ParamByName('Adr_ind').Value:=Edit14.Text;
IBQuery2.Params.ParamByName('Adr_tel').Value:=Edit15.Text;
IBQuery2.Params.ParamByName('Mroz_str').Value:=Edit16.Text;
IBQuery2.Params.ParamByName('Mroz_obl').Value:=Edit17.Text;
IBQuery2.Params.ParamByName('Paspost_nom').Value:=Edit18.Text;
IBQuery2.Params.ParamByName('Mroz_gor').Value:=Edit19.Text;
IBQuery2.Params.ParamByName('Paspost_ser').Value:=Edit20.Text;
IBQuery2.Params.ParamByName('Paspost_vidan').Value:=Edit21.Text;
IBQuery2.Params.ParamByName('Paspost_data').Value:=Edit22.Text;
IBQuery2.Params.ParamByName('Tryd_kn_seriya').Value:=Edit23.Text;
IBQuery2.Params.ParamByName('Tryd_kn_nomer').Value:=Edit24.Text;
IBQuery2.Params.ParamByName('Obrazov').Value:=Edit25.Text;
IBQuery2.Params.ParamByName('Grazdan').Value:=Edit26.Text;
IBQuery2.Params.ParamByName('Nom_strax_sved').Value:=Edit27.Text;
IBQuery2.Params.ParamByName('INN').Value:=Edit28.Text;
try
IBQuery2.ExecSQL;
Except
DataModule2.IBTransaction1.RollbackRetaining;
ShowMessage('Невозможно
передать запись');
Exit;
end;
DataModule2.IBTransaction1.CommitRetaining;
ShowMessage('Запись добавлена');
IBQuery1.Close;
IBQuery1.Open;
end;
procedure
TForm1.Button4Click(Sender: TObject);
begin
if
MessageDlg('Обновить анкетные данные?',
mtConfirmation, [mbYes, mbNo],0)=mrYes then
begin
IBQuery4.Params.ParamByName('Nom').Value:=IBQuery1NOM.Value;
IBQuery4.Params.ParamByName('Fam').Value:=Edit29.Text;
IBQuery4.Params.ParamByName('Name').Value:=Edit30.Text;
IBQuery4.Params.ParamByName('Otch').Value:=Edit31.Text;
IBQuery4.Params.ParamByName('Pol').Value:=Edit33.Text;
IBQuery4.Params.ParamByName('DR').Value:=Edit32.Text;
IBQuery4.Params.ParamByName('Ves').Value:=Edit34.Text;
IBQuery4.Params.ParamByName('Rost').Value:=Edit35.Text;
IBQuery4.Params.ParamByName('Adr_str').Value:=Edit43.Text;
IBQuery4.Params.ParamByName('Adr_obl').Value:=Edit44.Text;
IBQuery4.Params.ParamByName('Adr_gor').Value:=Edit45.Text;
IBQuery4.Params.ParamByName('Adr_yl').Value:=Edit46.Text;
IBQuery4.Params.ParamByName('Adr_dom').Value:=Edit47.Text;
IBQuery4.Params.ParamByName('Adr_kv').Value:=Edit48.Text;
IBQuery4.Params.ParamByName('Adr_ind').Value:=Edit50.Text;
IBQuery4.Params.ParamByName('Adr_tel').Value:=Edit49.Text;
IBQuery4.Params.ParamByName('Mroz_str').Value:=Edit40.Text;
IBQuery4.Params.ParamByName('Mroz_obl').Value:=Edit41.Text;
IBQuery4.Params.ParamByName('Paspost_nom').Value:=Edit53.Text;
IBQuery4.Params.ParamByName('Mroz_gor').Value:=Edit42.Text;
IBQuery4.Params.ParamByName('Paspost_ser').Value:=Edit54.Text;
IBQuery4.Params.ParamByName('Paspost_vidan').Value:=Edit55.Text;
IBQuery4.Params.ParamByName('Paspost_data').Value:=Edit56.Text;
IBQuery4.Params.ParamByName('Tryd_kn_seriya').Value:=Edit51.Text;
IBQuery4.Params.ParamByName('Tryd_kn_nomer').Value:=Edit52.Text;
IBQuery4.Params.ParamByName('Obrazov').Value:=Edit36.Text;
IBQuery4.Params.ParamByName('Grazdan').Value:=Edit37.Text;
IBQuery4.Params.ParamByName('Nom_strax_sved').Value:=Edit38.Text;
IBQuery4.Params.ParamByName('INN').Value:=Edit39.Text;
try
IBQuery4.ExecSQL;
Except
DataModule2.IBTransaction1.RollbackRetaining;
ShowMessage('Запись
не добавлена');
exit;
end;
DataModule2.IBTransaction1.CommitRetaining;
ShowMessage('Запись обновлена');
IBQuery1.Close;
IBQuery1.Open;
end;
end;
procedure
TForm1.IBQuery1AfterScroll(DataSet: TDataSet);
begin
if
IBQuery1.FieldValues['Fam']<> null then
Edit29.Text:=IBQuery1.FieldValues['Fam'];
if
IBQuery1.FieldValues['Name']<> null then
Edit30.Text:=IBQuery1.FieldValues['Name'];
if
IBQuery1.FieldValues['Otch']<> null then
Edit31.Text:=IBQuery1.FieldValues['Otch'];
if
IBQuery1.FieldValues['Pol']<> null then
Edit33.Text:=IBQuery1.FieldValues['Pol'];
if
IBQuery1.FieldValues['DR']<> null then
Edit32.Text:=IBQuery1.FieldValues['DR'];
if
IBQuery1.FieldValues['Ves']<> null then
Edit34.Text:=IBQuery1.FieldValues['Ves'];
if
IBQuery1.FieldValues['Rost']<> null then
Edit35.Text:=IBQuery1.FieldValues['Rost'];
if
IBQuery1.FieldValues['Adr_str']<> null then
Edit43.Text:=IBQuery1.FieldValues['Adr_str'];
if
IBQuery1.FieldValues['Adr_obl']<> null then
Edit44.Text:=IBQuery1.FieldValues['Adr_obl'];
if
IBQuery1.FieldValues['Adr_gor']<> null then
Edit45.Text:=IBQuery1.FieldValues['Adr_gor'];
if
IBQuery1.FieldValues['Adr_yl']<> null then
Edit46.Text:=IBQuery1.FieldValues['Adr_yl'];
if
IBQuery1.FieldValues['Adr_dom']<> null then
Edit47.Text:=IBQuery1.FieldValues['Adr_dom'];
if
IBQuery1.FieldValues['Adr_kv']<> null then
Edit48.Text:=IBQuery1.FieldValues['Adr_kv'];
if
IBQuery1.FieldValues['Adr_ind']<> null then
Edit50.Text:=IBQuery1.FieldValues['Adr_ind'];
if
IBQuery1.FieldValues['Adr_tel']<> null then
Edit49.Text:=IBQuery1.FieldValues['Adr_tel'];
if
IBQuery1.FieldValues['Mroz_str']<> null then
Edit40.Text:=IBQuery1.FieldValues['Mroz_str'];
if
IBQuery1.FieldValues['Mroz_obl']<> null then
Edit41.Text:=IBQuery1.FieldValues['Mroz_obl'];
if
IBQuery1.FieldValues['Paspost_nom']<> null then
Edit53.Text:=IBQuery1.FieldValues['Paspost_nom'];
if
IBQuery1.FieldValues['Mroz_gor']<> null then
Edit42.Text:=IBQuery1.FieldValues['Mroz_gor'];
if
IBQuery1.FieldValues['Paspost_ser']<> null then
Edit54.Text:=IBQuery1.FieldValues['Paspost_ser'];
if
IBQuery1.FieldValues['Paspost_vidan']<> null then
Edit55.Text:=IBQuery1.FieldValues['Paspost_vidan'];
if
IBQuery1.FieldValues['Paspost_data']<> null then
Edit56.Text:=IBQuery1.FieldValues['Paspost_data'];
if
IBQuery1.FieldValues['Tryd_kn_seriya']<> null then
Edit51.Text:=IBQuery1.FieldValues['Tryd_kn_seriya'];
if
IBQuery1.FieldValues['Tryd_kn_nomer']<> null then
Edit52.Text:=IBQuery1.FieldValues['Tryd_kn_nomer'];
if
IBQuery1.FieldValues['Obrazov']<> null then
Edit36.Text:=IBQuery1.FieldValues['Obrazov'];
if
IBQuery1.FieldValues['Grazdan']<> null then
Edit37.Text:=IBQuery1.FieldValues['Grazdan'];
if
IBQuery1.FieldValues['Nom_strax_sved']<> null then
Edit38.Text:=IBQuery1.FieldValues['Nom_strax_sved'];
if
IBQuery1.FieldValues['INN']<> null then
Edit39.Text:=IBQuery1.FieldValues['INN'];
end;
procedure
TForm1.N5Click(Sender: TObject);
begin
Form4.Notebook1.PageIndex
:= 0;
Form4.GroupBox1.Caption
:= ' По фамилии: ';
Form4.ShowModal;
end;
procedure
TForm1.N6Click(Sender: TObject);
begin
Form4.Notebook1.PageIndex
:= 1;
Form4.GroupBox1.Caption
:= ' По полу: ';
Form4.ShowModal;
end;
procedure
TForm1.N7Click(Sender: TObject);
begin
Form4.Notebook1.PageIndex
:= 2;
Form4.GroupBox1.Caption
:= ' По дате рождения: ';
Form4.ShowModal;
end;
procedure
TForm1.N9Click(Sender: TObject);
begin
IBQuery1.Close;
IBQuery1.SQL.Clear;
IBQuery1.SQL.Add('select
* from anketa order by fam');
IBQuery1.Open;
end;
procedure
TForm1.N10Click(Sender: TObject);
begin
IBQuery1.Close;
IBQuery1.SQL.Clear;
IBQuery1.SQL.Add('select
* from anketa order by dr');
IBQuery1.Open;
end;
procedure
TForm1.N11Click(Sender: TObject);
begin
IBQuery1.Close;
IBQuery1.SQL.Clear;
IBQuery1.SQL.Add('select
* from anketa order by rost');
IBQuery1.Open;
end;
procedure
TForm1.Button5Click(Sender: TObject);
begin
if
OpenPictureDialog1.Execute Then
begin
DBImage3.Picture.LoadFromFile(OpenPictureDialog1.FileName);
IBQueryFoto.ParamByName('FOTO').LoadFromFile(OpenPictureDialog1.FileName,ftBlob);
IBQueryFoto.ParamByName('Nom').Value := IBQuery1.FieldByName('Nom').Value;
Try
IBQueryFoto.ExecSQL;
Except
DataModule2.IBTransaction1.RollbackRetaining;
ShowMessage('Ошибка
установки фотографии');
Exit;
End;
DataModule2.IBTransaction1.CommitRetaining;
IBQuery1.Close;
IBQuery1.Open;
ShowMessage('Фотография установлена');
end;
end;
procedure
TForm1.N13Click(Sender: TObject);
begin
PageControl1.ActivePageIndex
:= 1;
end;
procedure
TForm1.N14Click(Sender: TObject);
begin
PageControl1.ActivePageIndex
:= 2;
end;
procedure
TForm1.N15Click(Sender: TObject);
begin
if
MessageBox(Handle,'Вы действительно хотите удалить запись?','Подтверждение удаления',
MB_YESNO or MB_ICONWARNING)=mrYes then
begin
IBQuery3.ParamByName('NOM').Value
:= IBQuery1.FieldByName('NOM').Value;
Try
IBQuery3.ExecSQL;
Except
DataModule2.IBTransaction1.RollbackRetaining;
MessageBox(Handle,'Невозможно удалить запись.','Ошибка удаления записи',
MB_OK or MB_ICONERROR);
Exit;
End;
DataModule2.IBTransaction1.CommitRetaining;
IBQuery1.Close;
IBQuery1.Open;
MessageBox(Handle,'Запись удалина.','Событие',
MB_OK or MB_ICONINFORMATION);
end;
end;
procedure
TForm1.FormActivate(Sender: TObject);
begin
IBQuery1.Open;
end;
procedure
TForm1.N16Click(Sender: TObject);
begin
Form5.ShowModal;
end;
procedure
TForm1.N18Click(Sender: TObject);
begin
IBQuery1.Close;
IBQuery1.SQL.Clear;
IBQuery1.SQL.Add('SELECT
* FROM ANKETA');
IBQuery1.Open;
end;
end.
Модуль формы с фильтрацией
unit
Unit4;
interface
uses
Windows,
Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,
StdCtrls, ExtCtrls;
type
TForm4
= class(TForm)
GroupBox1: TGroupBox;
Notebook1: TNotebook;
Label1: TLabel;
Edit1: TEdit;
Button1: TButton;
Button2: TButton;
Button3: TButton;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
Button4: TButton;
Button5: TButton;
Edit2: TEdit;
Label2: TLabel;
Label3: TLabel;
Edit3: TEdit;
Button6: TButton;
Button7: TButton;
Button8: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form4:
TForm4;
implementation
uses
Unit1, Unit2, Unit3;
{$R
*.dfm}
procedure
TForm4.Button1Click(Sender: TObject);
begin
Form1.IBQuery1.Close;
form1.IBQuery1.SQL.Clear;
Form1.IBQuery1.SQL.Add('SELECT
* FROM ANKETA WHERE Fam='+#39+Edit1.text+#39'');
Form1.IBQuery1.Open;
end;
procedure
TForm4.Button2Click(Sender: TObject);
begin
Form1.IBQuery1.Close;
form1.IBQuery1.SQL.Clear;
Form1.IBQuery1.SQL.Add('SELECT
* FROM ANKETA');
Form1.IBQuery1.Open;
end;
procedure
TForm4.Button3Click(Sender: TObject);
begin
Edit1.Text:='';
end;
procedure
TForm4.Button5Click(Sender: TObject);
begin
Form1.IBQuery1.Close;
form1.IBQuery1.SQL.Clear;
Form1.IBQuery1.SQL.Add('SELECT
* FROM ANKETA');
Form1.IBQuery1.Open;
end;
procedure
TForm4.Button4Click(Sender: TObject);
begin
Form1.IBQuery1.Close;
form1.IBQuery1.SQL.Clear;
if
RadioButton1.Checked=true then
Form1.IBQuery1.SQL.Add('SELECT
* FROM ANKETA WHERE POL='+#39+'М'+#39);
if
RadioButton2.Checked=true then
Form1.IBQuery1.SQL.Add('SELECT
* FROM ANKETA WHERE POL='+#39+'Ж'+#39);
Form1.IBQuery1.Open;
end;
procedure
TForm4.Button6Click(Sender: TObject);
begin
Form1.IBQuery1.Close;
form1.IBQuery1.SQL.Clear;
Form1.IBQuery1.SQL.Add('SELECT
* FROM ANKETA WHERE(DR>='+#39+Edit2.text+#39+') and
(DR<='+#39+Edit3.text+#39+') ');
Form1.IBQuery1.Open;
end;
procedure
TForm4.Button8Click(Sender: TObject);
begin
Edit2.Text:='';
Edit3.Text:='';
end;
procedure
TForm4.Button7Click(Sender: TObject);
begin
Form1.IBQuery1.Close;
form1.IBQuery1.SQL.Clear;
Form1.IBQuery1.SQL.Add('SELECT
* FROM ANKETA');
Form1.IBQuery1.Open;
end;
end.
|