Смекни!
smekni.com

Разработка базы данных учета материально-технического оснащения кабинета специальной технологи (стр. 5 из 5)

PUBLIC found_lesson

with thisform

found_lesson =INPUTBOX('Введите тему урока или ее начало','Поиcк')

IF NOT EMPTY(found_lesson)

&&Задает правила, согласно которым Visual FoxPro сравнивает две строки разной длины

&&OFF(По умолчанию) Указывает, что выражения будут эквивалентны, если они совпадают посимвольно вплоть до конца выражения, расположенного справа.

SET EXACT OFF

s=RECNO()

LOCATE FOR Uir_tab_lesson.nam_lesson= found_lesson

IF NOT FOUND() THEN && все хорошо и запись (и) найдены

messagebox('Поиск не дал результатов',48)

&& Возврат к записи с которой был начат поиск

GO s

.Command7.Enabled=.f.

ELSE

.command7.Enabled=.t.

ENDIF

ENDIF

.grid1.setfocus

ENDWITH

Обработчик события кнопки “Далее” формы “Уроки”.

SET EXACT OFF

s=RECNO()

&& Поиск следующей, отвеч. строке поиска записи

CONTINUE

IF NOT FOUND()

GO s

This.Enabled= .F.

ENDIF

ThisForm.Grid1.SetFocus

Обработчик события кнопки “Обновить” формы “Уроки”.

_screen.ActiveForm. refresh()

IF thisform.Optiongroup1.Value=1 then

thisform.DataEnvironment.cursor1.order='kurs_id'

ELSE

thisform.DataEnvironment.cursor1.order='num_lesson'

ENDIF

thisform.grid1.Refresh

Обработчик события кнопки “Показать” формы “Уроки”.

IF Thisform.Optiongroup2.Option1.Value=1

uuu=INPUTBOX('Введите ID урока','Заявка')

t=val(uuu)

IF EMPTY(uuu)=.f. then

SELECT Uir_tab_kasseta.name_kas, Uir_tab_kasseta.time_kas;

FROM ;

uir_tab_lk INNER JOIN uir_tab_kasseta ;

ON Uir_tab_lk.kass_id = Uir_tab_kasseta.kass_id;

WHERE Uir_tab_lk.lesson_id = t;

INTO TABLE time_tab7

REPORT FORM uir_report7 preview

SELECT time_tab7

DELETE ALL

PACK

ELSE thisform.Refresh

endif

ENDIF

IF Thisform.Optiongroup2.Option2.Value=1

uuu=INPUTBOX('Введите ID урока','Заявка')

t=val(uuu)

IF EMPTY(uuu)=.f. then

SELECT Uir_tab_mat.name_mat,Uir_tab_mat.vid_mat;

FROM uir_tab_lm INNER JOIN uir_tab_mat ;

ON Uir_tab_lm.mat_id = Uir_tab_mat.mat_id;

WHERE Uir_tab_lesson.lesson_id = t;

INTO TABLE time_tab8

REPORT FORM uir_report8 preview

SELECT time_tab8

DELETE ALL

Pack

ELSE thisform.Refresh

Endif

ENDIF

IF Thisform.Optiongroup2.Option3.Value=1

PUBLIC uuu_mes

uuu_mes=INPUTBOX('Введите месяц','Заявка')

IF EMPTY(uuu_mes)=.f. then

SELECT Uir_tab_lesson.kurs_id, Uir_tab_lesson.num_lesson,;

Uir_tab_lesson.nam_lesson;

FROM uir_tab_lesson;

WHERE Uir_tab_lesson.mes_id = uuu_mes;

INTO TABLE time_tab1

REPORT FORM uir_report4 preview

SELECT time_tab1

DELETE ALL

PACK

ELSE thisform.Refresh

Endif

ENDIF

Обработчик события кнопки “Удалить” формы “Уроки”.

uuuz=INPUTBOX('Введите ID урока, который желаете удалить','Удаление записи из таблицы')

IF EMPTY(uuuz)=.f. then

DO WHILE Type(uuuz)!='N'

MESSAGEBOX('Вы ввели некорректное значение (ID числовое значение)')

uuuz=INPUTBOX('Введите ID урока, который желаете удалить','Удаление записи из таблицы')

ENDDO

tu=val(uuuz)

LOCAL ARRAY ss1(20)

SELECT Uir_tab_lesson.nam_lesson;

FROM uir_tab_lesson;

WHERE Uir_tab_lesson.lesson_id =tu;

INTO ARRAY ss1

If EMPTY(ss1)

MESSAGEBOX('Такого значения ID нет в списке данных')

else

SELECT Uir_tab_lesson

DELETE;

FROM Uir_tab_lesson;

WHERE uir_tab_lesson.lesson_id = tu

PACK

SELECT Uir_tab_lm

DELETE;

FROM Uir_tab_lm;

WHERE uir_tab_lm.lesson_id = tu

PACK

SELECT Uir_tab_lk

DELETE;

FROM Uir_tab_lk;

WHERE uir_tab_lk.lesson_id = tu

PACK

_screen.ActiveForm.Release()

DO FORM uir_les_form8

ENDIF

ELSE Thisform.Refresh

ENDIF

Обработчик события кнопки “Первая” формы “Раздаточные материалы”.

IF !BOF()

GO TOP

ENDIF

_screen.ActiveForm.Refresh()

ee1=thisform.Text1.Value

SELECT Uir_tab_lesson.nam_lesson;

FROM uir_tab_mat INNER JOIN uir_tab_lm ;

ON Uir_tab_mat.mat_id = Uir_tab_lm.mat_id ;

INNER JOIN uir_tab_lesson ;

ON Uir_tab_lm.lesson_id = Uir_tab_lesson.lesson_id;

WHERE Uir_tab_mat.mat_id =ee1;

INTO ARRAY less1

IF ISNULL(less1)

less1[1]=' '

ENDIF

thisform.List1.Refresh

Обработчик события кнопки “Следущая” формы “Раздаточные материалы”.

IF !EOF()

SKIP

ENDIF

_screen.ActiveForm.Refresh()

ee1=thisform.Text1.Value

SELECT Uir_tab_lesson.nam_lesson;

FROM uir_tab_mat INNER JOIN uir_tab_lm ;

ON Uir_tab_mat.mat_id = Uir_tab_lm.mat_id ;

INNER JOIN uir_tab_lesson ;

ON Uir_tab_lm.lesson_id = Uir_tab_lesson.lesson_id;

WHERE Uir_tab_mat.mat_id =ee1;

INTO ARRAY less1

IF ISNULL(less1)

less1[1]=' '

ENDIF

thisform.List1.Refresh

Обработчик события кнопки “Предыдущая” формы “Раздаточные материалы”.

IF !BOF ( )

SKIP - 1

ENDIF

_screen. ActiveForm. Refresh ()

ee1=thisform.Text1.Value

SELECT Uir_tab_lesson.nam_lesson;

FROM uir_tab_mat INNER JOIN uir_tab_lm ;

ON Uir_tab_mat.mat_id = Uir_tab_lm.mat_id ;

INNER JOIN uir_tab_lesson ;

ON Uir_tab_lm.lesson_id = Uir_tab_lesson.lesson_id;

WHERE Uir_tab_mat.mat_id =ee1;

INTO ARRAY less1

IF ISNULL(less1)

less1[1]=' '

ENDIF

thisform.List1.Refresh

Обработчик события кнопки “Последняя ” формы “Раздаточные материалы”.

IF !EOF()

GO BOTTOM

ENDIF

_screen.ActiveForm.Refresh( )

ee1=thisform.Text1.Value

SELECT Uir_tab_lesson.nam_lesson;

FROM uir_tab_mat INNER JOIN uir_tab_lm ;

ON Uir_tab_mat.mat_id = Uir_tab_lm.mat_id ;

INNER JOIN uir_tab_lesson ;

ON Uir_tab_lm.lesson_id = Uir_tab_lesson.lesson_id;

WHERE Uir_tab_mat.mat_id =ee1;

INTO ARRAY less1

IF ISNULL(less1)

less1[1]=' '

ENDIF

thisform.List1.Refresh

Обработчик события кнопки “Добавить ” формы “Раздаточные материалы”.

PUBLIC new_mat_id as Integer

SET ORDER TO mat_id

CALCULATE MAX(mat_id) TO new_mat_id

new_mat_id=new_mat_id+1

CLEAR

SELECT uir_tab_mat

APPEND BLANK

ThisForm.Text1.Value=new_mat_id

ee=thisform.Text1.Value

RELEASE less1

DIMENSION less1(20)

thisform.List1.Refresh

_screen.ActiveForm.Refresh( )

thisform.Command4.Visible= .T.

thisform.Command2.Enabled= .f.

thisform.Commandgroup1.Command1.Enabled= .F.

thisform.Commandgroup1.Command2.Enabled= .F.

thisform.Commandgroup1.Command3.Enabled= .F.

thisform.Commandgroup1.Command4.Enabled= .F.

thisform.Commandgroup1.Command5.Enabled= .F.

thisform.Commandgroup1.Command8.Enabled= .F.

Обработчик события кнопки “Удалить” формы “Раздаточные материалы”.

tu=thisform.Text1.value

IF MESSAGEBOX('Вы уверены, что хотите стереть запись?', 4 + 32 + 256, 'Выход')=6

SELECT uir_tab_mat

SET EXCLUSIVE ON

DELETE

pack

SELECT uir_tab_lm

SET EXCLUSIVE ON

DELETE;

FROM Uir_tab_lm;

WHERE Uir_tab_lm.mat_id = tu

PACK

_screen.ActiveForm.Release()

DO FORM uir_form21

MESSAGEBOX('Данные удалены из таблицы!')

ELSE

_screen.ActiveForm.Refresh()

Endif

Обработчик события кнопки “Открепить от урока” формы “Раздаточные материалы”.

tu=thisform.Text1.value

uuu=INPUTBOX('Введите ID урока','Заявка')

IF EMPTY(uuu)=.f. then

DO WHILE Type(uuu)!='N'

MESSAGEBOX('Вы ввели некорректное значение (ID числовое значение)')

uuu=INPUTBOX('Введите ID урока','Заявка')

ENDDO

ttz=val(uuu)

LOCAL ARRAY ss7(20)

SELECT Uir_tab_lm.mat_id;

FROM uir_tab_lm;

WHERE Uir_tab_lm.mat_id = ttz;

INTO ARRAY ss7

If EMPTY(ss7)

MESSAGEBOX('Данная кассета не содержится в списке')

ELSE

SELECT uir_tab_lm

DELETE;

FROM Uir_tab_lm;

WHERE Uir_tab_lm.lesson_id =ttz and Uir_tab_lm.mat_id=tu

PACK

THISFORMset.forms(2).visible=.f.

_screen.ActiveForm.Release()

DO FORM uir_form20

MESSAGEBOX('Связь разорвана!')

endif

ELSE thisform.Refresh

endif

Обработчик события кнопки “Прикрепить к уроку” формы “Раздаточные материалы”.

SELECT uir_tab_lm

uuu=INPUTBOX('Введите ID урока','Заявка')

IF EMPTY(uuu)=.f. then

DO WHILE Type(uuu)!='N'

MESSAGEBOX('Вы ввели некорректное значение (ID числовое значение)')

uuu=INPUTBOX('Введите ID урока','Заявка')

ENDDO

tz=val(uuu)

LOCAL ARRAY ss6(20)

SELECT Uir_tab_lesson.nam_lesson;

FROM uir_tab_lesson;

WHERE Uir_tab_lesson.lesson_id =tz;

INTO ARRAY ss6

If EMPTY(ss6)

MESSAGEBOX('Такого значения ID нет в списке данных')

ELSE

LOCAL ARRAY ss5(20)

SELECT Uir_tab_lm.mat_id;

FROM uir_tab_lm;

WHERE Uir_tab_lm.lesson_id = tz;

INTO ARRAY ss5

If EMPTY(ss5)=.f.

MESSAGEBOX('Такая кассета уже есть в списке')

else

y=thisform.Text1.Value

INSERT INTO uir_tab_lm VALUES (tz,y)

THISFORMset.forms(2).visible=.f.

_screen.ActiveForm.release

DO FORM uir_form21

endif

endif

ELSE thisform.Refresh

endif

Обработчик события кнопки “Сохранить” формы “Уроки (добавить новый)”.

LOCAL qt as Character;

yy as Integer;

rt as Integer;

wu=ThisForm.Text5.Value

yy=ThisForm.Text4.Value

qt=ThisForm.Combo2.Value

rt=ThisForm.Combo1.Value

wt=VAL(yy)

t=new_lesson_id

IF EMPTY(wu)

IF EMPTY(yy)

IF EMPTY (qt)

IF EMPTY(rt)

MESSAGEBOX('Данные не были введены!')

ELSE

INSERT INTO uir_tab_lesson VALUES (t,rt,qt,wt,wu)

MESSAGEBOX('Данные добавлены в таблицу!')

Thisform.Command1.Enabled= .f.

_screen.ActiveForm.Release()

DO FORM uir_form12

ENDIF

ELSE

INSERT INTO uir_tab_lesson VALUES (t,rt,qt,wt,wu)

MESSAGEBOX('Данные добавлены в таблицу!')

Thisform.Command1.Enabled= .f.

_screen.ActiveForm.Release()

DO FORM uir_form12

ENDIF

ELSE

INSERT INTO uir_tab_lesson VALUES (t,rt,qt,wt,wu)

MESSAGEBOX('Данные добавлены в таблицу!')

Thisform.Command1.Enabled= .f.

_screen.ActiveForm.Release()

DO FORM uir_form12

ENDIF

ELSE

INSERT INTO uir_tab_lesson VALUES (t,rt,qt,wt,wu)

MESSAGEBOX('Данные добавлены в таблицу!')

Thisform.Command1.Enabled= .f.

_screen.ActiveForm.Release()

DO FORM uir_form12

ENDIF

Заключение по работе.

Целью учебно-исследовательской работы являлось:

  • Изучение СУБД Visual FoxPro 8.0.и языка программирования FoxPro.
  • Изучение структурированного языка запросов SQL.
  • Изучение особенностей предметной области.
  • Проектирование базы данных (создание реляционной модели)
  • Создание основных элементов базы данных: таблиц, форм, отчетов, запросов.
  • Разработка обработчиков событий на языке FoxPro.
  • Приобретение навыков работы с СУБД Visual FoxPro 8.0

Курсовой проект посвящен разработке базы данных для учета материально-технического оснащения кабинета специальной технологии колледжа №32 г.Москвы

В ходе УИР и КП создана база данных, отвечающая техническому заданию на курсовой проект, с использованием средств FoxPro 8.0.

Проект позволил автоматизировать работу по подбору необходимого материала к урокам и систематизировать хранение информации. Задача автоматизации учебного процесса актуальна и имеет хорошую перспективу дальнейшего развития.

ЛИТЕРАТУРА

  1. Microsoft Visual FoxPro О. В. Бартеньев Диалог-МИФИ Москва 2005г.
  2. Visual FoxPro С. Каратыгин А. Тихонов Л. Тихонова Издательство БИНОМ Москва 1999
  3. http://www.firststeps.ru/foxpro/fx/fx1.html
  4. http://omck.info/1subd.php
  5. http://www.computerbooks.ru/books/Programming/Book-FoxPro-7/index.html
  6. http://www.compdoc.ru/bd/foxpro/
  7. http://www.linksoft.ru/working.html