Створення програмного додатку "Медичний діагностичний центр"

Проектування програмного забезпечення. Тестування та супровід програмного забезпечення. Технологія розробки програмного забезпечення. Основні моделі розробки програмного засобу. Структура процесу моделювання Erwin. Генерування бази даних BatchAccess.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык украинский
Дата добавления 20.06.2015
Размер файла 2,4 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Зміст

Вступ

1. Життєвий цикл

1.1 Системний аналіз

1.2 Проектування програмного забезпечення

1.3 Програмування (реалізація)

1.4 Тестування програмного забезпечення

1.5 Супровід програмного забезпечення

2. Моделі розробки програмного засобу

2.1 Каскадна (водоспадна) модель

2.2 Спіральна модель

2.3 Ітеративна модель

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

3.1 Методологія IDEF0

3.2 Методологія IDEF3

3.3 Методологія DFD

3.4 Методологія UML

4. Структура процесу моделювання Erwin

5. Генерування бази даних BatchAccess

6. Висновок

7. Список літератури

Додаток 1. Лістинг програми

Додаток 2. Результати роботи програми

Вступ

Початок буліберди.

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

C ++ Builder - програмний продукт, інструмент швидкої розробки додатків (RAD), інтегроване середовище програмування (IDE), система, використовувана програмістами для розробки програмного забезпечення на мові програмування C ++. C ++ Builder об'єднує в собі комплекс об'єктних бібліотек (STL, VCL, CLX, MFC та ін.), компілятор, відладчик, редактор коду і багато інших компонентів. C ++ Builder містить інструменти, які за допомогою drag-and-drop дійсно роблять розробку візуальної, спрощує програмування завдяки вбудованому WYSIWYG - редактору інтерфейсу та ін., dBASE і Paradox: Sybase, Oracle, InterBase і Informix; Excel, Access, FoxPro і Btrieve. Механізм ADO додає обслуговуванню зв'язків з базами даних дивовижну простоту і прозорість.

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

1. Життєвий цикл

Розділи повинні бути точно такі як у завданні, або в методичці. підрозділи необов'язково такіЖиттєвий цикл програмного забезпечення - це процес розробки програмного забезпечення, який розпочинається з моменту прийняти рішення про необхідність його створення і закінчується в момент його повного вилучення з експлуатації.

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

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

1.1 Системний аналіз

програмний забезпечення база модель

На даній стадії визначаються загальні вимоги до програмного забезпечення.

Специфікація вимог - це вимоги до програмного засобу і до усіх файлів програмного забезпечення.

Специфікація вимог до ПЗ «Medical© control »

1. Вступ:

1.1 Призначення, мета:нестав ці :ніде по специфікації

вирівнюванняДаний документ проектується студентом ПР - 9 - 12 для опису програмного продукту «Medical© control». А також системних, функціональних і не функціональних вимог до даного продукту.

Даний продукт буде вести облік клієнтів, їх діагнозів, виконувати пошук по діагнозам або по ПІБ, обчислювати вартість за день та друкувати звіти.

2. Загальний опис:

2.1 Характеристики:

2.2.1. Веде облік клієнтів;

2.2.2. Веде облік діагнозів клієнтів;

2.2.3. Виконує пошук;

2.1.4. Обчислює вартість за день;

2.1.5. Друкує звіти.

2.2 Користувачі:

2.2.1. Старша медсестра;

2.2.2. Лікарі;

2.2.3. Головний лікар.

2.3 Середовище функціонування:

Даний продукт працює на операційній системі Windows 95 / 98 / 2003 / Vista / 7 / 8 / 8.1 / 10.

Апаратна платформа: Клавіатура, миша, монітор, системний блок(материнська плата, вінчестер, процесор, блок живлення, відеоадаптер 16Mb).

3. Характеристики системи:

3.1 Функціональні вимоги:конкретно які дані треба писать

3.1.1 Продукт повинен дозволяти вводити дані;

3.1.2 Продукт повинен дозволяти виводити дані;

3.1.3 Продукт повинен дозволяти видаляти дані;

3.1.4 Продукт повинен дозволяти здійснювати пошук даних по діагнозу або по ПІБ пацієнта;

3.1.5 Продукт повинен обчислювати прибуток за день;

3.1.6 Продукт повинен дозволяти друкувати звіти.

4. Вимоги до зовнішніх інтерфейсів:

4.1 Користувацькі інтерфейси:

На інтерфейсі продукту повинно бути:

4.1.1 Головне меню;

4.1.2 Таблиця бази даних;

4.1.3 Вікна додавання та видалення даних.

4.1.4 Вікна пошуку даних.

4.1.5 Меню швидкого доступу.

4.2 Апаратні інтерфейси:

4.2.1 Взаємодіє з принтером.

5. Не функціональні вимоги:

5.1 Вимоги продуктивності:

5.1.1 Продукт повинен обчислювати вартість за день менше ніж за секунду;

5.1.2 Продукт повинен здійснювати пошук менше ніж за секунду;

5.1.3 Програма повинна бути розроблена на мові С++.

5.2 Вимоги безпеки:

5.2.1 Продукт повинен містити ідентифікацію по паролю.

1.2 Проектування програмного забезпечення

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

На цьому етапі:

1. Формується структура і визначається архітектура програмного забезпечення.

2. Визначаються модулі, які розділяються на ієрархічні рівні.

3. Вибирається структура інформаційних масивів, що становлять базу даних.

4. Розробляються алгоритми.

Мета етапу - це розбиття складних задач на під задачі меншої складності.

1.3 Програмування (реалізація)

На даному етапі проводиться програмування модулів.

1.4 Тестування програмного забезпечення

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

План тестування:

Дата

Версія

Опис

Автор

17.06.2015

1.0

Створений

Гребенюк

Зміст:

1 Відповідність функцій ПЗ по специфікації.

2 Перевірка коду.

3 Перевірка інтерфейсу.

4 Програмні засоби.

5 Тестування продуктивність.

1 Відповідність функцій ПЗ по специфікації.

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

2 Перевірка коду.

Код програми прийнятний.

3 Перевірка інтерфейсу.

Інтерфейс відповідає специфікації.

4 Програмні засоби.

Управління тестування та проектом - Borland C++ 6.

Робота з базою даних -Microsoft Access.

5 Тестування продуктивність.

Продукт повністю відповідає не функціональним вимогам специфікації.

1.5 Супровід програмного забезпечення

Супровід - це процес виправлення помилок та координація всіх елементів системи відповідно до користувача. Вносяться зміни в програмне забезпечення. Це відбувається з двох причин:

1. В програмне забезпечення залишаються помилки не виявлені під час тестування.

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

Супровід

Дата

Версія

Опис

Автор

18.06.2015

1.0

Створений

Гребенюк

Зміст:

1 Перевірка результатів тестування ПЗ, та вирішення помилок.

2 Модифікації

1. При тестуванні помилок не було виявлено.

2. Були реалізовані наступні модифікації:

· Підраховує кількість записів у певній таблиці (Клієнти, Препарати, Діагнози, Квитанції, Лікарі).

· Реалізована можливість зміни паролю програми.

· Реалізована можливість фільтрування даних.

2. Моделі розробки програмного засобу

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

Види моделей життєвого циклу: каскадна(водоспадна), спіральна, ітеративна.

Найбільшого поширення набули каскадна та спіральна модель розробки програмного засобу.

2.1 Каскадна (водоспадна) модель

Каскадна (водоспадна, 70 - 80 рр.) - в рамках цієї моделі процес розробки відбувається послідовно по етапах життєвого циклу. Водоспадна система застосовується для програм однорідних інформаційних систем. Її основною характеристикою є розбиття всієї розробки на етапи, причому перехід з одного стану на наступний відбувається тільки після того, як буде повністю завершена робота на поточному етапі. В даній курсовій роботі використовується саме ця модель.

2.2 Спіральна модель

Спіральна модель процесу(86 - 90 рр.) - передбачає послідовність етапів розробки життєвого циклу, яка виконується більше одного разу. Упор розробки робиться на етап «системний аналіз» і проектування. Кожний виток спіралі відповідає створенню фрагмента або версії програмного засобу. На нього уточнюються характеристики проекту і планується робота на наступному витку спіралі. При такому способі робіт буде повне виконання роботи на кожному етапі, але головне надати користувачу найшвидше працездатний продукт.

2.3 Ітеративна модель

Ітеративний підхід (англ. Iteration, «повторення») у розробці програмного забезпечення - це виконання робіт паралельно з безперервним аналізом отриманих результатів і коригуванням попередніх етапів роботи. Проект при цьому підході в кожній фазі розвитку проходить повторюваний цикл PDCA: Планування - Реалізація - Перевірка - Оцінка (англ. Plan-do-check-act cycle).

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

Дисципліна «Технологія розробки програмного забезпечення» направлена на вивчення теоретичних основ, методів і способів розробки інформаційних систем. У ній детально розглядається уніфікована мова моделювання UML, основні його будівельні блоки (об'єкти, класи, відносини і діаграми), і можливості створення системи з їх допомогою.

У програмі BPwin можна створювати моделі трьох видів. Для цього використовуються такі методології: IDEF0, IDEF3, DFD.

3.1 Методологія IDEF0

IDEF0 - Діаграма декомпозиції. Дану модель використовують для показу функціональної діяльності системи.

Діаграма складається з блоків і стрілок.

Функціональна діяльність - її робота(дієслово).

1. Призначення моделі - це набір питань на які повинна відповідати модель.

2. Границі моделювання (її межі) - це рівень деталізації.

3. Точка зору - вибирається перспектива з якої бачиться система.

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

Моделі IDEF0 мають ієрархічну систему. Головний блок система - це контекстна функція, вона може бути декомпозирована (може бути декомпозирована у ряд блоків).

3.2 Методологія IDEF3

IDEF3 (англ. Integrated DEFinition for Process Description Capture Method) - методологія моделювання і стандарт документування процесів, що відбуваються в системі. Метод документування технологічних процесів являє собою механізм документування та збору інформації про процеси. IDEF3 показує причинно-наслідкові зв'язки між ситуаціями і подіями в зрозумілій експерту формі, використовуючи структурний метод вираження знань про те, як функціонує система, процес або підприємство.

3.3 Методологія DFD

DFD - загальноприйняте скорочення від англ. Data Flow Diagrams - діаграми потоків даних. Так називається методологія графічного структурного аналізу, що описує зовнішні по відношенню до системи джерела і адресати даних, логічні функції, потоки даних і сховища даних, до яких здійснюється доступ.

Діаграма потоків даних (data flow diagram, DFD) - один з основних інструментів структурного аналізу і проектування інформаційних систем, що існували до широкого поширення UML. Незважаючи на що має місце в сучасних умовах зміщення акцентів від структурного до об'єктно-орієнтованого підходу до аналізу і проектування систем, «старовинні» структурні нотації раніше широко і ефективно використовуються як в бізнес-аналізі, так і в аналізі інформаційних систем.а що в твоїй системі?

3.4 Методологія UML

UML (англ. Unified Modeling Language - уніфікована мова моделювання) - мова графічного опису для об'єктного моделювання в області розробки програмного забезпечення. UML є мовою широкого профілю, це - відкритий стандарт, який використовує графічні позначення для створення абстрактної моделі системи, званої UML-моделлю. UML був створений для визначення, візуалізації, проектування та документування, в основному, програмних систем. UML не є мовою програмування, але на підставі UML-моделей можлива генерація коду.

Діаграма варіантів використання (use case diagram) - діаграма, на якій зображуються відносини між акторами й варіантами використання.

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

Варіант використання описується овальною формою дієсловом, стрілки - зв'язки.

4. Структура процесу моделювання Erwin

Логічна модель бази даних складається із сутності, атрибутів і зв'язків.

1. Сутності - таблиці позначаються прямокутником, містять атрибути.

2. Атрибут - це властивість екземпляра сутності. Є атрибут «первинний ключ» - це унікальна властивість екземпляра сутності.

Для створення зв'язків, програма створює альтернативні ключі.

Зв'язок - це функціональна залежність між сутностями, наприклад: викладач навчає студента - тут зв'язок «навчає».

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

5. Генерування бази даних BatchAccess

Генерування бази даних робиться за допомогою Erwin та BatchAccess.

1. Спочатку відкривається Erwin та в ньому вибирається InterBase в меню Target server і нажимаємо «Ок».рисунки! посил. на них

2. вирівнювання

3. Потім вибираємо, і нажимаємо Preview і копіюємо весь генерований лістинг в BatcAccess.

4. Відкриваємо BatchAccess і вибираємо вкладку Database Ї> Create New… , відкриється діалогове вікно для зберігання бази даних під довільним ім'ям.

5. Нажимаємо Ctrl+N, вставляємо генерований код з ERrwin і нажимаємо F5, нажимаємо Ctrl+S, відкриється діалогове вікно зберігання sql коду під довільним ім'ям(потрібно зберегти).

База даних повністю готова для роботи.

Для роботи з базою даних в Builder c++ 6 потрібно помістити компонент ADOConnection та клацнувши на ньому двічі, натиснути клавішу «Build». В наступному вікні вибрати «Microsoft Jet 4.0 OLE DB Provider» та натиснути «Далее». В наступному вікні вибрати шлях до створеної бази даних та натиснути «Ок». В властивостях компоненту LoginPrompt змінити на false.

База даних до Builder c++ 6 підключена, і повністю готова до роботи.

6. Висновок

На даній курсовій роботі було створено додаток «Medical© control», який працює зі створеною(генерованою) базою даних MDC.mdb(Медичний діагностичний центр).

Було створено окремі модулі для кожної таблиці, в яку можна додавати, видаляти через компоненти DBGrid та DBNavigator або ж через окремі модулі спеціального призначення (додавання та видалення даних). Було створено окремі модулі пошуку даних для кожної таблиці. Було створено модуль аутентифікації по паролю, для керованого доступу до додатку, та створено модуль зміни паролю, який зберігається в файлі(renew.bin). Також були реалізовані можливості друку звітів(даних) та їх перегляду, фільтрація даних, підрахування кількості записів в певній таблиці(відображаються в StatusBar). Були реалізовані підказки при наведенні на той чи інший компонент, які відображаються в StatusBar. Також реалізовані модулі «Довідка» та «Про нас». Через модуль «Квитанції», можна викликати модуль «Прибуток»(підрахування заробленої суми за день), результат якого відображаються StatusBar модуля «Квитанції» або ж у модулі «Прибуток».Модулі програми викликаються через головне меню програми або через панель швидкого доступу(ToolBar). Реалізовано вихід з програми через головне меню та панель швидкого доступу.

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

7. Список літератури

1. Зборівська В. П. «Методичні вказівки з курсу основи програмної інженерії».

2. Зборівська В. П. «Методичні вказівки з курсу інструментальні засоби візуального програмування».

3. Лаврищева К. М. «Програмна інженерія».

4. Синіцин С. В., Налютін Н. Ю. «Верифікація програмного забезпечення».

5. Канер Ким, Фолк Джек, Нгуєн Енг Кек «Тестування програмного забезпечення».

Додаток 1

- Управління базою даних «Медична діагностична клініка» MDC.mdb

- Автор Гребенюк Іван Андрійович

- Версія 1.0

- Програмування модулів (форм) алгоритмами

*/

//diagnozi_delete_zaput.cpp (daig_delete)

#include <vcl.h>

#pragma hdrstop

#include "diagnozi_delete_zaput.h"

#include "work_bd.h"

#pragma package(smart_init)

#pragma resource "*.dfm"

Tdiag_delete *diag_delete;

__fastcall Tdiag_delete::Tdiag_delete(TComponent* Owner) : TForm(Owner) { }

void __fastcall Tdiag_delete::Button1Click(TObject *Sender)

{ Memo1->Clear(); bd_work->diagnoziz->Active=false; AnsiString text[]={"DELETE FROM Діагнози",

" WHERE Діагнози.[Код діагнозу]=\""+Edit1->Text+"\"", " OR Діагнози.[Термін лікування]=\""+Edit3->Text+"\" OR",

"Діагнози.Термін=\""+Edit2->Text+"\""}; for(unsigned t=0; t<sizeof(text)/sizeof(int); t++) Memo1->Lines->Add(text[t]);

bd_work->diagnoziz->Close(); bd_work->diagnoziz->SQL->Clear(); bd_work->diagnoziz->SQL->Add(Memo1->Text);

bd_work->diagnoziz->ExecSQL(); AnsiString text2[]={"SELECT *", "FROM Діагнози;"}; Memo1->Clear();

for(unsigned t=0; t<sizeof(text2)/sizeof(int); t++) Memo1->Lines->Add(text2[t]); bd_work->diagnoziz->Close();

bd_work->diagnoziz->SQL->Clear(); bd_work->diagnoziz->SQL->Add(Memo1->Text); bd_work->diagnoziz->Open();

bd_work->diagnoziz->Active=true; bd_work->count_diagnozi->Active=false; bd_work->count_diagnozi->Active=true; }

void __fastcall Tdiag_delete::FormCreate(TObject *Sender) { Left = 387; Top = 523; }

void __fastcall Tdiag_delete::Edit3KeyPress(TObject *Sender, char &Key)

{ if(Key == VK_RETURN) Button1Click(Sender); }

// diagnozi_insert_zaput.cpp (diag_insert)

#include <vcl.h>

#pragma hdrstop

#include "diagnozi_insert_zaput.h"

#include "work_bd.h"

#pragma package(smart_init)

#pragma resource "*.dfm"

Tdiag_insert *diag_insert;

__fastcall Tdiag_insert::Tdiag_insert(TComponent* Owner) : TForm(Owner) { }

void __fastcall Tdiag_insert::Button1Click(TObject *Sender)

{ Memo1->Clear();

bd_work->diagnoziz->Active=false; AnsiString text[]={"INSERT INTO Діагнози([Код діагнозу], Термін,[Термін лікування])",

" VALUES ( \""+Edit1->Text+"\",\""+Edit2->Text+"\",\""+Edit3->Text+"\")"};

for(unsigned t=0; t<sizeof(text)/sizeof(int); t++) Memo1->Lines->Add(text[t]);

bd_work->diagnoziz->Close(); bd_work->diagnoziz->SQL->Clear(); bd_work->diagnoziz->SQL->Add(Memo1->Text);

bd_work->diagnoziz->ExecSQL(); AnsiString text2[]={"SELECT *", "FROM Діагнози;"}; Memo1->Clear();

for(unsigned t=0; t<sizeof(text2)/sizeof(int); t++) Memo1->Lines->Add(text2[t]); bd_work->diagnoziz->Close();

bd_work->diagnoziz->SQL->Clear(); bd_work->diagnoziz->SQL->Add(Memo1->Text); bd_work->diagnoziz->Open();

bd_work->diagnoziz->Active=true; bd_work->count_diagnozi->Active=false; bd_work->count_diagnozi->Active=true; }

void __fastcall Tdiag_insert::FormCreate(TObject *Sender) { Left = 387; Top = 523; }

void __fastcall Tdiag_insert::Button1KeyPress(TObject *Sender, char &Key) { if(Key == VK_RETURN) Button1Click(Sender); }

//diagnozi_search_zaput.cpp (diag_search)

#include <vcl.h>

#pragma hdrstop

#include "diagnozi_search_zaput.h"

#include "work_bd.h"

#pragma package(smart_init)

#pragma resource "*.dfm"

Tdiag_search *diag_search;

__fastcall Tdiag_search::Tdiag_search(TComponent* Owner) : TForm(Owner) { }

void __fastcall Tdiag_search::Button1Click(TObject *Sender)

{ if((RadioButton2->Checked==true)&&(bd_work->diagnoziz->Locate("Термін",Edit2->Text, TLocateOptions())))

{ShowMessage("Присутній!");}

if((RadioButton1->Checked==true)&&(bd_work->diagnoziz->Locate("Код діагнозу",Edit1->Text, TLocateOptions())))

{ShowMessage("Присутній!");}

if((RadioButton3->Checked==true)&&(bd_work->diagnoziz->Locate("Термін лікування",Edit3->Text, TLocateOptions())))

{ShowMessage("Присутній!");} }

void __fastcall Tdiag_search::Edit3KeyPress(TObject *Sender, char &Key) { if(Key==VK_RETURN) Button1Click(Sender); }

void __fastcall Tdiag_search::FormCreate(TObject *Sender) { Left = 387; Top = 523; }

//connect.cpp (Me)

#include <vcl.h>

#pragma hdrstop

#include "connect.h"

#pragma package(smart_init)

#pragma resource "*.dfm"

TMe *Me;

__fastcall TMe::TMe(TComponent* Owner) : TForm(Owner) { }

void __fastcall TMe::FormCreate(TObject *Sender) { Left = 522; Top = 274; }

//Helps.cpp (Help)

#include <vcl.h>

#pragma hdrstop

#include "Helps.h"

#pragma package(smart_init)

#pragma resource "*.dfm"

THelp *Help;

__fastcall THelp::THelp(TComponent* Owner) : TForm(Owner) { }

void __fastcall THelp::FormCreate(TObject *Sender) { Left = 460; Top = 178; }

void __fastcall THelp::FormActivate(TObject *Sender) { system("start Довідка.chm"); }

//work_bd.cpp (bd_work)

#include <vcl.h>

#pragma hdrstop

#include "work_bd.h"

#include "diagnozi.h"

#include "password.h"

#include "diagnozi_insert_zaput.h"

#include "diagnozi_delete_zaput.h"

#include "klienti.h"

#include "kvitanciji.h"

#include "likari.h"

#include "priparati.h"

#include "diagnozi_search_zaput.h"

#include "Helps.h"

#include "connect.h"

#include "klienti_insert_zaput.h"

#include "klienti_delete_zaput.h"

#include "klienti_search_zaput.h"

#include "kvitancii_suma_za_den_zaput.h"

#include "kvitancii_insert_zaput.h"

#include "kvitancii_delete_zaput.h"

#include "kvitancii_search_zaput.h"

#include "likari_insert_zaput.h"

#include "likari_delete_zaput.h"

#include "likari_search_zaput.h"

#include "priparati_insert_zaput.h"

#include "priparati_delete_zaput.h"

#include "priparati_search_zaput.h"

#include "DIAGNOZI_zvit.h"

#include "KLIENTI_zvit.h"

#include "KVITANCII_zvit.h"

#include "LIKARI_zvit.h"

#include "PRIPARATI_zvit.h"

#include "password_new.h"

#pragma package(smart_init)

#pragma resource "*.dfm"

Tbd_work *bd_work;

__fastcall Tbd_work::Tbd_work(TComponent* Owner) : TDataModule(Owner) { }

void __fastcall Tbd_work::table1Click(TObject *Sender) { diag_insert->Show(); }

void __fastcall Tbd_work::vidalit1Click(TObject *Sender) { diag_delete->Show(); }

void __fastcall Tbd_work::N2Click(TObject *Sender) { PasswordDlg->Close(); }

void __fastcall Tbd_work::N1Click(TObject *Sender) { diag_search->Show(); }

void __fastcall Tbd_work::N3Click(TObject *Sender) { Help->ShowModal(); }

void __fastcall Tbd_work::MeButtonClick(TObject *Sender) { Me->ShowModal(); }

void __fastcall Tbd_work::N20Click(TObject *Sender) { Help->ShowModal(); }

void __fastcall Tbd_work::N21Click(TObject *Sender) { Me->ShowModal(); }

void __fastcall Tbd_work::N22Click(TObject *Sender) { PasswordDlg->Close(); }

void __fastcall Tbd_work::N33Click(TObject *Sender) { Help->ShowModal(); }

void __fastcall Tbd_work::N34Click(TObject *Sender) { Me->ShowModal(); }

void __fastcall Tbd_work::N35Click(TObject *Sender) { PasswordDlg->Close(); }

void __fastcall Tbd_work::N46Click(TObject *Sender) { Help->ShowModal(); }

void __fastcall Tbd_work::N47Click(TObject *Sender) { Me->ShowModal(); }

void __fastcall Tbd_work::N48Click(TObject *Sender) { PasswordDlg->Close(); }

void __fastcall Tbd_work::N59Click(TObject *Sender) { Help->ShowModal(); }

void __fastcall Tbd_work::N60Click(TObject *Sender) { Me->ShowModal(); }

void __fastcall Tbd_work::N61Click(TObject *Sender) { PasswordDlg->Close();}

void __fastcall Tbd_work::N6Click(TObject *Sender) { Diagnoz->Visible=false; klient->Visible=true; }

void __fastcall Tbd_work::N56Click(TObject *Sender) { klient_insert->Show(); }

void __fastcall Tbd_work::N57Click(TObject *Sender) { klient_deletes->Show(); }

void __fastcall Tbd_work::N50Click(TObject *Sender) { klient->Visible=false; Diagnoz->Visible=true; }

void __fastcall Tbd_work::N58Click(TObject *Sender) { klient_search->Show(); }

void __fastcall Tbd_work::N8Click(TObject *Sender) { Diagnoz->Visible=false; kvitancii->Visible=true; }

void __fastcall Tbd_work::N62Click(TObject *Sender) { suma_za_den_form->Show(); }

void __fastcall Tbd_work::N17Click(TObject *Sender) { kvit_insert->Show(); }

void __fastcall Tbd_work::N18Click(TObject *Sender) { kvit_delete->Show(); }

void __fastcall Tbd_work::N19Click(TObject *Sender) { kvit_search->Show(); }

void __fastcall Tbd_work::N7Click(TObject *Sender) { likar->Visible=true; Diagnoz->Visible=false; }

void __fastcall Tbd_work::N43Click(TObject *Sender) { likar_insert->Show(); }

void __fastcall Tbd_work::N44Click(TObject *Sender) { likar_delete->Show(); }

void __fastcall Tbd_work::N45Click(TObject *Sender) { likar_search->Show(); }

void __fastcall Tbd_work::N30Click(TObject *Sender) { priparat_insert->Show(); }

void __fastcall Tbd_work::N31Click(TObject *Sender) { priparat_delete->Show(); }

void __fastcall Tbd_work::N9Click(TObject *Sender) { Diagnoz->Visible=false; Priparats->Visible=true; }

void __fastcall Tbd_work::N32Click(TObject *Sender) { priparat_search->Show(); }

void __fastcall Tbd_work::N11Click(TObject *Sender) { kvitancii->Visible=false; Diagnoz->Visible=true; }

void __fastcall Tbd_work::N24Click(TObject *Sender) { Priparats->Visible=false; Diagnoz->Visible=true; }

void __fastcall Tbd_work::N37Click(TObject *Sender) { likar->Visible=false; Diagnoz->Visible=true; }

void __fastcall Tbd_work::N12Click(TObject *Sender) { kvitancii->Visible=false; klient->Visible=true; }

void __fastcall Tbd_work::N25Click(TObject *Sender) { Priparats->Visible=false; klient->Visible=true; }

void __fastcall Tbd_work::N38Click(TObject *Sender) { likar->Visible=false; klient->Visible=true; }

void __fastcall Tbd_work::N27Click(TObject *Sender) { Priparats->Visible=false; kvitancii->Visible=true; }

void __fastcall Tbd_work::N40Click(TObject *Sender) { likar->Visible=false; kvitancii->Visible=true; }

void __fastcall Tbd_work::N53Click(TObject *Sender) { klient->Visible=false; kvitancii->Visible=true; }

void __fastcall Tbd_work::N15Click(TObject *Sender) { kvitancii->Visible=false; Priparats->Visible=true; }

void __fastcall Tbd_work::N41Click(TObject *Sender) { likar->Visible=false; Priparats->Visible=true; }

void __fastcall Tbd_work::N54Click(TObject *Sender) { klient->Visible=false; Priparats->Visible=true;}

void __fastcall Tbd_work::N5Click(TObject *Sender) { ZVIT_diagnozi->QuickRep1->Preview(); }

void __fastcall Tbd_work::N13Click(TObject *Sender) { kvitancii->Visible=false; likar->Visible=true; }

void __fastcall Tbd_work::N26Click(TObject *Sender) { Priparats->Visible=false; likar->Visible=true; }

void __fastcall Tbd_work::N52Click(TObject *Sender){ klient->Visible=false; likar->Visible=true; }

void __fastcall Tbd_work::N14Click(TObject *Sender) { ZVIT_kvitancii->QuickRep1->Preview(); }

void __fastcall Tbd_work::N28Click(TObject *Sender) { ZVIT_priparati->QuickRep1->Preview(); }

void __fastcall Tbd_work::N39Click(TObject *Sender) { ZVIT_likari->QuickRep1->Preview(); }

void __fastcall Tbd_work::N51Click(TObject *Sender) { ZVIT_klienti->QuickRep1->Preview(); }

void __fastcall Tbd_work::N63Click(TObject *Sender) { Pass_renew->ShowModal(); }

void __fastcall Tbd_work::N64Click(TObject *Sender) { bd_work->N63Click(Sender); }

void __fastcall Tbd_work::N110Click(TObject *Sender) { bd_work->N63Click(Sender); }

void __fastcall Tbd_work::N111Click(TObject *Sender) { bd_work->N63Click(Sender); }

void __fastcall Tbd_work::N112Click(TObject *Sender) { bd_work->N63Click(Sender); }

//diagnozi.cpp (Diagnoz)

#include <vcl.h>

#pragma hdrstop

#include "diagnozi.h"

#include "work_bd.h"

#pragma package(smart_init)

#pragma resource "*.dfm"

TDiagnoz *Diagnoz;

String atribute[] = {"Код діагнозу","Термін","Термін лікування"};

__fastcall TDiagnoz::TDiagnoz(TComponent* Owner) : TForm(Owner) { }

void __fastcall TDiagnoz::FormClose(TObject *Sender, TCloseAction &Action)

{ PasswordDlg->Close(); }

void __fastcall TDiagnoz::ComboBox1KeyPress(TObject *Sender, char &Key)

{ if(Key==Key)Key = 0x00; }

void __fastcall TDiagnoz::Button3Click(TObject *Sender) { Panel2->Visible=false; }

void __fastcall TDiagnoz::DBGrid1MouseMove(TObject *Sender, TShiftState Shift, int X, int Y)

{ bd_work->count_diagnozi->Active=false;

bd_work->count_diagnozi->Active=true; Diagnoz->StatusBar1->Panels->Items[1]->Text = DBText1->Caption; }

void __fastcall TDiagnoz::FormCanResize(TObject *Sender, int &NewWidth, int &NewHeight, bool &Resize)

{ Edit1->Width=Diagnoz->Width-260; }

void __fastcall TDiagnoz::Button1Click(TObject *Sender)

{ if((ComboBox1->Text=="Скинути фільтр")||(Edit1->Text=="")) bd_work->diagnoziz->Filtered = false;

else if((ComboBox1->Text=="Фільтр по \"Код діагнозу\"")&&(Edit1->Text!=""))

{ bd_work->diagnoziz->Filtered = false; bd_work->diagnoziz->Filter = "[Код діагнозу] like '"+Edit1->Text+"*'";

bd_work->diagnoziz->Filtered = true; }

else if((ComboBox1->Text=="Фільтр по \"Термін\"")&&(Edit1->Text!=""))

{ bd_work->diagnoziz->Filtered = false; bd_work->diagnoziz->Filter = "[Термін] like '"+Edit1->Text+"*'";

bd_work->diagnoziz->Filtered = true; }

else if((ComboBox1->Text=="Фільтр по \"Термін лікування\"")&&(Edit1->Text!=""))

{ bd_work->diagnoziz->Filtered = false;

bd_work->diagnoziz->Filter = "[Термін лікування] like '"+Edit1->Text+"*'"; bd_work->diagnoziz->Filtered = true; } }

void __fastcall TDiagnoz::ToolButton1Click(TObject *Sender) { bd_work->table1Click(Sender); }

void __fastcall TDiagnoz::ToolButton2Click(TObject *Sender) { bd_work->vidalit1Click(Sender); }

void __fastcall TDiagnoz::ToolButton4Click(TObject *Sender) { bd_work->N1Click(Sender); }

void __fastcall TDiagnoz::ToolButton6Click(TObject *Sender) { bd_work->N3Click(Sender); }

void __fastcall TDiagnoz::ToolButton8Click(TObject *Sender) { bd_work->MeButtonClick(Sender); }

void __fastcall TDiagnoz::ToolButton10Click(TObject *Sender) { bd_work->N2Click(Sender); }

void __fastcall TDiagnoz::ToolButton12Click(TObject *Sender) { bd_work->N5Click(Sender); }

void __fastcall TDiagnoz::FormCreate(TObject *Sender) { Left = 387; Top = 74; }

void __fastcall TDiagnoz::ToolButton13Click(TObject *Sender) { bd_work->N63Click(Sender); }

void __fastcall TDiagnoz::DBGrid1KeyPress(TObject *Sender, char &Key) { if(Key == VK_RETURN)Button1Click(Sender); }

//password_new.cpp (Pass_renew)

#include <vcl.h>

#pragma hdrstop

#include "password_new.h"

#include "password.h"

#include "diagnozi.h"

#include "klienti.h"

#include "kvitanciji.h"

#include "likari.h"

#include "priparati.h"

#include "work_bd.h"

#pragma package(smart_init)

#pragma resource "*.dfm"

TPass_renew *Pass_renew;

__fastcall TPass_renew::TPass_renew(TComponent* Owner) : TForm(Owner) { }

void __fastcall TPass_renew::FormCreate(TObject *Sender) { Left = 416; Top = 314; }

void __fastcall TPass_renew::FormClose(TObject *Sender, TCloseAction &Action)

{ if((Diagnoz->Visible == true)||(klient->Visible == true)|| (kvitancii->Visible == true)||(likar->Visible == true)||

(Priparats->Visible == true)) {Complete_pass->Text = ""; Old_pass->Text = "";New_pass->Text = "";Close();}

else PasswordDlg->Visible = true; Complete_pass->Text = "";New_pass->Text = "";Old_pass->Text = ""; }

void __fastcall TPass_renew::Button1Click(TObject *Sender)

{ bool turned = false; String mess1 = "Поля 'Введіть новий пароль' і ";

String mess2 = "'Повторіть новий пароль' повинні співпадати!"; Memo1->Clear();

Memo1->Lines->LoadFromFile("renew.bin"); String pass_file = Memo1->Text; if(Old_pass->Text==pass_file) {

if(New_pass->Text == Complete_pass->Text) { Memo1->Text = Complete_pass->Text; Memo1->Lines->SaveToFile("renew.bin");

turned = true; } else ShowMessage(mess1+mess2); } else ShowMessage("Невірний старий пароль!");

if(turned == true) { ShowMessage("Зміна пароля пройшла успішно!"); Visible = false; Close(); } }

void __fastcall TPass_renew::Old_passMouseMove(TObject *Sender,TShiftState Shift, int X, int Y)

{ Old_pass->Hint = Old_pass->Text; }

void __fastcall TPass_renew::New_passMouseMove(TObject *Sender, TShiftState Shift, int X, int Y)

{ New_pass->Hint = New_pass->Text; }

void __fastcall TPass_renew::Complete_passMouseMove(TObject *Sender, TShiftState Shift, int X, int Y)

{ Complete_pass->Hint = Complete_pass->Text; }

void __fastcall TPass_renew::Button1KeyPress(TObject *Sender, char &Key)

{ if(Key == VK_RETURN)Button1Click(Sender); }

//password.cpp (PasswordDlg)

#include <vcl.h>

#pragma hdrstop

#include "password.h"

#include "diagnozi.h"

#include "work_bd.h"

#include "password_new.h"

#include "fstream.h"

#pragma resource "*.dfm"

TPasswordDlg *PasswordDlg;

__fastcall TPasswordDlg::TPasswordDlg(TComponent* AOwner) : TForm(AOwner) { }

void __fastcall TPasswordDlg::OKBtnClick(TObject *Sender)

{ Memo1->Clear(); Memo1->Lines->LoadFromFile("renew.bin"); String pass_file = Memo1->Text;

if(pass_file != Password->Text) { ShowMessage("Невірний пароль!"); } else { PasswordDlg->Visible=false; Diagnoz->Show(); } }

void __fastcall TPasswordDlg::CancelBtnClick(TObject *Sender) { PasswordDlg->Close(); }

void __fastcall TPasswordDlg::FormCreate(TObject *Sender)

{ fstream file("renew.bin"); if(!file.is_open()) { ofstream sozdat("renew.bin"); sozdat.close(); } Left = 529; Top = 317; }

void __fastcall TPasswordDlg::SpeedButton1Click(TObject *Sender)

{ PasswordDlg->Visible = false; Pass_renew->Visible = true; }

//connect.cpp (Me)

#include <vcl.h>

#pragma hdrstop

#include "connect.h"

#include "work_bd.h"

#pragma package(smart_init)

#pragma resource "*.dfm"

TMe *Me;

__fastcall TMe::TMe(TComponent* Owner) : TForm(Owner) { }

void __fastcall TMe::FormCreate(TObject *Sender) { Left = 522; Top = 274; }

//kvitanciji.cpp (kvitancii)

#include <vcl.h>

#pragma hdrstop

#include "kvitanciji.h"

#include "work_bd.h"

#pragma package(smart_init)

#pragma resource "*.dfm"

Tkvit_delete *kvit_delete;

__fastcall Tkvit_delete::Tkvit_delete(TComponent* Owner) : TForm(Owner) { }

void __fastcall Tkvit_delete::Button1Click(TObject *Sender)

{ String ed1 = "[Код квитанції]=\""+Edit1->Text+"\" OR "; String ed2 = "[Код клієнта]=\""+Edit2->Text+"\" OR "; String ed3;

if(Edit3->Text != "") ed3 = "[Всього до оплати]="+Edit3->Text+" OR "; else Edit3->Text = "0";

String ed5 = "[Прізвище та ім'я клієнта]=\""+Edit5->Text+"\" OR "; String ed6 = "Діагноз=\""+Edit6->Text+"\" OR ";

String ed7 = "[Код препарату]=\""+Edit7->Text+"\""; String mainText = ed1+ed2+ed3+ed5+ed6+ed7;

Memo1->Clear(); bd_work->kvitanciiz->Active=false; AnsiString text[]={"DELETE FROM Квитанція where "+mainText+""};

for(unsigned t=0; t<sizeof(text)/sizeof(int); t++) Memo1->Lines->Add(text[t]); bd_work->kvitanciiz->Close();

bd_work->kvitanciiz->SQL->Clear(); bd_work->kvitanciiz->SQL->Add(Memo1->Text); bd_work->kvitanciiz->ExecSQL();

AnsiString text2[]={"SELECT *", "FROM Квитанція;"}; Memo1->Clear(); for(unsigned t=0; t<sizeof(text2)/sizeof(int); t++)

Memo1->Lines->Add(text2[t]); bd_work->kvitanciiz->Close(); bd_work->kvitanciiz->SQL->Clear();

bd_work->kvitanciiz->SQL->Add(Memo1->Text); bd_work->kvitanciiz->Open(); bd_work->kvitanciiz->Active=true; }

void __fastcall Tkvit_delete::FormCreate(TObject *Sender) { Left = 913; Top = 453; }

void __fastcall Tkvit_delete::Edit1KeyPress(TObject *Sender, char &Key) { if(Key == VK_RETURN)Button1Click(Sender); }

//kvitancii_delete_zaput.cpp (kvit_delete)

#include <vcl.h>

#pragma hdrstop

#include "kvitancii_delete_zaput.h"

#include "work_bd.h"

#pragma package(smart_init)

#pragma resource "*.dfm"

Tkvit_delete *kvit_delete;

__fastcall Tkvit_delete::Tkvit_delete(TComponent* Owner) : TForm(Owner) { }

void __fastcall Tkvit_delete::Button1Click(TObject *Sender)

{ String ed1 = "[Код квитанції]=\""+Edit1->Text+"\" OR "; String ed2 = "[Код клієнта]=\""+Edit2->Text+"\" OR ";

String ed3; if(Edit3->Text != "") ed3 = "[Всього до оплати]="+Edit3->Text+" OR ";

else Edit3->Text = "0"; String ed5 = "[Прізвище та ім'я клієнта]=\""+Edit5->Text+"\" OR ";

String ed6 = "Діагноз=\""+Edit6->Text+"\" OR "; String ed7 = "[Код препарату]=\""+Edit7->Text+"\"";

String mainText = ed1+ed2+ed3+ed5+ed6+ed7; Memo1->Clear(); bd_work->kvitanciiz->Active=false;

AnsiString text[]={"DELETE FROM Квитанція where "+mainText+""}; for(unsigned t=0; t<sizeof(text)/sizeof(int); t++)

Memo1->Lines->Add(text[t]); bd_work->kvitanciiz->Close(); bd_work->kvitanciiz->SQL->Clear();

bd_work->kvitanciiz->SQL->Add(Memo1->Text); bd_work->kvitanciiz->ExecSQL();

AnsiString text2[]={"SELECT *", "FROM Квитанція;"}; Memo1->Clear(); for(unsigned t=0; t<sizeof(text2)/sizeof(int); t++)

Memo1->Lines->Add(text2[t]); bd_work->kvitanciiz->Close(); bd_work->kvitanciiz->SQL->Clear();

bd_work->kvitanciiz->SQL->Add(Memo1->Text); bd_work->kvitanciiz->Open(); bd_work->kvitanciiz->Active=true; }

void __fastcall Tkvit_delete::FormCreate(TObject *Sender) { Left = 913; Top = 453; }

void __fastcall Tkvit_delete::Edit1KeyPress(TObject *Sender, char &Key) { if(Key == VK_RETURN)Button1Click(Sender); }

//kvitancii_insert_zaput.cpp (kvit_insert)

#include <vcl.h>

#pragma hdrstop

#include "kvitancii_insert_zaput.h"

#include "work_bd.h"

#pragma package(smart_init)

#pragma resource "*.dfm"

Tkvit_insert *kvit_insert;

__fastcall Tkvit_insert::Tkvit_insert(TComponent* Owner) : TForm(Owner) { }

void __fastcall Tkvit_insert::Button1Click(TObject *Sender)

{ String ed1 = "\""+Edit1->Text+"\","; String lcb1 = "\""+DBLookupComboBox2->Text+"\",";

String ed2 = "\""+Edit2->Text+"\","; String dtp1 = "\""+DateToStr(DateTimePicker1->Date)+"\",";

String ed3 = "\""+Edit3->Text+"\","; String lcb2 = "\""+DBLookupComboBox1->Text+"\",";

String lcb3 = "\""+DBLookupComboBox3->Text+"\""; String mainText = ed1+lcb1+ed2+dtp1+ed3+lcb2+lcb3;

Memo1->Clear(); bd_work->kvitanciiz->Active=false; AnsiString text[]={"INSERT INTO Квитанція([Код квитанції],[Код клієнта],",

"[Всього до оплати],[Дата видачі],[Прізвище та ім'я клієнта],Діагноз,[Код препарату])", " VALUES ("+mainText+")"};

for(unsigned t=0; t<sizeof(text)/sizeof(int); t++) Memo1->Lines->Add(text[t]); bd_work->kvitanciiz->Close();

bd_work->kvitanciiz->SQL->Clear(); bd_work->kvitanciiz->SQL->Add(Memo1->Text); bd_work->kvitanciiz->ExecSQL();

AnsiString text2[]={"SELECT *", "FROM Квитанція;"}; Memo1->Clear(); for(unsigned t=0; t<sizeof(text2)/sizeof(int); t++)

Memo1->Lines->Add(text2[t]); bd_work->kvitanciiz->Close(); bd_work->kvitanciiz->SQL->Clear();

bd_work->kvitanciiz->SQL->Add(Memo1->Text); bd_work->kvitanciiz->Open(); bd_work->kvitanciiz->Active=true; }

void __fastcall Tkvit_insert::FormCreate(TObject *Sender) { Left = 913; Top = 441; }

void __fastcall Tkvit_insert::Edit1KeyPress(TObject *Sender, char &Key) { if(Key == VK_RETURN)Button1Click(Sender); }

//kvitancii_search_zaput.cpp (kvit_search)

#include <vcl.h>

#pragma hdrstop

#include "kvitancii_search_zaput.h"

#include "work_bd.h"

#pragma package(smart_init)

#pragma resource "*.dfm"

Tkvit_search *kvit_search;

__fastcall Tkvit_search::Tkvit_search(TComponent* Owner) : TForm(Owner) { }

void __fastcall Tkvit_search::Button1Click(TObject *Sender)

{ if((RadioButton1->Checked==true)&&(bd_work->kvitanciiz->Locate("Код квитанції",Edit1->Text, TLocateOptions())))

{ShowMessage("Присутній!");}

if((RadioButton2->Checked==true)&&(bd_work->kvitanciiz->Locate("Код клієнта",Edit2->Text, TLocateOptions())))

{ShowMessage("Присутній!");}

if((RadioButton3->Checked==true)&&(bd_work->kvitanciiz->Locate("Всього до оплати",Edit3->Text, TLocateOptions())))

{ShowMessage("Присутній!");}

if((RadioButton4->Checked==true)&&(bd_work->kvitanciiz->Locate("Прізвище та ім'я клієнта",Edit4->Text, TLocateOptions())))

{ShowMessage("Присутній!");}

if((RadioButton5->Checked==true)&&(bd_work->kvitanciiz->Locate("Діагноз",Edit5->Text, TLocateOptions())))

{ShowMessage("Присутній!");}

if((RadioButton6->Checked==true)&&(bd_work->kvitanciiz->Locate("Код препарату",Edit6->Text, TLocateOptions())))

{ShowMessage("Присутній!");} }

void __fastcall Tkvit_search::FormCreate(TObject *Sender) { Left = 913; Top = 441; }

void __fastcall Tkvit_search::RadioButton1KeyPress(TObject *Sender, char &Key) {if(Key==VK_RETURN)Button1Click(Sender); }

//kvitancii_suma_za_den_zaput.cpp (suma_za_den_form)

#include <vcl.h>

#pragma hdrstop

#include "kvitancii_suma_za_den_zaput.h"

#include "work_bd.h"

#pragma package(smart_init)

#pragma resource "*.dfm"

Tsuma_za_den_form *suma_za_den_form;

__fastcall Tsuma_za_den_form::Tsuma_za_den_form(TComponent* Owner) : TForm(Owner) { }

void proverka()

{ if(suma_za_den_form->DBText1->Caption == "") {String none = "0"; suma_za_den_form->DBText1->Caption = none;}}

void __fastcall Tsuma_za_den_form::Button1Click(TObject *Sender)

{ String date = DateToStr(MonthCalendar1->Date); date = StringReplace(date,".","/",TReplaceFlags()<<rfReplaceAll);

char *d = date.c_str(); char first_2_day[5]; first_2_day[0] = d[0];first_2_day[1] = d[1];

char month[5]; month[0] = d[3];month[1] = d[4]; d[0] = month[0];d[1] = month[1]; d[3] = first_2_day[0];d[4] = first_2_day[1];

char d1[100]; for(int i=0;i<10;i++) { d1[i] = d[i]; } Edit1->Text = d1; Memo1->Clear();

bd_work->suma_za_den->Active=false; String sum = "SELECT SUM(Квитанція.[Всього до оплати]) FROM Квитанція";

AnsiString text= sum+" WHERE Квитанція.[Дата видачі]=#"+Edit1->Text+"#";

Memo1->Lines->Add(text); bd_work->suma_za_den->SQL->Clear();

bd_work->suma_za_den->SQL->Add(Memo1->Text); bd_work->suma_za_den->ExecSQL();

bd_work->suma_za_den->Active=true; suma_za_den_form->Height = 281; proverka(); }

void __fastcall Tsuma_za_den_form::FormCreate(TObject *Sender) { Left = 1168; Top = 450;suma_za_den_form->Height=257; }

void __fastcall Tsuma_za_den_form::MonthCalendar1KeyPress(TObject *Sender, char &Key)

{ if(Key == VK_RETURN)Button1Click(Sender); }

//klienti.cpp (klienti)

#include <vcl.h>

#pragma hdrstop

#include "klienti.h"

#include "work_bd.h"

#pragma package(smart_init)

#pragma resource "*.dfm"

Tklient *klient;

__fastcall Tklient::Tklient(TComponent* Owner) : TForm(Owner) { }

void __fastcall Tklient::FormCanResize(TObject *Sender, int &NewWidth, int &NewHeight, bool &Resize)

{ Edit1->Width=klient->Width-260; }

void __fastcall Tklient::FormCreate(TObject *Sender)

{ Edit1->Width=klient->Width-260; Left = 237; Top = 116; }

void __fastcall Tklient::FormClose(TObject *Sender, TCloseAction &Action) { PasswordDlg->Close(); }

void __fastcall Tklient::Button1Click(TObject *Sender)

{ if((ComboBox1->Text=="Скинути фільтр")||(Edit1->Text=="")) bd_work->klientiz->Filtered = false;

else if((ComboBox1->Text=="Фільтр по \"Код клієнта\"")&&(Edit1->Text!=""))

{ bd_work->klientiz->Filtered = false; bd_work->klientiz->Filter = "[Код клієнта] like '"+Edit1->Text+"*'";

bd_work->klientiz->Filtered = true; }

else if((ComboBox1->Text=="Фільтр по \"Діагноз\"")&&(Edit1->Text!=""))

{ bd_work->klientiz->Filtered = false; bd_work->klientiz->Filter = "[Діагноз клієнта] like '"+Edit1->Text+"*'";

bd_work->klientiz->Filtered = true; }

else if((ComboBox1->Text=="Фільтр по \"Код лікаря\"")&&(Edit1->Text!=""))

{ bd_work->klientiz->Filtered = false; bd_work->klientiz->Filter = "[Код лікаря] like '"+Edit1->Text+"*'";

bd_work->klientiz->Filtered = true; }

else if((ComboBox1->Text=="Фільтр по \"Прізвище та ім'я\"")&&(Edit1->Text!=""))

{ bd_work->klientiz->Filtered = false;

bd_work->klientiz->Filter = "[Прізвище та ім'я] like '"+Edit1->Text+"*'"; bd_work->klientiz->Filtered = true; }

else if((ComboBox1->Text=="Фільтр по \"Код паспорту\"")&&(Edit1->Text!="")) { bd_work->klientiz->Filtered = false;

bd_work->klientiz->Filter = "[Код паспорту] like '"+Edit1->Text+"*'"; bd_work->klientiz->Filtered = true; }

else if((ComboBox1->Text=="Фільтр по \"Телефонний номер\"")&&(Edit1->Text!="")) { bd_work->klientiz->Filtered = false;

bd_work->klientiz->Filter = "[Телефонний номер] like '"+Edit1->Text+"*'"; bd_work->klientiz->Filtered = true; }

else if((ComboBox1->Text=="Фільтр по \"Місто проживання\"")&&(Edit1->Text!=""))

{ bd_work->klientiz->Filtered = false; bd_work->klientiz->Filter = "[Місто проживання] like '"+Edit1->Text+"*'";

bd_work->klientiz->Filtered = true; } }

void __fastcall Tklient::DBGrid1MouseMove(TObject *Sender, TShiftState Shift, int X, int Y)

{ bd_work->count_klients->Active=false;

bd_work->count_klients->Active=true; klient->StatusBar1->Panels->Items[1]->Text = DBText1->Caption; }

void __fastcall Tklient::ToolButton1Click(TObject *Sender) { bd_work->N56Click(Sender); }

void __fastcall Tklient::ToolButton2Click(TObject *Sender) { bd_work->N57Click(Sender); }

void __fastcall Tklient::ToolButton4Click(TObject *Sender) { bd_work->N58Click(Sender); }

void __fastcall Tklient::ToolButton6Click(TObject *Sender) { bd_work->N59Click(Sender); }

void __fastcall Tklient::ToolButton8Click(TObject *Sender) { bd_work->N60Click(Sender); }

void __fastcall Tklient::ToolButton10Click(TObject *Sender) { bd_work->N61Click(Sender); }

void __fastcall Tklient::ToolButton12Click(TObject *Sender) { bd_work->N51Click(Sender); }

void __fastcall Tklient::ToolButton14Click(TObject *Sender) { bd_work->N63Click(Sender); }

void __fastcall Tklient::DBGrid1KeyPress(TObject *Sender, char &Key) { if(Key == VK_RETURN)Button1Click(Sender); }

//klienti_delete_zaput.cpp (klient_deletes)

#include <vcl.h>

#pragma hdrstop

#include "klienti_delete_zaput.h"

#include "work_bd.h"

#pragma package(smart_init)

#pragma resource "*.dfm"

Tklient_deletes *klient_deletes;

__fastcall Tklient_deletes::Tklient_deletes(TComponent* Owner) : TForm(Owner) { }

void __fastcall Tklient_deletes::Button1Click(TObject *Sender)

{ String ed1 = "[Код клієнта] = \""+Edit1->Text+"\" OR "; String ed2 = "[Діагноз клієнта] = \""+Edit2->Text+"\" OR ";

String ed3 = "[Код лікаря] = \""+Edit3->Text+"\" OR "; String ed4 = "[Прізвище та ім'я] = \""+Edit4->Text+"\" OR ";

String ed5 = "[Код паспорту] = \""+Edit5->Text+"\" OR "; String ed6 = "[Телефонний номер] = \""+Edit6->Text+"\" OR ";

String ed7 = "[Місто проживання] = \""+Edit7->Text+"\""; String mainText = ed1+ed2+ed3+ed4+ed5+ed6+ed7;

Memo1->Clear(); bd_work->klientiz->Active=false; AnsiString text[]={"DELETE FROM Клієнти ",

"WHERE "+mainText+";"}; for(unsigned t=0; t<sizeof(text)/sizeof(int); t++) Memo1->Lines->Add(text[t]);

bd_work->klientiz->Close(); bd_work->klientiz->SQL->Clear(); bd_work->klientiz->SQL->Add(Memo1->Text);

bd_work->klientiz->ExecSQL(); AnsiString text2[]={"SELECT *", "FROM Клієнти;"}; Memo1->Clear();

for(unsigned t=0; t<sizeof(text2)/sizeof(int); t++) Memo1->Lines->Add(text2[t]); bd_work->klientiz->Close();

bd_work->klientiz->SQL->Clear(); bd_work->klientiz->SQL->Add(Memo1->Text); bd_work->klientiz->Open();

bd_work->klientiz->Active=true; bd_work->count_klients->Active=false; bd_work->count_klients->Active=true; }

void __fastcall Tklient_deletes::FormCreate(TObject *Sender) { Left = 913; Top = 453; }

void __fastcall Tklient_deletes::Edit1KeyPress(TObject *Sender, char &Key) { if(Key == VK_RETURN)Button1Click(Sender); }

//klienti_insert_zaput.cpp (klient_insert)

#include <vcl.h>

#pragma hdrstop

#include "klienti_insert_zaput.h"

#include "work_bd.h"

#pragma package(smart_init)

#pragma resource "*.dfm"

Tklient_insert *klient_insert;

__fastcall Tklient_insert::Tklient_insert(TComponent* Owner) : TForm(Owner) { }

void __fastcall Tklient_insert::Button1Click(TObject *Sender)

{ String ed1 = "\""+Edit1->Text+"\","; String lcb1 = "\""+DBLookupComboBox1->Text+"\",";

String lcb2 = "\""+DBLookupComboBox2->Text+"\","; String ed4 = "\""+Edit4->Text+"\",";

String ed5 = "\""+Edit5->Text+"\","; String ed6 = "\""+Edit6->Text+"\","; String ed7 = "\""+Edit7->Text+"\"";

String mainText = ed1+lcb1+lcb2+ed4+ed5+ed6+ed7; Memo1->Clear();

bd_work->klientiz->Active=false; AnsiString text[]={"INSERT INTO Клієнти([Код клієнта],[Діагноз клієнта],",

"[Код лікаря],[Прізвище та ім'я],[Код паспорту],", "[Телефонний номер],[Місто проживання])"," VALUES ("+mainText+")"};

for(unsigned t=0; t<sizeof(text)/sizeof(int); t++) Memo1->Lines->Add(text[t]); bd_work->klientiz->Close();

bd_work->klientiz->SQL->Clear(); bd_work->klientiz->SQL->Add(Memo1->Text); bd_work->klientiz->ExecSQL();

AnsiString text2[]={"SELECT *", "FROM Клієнти;"}; Memo1->Clear();

for(unsigned t=0; t<sizeof(text2)/sizeof(int); t++) Memo1->Lines->Add(text2[t]); bd_work->klientiz->Close();

bd_work->klientiz->SQL->Clear(); bd_work->klientiz->SQL->Add(Memo1->Text); bd_work->klientiz->Open();

...

Подобные документы

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

    дипломная работа [1,8 M], добавлен 21.02.2015

  • Проблеми розробки компонентного програмного забезпечення автоматизованих систем управління. Сучасні компонентні технології обробки інформації. Аналіз вибраного середовища проектування програмного забезпечення: мова програмування PHP та Apache HTTP-сервер.

    дипломная работа [2,8 M], добавлен 11.05.2012

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

    курсовая работа [343,9 K], добавлен 24.08.2012

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

    контрольная работа [37,6 K], добавлен 10.09.2009

  • Тенденції розвитку інформаційних технологій, зростання складності інформаційних систем, створюваних у різних галузях. Засоби, що реалізують CASE-технологію створення і супроводу інформаційних систем. Автоматизація розробки програмного забезпечення.

    реферат [21,5 K], добавлен 21.03.2011

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

    курсовая работа [41,7 K], добавлен 14.11.2010

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

    курсовая работа [184,5 K], добавлен 05.07.2015

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

    курсовая работа [1,3 M], добавлен 20.11.2010

  • Проектування і реалізація навчального програмного продукту "Побудова геометричних фігур". Використання C++ Builder 6 у якості програмного середовища для реалізації даної навчальної програми. Інструкція з використання розробленого програмного забезпечення.

    курсовая работа [2,2 M], добавлен 05.05.2014

  • Аналіз предметної області, опис проекту бази даних, моделей майбутнього програмного забезпечення гри для персонального комп'ютера "Міста". Функціональні можливості програмного забезпечення, які необхідно реалізувати. Інтерфейс програмного забезпечення.

    курсовая работа [2,3 M], добавлен 02.06.2016

  • Вибір методів та засобів створення інформаційної системи для обліку і перегляду продукції на складі. Розробка моделі даних для реляційної бази даних, прикладного програмного забезпечення. Тестування програмного додатку, виявлення можливих проблем.

    курсовая работа [1,1 M], добавлен 22.09.2015

  • Тривимірна модель мобільного робота. Алгоритмізація моделі та її програмної реалізації з використанням бібліотек MFC та OpenGL. Розробка програмного забезпечення. Середовище розробки проекту Microsoft Visual Studio 2010. Керування рухами маніпулятора.

    курсовая работа [462,9 K], добавлен 03.04.2014

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

    дипломная работа [2,5 M], добавлен 26.10.2012

  • Проблеми процесу тестування програмного забезпечення. Розробка алгоритму автоматичної генерації тестів і тестового набору для ручного виконання. Побудова тестів для системи "Банкомат" і для баг-трекінгової системи, представленої графом із циклами.

    дипломная работа [1,2 M], добавлен 26.02.2014

  • Аналіз методів емпіричної інженерії програмного забезпечення. Призначення та властивості програмного забезпечення та метрик проектів Openproj-1.4-src, TalendOpen Studio 3.2.1 та Рlazma-source 0.1.8, їх статистичний, кореляційний та регресійний аналіз.

    курсовая работа [2,7 M], добавлен 12.12.2010

  • Тестування програмного забезпечення як процес його дослідження для отримання інформації про якість. Автоматизація тестування програми Join It - Jigsaw Puzzle. Методика тестування, структура пакету та його модулів. Вимоги до програмного забезпечення.

    дипломная работа [2,4 M], добавлен 24.07.2013

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

    контрольная работа [32,4 K], добавлен 12.04.2010

  • Основні завдання синоптичної метеорології. Призначення та область застосування програмного продукту "Статистика метеоспостережень", функціональні вимоги до нього. Інформаційне забезпечення, структура, опис інтерфейсу. Тестування програмного продукту.

    курсовая работа [3,6 M], добавлен 30.04.2016

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

    реферат [128,2 K], добавлен 20.06.2015

  • Огляд існуючого програмного забезпечення для управління дистанційним навчанням. Структура системи дистанційного навчання Moodle, її встановлення та налаштування. Розрахунок експлуатаційних витрат і показників економічного ефекту від розробки проекту.

    дипломная работа [2,1 M], добавлен 16.02.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.