Опубликован: 19.05.2006 | Доступ: свободный | Студентов: 8191 / 1530 | Оценка: 4.04 / 3.81 | Длительность: 09:46:00
Лекция 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

Олеся Талдыкина
Олеся Талдыкина