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

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

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

Модификация экранной формы в Конструкторе

При работе с базами данных всегда используются таблицы-справочники. На экранных формах для выбора данных из справочников можно использовать раскрывающиеся списки (в VFP - объект Combo Box ) или выполнять выбор из другой раскрывающейся формы после нажатия на командную кнопку. Второй способ позволяет просматривать сложную информацию справочников и одновременно дополнять и редактировать справочник.

Для использования информации из справочных таблиц необходимо добавить их в Data Environment - окно, связанное с экранной формой и описывающее, какие таблицы связаны с формой, как они открываются и закрываются при запуске формы в работу (см. свойства в окне Properties ). Другой вариант - в событии Load экранной формы самому написать команды открытия таблиц, задания порядка по индексам и установления связей.

Для начинающих программистов проще воспользоваться первым, визуальным способом. Окно Data Environment можно открыть, щелкнув на соответствующем названии в пункте главного меню View или выбрав команду Data Environment в контекстном меню экранной формы. Вид этого окна показан на рис. 5.13. Щелкнув правой кнопкой мыши на пустом месте окна Data Environment, выберем команду Add в контекстном меню, добавим таблицы Fclt, Spect, Predmеts и зададим правильно связи между ними перетаскиванием мышкой названия поля к названию индекса, как показано на рисунке.

Окно данных экранной формы Data Environment

Рис. 5.13. Окно данных экранной формы Data Environment

Теперь можно добавить на экранную форму раскрывающиеся списки для показа информации из справочников факультетов, специальностей и предметов и занесения соответствующих номеров из справочников в список студентов или в таблицу оценок.

Найдем на панели Form Controls объект Combo Box, щелкнем на нем мышкой и покажем область размещения и размер этого объекта на экранной форме Spisok. Затем щелкаем правой кнопкой мыши на нем и в контекстном меню выбираем пункт Builder. В результате в VFP открывается окно Combo Box Builder (рис. 5.14.). Это окно состоит из четырех страниц для выбора исходных данных, стиля и внешнего вида списка и задания, какую колонку и где сохранять при выборе пункта списка. Опишем свойства Combo Box для работы со справочником факультетов.

Страница 1 построителя объекта

Рис. 5.14. Страница 1 построителя объекта

Наиболее важны первая и четвертая страницы Builder. На первой странице выбираем таблицу базы - FCLT и поля - сначала Name_f, затем N_fclt.

На второй странице заменим стиль drop-down combo на drop-down list. Разница между стилями: первый позволяет писать информацию в поле ввода; она станет значением ControlSource, если соответствует одной из строк данных в списке выбора; второй позволяет только открыть список и выбрать из него данные.

На третьей можно задать ширину полей.

На четвертой странице (рис. 5.15.) нужно задать:

  1. колонку списка, значения из которой вы хотите сохранять, - N_Fclt ;
  2. поле, в котором будет сохраняться выбранное значение, - Spisok.N_fclt.
Страница 4 Построителя объекта

Рис. 5.15. Страница 4 Построителя объекта

Нажмем на кнопку OK и посмотрим в окне Properties на странице Data свойство BoundTo. Значение этого свойства следует задать равным True, тогда в поле Spisok.N_fclt будет заноситься номер из справочника, иначе заносился бы порядковый номер строки в списке.

Кроме того, следует изменить свойство UserControlMode группы кнопок экранной формы на значение .T. - в этом случае список будет доступен для редактирования только после нажатия на кнопку Редактировать.

Аналогичным образом добавим объект Combo Box для работы со справочником специальностей.

Более сложная операция - замена в колонке Grid объекта Text Box на Combo Box для выбора названия предмета из справочника. Grid - иерархический объект, состоит из колонок, в каждой колонке есть ее название и содержание. Чтобы перейти к свойствам колонки 3, откроем окно свойств ( Properties ), щелкнем правой кнопкой на этой колонке и выберем команду Edit - входим в редактирования колонки. После этого выбираем в окне Properties объект Text1 колонки 3, щелкаем мышкой на 3-й колонке в Grid -е и нажимаем на клавишу Delete на клавиатуре - поле редактирования колонки 3 удалено. Далее выбираем на панели Form Controls объект Combo Box и щелкаем мышкой на 3-ей колонке Grid -а - в колонку 3 вставлен объект Combo Box вместо Text Box. Затем надо описать свойства вставленного в колонку 3 объекта с именем Combo1:

  • ControlSource - если для колонки было задано ocenki.n_predm и BoundTo = .T., это свойство автоматически становится таким же, как свойство колонки, т.е. ocenki.n_predm ;
  • RowSourceType 6 - Fields;
  • RowSource predmets.n_predm, name_p;
  • ColumnCount 2;
  • ColumnWidths 20, 180;
  • BorderStyle 0 - None;
  • SpecialEffect 1 - Plain.

Для показа названия предмета в таблице добавим количество колонок (для объекта Grid свойство ColumnCount изменим на 7), переместим колонку перетаскиванием мышкой за заголовок на четвертое место в таблице после колонки N_predm и опишем свойства колонки 7: ControlSource - Predmets.name_p (выбором из списка доступных полей); ReadOnly - .T. (делаем эту колонку нередактируемой).

Далее отредактируем заголовки ( Header ) у всех колонок объекте Grid, цвет фона экранной формы и объекта Grid (BackColor) и цвета объектов Combo box - DisabledBackColor и DisabledForeColor.

В результате экранная форма (после запуска ее в работу) будет иметь вид, показанный на рис. 5.16.

Экранная форма после модификации в Конструкторе

Рис. 5.16. Экранная форма после модификации в Конструкторе
< Лекция 4 || Лекция 5: 123456 || Лекция 6 >
Данил Корляков
Данил Корляков

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

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