Прошел весь курс всего за день, щёлкал ваши тесты, как орешки. Хочу вторую часть! |
СУБД Microsoft Visual FoxPro. Экранные формы
Модификация экранной формы в Конструкторе
При работе с базами данных всегда используются таблицы-справочники. На экранных формах для выбора данных из справочников можно использовать раскрывающиеся списки (в VFP - объект Combo Box ) или выполнять выбор из другой раскрывающейся формы после нажатия на командную кнопку. Второй способ позволяет просматривать сложную информацию справочников и одновременно дополнять и редактировать справочник.
Для использования информации из справочных таблиц необходимо добавить их в Data Environment - окно, связанное с экранной формой и описывающее, какие таблицы связаны с формой, как они открываются и закрываются при запуске формы в работу (см. свойства в окне Properties ). Другой вариант - в событии Load экранной формы самому написать команды открытия таблиц, задания порядка по индексам и установления связей.
Для начинающих программистов проще воспользоваться первым, визуальным способом. Окно Data Environment можно открыть, щелкнув на соответствующем названии в пункте главного меню View или выбрав команду Data Environment в контекстном меню экранной формы. Вид этого окна показан на рис. 5.13. Щелкнув правой кнопкой мыши на пустом месте окна Data Environment, выберем команду Add в контекстном меню, добавим таблицы Fclt, Spect, Predmеts и зададим правильно связи между ними перетаскиванием мышкой названия поля к названию индекса, как показано на рисунке.
Теперь можно добавить на экранную форму раскрывающиеся списки для показа информации из справочников факультетов, специальностей и предметов и занесения соответствующих номеров из справочников в список студентов или в таблицу оценок.
Найдем на панели Form Controls объект Combo Box, щелкнем на нем мышкой и покажем область размещения и размер этого объекта на экранной форме Spisok. Затем щелкаем правой кнопкой мыши на нем и в контекстном меню выбираем пункт Builder. В результате в VFP открывается окно Combo Box Builder (рис. 5.14.). Это окно состоит из четырех страниц для выбора исходных данных, стиля и внешнего вида списка и задания, какую колонку и где сохранять при выборе пункта списка. Опишем свойства Combo Box для работы со справочником факультетов.
Наиболее важны первая и четвертая страницы Builder. На первой странице выбираем таблицу базы - FCLT и поля - сначала Name_f, затем N_fclt.
На второй странице заменим стиль drop-down combo на drop-down list. Разница между стилями: первый позволяет писать информацию в поле ввода; она станет значением ControlSource, если соответствует одной из строк данных в списке выбора; второй позволяет только открыть список и выбрать из него данные.
На третьей можно задать ширину полей.
На четвертой странице (рис. 5.15.) нужно задать:
- колонку списка, значения из которой вы хотите сохранять, - N_Fclt ;
- поле, в котором будет сохраняться выбранное значение, - Spisok.N_fclt.
Нажмем на кнопку 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.