Разработка базы данных «Расход медикаментов», страница 6

  CLEAR EVENTS   && возврат управления в програму start.prg

ELSE

  iCount=iCount+1

  =MessageBox("Введён неверный пароль. Проверьте клавишу CapsLock и раскладку клавиатуры;

                                       Затем повторите ввод",16) 

    IF iCount=4                 && если количество попыток ввода пароля больше 3 – выход из базы

     =MessageBox("Вам отказано в доступе",16)

     Release THISFORM

     Release cCode,iCount

     CLEAR EVENTS

    ENDIF

ENDIF

Command2.Click( ): && кнопка выход

Release THISFORM,cCode,iCount

CLEAR EVENTS   && при выходе пременная lControl остаётся «ложью»

Form1.Destroy( ):

CLEAR EVENTS         && при нажатии на кнопку «крестик» lControl остаётся «ложью»

Если пароль был введён правильно, то вызывается меню, которое позволяет пользователю открывать и закрывать файлы, производить редактирование и просмотр данных в таблицах, вызывать запросы, создавать отчёт и завершать текущий  сеанс базы данных  или всего VFP.


                                                           Рис.3 Общий вид меню


Рассмотрим более подробно пункты меню: пункт File (рис.4) позволяет пользователю проводит               

                                                 Рис.4 Содержимое пункта меню File

стандартные операции открытия, сохранения и печати файлов.

Пункт Table (рис.5) открывает выбранную таблицу для просмотра или редактирования в окне Browse.


                                         Рис.5 Содержимое пункта меню Тable

При этом используется следующая процедура открытия таблицы:

IF !USED (“имя_таблицы”)   && проверяется открыта ли таблица

  USE “имя_таблицы” IN 0    && если нет, то открывается в первой свободной рабочей области

ENDIF

SELECT “имя_таблицы”

BROWSE                                 && просмотр таблицы

Опция меню Query (рис.6) осуществляет вызов запроса через форму, вызов формы производится следующим образом:

Public iNumber                        && номер текущей активной страницы в форме

iNumber=номеру запроса


DO FORM form_query.scx     && вызов формы для обработки запросов (рис.7)

                                         Рис. 6 Содержимое пункта меню Query


                                                  Рис. 7 Общий вид формы запросов

Процедуры обработки событий при вызове формы form_query.scx (на примере одной из закладок):

Text1.Inut ( ):

PUBLIC cPatientName                        && переменная, хранящая имя пациента

cPatientName="(нет)"                          && начальная инициализация

THISFORM.Pageframe1.Page1.Text1.Value=cPatientName

Text1.KeyPress( ):  && полный аналог, описанного выше события

LPARAMETERS nKeyCode, nShiftAltCtrl

IF nKeyCode ==13

THISFORM.Command1.Click()

ENDIF

Command1.Click( ): && кнопка Просмотр

DO CASE

CASE THISFORM.Pageframe1.ActivePage==1  && выясняем номер активной страницы

cPatientName=UPPER(ALLTRIM(THISFORM.Pageframe1.Page1.Text1.Value)) && убираем все               

                                                            && лишние пробелы и переводим буквы к верхнему регистру

do query1.qpr                                     && вызов соответствующего запроса

CASE THISFORM.Pageframe1.ActivePage==2

cMedicName=UPPER(ALLTRIM(THISFORM.Pageframe1.Page2.Text1.Value))

do query2.qpr

CASE THISFORM.Pageframe1.ActivePage==3

cMedicName=UPPER(ALLTRIM(THISFORM.Pageframe1.Page3.Text1.Value))

do query3.qpr

CASE THISFORM.Pageframe1.ActivePage==4

iChamber=THISFORM.Pageframe1.Page4.Spinner1.Value

dCurData=DATE( )                            && получаем текущую дату

do query4.qpr

ENDCASE

Command2.Click( ): && кнопка Выход

Release THISFORM, iNumber           && уничтожение формы


Пункт меню Report (рис.3) позволяет пользователю вызвать форму form_report.scx для создания отчёта (рис.8).В ней  указав полное имя вы можете распечатать отчёт или предварительно его просмотреть. Сам отчёт создавался через мастер отчётов на основе локального представления view_order. Готовый отчёт можно просмотреть в Приложени №1.

                                                        Рис.8 Общий вид формы отчёта

Готовый отчёт включает в себя следущие поля:

·  Код пациента

·  Ф.И.О.

·  Название лекарства

·  Способ приминения

·  Дневная доза

·  Начало лечения

·  Конец лечения

·  Палата

·  Отделение

·  Общее количество израсходованного лекарства

Процедуры обработки событий при вызове формы form_report.scx:

Text1.Inut ( ):

PUBLIC cNamePacient                        && переменная, хранящая имя пациента

cNamePacient="(нет)"                          && начальная инициализация

THISFORM.Text1.Value=cNamePacient

Text1.KeyPress ( ):

LPARAMETERS nKeyCode, nShiftAltCtrl

IF nKeyCode=13

THISFORM.Commandgroup1.Command1.Click( ) && вызов предварительного просмотра

ENDIF

CommandGroup1.Command1.Click( ) && кнопка Просмотр

cNamePacient=ALLTRIM(THISFORM.Text1.Value) && удаление лишних пробелов

REPORT FORM report1.frx FOR c_name=cNamePacient PREVIEW && создание отчета с               

                                                                                              &&предварительным просмотром

CommandGroup1.Command2.Click( ) && кнопка Печать

cNamePacient=ALLTRIM(THISFORM.Text1.Value)

REPORT FORM report2.frx FOR c_name=cNamePacient TO PRINTER PROMPT && вывод на