|
||||||||||||
|
||||||||||||
|
|||||||||
МЕНЮ
|
БОЛЬШАЯ ЛЕНИНГРАДСКАЯ БИБЛИОТЕКА - РЕФЕРАТЫ - Организация автоматизации учета на предприятияхОрганизация автоматизации учета на предприятияхСОДЕРЖАНИЕ
Компьюте-ры давно и прочно вошли в такие области управления, как бухгалтерский учет, управление складом, ассортиментом и закупками. Однако современный бизнес тре-бует гораздо более широкого применения информационных технологий в управле-нии предприятием. Жизнеспособность и развитие информационных технологий объясняется тем, что современный бизнес крайне чувствителен к ошибкам в управ-лении. Интуиции, личного опыта руководителя и размеров капитала уже мало для того, чтобы быть первым. Для принятия любого грамотного управленческого реше-ния в условиях неопределенности и риска необходимо постоянно держать под кон-тролем различные аспекты финансово-хозяйственной деятельности, будь то торгов-ля, производство или предоставление каких-либо услуг. Поэтому современный подход к управлению предполагает вложение средств в информационные технологии. Теоретический раздел 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 := 'Aieaoiua aaiiua'; 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. |
РЕКЛАМА
|
|||||||||||||||||
|
БОЛЬШАЯ ЛЕНИНГРАДСКАЯ БИБЛИОТЕКА | ||
© 2010 |