Опубликован: 19.05.2006 | Уровень: для всех | Доступ: платный
Лекция 5:

СУБД Microsoft Visual FoxPro. Экранные формы

< Лекция 4 || Лекция 5: 123456 || Лекция 6 >

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

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

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

Таблица 5.2. Назначение кнопок базового класса pictbtns библиотеки wizbtns.vcx
Назначение ToolTipText StatusBarText
1. Перейти к первой записи Top record Go to top of table
2. Перейти к предыдущей записи Previous record Skip to previous record
3. Перейти к следующей записи Next record Skip to next record
4. Перейти к последней записи Bottom record Go to bottom of table
5. Поиск записей Find records Search for records
6. Напечатать отчет Print report Print to report
7. Добавить/сохранить запись Add/Save record Add new record/Save edits
8. Редактировать/отменить изменения Edit/Revert record Edit existing record/Revert edits
9. Удалить запись Delete record Delete existing record
10. Выйти из формы Exit form Exit 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.

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

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

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

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

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

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

Прошел весь курс всего за день, щёлкал ваши тесты, как орешки. Хочу вторую часть! laugh

Олеся Талдыкина
Олеся Талдыкина
Евгений Глибин
Евгений Глибин
Россия
Виктория Лукьян
Виктория Лукьян
Россия