Міністерство освіти і науки України
Бердичівський коледж промисловості, економіки та права
Курсовий проект з дисципліни
«Технологія розробки програмного забезпечення»
спеціальності 5.05010301
«Розробка програмного забезпечення»
Тема
Автоматизована система
«Облік паспортних даних»
Бердичів 2009р.
Анотація
Курсовий проект, 67 с., 35 мал., 17 табл., 2 джерела, 3 додатки.
Дисципліна: «ТЕХНОЛОГІЯ РОЗРОБКИ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ»
Тема: Автоматизована система «Облік паспортних даних»
У роботі описані процес і результати проектування автоматизованої системи «Облік паспортних даних», призначеної для автоматизації обліку паспортних даних.
Результат розробки оформлений у виді програмного пакету і комплекту супроводжувальної документації.
Подальший розвиток роботи можливий у бік поліпшення зовнішнього інтерфейсу ї адаптації програми до більшої області потенційного застосування.
Робота має навчальний характер і її впровадження для конкретного підприємства не виконувався.
Вступ
Автоматизація розрахункова – облікових задач у різних областях практичної діяльності є одним із основних напрямків застосування обчислювальної техніки і персональних комп’ютерів зокрема. На основі сукупності апаратних засобів і спеціалізованого прикладного програмного забезпечення будуються автоматизовані робочі місця спеціалістів різного профілю.
Однією із форм обліку для підприємств із різною формою діяльності є кадровий облік працівників.
Запропонований програмний засіб «АС Облік паспортних даних», призначений саме для автоматизації обліку паспортних даних на підприємстві, розроблений у відповідності до завдання на курсове проектування із дисципліни «Технологія розробки програмного забезпечення».
Основною метою даного курсового проекту є розробка розгорнутого технічного завдання на основі вивчення та аналізу заданої предметної області, розробка структур та вибір методів обробки даних, алгоритмів функціонування програмних модулів, забезпечення якісних показників роботи програми: створення зручного графічного інтерфейсу користувача, розробка інтегрованої довідкової системи та супроводжувальної документації, засобів для розгортання програмної системи в інформаційному середовищі користувачів.
Для реалізації поставленого завдання обрано сучасні інструментальні середовища і засоби програмування Borland Delphi 6.0, та відповідні засоби підтримки процесу розробки програм.
Не зважаючи на те, що проект носить навчальний характер, він має певне практичне значення і може бути застосований для автоматизації вказаної прикладної задачі на підприємствах.
1. Аналіз предметної області і постановка задачі на розробку програми
У відповідності до технічного завдання програма «Облік паспортних даних» повинна забезпечувати облік осіб і можливість отримання інформації, вибраної за певними критеріями, а також формування звітів у вигляді стандартизованих паперових документів.
Якщо вписується нова особа то у журнал реєстрації операцій вноситься відповідний запис.
При вибутті особи з паспортного обліку в журналі реєстрації операцій, вказується дата і причина про вибуття особи, прізвище та дані особи.
Для кожного нового особи заповнюється картка паспортного обліку, що представляє собою паперовий документ, у якому вказується:
- прізвище;
- ім’я;
- по батькові;
- дата видачі паспорта;
- рік народження;
- стать;
- адреса (вулиця, № будинку, квартира);
- серія та номер паспорта;
- ким виданий паспорт;
- військовозобов’язаний;
- фотографія;
- пенсіонер;
У відповідності до аналізу предметної області можна зробити висновок, що задача, яка підлягає автоматизації відноситься то складу типових аналітично - облікових задач і може бути вирішена з використанням програмних та інструментальних засобів, передбачених технічним завданням, а саме з використанням елементів файл – серверних баз даних.
2. Опис структур та методів обробки даних
2.1 Обґрунтування вибору методів та засобів обробки даних
Оскільки, у відповідності до технічного завдання і аналізу предметної області, розробка автоматизованої системи паспортних даних проводиться на основі принципів та елементів систем управління базами даних, то логічним є - збереження даних здійснювати у вигляді файлів таблиць бази даних певного типу, вибір і обробку інформації виконувати на основі запитів, для введення і відображення даних використовувати діалогові екранні форми, а вихідні паперові документи формувати у вигляді звітів.
Однією із сучасних універсальних інструментальних систем програмування є BorlandDelphi 6, яка має розвинені засоби для програмування та обробки баз даних, і в той же час підтримує майже всі відомі формати даних, що при необхідності дозволить перевести створені файли даних на іншу програмну платформу.
Одним із самих розповсюджених форматів даних є формат таблиць баз даних Paradox, крім того обрана система програмування спеціалізована саме під цей формат і надає більше засобів для налаштування таблиць баз даних при їх створенні. Тому саме формат таблиць баз даних Paradox використовується в даній системі. Створення файлів таблиць бази даних та визначення їх структури здійснюється за допомогою утиліти DatabaseDesktop, яка входить до складу програмного комплекту Delphi.
Для обробки даних на рівні запитів використовується мова SQL92, яка є стандартною мовою для побудови структурованих запитів в операційній системі Windows. Для створення звітів використовується генератор звітів QuickReport, компоненти якого представлені окремою вкладинкою програмного середовища Delphi.
Для забезпечення прискорення виконання операцій пошуку і вибірки даних, а також незалежності від шляху розташування фалів бази даних на дисках комп’ютерів користувачів, базі даних ставиться у співвідношення псевдонім (загальне ім’я бази даних), який створюється і обробляється за допомогою спеціалізованої утиліти BDEAdministrator.
2.2 Опис структур даних
Як було зазначено вище основними структурними елементами даних є файли таблиць бази даних у форматі Paradox. Нижче наведено перелік цих файлів із вказівкою назви файлу, структури полів та пояснень, що до призначення файлу. Назва полів певної таблиці даних починаються з літери, яка співпадає з першою літерою назви відповідного файлу. Це забезпечує виключення того, що в різних таблицях будуть використані однакові назви полів, і в той же час вказує належність поля до певної таблиці. Для збереження файлів таблиць використовують каталог:
С:ProgramFilesPasp_stDATA
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 Інформаційна модель системи
Рис. 3.1. Інформаційна модель системи
3.2. Модульна структура програмного засобу
Програма складається з набору програмних модулів, кожний з яких виконує одну чи декілька функцій. Модульна структура програми зображена на рис. 3.2. У таблиці 3.1. наведено призначення програмних модулів.
Мал. 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. Список використаної літератури
1. В.Э.Гофман, А.Д. Хомоненко „Delphi 6”
2. Н.Б. Культин Delphi 6. „Програмирование на ObjectPascal”
ДОДАТКИ
ДОДАТОК 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, WindowsXP.
Для забезпечення функціонування програми до складу системного програмного забезпечення повинен входити драйвер принтера відповідного типу (з урахуванням моделі принтера і встановленої версії операційної системи), архіватор ZIP.
3.5 Вимоги до складу і параметрів технічних засобів
Вимоги до складу технічних засобів:
- персональний комп’ютер (ПК) у базовій конфігурації;
- пристрій для роботи з компакт дисками, якщо передбачено встановлення програми з CD;
Системні параметри ПК визначаються типом операційної системи, обумовленої у п. 4.3.3. з урахуванням ресурсів, необхідних для підтримки роботи самої програми. Рекомендовані мінімальні характеристики технічних засобів, які забезпечують ефективну роботу програми у будь якому із вказаних системних програмних середовищ:
- процесор – PentiumIII з тактовою частотою 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.