Основы работы с базами данных

2bbc099f

Работа с базой данных с использованием экранной формы


Следующая задача - научиться пользоваться той экранной формой, основу которой предложил Мастер и которая содержит некоторый набор кнопок для работы с информацией базы данных. Для последующей работы с отчетами с группировкой данных нам необходимо, используя ее правила заполнения, занести в базу данных информацию о студентах не менее 2 факультетов, на каждом факультете должно быть 2-3 группы, в каждой группе несколько студентов, у каждого студента - 3-5 оценок.

Назначение кнопок, на которых вместо надписей мы задали показ картинок (см. рис. 5.7.), поясняется подсказками у курсора мыши (ToolTipText) и на строке состояния (StatusBarText), однако эти сообщения в библиотечном объекте написаны на английском языке. Если использовать в дальнейшем библиотеки из папки VFP Wizards, следует перевести на русский язык сообщения и надписи на экранных формахэтих библиотек. В табл. 5.2. приведено назначение стандартных кнопок экранной формы.

Таблица 5.2. Назначение кнопок базового класса pictbtns библиотеки wizbtns.vcx

№НазначениеToolTipTextStatusBarText
1.Перейти к первой записиTop recordGo to top of table
2.Перейти к предыдущей записиPrevious recordSkip to previous record
3.Перейти к следующей записиNext recordSkip to next record
4.Перейти к последней записиBottom recordGo to bottom of table
5.Поиск записейFind recordsSearch for records
6.Напечатать отчетPrint reportPrint to report
7.Добавить/сохранить записьAdd/Save recordAdd new record/Save edits
8.Редактировать/отменить измененияEdit/Revert recordEdit existing record/Revert edits
9.Удалить записьDelete recordDelete existing record
10.Выйти из формыExit formExit input form

Как видно из табл. 5.2., кнопки 7 и 8 имеют двойное назначение, которое изменяется после нажатия на кнопку. Текст процедур, связанных с методом ClickEvent для кнопок, находится в классе txtbtns библиотеки wizbtns.vcx, где его можно изучить. Если для кнопки 7 возникнет необходимость использовать нестандартную команду добавления данных, нужно скопировать процедуру библиотечного объекта в метод ClickEvent своей кнопки и отредактировать фрагмент программы (в фигурных скобках - комментарии к программе):


IF THIS.Parent.EditMode {если нажата кнопка и мы в режиме редактирования} THIS.Parent.UpdateRows() { сохранить запись, процедура группы кнопок - родительского объекта} ELSE IF !THIS.Parent.AddRec() {иначе - к процедуре добавления записей} RETURN ENDIF ENDIF THIS.Parent.EditMode = !THIS.Parent.EditMode {изменение свойства EditMode } THIS.Parent.AddMode = THIS.Parent.EditMode {изменение свойства AddMode } THIS.Parent.TopFile = .F. THIS.Parent.ButtonRefresh() {обновление параметров кнопок 5 -10 } THIS.Parent.NavRefresh() {обновление параметров кнопок 1-4 и объектов формы}

Наиболее сложные функции - у кнопок 7 в режиме добавления данных, кнопок 5 и 6. Эти кнопки вызывают запуск в работу библиотечных экранных форм для добавления, поиска записей и вывода отчетов, вид которых в Конструкторе (после перевода надписей на русский язык и модификации формы поиска) приведен на рис. 5.17-5.19.


Рис. 5.17.  Экранная форма GridAddForm библиотеки wizbtns.vcx


Рис. 5.18.  Экранная форма SearchForm библиотеки wizbtns.vcx(добавлен объект Grid1 для показа таблицы, в которой выполняется поиск)


Рис. 5.19.  Экранная форма вывода отчета библиотеки _report.vcx

Порядок ввода новых данных с использованием разработанной формы следующий:

  1. запускаем в работу экранную форму;
  2. нажимаем кнопку 7 - "Добавить запись", выбираем, что будем добавлять - нового студента (главная таблица) или оценку студента (дочерняя таблица); в последнем случае значение ключевого поля в дочернюю таблицу заносится автоматически;
  3. выполняем ввод новых данных;
  4. нажимаем кнопку 7, которая изменила картинку и превратилась в команду "Сохранить запись";
  5. при необходимости повторяем все со второго пункта.



Содержание раздела