Автоматизована система "Облік паспортних даних"

Міністерство освіти і науки України

Бердичівський коледж промисловості, економіки та права















Курсовий проект з дисципліни



«Технологія розробки програмного забезпечення»

спеціальності 5.05010301

«Розробка програмного забезпечення»



Тема

Автоматизована система

«Облік паспортних даних»























Бердичів 2009р.


Анотація



Курсовий проект, 67 с., 35 мал., 17 табл., 2 джерела, 3 додатки.

Дисципліна: «ТЕХНОЛОГІЯ РОЗРОБКИ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ»

Тема: Автоматизована система «Облік паспортних даних»

У роботі описані процес і результати проектування автоматизованої системи «Облік паспортних даних», призначеної для автоматизації обліку паспортних даних.

Результат розробки оформлений у виді програмного пакету і комплекту супроводжувальної документації.

Подальший розвиток роботи можливий у бік поліпшення зовнішнього інтерфейсу ї адаптації програми до більшої області потенційного застосування.

Робота має навчальний характер і її впровадження для конкретного підприємства не виконувався.




Вступ



Автоматизація розрахункова – облікових задач у різних областях практичної діяльності є одним із основних напрямків застосування обчислювальної техніки і персональних комп’ютерів зокрема. На основі сукупності апаратних засобів і спеціалізованого прикладного програмного забезпечення будуються автоматизовані робочі місця спеціалістів різного профілю.

Однією із форм обліку для підприємств із різною формою діяльності є кадровий облік працівників. 

Запропонований програмний засіб «АС Облік паспортних даних», призначений саме для автоматизації обліку паспортних даних на підприємстві, розроблений у відповідності до завдання на курсове проектування із дисципліни «Технологія розробки програмного забезпечення».

Основною метою даного курсового проекту є розробка розгорнутого технічного завдання на основі вивчення та аналізу заданої предметної області, розробка структур та вибір методів обробки даних, алгоритмів функціонування програмних модулів, забезпечення якісних показників роботи програми: створення зручного графічного інтерфейсу користувача, розробка інтегрованої довідкової системи та супроводжувальної документації, засобів для розгортання програмної системи в інформаційному середовищі користувачів.

Для реалізації поставленого завдання обрано сучасні інструментальні середовища і засоби програмування Borland Delphi 6.0, та відповідні засоби підтримки процесу розробки програм.

Не зважаючи на те, що проект носить навчальний характер, він має певне практичне значення і може бути застосований для автоматизації вказаної прикладної задачі на підприємствах.


1. Аналіз предметної області і постановка задачі на розробку програми



У відповідності до технічного завдання програма «Облік паспортних даних» повинна забезпечувати облік осіб і можливість отримання інформації, вибраної за певними критеріями, а також формування звітів у вигляді стандартизованих паперових документів.

Якщо вписується нова особа то у журнал реєстрації операцій вноситься відповідний запис. 

При вибутті особи з паспортного обліку в журналі реєстрації операцій, вказується дата і причина про вибуття особи, прізвище та дані особи.

Для кожного нового особи заповнюється картка паспортного обліку, що представляє собою паперовий документ, у якому вказується:

прізвище;

ім’я; 

по батькові;

дата видачі паспорта;

рік народження;

стать;

адреса (вулиця, № будинку, квартира);

серія та номер паспорта;

ким виданий паспорт;

військовозобов’язаний;

фотографія;

пенсіонер;

У відповідності до аналізу предметної області можна зробити висновок, що задача, яка підлягає автоматизації відноситься то складу типових аналітично - облікових задач і може бути вирішена з використанням програмних та інструментальних засобів, передбачених технічним завданням, а саме з використанням елементів файл – серверних баз даних.


2. Опис структур та методів обробки даних



2.1 Обґрунтування вибору методів та засобів обробки даних



Оскільки, у відповідності до технічного завдання і аналізу предметної області, розробка автоматизованої системи паспортних даних проводиться на основі принципів та елементів систем управління базами даних, то логічним є - збереження даних здійснювати у вигляді файлів таблиць бази даних певного типу, вибір і обробку інформації виконувати на основі запитів, для введення і відображення даних використовувати діалогові екранні форми, а вихідні паперові документи формувати у вигляді звітів.

Однією із сучасних універсальних інструментальних систем програмування є Borland Delphi 6, яка має розвинені засоби для програмування та обробки баз даних, і в той же час підтримує майже всі відомі формати даних, що при необхідності дозволить перевести створені файли даних на іншу програмну платформу.

Одним із самих розповсюджених форматів даних є формат таблиць баз даних Paradox, крім того обрана система програмування спеціалізована саме під цей формат і надає більше засобів для налаштування таблиць баз даних при їх створенні. Тому саме формат таблиць баз даних Paradox використовується в даній системі. Створення файлів таблиць бази даних та визначення їх структури здійснюється за допомогою утиліти Database Desktop, яка входить до складу програмного комплекту Delphi.

Для обробки даних на рівні запитів використовується мова SQL92, яка є стандартною мовою для побудови структурованих запитів в операційній системі Windows. Для створення звітів використовується генератор звітів QuickReport, компоненти якого представлені окремою вкладинкою програмного середовища Delphi.

Для забезпечення прискорення виконання операцій пошуку і вибірки даних, а також незалежності від шляху розташування фалів бази даних на дисках комп’ютерів користувачів, базі даних ставиться у співвідношення псевдонім (загальне ім’я бази даних), який створюється і обробляється за допомогою спеціалізованої утиліти BDE Administrator.



2.2 Опис структур даних



Як було зазначено вище основними структурними елементами даних є файли таблиць бази даних у форматі Paradox. Нижче наведено перелік цих файлів із вказівкою назви файлу, структури полів та пояснень, що до призначення файлу. Назва полів певної таблиці даних починаються з літери, яка співпадає з першою літерою назви відповідного файлу. Це забезпечує виключення того, що в різних таблицях будуть використані однакові назви полів, і в той же час вказує належність поля до певної таблиці. Для збереження файлів таблиць використовують каталог:



С:\Program Files\Pasp_st\DATA



Pasp_st.db – файл, який використовується для обліку даних про всіх осіб. Початкові дані заносяться в таблицю при реєстрації нової особи і можуть при необхідності редагуватися. Структура полів файлу Pasp_st.db наведена у таблиці 1. 



Таблиця 1 Структура полів файлу Pasp_st.db

Назва поля

Тип

Інформаційний зміст

ID

+

Код

Prizvuge

Alpha

Прізвище

Imia

Alpha

Ім’я 

Po_batkovi

Alpha

По батькові

Rik_nar

Date

Рік народження

Vik

Number

Вік

Stat

Alpha

Стать

Adress

Alpha

Адреса

Vylucia

Alpha

Вулиця

Nom_byd

Number

Номер будинку

Nom_kva

Number

Номер квартири

Ser_pasp

Alpha

Серія паспорта

Nom_pasp

Number

Номер паспорта

Data_vud_pasp

Date

Дата видачі паспорта

Kum_vud_pasp

Alpha

Ким виданий паспорт

Viiskovo_zobov

Alpha

Військовозобов’язаний 

Photo

Graphic

Фото

Pensioner

Alpha

Пенсіонер



Таблиця 2 Структура полів файлу Vyl_sp.db

Назва поля

Тип

Інформаційний зміст

ID

+

Код

Adress

Alpha

Адреса

Nazva

Alpha

Назва 



Таблиця 3 Структура полів файлу Tab_vub.db

Назва поля

Тип

Інформаційний зміст

ID

+

Код

Prizvuge

Alpha

Прізвище

Imia

Alpha

Ім’я 

Po_batkovi

Alpha

По батькові

Rik_nar

Date

Рік народження

Vik

Number

Вік

Stat

Alpha

Стать

Adress

Alpha

Адреса

Vylucia

Alpha

Вулиця

Nom_byd

Number

Номер будинку

Nom_kva

Number

Номер квартири

Ser_pasp

Alpha

Серія паспорта

Nom_pasp

Number

Номер паспорта

Data_vud_pasp

Date

Дата видачі паспорта

Kum_vud_pasp

Alpha

Ким виданий паспорт

Viiskovo_zobov

Alpha

Військовозобов’язаний 

Photo

Graphic

Фото

Pensioner

Alpha

Пенсіонер

Prucuna_vub

Alpha

Причина вибуття

Data_vub

Date

Дата вибуття

3. Опис алгоритму функціонування програмного забезпечення



3.1 Інформаційна модель системи





Vyl_sp.db



Картка паспортних даних

Довідка про прописку

Пенсіонери



Оперативні дані

Формування та обробка оперативних даних



Tab_vub.db



Pasp_st.db

Формування довідників

Пошук по адресі

Пошук по прізвищу

Додаткові дані

Дані про вибувших



Вибувші

Пошук

Пенсіонери



Довідник вулиць

Введення і редагування даних

Головна форма програми































Рис. 3.1. Інформаційна модель системи



3.2. Модульна структура програмного засобу

Програма складається з набору програмних модулів, кожний з яких виконує одну чи декілька функцій. Модульна структура програми зображена на рис. 3.2. У таблиці 3.1. наведено призначення програмних модулів.






Unit2

Unit8

Unit10

Unit9

Unit11

Unit6

Unit5

Unit4

Unit7

Unit12

pasp_st

vyl



p_st



























Мал. 3.2



Призначення програмних модулів Таблиця 3.1

	№

	Позначення

	Призначення

	1

	p_st

	Головний модуль програми. Містить головну форму і забезпечує перехід з однієї форми на іншу.

	2

	vyl

	Модуль довідника вулиць.

	3

	pasp_st

	Модуль введення та редагування даних.

	4

	Unit9

	Модуль звіту «Картка паспортних даних».

	5

	Uni11

	Модуль для введення додаткових даних.

	6

	Uni10

	Модуль звіту «Довідка про прописку».

	7

	Unit12

	Модуль, який містить дані про вибувших.

	8

	Unit7

	Модуль, для вилучення вибувших.

	9

	Unit4

	Модуль, для пошуку за прізвищем.

	10

	Unit5

	Модуль, для пошуку за адресою.

	11

	Unit6

	Модуль, для відображення списку пенсіонерів.

	12

	Unit8

	Модуль звіту «Список пенсіонерів»

	13

	Unit2

	Модуль, який містить довідку про розробника.


3.3 Опис програмних модулів



3.2.1 Модуль “P_st_”

Модуль P_st є головним модулем програми через який здійснюється зв’язок з іншими програмними модулями. Перехід на інші програмні модулі виконується з використанням системи меню. Екранна форма модуля в режимі виконання програми, з розкритим елементом меню зображена на рис.3.3.



	

Мал.3.3 Екранна форма модуля P_st в режимі виконання програми

	

	Екранна форма модуля в режимі конструювання зображена на мал. 3.4

	

	


Мал. 3.4 Екранна форма модуля P_st в режимі конструювання



Програмна специфікація модуля P_st наведена у таблиці 3.2

	Таблиця 3.2 Програмна специфікація модуля P_st 

	Компонент програми

	Позначення

	Зміст

	Стандартні модулі

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

	Dialogs, StdCtrls, ComCtrls, Menus;

	Стандартні модулі, з якими встановлюється зв’язок

	Візуальні компоненти

	MainMenu1: TMainMenu;

	Програмне меню, яке забезпечує перехід на інші програмні форми

	

	N1: TMenuItem;

	Пункт меню «Довідники»

	

	N2: TMenuItem;

	Підпункт «Вулиці» пункту меню Довідники

	

	N3: TMenuItem;

	Пункт меню «Операції»

	

	N4: TMenuItem;

	Підпункт «Введення даних» пункту меню Операції

	

	N5: TMenuItem;

	Пункт меню «Вибірка»

	

	N6: TMenuItem;

	Підпункт «Вибувші» пункту меню Вибірка

	

	N7: TMenuItem;

	Підпункт «Дані про вибувших» пункту меню Операції

	

	N8: TMenuItem;

	Підпункт «Пошук» пункту меню Вибірка

	

	N9: TMenuItem;

	Підпункт «Прізвище» підпункту Пошук меню Вибірка

	

	N10: TMenuItem;

	Підпункт «Адреса» підпункту Пошук меню Вибірка

	

	N11: TMenuItem;

	Підпункт «Пенсіонери» пункту меню Вибірка

	

	N12: TMenuItem;

	Пункт меню «Довідка»

	

	N13: TMenuItem;

	Підпункт «Про програму» пункту меню Довідка

	

	N14: TMenuItem;

	Підпункт «Про автора» пункту меню Довідка

	Процедури

	procedure N1Click(Sender: TObject);

	Відкриваємо пункт меню «Довідники»

	

	procedure N2Click(Sender: TObject);

	Переходимо на форму довідника вулиць

	

	procedure N3Click(Sender: TObject);

	Відкриваємо пункт меню «Операції»

	

	procedure N4Click(Sender: TObject);

	Переходимо на форму введення даних

	

	procedure N5Click(Sender: TObject);

	Відкриваємо пункт меню «Вибірка»

	

	procedure N6Click(Sender: TObject);

	Переходимо на форму вилучення вибувших

	

	procedure N7Click(Sender: TObject

	Переходимо на форму перегляду даних про вибувших

	

	procedure N8Click(Sender: TObject);

	Відкриваємо підпункт меню «Пошук»

	

	procedure N9Click(Sender: TObject);

	Переходимо на форму для пошуку по прізвищу

	

	procedure N10Click(Sender: TObject);

	Переходимо на форму для пошуку за адресою

	

	procedure N11Click(Sender: TObject);

	Переходимо на форму для відображення пенсіонерів

	

	procedure N12Click(Sender: TObject);

	Відкриваємо пункт меню «Довідка»

	

	procedure N13Click(Sender: TObject);

	Переходимо на форму для перегляду довідки про програму

	

	procedure N14Click(Sender: TObject);

	Переходимо на форму для перегляду довідки про розробника

Програмний код модуля P_st наведено у Додатку 2.

Модуль pasp_st є одним з головних модулів тому що саме він підтримує введення нових даних в базу даних та видалення даних з бази даних. Введення виконується вручну з деяким використанням автоматизації процесу. Контроль за введенням даних частково лягає на користувача, а частково на комп’ютер. Також можна за допомогою цього модуля виконувати редагування даних. За допомогою даного модулю можна відобразити звіти «Картка паспортних даних» та «Довідка про прописку».

Екранна форма модуля в режимі виконання програми зображена на мал.3.5.





Мал.3.5. Екранна форма модуля pasp_st в режимі виконання програми



Екранна форма модуля pasp_st в режимі конструювання зображена на мал. 3.6.



	Мал. 3.6 Екранна форма модуля pasp_st в режимі конструювання

	

Програмна специфікація модуля pasp_st наведена у таблиці 3.3




Таблиця 3.3 Програмна специфікація модуля pasp_st 

	Компонент програми

	Позначення 

	Зміст

	Стандартні  модулі

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

	ExtCtrls, DBCtrls, Grids, DBGrids, DBTables, Db, StdCtrls, Mask,DateUtils;

	Стандартні модулі,  з якими встановлюється зв’язок

	Компоненти 

	Label1: TLabel;

	Label2: TLabel;

	Label3: TLabel;

	Label4: TLabel;

	Label5: TLabel;

	Label6: TLabel;

	Label7: TLabel;

	Label8: TLabel;

	Label9: TLabel;

	Label10: TLabel;

	Label11: TLabel;

	Label12: TLabel;

	Label13: TLabel;

	Label14: TLabel;

	Label15: TLabel;

	Label16: TLabel;

	Написи на формі

	

	DBEdit1: TDBEdit;

	DBEdit2: TDBEdit;

	DBEdit3: TDBEdit;

	DBEdit4: TDBEdit;

	DBEdit5: TDBEdit;

	DBEdit10: TDBEdit;

	DBEdit11: TDBEdit;

	DBEdit9: TDBEdit;

	DBEdit6: TDBEdit;

	Поля введення даних

	

	DBLookupComboBox1: TDBLookupComboBox;

	Випливаючі списки даних з яких потрібно вибрати потрібне поле

	

	DBNavigator1: TDBNavigator;

	Навігатор по базі даних

	

	DBImage1: TDBImage;

	Об’єкт завантаження малюнка

	

	DBGrid1: TDBGrid;

	Таблиці відображення вмісту бази данних

	

	 BitBtn1: TBitBtn;

	 BitBtn3: TBitBtn;

	 BitBtn2: TBitBtn;

	Кнопки  виконання команд

	

	 DBComboBox1: TDBComboBox;

	 DBComboBox2: TDBComboBox;

	 DBComboBox3: TDBComboBox;

	Поле даних зі списком

	Процедури

	procedure DBEdit4Change(Sender: TObject);

	Процедура автоматичного розрахунку поля Вік

	

	 procedure BitBtn1Click(Sender: TObject);

	Відкриває папку для загрузки фото

	

	 procedure BitBtn2Click(Sender: TObject);

	Відкриває звіт паспортних даних

	

	 procedure FormCreate(Sender: TObject);

	Активація форматів загрузки фото

	

	 procedure Edit1Change(Sender: TObject);

	Пошук по першим літерам прізвища

	

	 procedure BitBtn3Click(Sender: TObject);

	Відкриває звіт «Довідка про прописку»

	

	 procedure FormActivate(Sender: TObject);

	Курсор на перше поле введення

	

	 procedure DBNavigator1Click(Sender: TObject; Button: TNavigateBtn);

	Активація компонентів введення



Програмний код модуля Pasp_st наведено у Додатку 2.

Модуль Vyl – модуль довідника вулиць. За допомогою даного модуля можливо ввести в базу вулиць нову, раніше не записану вулицю, або при введенні використовувати вже занесені адреси.

Екранна форма модуля в режимі виконання програми зображена на мал.3.7.




Мал.3.7 Екранна форма модуля Vyl в режимі виконання програми



	Екранна форма модуля в режимі конструювання зображена на мал. 3.8

	

	

Мал. 3.8 Екранна форма модуля Vyl в режимі конструювання

Програмна специфікація модуля Vyl наведена у таблиці 3.4



Таблиця 3.4

	Компонент програми

	Позначення 

	Зміст

	Стандартні модулі

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

	ExtCtrls, DBCtrls, Grids, DBGrids, DBTables, Db, StdCtrls, Mask,DateUtils;

	Стандартні модулі, з якими встановлюється зв’язок

	Компоненти 

	Label1: TLabel;

	 Label2: TLabel;

	 Label3: TLabel;

	 Label4: TLabel;

	 Label5: TLabel;

	 Label6: TLabel;

	 Label7: TLabel;

	 Label8: TLabel;

	Написи на формі

	

	DBEdit1: TDBEdit;

	Поле для введення даних

	

	DBNavigator1: TDBNavigator;

	Навігатор по базі даних

	

	DBImage1: TDBImage;

	Об’єкт завантаження малюнка

	

	DBGrid1: TDBGrid;

	Таблиці відображення вмісту бази данних

	

	 DBComboBox1: TDBComboBox;

	Поле даних зі списком

	

	Програмний код модуля Vyl наведено у Додатку 2.

	

Модуль Unit4 – модуль пошуку даних за прізвищем. За допомогою даного модуля можливо вручну ввести потрібне прізвище і натиснути кнопку Пошук. 

Екранна форма модуля в режимі виконання програми зображена на мал.3.9.






Мал.3.9. Екранна форма Unit4 режимі виконання



Екранна форма модуля Unit4 в режимі конструювання зображена на рис. 3.10





Мал.3.10. Екранна форма Unit4 режимі конструювання



Програмна специфікація модуля Unit4 наведена у таблиці 3.5




Таблиця 3.5

	Компонент програми

	Позначення 

	Зміст

	Стандартні модулі

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

	ExtCtrls, DBCtrls, Grids, DBGrids, DBTables, Db, StdCtrls, Mask,DateUtils;

	Стандартні модулі, з якими встановлюється зв’язок

	Компоненти 

	Label1: TLabel;

	Написи на формі

	

	 Edit1: TEdit;

	Поле для введення даних

	

	 Button1: TButton;

	Кнопка пошуку

	

	DBImage1: TDBImage;

	Об’єкт завантаження малюнка

	

	DBGrid2: TDBGrid;

	Таблиці відображення вмісту бази даних

	Процедури

	 procedure Button1Click(Sender: TObject);

	Процедура пошуку

	

	 procedure FormCreate(Sender: TObject);

	Оновлення таблиці

	

	Програмний код модуля Unit4 наведено у Додатку 2.

Модуль Unit5 – модуль пошуку даних за адресою. За допомогою даного модуля можливо вручну ввести потрібне прізвище і натиснути кнопку Пошук. 

Екранна форма модуля в режимі виконання програми зображена на мал.3.11.



	

Мал.3.11. Екранна форма Unit5 режимі виконання


Екранна форма модуля Unit5 в режимі конструювання зображена на рис. 3.12





Мал.3.12. Екранна форма Unit5 режимі конструювання



Програмна специфікація модуля Unit5 наведена у таблиці 3.6



Таблиця 3.6

	Компонент програми

	Позначення 

	Зміст

	Стандартні модулі

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

	ExtCtrls, DBCtrls, Grids, DBGrids, DBTables, Db, StdCtrls, Mask,DateUtils;

	Стандартні модулі, з якими встановлюється зв’язок

	Компоненти 

	Label1: TLabel;

	Написи на формі

	

	 Edit1: TEdit;

	Поле для введення даних

	

	 Button1: TButton;

	Кнопка пошуку

	

	DBImage1: TDBImage;

	Об’єкт завантаження малюнка

	

	DBGrid1: TDBGrid;

	Таблиці відображення вмісту бази даних

	Процедури

	 procedure Button1Click(Sender: TObject);

	Процедура пошуку

	

	 procedure FormCreate(Sender: TObject);

	Оновлення таблиці

	

	Програмний код модуля Unit5 наведено у Додатку 2.

	
Модуль Unit6 – модуль пошуку і відображення списку пенсіонерів. За допомогою даного модуля можна визначити список пенсіонерів і вивести на принтер їх список. 

Екранна форма модуля в режимі виконання програми зображена на мал.3.13.



	

Мал.3.13. Екранна форма Unit6 режимі виконання



Екранна форма модуля Unit6 в режимі конструювання зображена на рис. 3.14





Мал.3.14. Екранна форма Unit6 режимі конструювання


Програмна специфікація модуля Unit6 наведена у таблиці 3.7



Таблиця 3.7

	Компонент програми

	Позначення 

	Зміст

	Стандартні модулі

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

	ExtCtrls, DBCtrls, Grids, DBGrids, DBTables, Db, StdCtrls, Mask,DateUtils;

	Стандартні модулі, з якими встановлюється зв’язок

	Компоненти 

	 Label1: TLabel; 

	Написи на формі

	

	 Edit1: TEdit;

	Поле для введення даних

	

	 Button1: TButton;

	BitBtn1: TBitBtn;

	Кнопка пошуку

	

	DBGrid1: TDBGrid;

	Таблиці відображення вмісту бази даних

	Процедури

	 procedure Button1Click(Sender: TObject);

	Друк списку пенсіонерів

	

	 procedure FormCreate(Sender: TObject);

	Оновлення таблиці

	

	procedure BitBtn1Click(Sender: TObject);

	Відображення списку пенсіонерів

	

	Програмний код модуля Unit6 наведено у Додатку 2.

Модуль Unit7 – модуль таблиці вибувших. За допомогою даного модуля можна перемістити людину в окрему таблицю вибувших, попередньо вказавши дату вибуття та причину вибуття. 

Екранна форма модуля в режимі виконання програми зображена на мал.3.15.






Мал.3.15. Екранна форма Unit7 режимі виконання



Екранна форма модуля Unit7 в режимі конструювання зображена на рис. 3.16





Мал.3.16. Екранна форма Unit7режимі конструювання


Програмна специфікація модуля Unit7 наведена у таблиці 3.8



Таблиця 3.8

	Компонент програми

	Позначення 

	Зміст

	Стандартні модулі

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

	ExtCtrls, DBCtrls, Grids, DBGrids, DBTables, Db, StdCtrls, Mask,DateUtils;

	Стандартні модулі, з якими встановлюється зв’язок

	Компоненти 

	Label1: TLabel;

	Label2: TLabel;

	Label3: TLabel;

	Label4: TLabel;

	Написи на формі

	

	 DBEdit1: TDBEdit;

	 DBEdit2: TDBEdit;

	Поле для введення даних

	

	 BitBtn1: TBitBtn;

	Кнопка пошуку

	

	DBGrid1: TDBGrid;

	 DBGrid2: TDBGrid;

	Таблиці відображення вмісту бази даних

	

	DBNavigator1: TDBNavigator;

	Навігатор по базі даних

	Процедури

	procedure BitBtn1Click(Sender: TObject);

	Переміщення

	

	 procedure FormCreate(Sender: TObject);

	Оновлення таблиці

	

	Програмний код модуля Unit6 наведено у Додатку 2.

Модуль Unit11 – додатковий модуль таблиці вибувших. За допомогою даного модуля можна ввести додаткові дані для створення довідки про прописку. 

Екранна форма модуля в режимі виконання програми зображена на мал.3.17.






Мал.3.17. Екранна форма Unit11 режимі виконання



Екранна форма модуля Unit7 в режимі конструювання зображена на рис. 3.18





Мал.3.19. Екранна форма Unit11 режимі конструювання

Програмна специфікація модуля Unit11 наведена у таблиці 3.9



Таблиця 3.9

	Компонент програми

	Позначення 

	Зміст

	Стандартні модулі

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

	ExtCtrls, DBCtrls, Grids, DBGrids, DBTables, Db, StdCtrls, Mask,DateUtils;

	Стандартні модулі, з якими встановлюється зв’язок

	Компоненти 

	Label1: TLabel;

	 Label2: TLabel;

	 Label3: TLabel;

	 Label4: TLabel;

	 Label5: TLabel;

	 Label6: TLabel;

	Написи на формі

	

	Edit1: TEdit;

	 Edit2: TEdit;

	Edit3: TEdit;

	 Edit4: TEdit;

	 Edit5: TEdit;

	Поле для введення даних

	

	 Button1: TButton;

	Кнопка пошуку

	Процедури

	procedure Button1Click(Sender: TObject);

	Кнопка присвоєння даних до звіту.

	

	Програмний код модуля Unit11 наведено у Додатку 2.

Модуль Unit12 – модуль який містить дані про вибувших. За допомогою даного модуля можна переглянути список вибувших, але не можливо внести зміни. 

Екранна форма модуля в режимі виконання програми зображена на мал.3.20.






Мал.3.20. Екранна форма Unit12 режимі виконання



Екранна форма модуля Unit12 в режимі конструювання зображена на рис. 3.21





Мал.3.21. Екранна форма Unit12 режимі конструювання



Програмна специфікація модуля Unit12 наведена у таблиці 3.10




Таблиця 3.10

	Компонент програми

	Позначення 

	Зміст

	Стандартні модулі

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

	ExtCtrls, DBCtrls, Grids, DBGrids, DBTables, Db, StdCtrls, Mask,DateUtils;

	Стандартні модулі, з якими встановлюється зв’язок

	Компоненти 

	 Label1: TLabel;

	Написи на формі

	

	 DBEdit1: TDBEdit;

	 DBEdit2: TDBEdit;

	Поле для введення даних

	

	 DBImage1: TDBImage;

	Відображення фото

	Процедури

	procedure TForm12.FormCreate(Sender: TObject);

	Заборона редагування

	

	Програмний код модуля Unit12 наведено у Додатку 2.

Модуль Unit8 – модуль формує звіт «Список пенсіонерів». За допомогою даного модуля и можемо роздрукувати список пенсіонерів. 

Екранна форма модуля в режимі виконання програми зображена на мал.3.22.



	

Мал.3.22 Екранна форма Unit8 режимі виконання



Екранна форма модуля Unit8 в режимі конструювання зображена на рис. 3.23



Мал.3.23 Екранна форма Unit8 режимі конструювання



Програмна специфікація модуля Unit8 наведена у таблиці 3.11



Таблиця 3.11

	Компонент програми

	Позначення 

	Зміст

	Стандартні модулі

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

	ExtCtrls, DBCtrls, Grids, DBGrids, DBTables, Db, StdCtrls, Mask,DateUtils;

	Стандартні модулі, з якими встановлюється зв’язок

	Компоненти 

	QRLabel1: TQRLabel;

	 QRLabel2: TQRLabel;

	 QRLabel3: TQRLabel;

	 QRLabel4: TQRLabel;

	 QRLabel5: TQRLabel;

	 QRLabel6: TQRLabel;

	Написи звіту

	

	QRDBText1: TQRDBText;

	 QRDBText2: TQRDBText;

	 QRDBText3: TQRDBText;

	 QRDBText4: TQRDBText;

	 QRDBText5: TQRDBText;

	Поле виведення даних

	

	Програмний код модуля Unit8 наведено у Додатку 2.


Модуль Unit9 – модуль формує звіт «Картка паспортних даних». За допомогою даного модуля и можемо вивести на екран картку паспортних даних по окремому прізвищу, по необхідності роздрукувати. 

Екранна форма модуля в режимі виконання програми зображена на мал.3.24.





Мал.3.24. Екранна форма Unit9 режимі виконання



Екранна форма модуля Unit9 в режимі конструювання зображена на мал. 3.25






Мал.3.25. Екранна форма Unit9 режимі конструювання



Програмна специфікація модуля Unit9 наведена у таблиці 3.12



Таблиця 3.12

	Компонент програми

	Позначення 

	Зміст

	Стандартні модулі

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

	ExtCtrls, DBCtrls, Grids, DBGrids, DBTables, Db, StdCtrls, Mask,DateUtils;

	Стандартні модулі, з якими встановлюється зв’язок

	Компоненти 

	QRLabel1: TQRLabel;

	 QRLabel2: TQRLabel;

	 QRLabel3: TQRLabel;

	 QRLabel4: TQRLabel;

	 QRLabel5: TQRLabel;

	 QRLabel6: TQRLabel;

	QRLabel7: TQRLabel;

	 QRLabel8: TQRLabel;

	 QRLabel9: TQRLabel;

	 QRLabel10: TQRLabel;

	 QRLabel11: TQRLabel;

	 QRLabel12: TQRLabel;

	 QRLabel13: TQRLabel;

	 QRLabel14: TQRLabel;

	 QRLabel15: TQRLabel;

	 QRLabel16: TQRLabel;

	 QRLabel17: TQRLabel;

	 QRLabel18: TQRLabel;

	 QRLabel19: TQRLabel;

	Написи звіту

	

	QRDBText1: TQRDBText;

	 QRDBText2: TQRDBText;

	 QRDBText3: TQRDBText;

	 QRDBText4: TQRDBText;

	 QRDBText5: TQRDBText;

	 QRDBText6: TQRDBText;

	 QRDBText7: TQRDBText;

	QRDBText8: TQRDBText;

	QRDBText9: TQRDBText;

	QRDBText10: TQRDBText;

	QRDBText11: TQRDBText;

	QRDBText12: TQRDBText;

	QRDBText13: TQRDBText;

	QRDBText14: TQRDBText;

	QRDBText15: TQRDBText;

	QRDBText16: TQRDBText;

	Поле виведення даних

	

	QRDBImage1: TQRDBImage;

	Відображено картинку в звіті

	

	Програмний код модуля Unit9 наведено у Додатку 2.

Модуль Unit10 – модуль формує звіт «Довідка про прописку». За допомогою даного модуля и можемо вивести на екран довідку про прописку по окремому прізвищу, по необхідності роздрукувати. 

Екранна форма модуля в режимі виконання програми зображена на мал.3.26.






Мал.3.26. Екранна форма Unit10 режимі виконання



Екранна форма модуля Unit10 в режимі конструювання зображена на рис. 3.27





Мал.3.27. Екранна форма Unit10 режимі конструювання

Програмна специфікація модуля Unit10 наведена у таблиці 3.13



Таблиця 3.13

	Компонент програми

	Позначення 

	Зміст

	Стандартні модулі

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

	ExtCtrls, DBCtrls, Grids, DBGrids, DBTables, Db, StdCtrls, Mask,DateUtils;

	Стандартні модулі, з якими встановлюється зв’язок

	Компоненти 

	QRLabel1: TQRLabel;

	 QRLabel2: TQRLabel;

	 QRLabel3: TQRLabel;

	 QRLabel4: TQRLabel;

	 QRLabel5: TQRLabel;

	 QRLabel6: TQRLabel;

	QRLabel7: TQRLabel;

	 QRLabel8: TQRLabel;

	 QRLabel9: TQRLabel;

	 QRLabel10: TQRLabel;

	 QRLabel11: TQRLabel;

	 QRLabel12: TQRLabel;

	 QRLabel13: TQRLabel;

	 QRLabel14: TQRLabel;

	 QRLabel15: TQRLabel;

	 QRLabel16: TQRLabel;

	Написи звіту

	

	QRDBText1: TQRDBText;

	 QRDBText2: TQRDBText;

	 QRDBText3: TQRDBText;

	 QRDBText4: TQRDBText;

	 QRDBText5: TQRDBText;

	 QRDBText6: TQRDBText;

	 QRDBText7: TQRDBText;

	QRDBText8: TQRDBText;

	Поле виведення даних

	

	

	Програмний код модуля Unit10 наведено у Додатку 2.

	


5. Висновок



Даний проект розроблений відповідно одержаного завдання. Подальший розвиток роботи можливий у бік поліпшення зовнішнього інтерфейсу і адаптації програми до більшої області потенційного застосування, за рахунок інтеграції з іншими програмними пакетами призначеними для автоматизації різних сфер діяльності підприємства. У даній програмі можна покращити цілісність даних, які використовуються, надійність при виконанні певних операцій, контроль за введеною інформацією.




6. Список використаної літератури



		В.Э.Гофман, А.Д. Хомоненко „Delphi 6”

		Н.Б. Культин Delphi 6. „Програмирование на Object Pascal”




ДОДАТКИ



ДОДАТОК 1



7.1 Технічне завдання на розробку програмного засобу



1. ЗАГАЛЬНІ ПОЛОЖЕННЯ



1.2.Найменування програмного засобу



Повне найменування програмної розробки: Автоматизована система «Облік паспортних даних», надалі іменована як «програма». Коротка назва програми – «Паспортний стіл».



1.2 Призначення розробки та область застосування



Програма "Паспортний стіл" призначена для автоматизації підприємств призначена для обліку введення паспортних даних осіб, внесення змін в особисті дані і формування списків пенсіонерів і звітів у паперовій формі. Програма використовує пошук осіб за вказаною адресою, чи прізвищем. Програма може бути застосована у державних установах.



1.3 Найменування розроблювача і замовника



Розроблювач даного програмного продукту - студентка групи П-308 (шифр групи) __________________ (прізвище та ініціали), надалі іменований як «розроблювач».

Замовник програмного продукту – Циклова комісія «Розробка програмного забезпечення» Бердичівського коледжу промисловості, економіки та права, в особі викладача Тростянського Б.Г..

2. ПІДСТАВА ДЛЯ РОЗРОБКИ



2.1 Документ, на підставі якого ведеться розробка



Робота ведеться на підставі завдання на курсове проектування по дисципліні «Технологія розробки програмного забезпечення»



2.2 Організація, що затвердила цей документ, і дата його затвердження



Завдання затверджене на засіданні циклової комісії «Розробка програмного забезпеченн» Бердичівського коледжу промисловості, економіки та права __________ і видано викладачем Тростянським Б.Г.




3. ВИМОГИ ДО ПРОГРАМИ



3.1 Вимоги до функціональних характеристик



3.1.1 Склад виконуваних функцій

Програма повинна забезпечувати введення, збереження і редагування даних, формувати запити, будувати звіти. 

Програма повинна мати можливість автозаповнення або підстановки даних у визначені поля для прискорення роботи.

Програма повинна забезпечувати коректне введення та перевірку інформації на відповідність типу. 

Програма повинна мати можливість використання фільтру (спеціальна опція, що дозволяє відображати, тільки ті дані, які задовольняють заданій умові), параметри якого формуються користувачем.

Програма повинна виконувати типові операції з використанням функціональних клавіш, або клавіатурних комбінацій.

Програма повинна мати розгалужену довідкову систему, з можливістю отримання довідки у різних режимах.

Встановлення програми повинне виконуватися з використанням інсталяційного пакету.



3.1.2 Організація вхідних і вихідних даних

Організація вхідних і вихідних даних повинна відповідати інформаційній структурі виконуваних операцій, вхідним та вихідним паперовим документам.

Введення оперативних даних повинно виконуватися з використанням діалогових екранних форм, побудованих на основі візуальних компонентів.

Дані, які підлягають збереженню повинні зберігатися у вигляді таблиць баз даних у форматі dBASE, PARADOX або FoxPro.


3.1.3 Часові характеристики і розмір пам'яті, необхідної для роботи програми 

Час реакції програми на натискання клавіш і маніпуляцій мишею не повинен перевищувати 0,25 с.

Реакція на команди меню не повинна перевищувати 1 с.

Обсяг оперативної пам'яті, необхідний для роботи програми не повинний перевищувати 1 Мбайт.

Дисковий простір, необхідний для збереження програми і файлів даних не повинен перевищувати 4 Мбайт (для 100 записів таблиць бази даних).

В архівному вигляді файли початкового коду програми, баз даних і довідкової системи не повинні перевищувати 1,2 Мбайт.

Розмір інсталяційного пакету програми, який включає базову програму і програми для підтримки її роботи не повинен перевищувати 10 Мбайт.



3.2 Вимоги до надійності



3.2.1 Вимоги до надійного функціонування

Програма повинна нормально функціонувати при безперебійній роботі ПК. При виникненні збою в роботі апаратури, відновлення нормальної роботи програми повинне виконуватися після: перезавантаження операційної системи; запуску стартового файлу програми; повторного виконання дій, втрачених до останнього збереження інформації на магнітному диску.

Програма повинна забезпечувати можливість відновлення накопичених даних при її повторній інсталяції.

Програма повинна забезпечувати архівне збереження накопичених даних на зовнішніх або мережних носіях інформації.

Програма повинна забезпечувати коректну обробку виняткових ситуацій. 




3.2.2 Контроль вхідної і вихідної інформації 

Програма повинна забезпечувати правильне введення інформації за рахунок використання, там де це доцільно, шаблонів введення, процедурного блокування введення некоректної інформації, списків та автопідстановки.

Обробка виняткових ситуацій, пов’язаних із доступом до дисків, пристроїв введення – виведення інформації, повинна оброблятися програмно з виведенням відповідних інформаційних повідомлень, і не призводити до блокування роботи програми.



3.2.3 Час відновлення після відмови

Час відновлення після відмови, не пов’язаною з роботою програми, повинен складатися із: часу перезапуску користувачем операційної системи; часу запуску користувачем файлу програми, що виконується; часу повторного введення або зчитування з носіїв втрачених даних.



3.3 Умови експлуатації і збереження



Програма повинна зберігатися у виді двох маркірованих дискових копій - еталонної і робочої, на яких вказується номер версії програми, дата запису програми на диск і дата її наступного перезапису. Періодичний перезапис інформації повинен здійснюватися відповідно до нанесеного маркірування. Умови збереження дисків повинні відповідати загальним вимогам.



3.4 Вимоги до інформаційної і програмної сумісності 



3.4.1 Вимоги до інформаційних структур на вході і виході 

Вимоги до інформаційних структур на вході і виході визначені в п. 3.1.2.


3.4.2 Вимоги до методів рішення і мов програмування

Вибір методів рішення здійснюється розроблювачем без узгодження з замовником. Розробка програми повинна вестися на одній з наступних мов і з використанням засобів програмування:

VisualFoхPro;

Borland Delphi. 



3.4.3 Вимоги до системних програмних засобів

Програма повинна працювати під управлінням операційної системи Windows 98, Windows 2000, Windows XP.

Для забезпечення функціонування програми до складу системного програмного забезпечення повинен входити драйвер принтера відповідного типу (з урахуванням моделі принтера і встановленої версії операційної системи), архіватор ZIP.



3.5 Вимоги до складу і параметрів технічних засобів



Вимоги до складу технічних засобів:

персональний комп’ютер (ПК) у базовій конфігурації;

пристрій для роботи з компакт дисками, якщо передбачено встановлення програми з CD;

Системні параметри ПК визначаються типом операційної системи, обумовленої у п. 4.3.3. з урахуванням ресурсів, необхідних для підтримки роботи самої програми. Рекомендовані мінімальні характеристики технічних засобів, які забезпечують ефективну роботу програми у будь якому із вказаних системних програмних середовищ:

процесор – Pentium III з тактовою частотою 750 МГц;

оперативна пам’ять - 128 Mбайт;

обсяг дискової пам’яті – 20 Гбайт.


4. ВИМОГИ ДО ПРОГРАМНОЇ ДОКУМЕНТАЦІЇ



Програмна документація повинна включати наступні документи:



«Інструкція по інсталяції (встановленню) програми», складається з опису інсталяційного пакету, переліку етапів інсталяції та їх послідовності, шляху інсталяції, розміру інсталяційного пакету та програмних файлі після інсталяції;

«Керівництво користувача», складається з опису послідовності завантаження програми, основних режимів роботи, основних екранних форм та їх структури, переліку виняткових ситуацій та реакції користувача на них, контрольні приклади;

«Керівництво адміністратора баз даних», складається з опису складу таблиць бази даних та доступів до них (список користувачів, їх права і паролі), опису та послідовності робіт по обслуговуванню бази даних (архівування, резервне ковпіювання, з вказівкою періодичності виконання та засобів, що для цього використовуються).




5. ТЕХНІКО - ЕКОНОМІЧНІ ПОКАЗНИКИ



Техніко - економічні показники визначаються замовником без участі виконавця. 




6. СТАДІЇ ТА ЕТАПИ РОЗРОБКИ



Стадії та етапи розробки програми, та терміни їх виконання повинні відповідати затвердженому графіку курсового проектування. 




7. ПОРЯДОК КОНТРОЛЮ І ПРИЙМАННЯ



Основними формами контролю виконання проекту є - поточний, проміжковий і підсумковий.

Поточний контроль здійснюється виконавцем, щляхом систематичної перевірки відповідності стану виконуваних робіт графіку виконання проекту і поточних характеристик проекту вимогам технічного завдання.

Проміжковий контроль здійснюється замовником із залученням виконавця, у відповідності до графіку проведення контролю, шляхом первірки поточного стану проекта графіку розробки і відвічності основних етапів та характеристик проекту технічному завданню. Недоліки, виявлені у результаті проміжкового контролю повинні бути усунені до наступної перевірки.

Підсумковий контроль проводиться комісією, яка складається із представників замовника, у присутності виконавця в термін визначений графіком виконання проекту. Підсумковий контроль передбачає комплексне тестування всього проекту і окремих модулів на відповідність функціональним і якісним характеристикам, перевірку складу та якості програмної документації, комплектність проекту у відповідності до пред’явленого опису і технічного завдання. 

На основі результатів підсумкового контролю комісія робить висновок про приймання або неприймання проекту, з оформленням відповідного акту (рецензії) на виконану роботу.




Додаток 2



7.2 Коди програмних модулів



unit p_st;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, Menus, StdCtrls, jpeg, ExtCtrls;

type

TForm1 = class(TForm)

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

N5: TMenuItem;

N6: TMenuItem;

N7: TMenuItem;

N8: TMenuItem;

N9: TMenuItem;

N10: TMenuItem;

N11: TMenuItem;

N12: TMenuItem;

N13: TMenuItem;

N14: TMenuItem;

Image1: TImage;

Label3: TLabel;

Label1: TLabel;

Label2: TLabel;

Label4: TLabel;

procedure N4Click(Sender: TObject);

procedure N2Click(Sender: TObject);

procedure N9Click(Sender: TObject);

procedure N10Click(Sender: TObject);

procedure N11Click(Sender: TObject);

procedure N6Click(Sender: TObject);

procedure N7Click(Sender: TObject);

procedure N13Click(Sender: TObject);

procedure N14Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

uses pasp_st, vyl, Unit4, Unit5, Unit6, Unit7, Unit12, Unit2;

{$R *.dfm}

procedure TForm1.N4Click(Sender: TObject);

begin

form2.show;

end;

procedure TForm1.N2Click(Sender: TObject);

begin

form3.show;

end;

procedure TForm1.N9Click(Sender: TObject);

begin

form4.Show;

end;

procedure TForm1.N10Click(Sender: TObject);

begin

form5.show;

end;

procedure TForm1.N11Click(Sender: TObject);

begin

form6.show;

end;

procedure TForm1.N6Click(Sender: TObject);

begin

form7.show;

end;

procedure TForm1.N7Click(Sender: TObject);

begin

form12.show;

end;

procedure TForm1.N13Click(Sender: TObject);

begin

winhelp(Form1.Handle,'pasp_help.hlp',HELP_CONTEXT,1); end;

procedure TForm1.N14Click(Sender: TObject);

begin

aboutbox.showmodal;

end;

end.

unit pasp_st;

interface

uses jpeg, DB, DBTables, ExtDlgs, Dialogs, StdCtrls, Buttons, DBCtrls,

Controls, ExtCtrls, Mask, Grids, DBGrids, Classes,

Windows, Messages, SysUtils, Variants, Graphics, Forms, QuickRpt;

type

TForm2 = class(TForm)

DBGrid1: TDBGrid;

DBEdit1: TDBEdit;

DBNavigator1: TDBNavigator;

DBLookupComboBox1: TDBLookupComboBox;

DBEdit2: TDBEdit;

DBEdit3: TDBEdit;

DBEdit4: TDBEdit;

DBEdit5: TDBEdit;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Shape1: TShape;

Label7: TLabel;

Label8: TLabel;

Label9: TLabel;

Label10: TLabel;

Label11: TLabel;

DBEdit7: TDBEdit;

DBEdit8: TDBEdit;

Label12: TLabel;

Label13: TLabel;

Label14: TLabel;

Label15: TLabel;

Label16: TLabel;

DBEdit10: TDBEdit;

DBEdit11: TDBEdit;

DBEdit9: TDBEdit;

DBComboBox1: TDBComboBox;

DBComboBox2: TDBComboBox;

DBComboBox3: TDBComboBox;

Label17: TLabel;

DBEdit6: TDBEdit;

OpenPictureDialog1: TOpenPictureDialog;

SavePictureDialog1: TSavePictureDialog;

Table2: TTable;

DataSource2: TDataSource;

Table1: TTable;

DataSource1: TDataSource;

Table1ID: TAutoIncField;

Table1Prizvuge: TStringField;

Table1Imia: TStringField;

Table1Po_batkovi: TStringField;

Table1Rik_nar: TDateField;

Table1Vik: TFloatField;

Table1Stat: TStringField;

Table1Adress: TStringField;

Table1Vylucia: TStringField;

Table1Nom_byd: TFloatField;

Table1Nom_kva: TFloatField;

Table1Ser_pasp: TStringField;

Table1Nom_pasp: TFloatField;

Table1Data_vud_pasp: TDateField;

Table1Kum_vud_pasp: TStringField;

Table1Viiskovo_zobov: TStringField;

Table1Photo: TGraphicField;

Table1Pensioner: TStringField;

Label18: TLabel;

DBComboBox4: TDBComboBox;

Edit1: TEdit;

DBImage1: TDBImage;

Label19: TLabel;

BitBtn1: TBitBtn;

BitBtn3: TBitBtn;

BitBtn2: TBitBtn;

procedure DBEdit4Change(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

procedure Edit1Change(Sender: TObject);

procedure BitBtn3Click(Sender: TObject);

procedure FormActivate(Sender: TObject);

procedure DBNavigator1Click(Sender: TObject; Button: TNavigateBtn);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form2: TForm2;

implementation

uses Unit8, Unit9, Unit10, Unit11;

{$R *.dfm}

function CalculateAge(Birthday, CurrentDate: TDate): Integer;

var

Month, Day, Year, CurrentYear, CurrentMonth, CurrentDay: Word;

begin

DecodeDate(Birthday, Year, Month, Day);

DecodeDate(CurrentDate, CurrentYear, CurrentMonth, CurrentDay);

if (Year = CurrentYear) and (Month = CurrentMonth) and (Day = CurrentDay) then

begin

Result := 0;

end

else

begin

Result := CurrentYear - Year;

if (Month > CurrentMonth) then

Dec(Result)

else

begin

if Month = CurrentMonth then

if (Day > CurrentDay) then

Dec(Result);

end;

end;

end;

procedure TForm2.DBEdit4Change(Sender: TObject);

begin

if length(dbedit4.Text)=10 then

dbedit5.Text:= Format('%d',

[CalculateAge(StrToDate(dbedit4.Text), Date)]);

end;

procedure TForm2.BitBtn1Click(Sender: TObject);

begin

if openpicturedialog1.Execute then

dbimage1.Picture.LoadFromFile(OpenPictureDialog1.FileName);

end;

procedure TForm2.FormCreate(Sender: TObject);

begin

openpicturedialog1.Filter:='Âñå ôàéëû(*.bmp;*.ico;*.emf;*.wmf)|*.bmp;*.ico;*.emf;*.wmf';

savepicturedialog1.Filter:='*.bmp|*.bmp';

end;

procedure TForm2.BitBtn2Click(Sender: TObject);

var bm:string;

zv:TBookmark;

begin

zv:=Table1.GetBookmark;

form11.show;

end;

procedure TForm2.Edit1Change(Sender: TObject);

var strField:string;

begin

strField:='Prizvuge';

table1.Locate(strField, Edit1.Text,[loCaseInsensitive,loPartialKey]);

end;

procedure TForm2.BitBtn3Click(Sender: TObject);

var bm:string;

zv:TBookmark;

begin

zv:=Table1.GetBookmark;

form9.QuickRep1.Preview;

end;

procedure TForm2.FormActivate(Sender: TObject);

begin

form2.DBEdit1.SetFocus;

end;

unit vyl;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, DB, DBTables, ExtCtrls, DBCtrls, Grids, DBGrids, StdCtrls, Mask,

jpeg;

type

TForm3 = class(TForm)

DataSource1: TDataSource;

DBGrid1: TDBGrid;

DBNavigator1: TDBNavigator;

Table1: TTable;

DBComboBox1: TDBComboBox;

DBEdit1: TDBEdit;

Image1: TImage;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Label7: TLabel;

Label8: TLabel;

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form3: TForm3;

implementation

{$R *.dfm}

end.

unit Unit4;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, DB,QuickRpt, Grids, DBGrids, DBTables, DBCtrls, StdCtrls, ExtCtrls;

type

TForm4 = class(TForm)

Table1: TTable;

DBGrid2: TDBGrid;

Button1: TButton;

Edit1: TEdit;

DataSource2: TDataSource;

Query11: TQuery;

Label1: TLabel;

DataSource1: TDataSource;

Table1Prizvuge: TStringField;

Table1Imia: TStringField;

Table1Po_batkovi: TStringField;

Table1Rik_nar: TDateField;

Table1Vik: TFloatField;

Table1Stat: TStringField;

Table1Adress: TStringField;

Table1Vylucia: TStringField;

Table1Nom_byd: TFloatField;

Table1Nom_kva: TFloatField;

Table1Ser_pasp: TStringField;

Table1Nom_pasp: TFloatField;

Table1Data_vud_pasp: TDateField;

Table1Kum_vud_pasp: TStringField;

Table1Viiskovo_zobov: TStringField;

Table1Photo: TGraphicField;

Table1Pensioner: TStringField;

procedure Button1Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form4: TForm4;

implementation

uses p_st, Unit8, pasp_st, Unit9;

{$R *.dfm}

procedure TForm4.Button1Click(Sender: TObject);

var fam: string[30];

begin

fam:=edit1.Text;

dbgrid2.Visible:=true;

if fam <> ''

then

begin

with form4.Query11 do begin

Close;

SQL.Clear;

SQL.Add('SELECT prizvuge,Imia, po_batkovi, rik_nar,vik, Stat,adress, vylucia, Nom_byd, nom_kva,ser_pasp,nom_pasp,data_vud_pasp, kum_vud_pasp,viiskovo_zobov');

SQL.Add('FROM Pasp_st.db');

SQL.Add('WHERE Prizvuge= "'+ fam + '"');

Open;

end;

form4.Query11.DataSource:=form4.DataSource1;

Form4.DataSource2.DataSet:=form4.Query11;

form4.DBGrid2.DataSource:=form4.DataSource2;

end;

end;

procedure TForm4.FormCreate(Sender: TObject);

begin

form4.Table1.Refresh;

end;

end.

unit Unit5;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, Buttons, Grids, DBGrids, DBTables, DB, ExtCtrls,

DBCtrls;

type

TForm5 = class(TForm)

Label1: TLabel;

Edit1: TEdit;

DataSource1: TDataSource;

DataSource2: TDataSource;

Table1: TTable;

Query1: TQuery;

DBGrid1: TDBGrid;

BitBtn1: TBitBtn;

Table1Prizvuge: TStringField;

Table1Imia: TStringField;

Table1Po_batkovi: TStringField;

Table1Rik_nar: TDateField;

Table1Vik: TFloatField;

Table1Stat: TStringField;

Table1Adress: TStringField;

Table1Vylucia: TStringField;

Table1Nom_byd: TFloatField;

Table1Nom_kva: TFloatField;

Table1Ser_pasp: TStringField;

Table1Nom_pasp: TFloatField;

Table1Data_vud_pasp: TDateField;

Table1Kum_vud_pasp: TStringField;

Table1Viiskovo_zobov: TStringField;

Table1Photo: TGraphicField;

Table1Pensioner: TStringField;

procedure BitBtn1Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form5: TForm5;

implementation

uses Unit4;

{$R *.dfm}

procedure TForm5.BitBtn1Click(Sender: TObject);

var fam: string;

begin

dbgrid1.Visible:=true;

fam:=edit1.Text;

if fam <> ''

then

begin

with form5.Query1 do begin

Close;

SQL.Clear;

SQL.Add('SELECT prizvuge,Imia, po_batkovi, rik_nar,vik, Stat,adress, vylucia, Nom_byd, nom_kva,ser_pasp,nom_pasp,data_vud_pasp, kum_vud_pasp,viiskovo_zobov ');

SQL.Add('FROM Pasp_st.db');

SQL.Add('WHERE vylucia= "'+ fam + '"');

Open;

end;

form5.Query1.DataSource:=form5.DataSource1;

Form5.DataSource2.DataSet:=form5.Query1;

form5.DBGrid1.DataSource:=form5.DataSource2;

end;

end;

procedure TForm5.FormCreate(Sender: TObject);

begin

form5.Table1.Refresh;

end;

end.

unit Unit6;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, DB, DBTables, Grids, DBGrids, StdCtrls, Buttons;

type

TForm6 = class(TForm)

DBGrid1: TDBGrid;

Table1: TTable;

Query1: TQuery;

DataSource1: TDataSource;

DataSource2: TDataSource;

Edit1: TEdit;

BitBtn1: TBitBtn;

Table1Prizvuge: TStringField;

Table1Imia: TStringField;

Table1Po_batkovi: TStringField;

Table1Rik_nar: TDateField;

Table1Vik: TFloatField;

Table1Stat: TStringField;

Table1Adress: TStringField;

Table1Vylucia: TStringField;

Table1Nom_byd: TFloatField;

Table1Nom_kva: TFloatField;

Table1Ser_pasp: TStringField;

Table1Nom_pasp: TFloatField;

Table1Data_vud_pasp: TDateField;

Table1Kum_vud_pasp: TStringField;

Table1Viiskovo_zobov: TStringField;

Table1Photo: TGraphicField;

Table1Pensioner: TStringField;

Label1: TLabel;

Button1: TButton;

procedure BitBtn1Click(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form6: TForm6;

implementation

uses Unit9, Unit8;

{$R *.dfm}

procedure TForm6.BitBtn1Click(Sender: TObject);

var fam,fam1: string[30];

begin

form6.DBGrid1.Visible:=true;

fam:='Òàê';

with form6.Query1 do begin

Close;

SQL.Clear;

SQL.Add('SELECT prizvuge,Imia, po_batkovi, rik_nar,vik, Stat,adress, vylucia, Nom_byd, nom_kva,ser_pasp,nom_pasp,data_vud_pasp, kum_vud_pasp,viiskovo_zobov');

SQL.Add('FROM Pasp_st.db');

SQL.Add('WHERE pensioner= "'+ fam + '"');

Open;

end;

form6.Query1.DataSource:=form6.DataSource1;

Form6.DataSource2.DataSet:=form6.Query1;

form6.DBGrid1.DataSource:=form6.DataSource2;

end;

procedure TForm6.Button1Click(Sender: TObject);

var zv:TBookmark;

begin

zv:=Query1.GetBookmark;

form8.QuickRep1.Preview;

end;

procedure TForm6.FormCreate(Sender: TObject);

begin

form6.Table1.Refresh;

end;

end.

unit Unit7;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, Buttons, DB, DBTables, Grids, DBGrids, Mask, DBCtrls,

ExtCtrls;

type

TForm7 = class(TForm)

DBGrid1: TDBGrid;

DBGrid2: TDBGrid;

Table1: TTable;

Table2: TTable;

Query1: TQuery;

DataSource1: TDataSource;

DataSource2: TDataSource;

DataSource3: TDataSource;

BitBtn1: TBitBtn;

Label2: TLabel;

Label3: TLabel;

DBEdit1: TDBEdit;

DBEdit2: TDBEdit;

Table1ID: TAutoIncField;

Table1Prizvuge: TStringField;

Table1Imia: TStringField;

Table1Po_batkovi: TStringField;

Table1Rik_nar: TDateField;

Table1Vik: TFloatField;

Table1Stat: TStringField;

Table1Adress: TStringField;

Table1Vylucia: TStringField;

Table1Nom_byd: TFloatField;

Table1Nom_kva: TFloatField;

Table1Ser_pasp: TStringField;

Table1Nom_pasp: TFloatField;

Table1Data_vud_pasp: TDateField;

Table1Kum_vud_pasp: TStringField;

Table1Viiskovo_zobov: TStringField;

Table1Photo: TGraphicField;

Table1Pensioner: TStringField;

DBNavigator1: TDBNavigator;

Label1: TLabel;

Label4: TLabel;

procedure BitBtn1Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form7: TForm7;

implementation

uses Unit4, pasp_st, p_st;

{$R *.dfm}

procedure TForm7.Button1Click(Sender: TObject);

var ZV1,ZV2,ZV3,ZV6,ZV7,ZV8,ZV11,ZV14,zv15,zv16,zv17,zv19,zv18:String;

zv4,ZV5,ZV9,ZV12,ZV13,ZV10:Double;

begin

ZV1 := form7.Table1Prizvuge.Value;

ZV2 := form7.Table1Imia.Value;

ZV3 := form7.Table1Po_batkovi.Value;

ZV4 := form7.Table1Rik_nar.Value;

ZV5 := form7.Table1Vik.Value;

ZV6 := form7.Table1Stat.Value;

ZV7 := form7.Table1Adress.Value;

ZV8 := form7.Table1Vylucia.Value;

ZV9 := form7.Table1Nom_byd.Value;

ZV10 := form7.Table1Nom_kva.Value;

ZV11 := form7.Table1Ser_pasp.Value;

ZV12 := form7.Table1Nom_pasp.Value;

ZV13 := form7.Table1Data_vud_pasp.value;

ZV14 := form7.Table1Kum_vud_pasp.Value;

zv15:=form7.Table1Viiskovo_zobov.Value;

zv16:=form7.Table1Photo.Value;

zv19:= form7.Table1Pensioner.Value;

v17:=form7.Edit2.Text;

zv18:=form7.Edit3.Text; 

table2.Edit;

table2.Last;

form7.DBNavigator1.BtnClick(nbinsert);

form7.DBNavigator1.BtnClick(nbEdit);

table2.fieldByName('Prizvuge').AsString:= ZV1;

table2.fieldByName('Imia').AsString:= ZV2;

table2.fieldByName('Po_batkovi').AsString:= ZV3;

table2.fieldByName('Rik_nar').AsDateTime:= zv4;

table2.fieldByName('vik').AsString:= floattostr(ZV5);

table2.fieldByName('stat').AsString:= ZV6;

table2.fieldByName('adress').AsString:= ZV7;

table2.fieldByName('Vylucia').AsString := ZV8;

table2.fieldByName('Nom_byd').AsString:= FloatToStr(ZV9);

table2.fieldByName('Nom_kva').AsString:=floattostr(ZV10);

table2.fieldByName('Ser_pasp').AsString:= ZV11;

table2.fieldByName('Nom_pasp').AsString:= floattostr(ZV12);

table2.fieldByName('Data_vud_pasp').AsDateTime:= ZV13;

table2.fieldByName('Kum_vud_pasp').AsString:= ZV14;

table2.fieldByName('Viiskovo_zobov').AsString:= ZV15;

table2.fieldByName('Pensioner').AsString:= ZV19;

table2.fieldByName('Photo').AsString:= ZV16;

table2.fieldByName('Prucuna_vub').AsString:= ZV17;

table2.fieldByName('Data_vub').AsString:= ZV18;

form7.DBNavigator1.BtnClick(nbPost); 

Query1.Close;

Query1.SQL.Clear;

Query1.SQL.Add ('Delete From pasp_st');

Query1.SQL.Add ('Where prizvuge = "'+ ZV1 + '"');

Query1.ExecSQL;

Table1.Refresh;

form7.Edit2.Text:='';

end;

procedure TForm7.FormCreate(Sender: TObject);

begin

form7.Table1.Refresh;

form7.DBEdit2.Text:=DateToStr(Date)

end;

end.

unit Unit8;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ExtCtrls, QuickRpt, QRCtrls, DB, DBTables, StdCtrls, Buttons,

Grids, DBGrids;

type

TForm8 = class(TForm)

QuickRep1: TQuickRep;

QRBand1: TQRBand;

DataSource1: TDataSource;

QRBand2: TQRBand;

QRDBText1: TQRDBText;

QRDBText2: TQRDBText;

QRDBText3: TQRDBText;

QRDBText4: TQRDBText;

QRDBText5: TQRDBText;

QRLabel1: TQRLabel;

QRLabel2: TQRLabel;

QRLabel3: TQRLabel;

QRLabel4: TQRLabel;

QRLabel5: TQRLabel;

QRLabel6: TQRLabel;

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form8: TForm8;

implementation

uses Unit4, pasp_st;

{$R *.dfm}

end.

unit Unit9;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, QuickRpt, QRCtrls, DB, ExtCtrls;

type

TForm9 = class(TForm)

QuickRep1: TQuickRep;

QRBand1: TQRBand;

QRDBText1: TQRDBText;

DataSource1: TDataSource;

QRLabel1: TQRLabel;

QRLabel2: TQRLabel;

QRDBText2: TQRDBText;

QRLabel3: TQRLabel;

QRDBText3: TQRDBText;

QRLabel4: TQRLabel;

QRLabel5: TQRLabel;

QRLabel6: TQRLabel;

QRDBText4: TQRDBText;

QRDBText5: TQRDBText;

QRDBText6: TQRDBText;

QRShape1: TQRShape;

QRLabel7: TQRLabel;

QRLabel8: TQRLabel;

QRLabel9: TQRLabel;

QRLabel10: TQRLabel;

QRLabel11: TQRLabel;

QRLabel12: TQRLabel;

QRLabel13: TQRLabel;

QRLabel14: TQRLabel;

QRLabel15: TQRLabel;

QRLabel16: TQRLabel;

QRLabel17: TQRLabel;

QRLabel18: TQRLabel;

QRDBText7: TQRDBText;

QRDBText8: TQRDBText;

QRDBText9: TQRDBText;

QRDBText10: TQRDBText;

QRLabel19: TQRLabel;

QRDBText11: TQRDBText;

QRDBText12: TQRDBText;

QRDBText13: TQRDBText;

QRDBText14: TQRDBText;

QRDBText15: TQRDBText;

QRDBText16: TQRDBText;

QRDBImage1: TQRDBImage;

QRDBImage2: TQRDBImage;

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form9: TForm9;

implementation

{$R *.dfm}

end.

unit Unit10;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, QuickRpt, QRCtrls, DB, ExtCtrls;

type

TForm10 = class(TForm)

QuickRep1: TQuickRep;

QRBand1: TQRBand;

DataSource1: TDataSource;

QRDBText1: TQRDBText;

QRLabel1: TQRLabel;

QRLabel2: TQRLabel;

QRDBText2: TQRDBText;

QRDBText3: TQRDBText;

QRLabel3: TQRLabel;

QRDBText4: TQRDBText;

QRDBText5: TQRDBText;

QRDBText6: TQRDBText;

QRDBText7: TQRDBText;

QRLabel8: TQRLabel;

QRDBText8: TQRDBText;

QRLabel9: TQRLabel;

QRLabel4: TQRLabel;

QRLabel5: TQRLabel;

QRLabel6: TQRLabel;

QRLabel7: TQRLabel;

QRLabel10: TQRLabel;

QRLabel11: TQRLabel;

QRLabel12: TQRLabel;

QRLabel13: TQRLabel;

QRLabel14: TQRLabel;

QRLabel15: TQRLabel;

QRLabel16: TQRLabel;

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form10: TForm10;

implementation

{$R *.dfm}

end.

unit Unit11;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls;

type

TForm11 = class(TForm)

Edit1: TEdit;

Edit2: TEdit;

Button1: TButton;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Edit3: TEdit;

Edit4: TEdit;

Edit5: TEdit;

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form11: TForm11;

implementation

uses Unit10, pasp_st;

{$R *.dfm}

procedure TForm11.Button1Click(Sender: TObject);

begin

form10.QRLabel12.Caption:=form11.Edit1.Text;

form10.QRLabel14.Caption:=form11.Edit2.Text;

form10.QRLabel13.Caption:=form11.Edit3.Text;

form10.QRLabel16.Caption:=form11.Edit4.Text;

form10.QRLabel15.Caption:=form11.Edit5.Text;

form10.QuickRep1.Preview;

end;

end.

unit Unit12;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, DB, Grids, DBGrids, DBCtrls;

type

TForm12 = class(TForm)

DBGrid1: TDBGrid;

DataSource1: TDataSource;

Label1: TLabel;

DBImage1: TDBImage;

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form12: TForm12;

implementation

uses pasp_st;

{$R *.dfm}

procedure TForm12.FormCreate(Sender: TObject);

begin

form12.DataSource1.AutoEdit:=false;

form2.openpicturedialog1.Filter:='Все файлы 

bmp;*.ico;*.emf;*.wmf)|*.bmp;*.ico;*.emf;*.wmf';

form2.savepicturedialog1.Filter:='*.bmp|*.bmp';

end;

end.




Додаток 3



7.4 Інструкції по впровадженню і експлуатації програмного засобу



Для встановлення даного продукту на ваш комп’ютер потрібно диск з інсталяційним пакетом вставити в CD-ROM. Після чого з диску запусти виконуваний файл Setup.exe. В діалоговому вікні, що відкриється мал. 7.1, натисніть на клавішу Далі для продовження встановлення або кнопку Скасувати для виходу з програми установки.





	Мал. 7.1



В слідуючому вікні мал. 7.2 можна прочитати Ліцензійну угоду. Прийняти її і натиснути Далі.






	Мал. 7.2

	

	В діалоговому вікні мал. 7.3 вкажіть пароль доступу та натисніть кнопку Далі для продовження встановлення програми на ваш комп’ютер.

	

	

	Мал. 7.3

	Дане вікно Мал. 7.4 показує куди потрібно встановити программу.

	

	

	Мал. 7.4

	

	Дане вікно Мал. 7.5 показує де будуть розміщенні ярлики встановленої програми.

	

	


	Мал. 7.5

	

	Після закінчення встановлення програми з’явиться наступне вікно Мал 7.6 на якому потрібно натиснути на кнопку Готово та можна обрати чи запускати встановлену програму після натиснення.

	

	

	Мал. 7.6

	Для запуску програми необхідно виконати команди Пуск → Облік паспортних даних→Облік паспортних даних. Інформація по керуваню прогамою знаходиться в допомозі програми, для виклику допомоги під час роботи програми необхідно натиснути клавішу F1.