Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1071 Курсова заочников.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
10 Мб
Скачать
☆

5.1 Завдання на курсову роботу:

Форми:

        1. Для кожної таблиці прості форми;

        2. Створити форму з підпорядкованою формою:

  • в головній формі повинна бути інформація про лікарів;

  • в підпорядкованій формі для кожного лікаря навести список його пацієнтів з вартістю лікування та сумою до сплати.

За допомогою Конструктора форм створити в формі текстові поля, в яких підрахувати для кожного лікаря загальну суму лікування, суму до сплати, премію лікаря. Лікарі отримують такі премії за проведене лікування: 15% від суми до 300гр, 10% - до 1000гр, 5% - вище 1000гр.

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

Система повинна мати такі форми, створені за допомогою конструктора:

“Введення даних про лікування” з такими елементами керування:

  • текстове поле для виведення поточної дати;

  • текстове поле для введення коду пацієнта;

  • командну кнопку “Пошук”, з якою зв'язана процедура пошуку інформації про пацієнта та виведення її в вільні текстові поля (прізвище, ім’я та по батькові, дата народження, стать, категорія пацієнта);

  • список, що розкривається, з якого необхідно вибрати вид роботи для лікування;

  • список, що розкривається, з якого необхідно вибрати лікаря;

  • текстове поле, що показує вартість лікування;

  • командну кнопку “Записати лікування”, з якою зв'язана процедура, що додає новий запис до таблиці лікування, потім очищує три останніх елемента керування що дозволяє зробити декілька записів про декілька видів робіт з лікування одного пацієнта;

  • командну кнопку “Підрахувати загальну вартість”, що викликає форму “Вартість лікування”.

“Вартість лікування” з такими елементами керування:

  • текстове поле, в якому виводиться код пацієнта;

  • текстове поле, в якому виводиться дата реєстрації;

  • текстові поля, в які виводиться інформація про пацієнта: прізвище, ім’я та по батькові, дата народження, стать, категорія, адреса;

  • список, в якому наведені всі види робот з їх вартістю;

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

  • командна кнопка з написом “Квитанція” для виклику програми, що виводить на печать квитанцію до сплати вартості лікування.

  • Звіти:

  • для кожного лікаря загальну суму, що сплачена пацієнтами, щомісячно за рік з підрахунком відсоткового входження до загальної суми;

  • загальна сума премій для кожного лікаря за поточний рік.

    1. Пояснення до курсової роботи

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

С хема даних з встановленими зв’язками поміж таблицями наведені на рис. 5.1

Рисунок 5.1 - Схема даних

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

Рисунок 5.2 - Проста форма для таблиці Лікарі

Рисунок 5.3 - Форма стрічкового типу для запиту Список лікування

В цій формі в області примітка форми в режимі конструктора створено два обчислювальних поля, перше сумує дані з поля Вартість та має ім’я Загальна вартість, друге обчислює премію лікарям, його ім’я не змінювалось, воно встановлено Access – Поле12. На рис.5.4 наведено екран Access, на якому можна побачити такі вікна: вікно конструктора форм для форми Список лікування, в цьому вікні активним є обчислювальне текстове поле Поле12; вікно властивостей активного елемента управління та вікно “Построитель выражений”, в якому можна побачити формулу, за якою обчислюється премія лікарям. Властивості “Данные” полів Загальна вартість та Поле12 мають відповідно такі значення: =sum([Вартість])

=IIf([Загальна вартість]<300;[Загальна вартість] *0,15; IIf([Загальна вартість]<1000;[Загальна вартість]*0,1; [Загальна вартість]*0,05)).

Властивість “Поле номера записи” має значення “Ні”, тому знизу форми не показується елемент з кнопками, що змінюють активний запис.

Р исунок 5.4 - Стрічкова форма в режимі конструктора.

Ця форма використовується як підпорядкована в головній формі Лікарі1. Обидві ці форми створюються Майстром форм, потім поля, що обчислюються додаються в режимі конструктора. На рис.5.5 наведено в режимі конструктора форма з підпорядкованою. Для підпорядкованої форми бачимо тільки відведене місце. Щоб побачити саму підпорядковану форму треба її відчиняти в режимі конструктора.

Р исунок 5.5 - Головна форма, що показує дані про лікарів та їх роботу

В цю форму в режимі конструктора додано напис “Робота лікарів”, розташовано напис в області “Заголовок формы”. В робочому режимі вигляд форми Лікарі1 з підпорядкованою формою наведено на рис. 5.6.

Рисунок 5.6 - Форма Лікарі1 з підпорядкованою в роботі

Форму “Введення даних про лікування “ цілком створюємо в режимі конструктора (рис.5.7). В формі розташовані такі елементи управління:

  • текстове поле для вводу коду пацієнта, цьому полю надано ім’я kod;

  • текстове поле для виведення в нього прізвища пацієнта, цьому полю надано ім’я name;

  • текстове поле для виведення в нього дати народження пацієнта, цьому полю надано ім’я dnar;

  • текстове поле для виведення в нього адреси пацієнта, цьому полю надано ім’я adres;

  • текстове поле для виведення в нього статі пацієнта, цьому полю надано ім’я stat;

Р исунок 5.7 - Форма “Введення даних про лікування” в режимі конструктора

  • текстове поле для виведення в нього категорії пацієнта, цьому полю надано ім’я kat;

  • список, що розкривається, з якого користувач може обрати вид лікування пацієнта; цей елемент управління створено за допомогою майстра, він бере дані з таблиці Тарифи, перший стовпчик цієї таблиці не показується але саме його значення запам’ятовуються в властивості Value при обранні якого-небудь запису; цей елемент має ім’я robota; у властивість Данные майстром, що будував цей елемент управління, записано запит:

SELECT Тарифи.[Код роботи], Тарифи.Процедура,

Тарифи.[Ступень важкості] FROM Тарифи;

  • список, що розкривається, з якого користувач може обрати лікаря; цей елемент також створено за допомогою майстра, показує дані з таблиці Лікарі, та має ім’я likar;у властивість Данные майстром, що будував цей елемент управління, записано запит:

SELECT Лікарі.[Код лікаря],Лікарі.Прізвище FROM Лікарі;

  • поле, в якому виводиться вартість лікувальної процедури для обраного пацієнта;

  • командна кнопка, на якій розташовано бінокль; з цією кнопкою пов’язана процедура, що за кодом пацієнта розшукує запис про нього в таблиці Пацієнти та виводить в текстові поля форми ці дані; ця кнопка має ім’я Кнопка1;

  • командна кнопка, на якій розташовано напис Записати; з цією кнопкою пов’язана процедура, що записує дані про лікування в таблицю Лікування, додаючи новий запис; ця кнопка має ім’я Кнопка2;

  • командна кнопка, на якій розташовано напис “Підрахувати загальну вартість лікування”, має ім’я Кнопка3 та викликає нову форму, що виводить дані про введене лікування та підраховує його загальну вартість.

Процедури, що пов’язані з формою:

Option Compare Database

Dim rstpacient As Recordset, kp As String,v As Currency

Dim rstlik As Recordset, rsttarif As Recordset

Dim kr As String, klic As String

Private Sub likar_Click()

Кнопка2.SetFocus

End Sub

Private Sub robota_Click()

On Error Resume Next

robota.SetFocus

kr = robota.Value

MsgBox kr

Set rsttarif = CurrentDb.OpenRecordset("Тарифи", dbOpenDynaset)

rsttarif.FindFirst "[Код роботи]='" & kr & "'"

v = rsttarif![Вартість]

vrt.SetFocus

vrt.Text = v

End Sub

Private Sub Кнопка1_Click()

Set rstpacient = CurrentDb.OpenRecordset("Пацієнти", dbOpenDynaset)

kod.SetFocus

kp = kod.Text

rstpacient.FindFirst "[Код пацієнта]='" & kp & "'"

If rstpacient.NoMatch Then

MsgBox "Введено помилковий код пацієнта!"

kod.SetFocus

Exit Sub

End If

prizv.SetFocus

prizv.Text = rstpacient![Прізвище]

adres.SetFocus

adres.Text = rstpacient![Адреса]

dnar.SetFocus

dnar.Text = rstpacient![Дата народження]

stat.SetFocus

stat.Text = rstpacient![Стать]

kat.SetFocus

kat.Text = rstpacient![Категорія]

End Sub

Private Sub Кнопка2_Click()

Set rstlik = CurrentDb.OpenRecordset("Лікування",_

dbOpenDynaset)

likar.SetFocus

klic = likar.Value

rstlik.AddNew

rstlik![Код пацієнта] = kp

rstlik![Код роботи] = kr

rstlik![Код лікаря] = klic

rstlik![Дата лікування] = Date

rstlik.Update

Кнопка3.SetFocus

End Sub

Private Sub Кнопка3_Click()