- •Опис предметної області
- •Постановка задачі
- •3. Проектування бази даних
- •3.1. Побудова er-діаграми
- •3.2. Побудова схеми реляційної бази даних у третій нормальній формі
- •4. Опис програми
- •4.1. Загальні відомості
- •Виклик і завантаження
- •Призначення і логічна структура
- •Описання фізичної моделі бази даних
- •Опис програмної реалізації
- •Описання задачі автоматизації
- •Висновки
- •Додатки
- •Текст програмного модуля menu1.Mpr
Описання фізичної моделі бази даних
На рисунку 4.4.1. приведено вигляд бази даних проекту. Вона є контейнером для своїх складових – таблиць та локальних представлень.
Рисунок 4.4.1.
На рисунках 4.4.2-4.4.7. приведено структури окремих таблиць бази даних.
Рисунок 4.4.2.
Рисунок 4.4.3.
Рисунок 4.4.4
Рисунок 4.4.5
Рисунок 4.4.6
Опис програмної реалізації
Представимо інтерфейс користувача для кожної з функцій програми. Функції загального управління відповідає форма, представлена на рисунку 4.5.1.
Рисунок 4.5.1.
Ця форма оголошена як форма найвищого рівня (TOP-LEVEL) і через обробник події InitEvent з’єднана з попередньо підготованим і згенерованим файлом меню menu1.mpr лістинг програми якої подано в додатку № 2.
DO menu1.mpr WITH THIS,.T.
На рисунках 4.5.2-4.5.6 приведені форми, які реалізують функції ведення даних в окремих таблицях.
Рисунок 4.5.2.
Рисунок 4.5.3.
Рисунок 4.5.4.
Рисунок 4.5.5.
Рисунок 4.5.6.
Управляючі форми всіх цих форм окремі як окремі класи, тексти обробників приведені в додатку. особливо цікавими з точки зору програмної реалізації є функції пошуку записів, які реалізовані через обробники InterActiveChangeEvent текстового поля. Текст одного з них приведений нижче.
loca for (dabon.pip)=trim(thisform.text2.text)
kab=dabon.kabon
loca for trim(vydach.invent)=trim(thisform.text1.text).and.trim(vydach.kabon)=kab
thisform.refresh
Спроектована також подія InterActiveChangeEvent поля редагування «Ознака повернення»
sele ddysk
loca for ddysk.invent=vydach.invent
repl ddysk.ovydach with .not.(vydach.oznpov)
sele vydach
В залежності від значення цього поля змінюється значення поля «Ознака видачі» таблиці відеодисків.
Операція видалення помічених записів використовується форма fpack, вигляд якої приведено на рисунку 4.5.7.
Рисунок 4.5.7
Головна операція цієї форми зв’язана з обробником події Click кнопки Видалення. Нижче приведено текст цієї процедури.
if messagebox('Всі помічені засоби будуть видалені',4+32,'Видалення')=6
sele dgrup
pack
sele ddysk
pack
sele dgabon
pack
sele dabon
pack
sele vydach
pack
messagebox('Упаковка закінчена')
else
messagebox('Упаковка відмінена')
endif
До складу проекту входить ряд запитів (локальних представлень), на базі яких будуються звіти. Далі приведені SQL-інструкції використовуваних запитів.
SELECT Ddysk.kgrd, Dgrup.nazvagr, Ddysk.invent, Ddysk.nazva,;
Ddysk.datanadh;
FROM data1!ddysk INNER JOIN data1!dgrup ;
ON Ddysk.kgrd = Dgrup.kgrd;
ORDER BY Ddysk.kgrd, Ddysk.invent
SELECT Vydach.invent, COUNT(Vydach.invent) AS kil;
FROM data1!vydach;
GROUP BY Vydach.invent
SELECT Zvit2_1.invent, Ddysk.nazva, Zvit2_1.kil;
FROM data1!zvit2_1 INNER JOIN data1!ddysk ;
ON Zvit2_1.invent = Ddysk.invent;
ORDER BY Zvit2_1.kil DESC
SELECT Vydach.invent, Vydach.datavyd, Vydach.kabon;
FROM data1!vydach;
WHERE Vydach.oznpov = .F.
SELECT Zv3_1.invent, Ddysk.nazva, Zv3_1.datavyd, Zv3_1.kabon;
FROM data1!zv3_1 INNER JOIN data1!ddysk ;
ON Zv3_1.invent = Ddysk.invent
SELECT Zv3_2.*, Dabon.pip, Dabon.adresa;
FROM data1!zv3_2 INNER JOIN data1!dabon ;
ON Zv3_2.kabon = Dabon.kabon;
ORDER BY Zv3_2.invent