Реферат по предмету "Информатика, программирование"


Организация автоматизации учета на предприятиях

СОДЕРЖАНИЕ
Введение
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 DatabaseEngine. В состав 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.
WindowsXP базируется на 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.

Приложение
Основноймодуль приложения
programProject1;
uses
 Forms,
 Unit1in 'Unit1.pas' {Form1},
 Unit2in 'Unit2.pas' {DataModule2: TDataModule},
 Unit3in 'Unit3.pas' {Form3},
 Unit4in 'Unit4.pas' {Form4},
 Unit5in '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.
Модульхранения невизуальных компонентов
unitUnit2;
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.
Модуль основной формы
unitUnit1;
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);
  procedureN5Click(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
usesUnit2, Unit3, Unit4, Unit5;
{$R*.dfm}
procedureTForm1.FormDestroy(Sender: TObject);
begin
IBQuery1.Close;
end;
procedureTForm1.Button1Click(Sender: TObject);
begin
ifOpenPictureDialog1.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;
procedureTForm1.N2Click(Sender: TObject);
begin
close;
end;
procedureTForm1.Button2Click(Sender: TObject);
var
 s: String;
begin
 caseComboBox1.ItemIndex of
  0: S := 'Fam';
  1: S := 'Pol';
  2: S := 'INN';
 end;
IBQuery1.Locate(S,Edit500.Text,[loPartialKey]);
end;
procedureTForm1.N3Click(Sender: TObject);
begin
Form3.QuickRep1.Preview;
end;
procedureTForm1.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;
procedureTForm1.Button4Click(Sender: TObject);
begin
ifMessageDlg('Обновить анкетные данные?',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;
procedureTForm1.IBQuery1AfterScroll(DataSet: TDataSet);
begin
 ifIBQuery1.FieldValues['Fam'] null then
 Edit29.Text:=IBQuery1.FieldValues['Fam'];
 ifIBQuery1.FieldValues['Name'] null then
 Edit30.Text:=IBQuery1.FieldValues['Name'];
 ifIBQuery1.FieldValues['Otch'] null then
 Edit31.Text:=IBQuery1.FieldValues['Otch'];
 ifIBQuery1.FieldValues['Pol'] null then
 Edit33.Text:=IBQuery1.FieldValues['Pol'];
 ifIBQuery1.FieldValues['DR'] null then
 Edit32.Text:=IBQuery1.FieldValues['DR'];
 ifIBQuery1.FieldValues['Ves'] null then
 Edit34.Text:=IBQuery1.FieldValues['Ves'];
 ifIBQuery1.FieldValues['Rost'] null then
 Edit35.Text:=IBQuery1.FieldValues['Rost'];
 ifIBQuery1.FieldValues['Adr_str'] null then
 Edit43.Text:=IBQuery1.FieldValues['Adr_str'];
 ifIBQuery1.FieldValues['Adr_obl'] null then
 Edit44.Text:=IBQuery1.FieldValues['Adr_obl'];
 ifIBQuery1.FieldValues['Adr_gor'] null then
 Edit45.Text:=IBQuery1.FieldValues['Adr_gor'];
 ifIBQuery1.FieldValues['Adr_yl'] null then
 Edit46.Text:=IBQuery1.FieldValues['Adr_yl'];
 ifIBQuery1.FieldValues['Adr_dom'] null then
 Edit47.Text:=IBQuery1.FieldValues['Adr_dom'];
 ifIBQuery1.FieldValues['Adr_kv'] null then
 Edit48.Text:=IBQuery1.FieldValues['Adr_kv'];
 ifIBQuery1.FieldValues['Adr_ind'] null then
 Edit50.Text:=IBQuery1.FieldValues['Adr_ind'];
 ifIBQuery1.FieldValues['Adr_tel'] null then
 Edit49.Text:=IBQuery1.FieldValues['Adr_tel'];
 ifIBQuery1.FieldValues['Mroz_str'] null then
 Edit40.Text:=IBQuery1.FieldValues['Mroz_str'];
 ifIBQuery1.FieldValues['Mroz_obl'] null then
 Edit41.Text:=IBQuery1.FieldValues['Mroz_obl'];
 ifIBQuery1.FieldValues['Paspost_nom'] null then
 Edit53.Text:=IBQuery1.FieldValues['Paspost_nom'];
 ifIBQuery1.FieldValues['Mroz_gor'] null then
 Edit42.Text:=IBQuery1.FieldValues['Mroz_gor'];
 ifIBQuery1.FieldValues['Paspost_ser'] null then
 Edit54.Text:=IBQuery1.FieldValues['Paspost_ser'];
 ifIBQuery1.FieldValues['Paspost_vidan'] null then
 Edit55.Text:=IBQuery1.FieldValues['Paspost_vidan'];
 ifIBQuery1.FieldValues['Paspost_data'] null then
 Edit56.Text:=IBQuery1.FieldValues['Paspost_data'];
 ifIBQuery1.FieldValues['Tryd_kn_seriya'] null then
 Edit51.Text:=IBQuery1.FieldValues['Tryd_kn_seriya'];
 ifIBQuery1.FieldValues['Tryd_kn_nomer'] null then
 Edit52.Text:=IBQuery1.FieldValues['Tryd_kn_nomer'];
  ifIBQuery1.FieldValues['Obrazov'] null then
 Edit36.Text:=IBQuery1.FieldValues['Obrazov'];
  ifIBQuery1.FieldValues['Grazdan'] null then
 Edit37.Text:=IBQuery1.FieldValues['Grazdan'];
  ifIBQuery1.FieldValues['Nom_strax_sved'] null then
 Edit38.Text:=IBQuery1.FieldValues['Nom_strax_sved'];
  ifIBQuery1.FieldValues['INN'] null then
 Edit39.Text:=IBQuery1.FieldValues['INN'];
end;
procedureTForm1.N5Click(Sender: TObject);
begin
Form4.Notebook1.PageIndex:= 0;
Form4.GroupBox1.Caption:= ' По фамилии: ';
Form4.ShowModal;
end;
procedureTForm1.N6Click(Sender: TObject);
begin
Form4.Notebook1.PageIndex:= 1;
Form4.GroupBox1.Caption:= ' По полу: ';
Form4.ShowModal;
end;
procedureTForm1.N7Click(Sender: TObject);
begin
Form4.Notebook1.PageIndex:= 2;
Form4.GroupBox1.Caption:= ' По дате рождения: ';
Form4.ShowModal;
end;
procedureTForm1.N9Click(Sender: TObject);
begin
IBQuery1.Close;
IBQuery1.SQL.Clear;
IBQuery1.SQL.Add('select* from anketa order by fam');
IBQuery1.Open;
end;
procedureTForm1.N10Click(Sender: TObject);
begin
IBQuery1.Close;
IBQuery1.SQL.Clear;
IBQuery1.SQL.Add('select* from anketa order by dr');
IBQuery1.Open;
end;
procedureTForm1.N11Click(Sender: TObject);
begin
IBQuery1.Close;
IBQuery1.SQL.Clear;
IBQuery1.SQL.Add('select* from anketa order by rost');
IBQuery1.Open;
end;
procedureTForm1.Button5Click(Sender: TObject);
begin
ifOpenPictureDialog1.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;
procedureTForm1.N13Click(Sender: TObject);
begin
 PageControl1.ActivePageIndex:= 1;
end;
procedureTForm1.N14Click(Sender: TObject);
begin
 PageControl1.ActivePageIndex:= 2;
end;
procedureTForm1.N15Click(Sender: TObject);
begin
ifMessageBox(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;
procedureTForm1.FormActivate(Sender: TObject);
begin
IBQuery1.Open;
end;
procedureTForm1.N16Click(Sender: TObject);
begin
Form5.ShowModal;
end;
procedureTForm1.N18Click(Sender: TObject);
begin
IBQuery1.Close;
IBQuery1.SQL.Clear;
IBQuery1.SQL.Add('SELECT* FROM ANKETA');
IBQuery1.Open;
end;
end.
Модуль формы с фильтрацией
unitUnit4;
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
usesUnit1, Unit2, Unit3;
{$R*.dfm}
procedureTForm4.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;
procedureTForm4.Button2Click(Sender: TObject);
begin
Form1.IBQuery1.Close;
form1.IBQuery1.SQL.Clear;
Form1.IBQuery1.SQL.Add('SELECT* FROM ANKETA');
Form1.IBQuery1.Open;
end;
procedureTForm4.Button3Click(Sender: TObject);
begin
Edit1.Text:='';
end;
procedureTForm4.Button5Click(Sender: TObject);
begin
Form1.IBQuery1.Close;
form1.IBQuery1.SQL.Clear;
Form1.IBQuery1.SQL.Add('SELECT* FROM ANKETA');
Form1.IBQuery1.Open;
end;
procedureTForm4.Button4Click(Sender: TObject);
begin
Form1.IBQuery1.Close;
form1.IBQuery1.SQL.Clear;
ifRadioButton1.Checked=true then
Form1.IBQuery1.SQL.Add('SELECT* FROM ANKETA WHERE POL='+#39+'М'+#39);
ifRadioButton2.Checked=true then
Form1.IBQuery1.SQL.Add('SELECT* FROM ANKETA WHERE POL='+#39+'Ж'+#39);
Form1.IBQuery1.Open;
end;
procedureTForm4.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
Form1.IBQuery1.Open;
end;
procedureTForm4.Button8Click(Sender: TObject);
begin
Edit2.Text:='';
Edit3.Text:='';
end;
procedureTForm4.Button7Click(Sender: TObject);
begin
Form1.IBQuery1.Close;
form1.IBQuery1.SQL.Clear;
Form1.IBQuery1.SQL.Add('SELECT* FROM ANKETA');
Form1.IBQuery1.Open;
end;
end.


Не сдавайте скачаную работу преподавателю!
Данный реферат Вы можете использовать для подготовки курсовых проектов.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.