Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти і науки України
Національний універстет „Львівська політехніка”
ЗВІТ
про лабораторну роботу №3
з курсу „Операційні системи і бази даних”
Тема: Форматований ввід та вивід даних засобами Visual Foxpro
Варіант 10
ЗАВДАННЯ
Ознайомитися із засобами Visual FoxPro створення та використання екранних форм.
Визначити таблиці БД, необхідні для створення екранної форми (таблиця 1).
Визначити структуру зв'язків між таблицями для вводу даних з допомогою екранної форми.
Розробити екранну форму для вводу даних.
Написати і відлагодити фрагменти програми (процедури) для виконання заданого вводу з допомогою створених екранних форм.
Виконати розроблені фрагменти програми (процедури). Результати виконання занести в звіт.
Предметна область:
Облік приладів в науково-дослідному центрі
Завдання:
Ввід даних про новий прилад та його виробника.
СТРУКТУРА СЕРЕДОВИЩА ДЛЯ РЕАЛІЗАЦІЇ ВВОДУ ДАНИХ
Пояснення: для внесення інформації про новий прилад потрібно ввести дані в усі активні поля і натиснути кнопку „Ввести”. Якщо інформація про виробника даного приладу існує в базі даних, тоді вибираємо його назву з компонента Combo. Якщо ж бажаємо ввести інформацію про нового виробника, натискаємо кнопку „Новий виробник” і поля для вводу даних про виробника, що знаходяться нижче стають активними, а Combo „Виробник” навпаки.
ТЕКСТ ПРОГРАМИ
При натисненні на кнопку „Новий виробник”:
IF thisform.Command3.caption = "Новий виробник" THEN
thisform.Text5.enabled = .T.
thisform.Text6.enabled = .T.
thisform.Text7.enabled = .T.
thisform.Combo1.enabled = .F.
thisform.Command3.caption = "Існуючий виробник"
ELSE
thisform.Text5.enabled = .F.
thisform.Text6.enabled = .F.
thisform.Text7.enabled = .F.
thisform.Combo1.enabled = .T.
thisform.Command3.caption = "Новий виробник"
ENDIF
При натисненні на кнопку „Відмінити”:
thisform.release
При натисненні на кнопку „Ввести”:
SELECT prylad
SCATTER FIELDS invent_nomer MEMVAR
FOR i=1 TO RecCount() STEP 1
IF invent_nomer = thisform.Spinner1.value THEN
MessageBox("Прилад з таким інвентарним номером вже існує!")
ZapysPryladu = .F.
EXIT
ELSE
IF i = RecCount() THEN
GOTO i
ZapysPryladu = .T.
ELSE
GOTO i+1
ZapysPryladu = .T.
ENDIF
ENDIF
ENDFOR
ZapysVyrobnyka = .F.
IF thisform.Command3.caption = "Існуючий виробник" THEN
SELECT vyrobnyk
SCATTER FIELDS nazva_vyrobn MEMVAR
FOR i=1 TO RecCount() STEP 1
IF nazva_vyrobn = thisform.Text5.value THEN
MessageBox("Виробник з такою назвою вже існує!")
ZapysVyrobnyka = .F.
EXIT
ELSE
IF i = RecCount() THEN
GOTO i
ZapysVyrobnyka = .T.
ELSE
GOTO i+1
ZapysVyrobnyka = .T.
ENDIF
ENDIF
ENDFOR
ELSE
SELECT vyrobnyk
SCATTER FIELDS nomer_vyrobn MEMVAR
NomerVyrobnyka = nomer_vyrobn
ENDIF
IF ZapysPryladu = .T. AND ZapysVyrobnyka = .T. THEN
SELECT vyrobnyk
SCATTER FIELDS nomer_vyrobn MEMVAR
GOTO BOTTOM
NomerVyrobnyka = nomer_vyrobn
&& Запис в Prylad
SELECT prylad
LOCAL ARRAY NewRec1(7)
SCATTER TO NewRec1 BLANK
NewRec1[1] = thisform.Spinner1.value
NewRec1[2] = ALLTRIM(thisform.Text1.value)
NewRec1[3] = ALLTRIM(thisform.Text2.value)
NewRec1[4] = ALLTRIM(thisform.Text3.value)
NewRec1[5] = ALLTRIM(thisform.Edit1.value)
NewRec1[6] = NomerVyrobnyka + 1
NewRec1[7] = thisform.Text4.value
APPEND FROM ARRAY NewRec1
&& Запис в Vyrobnyk
LOCAL ARRAY NewRec2(4)
SELECT vyrobnyk
SCATTER TO NewRec2 BLANK
NewRec2[1] = NomerVyrobnyka + 1
NewRec2[2] = ALLTRIM(thisform.Text5.value)
NewRec2[3] = ALLTRIM(thisform.Text6.value)
NewRec2[4] = ALLTRIM(thisform.Text7.value)
APPEND FROM ARRAY NewRec2
ENDIF
IF ZapysPryladu = .T. AND ZapysVyrobnyka = .F. THEN
&& Запис в Prylad
LOCAL ARRAY NewRec3(7)
SELECT prylad
SCATTER TO NewRec3 BLANK
NewRec3[1] = thisform.Spinner1.value
NewRec3[2] = ALLTRIM(thisform.Text1.value)
NewRec3[3] = ALLTRIM(thisform.Text2.value)
NewRec3[4] = ALLTRIM(thisform.Text3.value)
NewRec3[5] = ALLTRIM(thisform.Edit1.value)
NewRec3[6] = NomerVyrobnyka + 1
NewRec3[7] = thisform.Text4.value
APPEND FROM ARRAY NewRec3
ENDIF
РЕЗУЛЬТАТИ ВИКОНАННЯ ПРОГРАМИ
Якщо ми вводили інформацію про нового виробника, тоді виконаються наступні операції: з таблиці vyrobnyk, вибирається максимальний код виробника (останній який вводився); дані про інвентарний номер, серійний номер, марку приладу, характеристики, тип приладу, дата отримання записуються в таблицю prylad, а також записується інкрементований максимальний код виробника, тобто з кожним записом виробника, їхні коди будуть зростати на 1.
Якщо ж інформація про нового виробника не вводиться, тоді в таблицю vyrobnyk, не записується нічого, а в таблицю prylad, на місце коду виробника, код вибраного виробника з компоненту Combo.
ВИСНОВОК
В даній лабораторній роботі ми навчилися вводити інформацію в таблиці бази даних за допомогою екранних форм, які створювали самостійно, а також ознайомились з програмуванням в середовищі Foxpro.
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!