Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

А.С.Грошев.Базы данных.Уч.пособие

.pdf
Скачиваний:
150
Добавлен:
12.04.2015
Размер:
3.1 Mб
Скачать
Рис. 2.11. Шаг 5 мастера разработки форм
Рис. 2.10. Шаг 4 мастера разработки форм

таблицы и выбранных для размещения на экранной форме полей главной таблицы.

Для выбора необходимых полей служат кнопки со стрелками или может использоваться двойной щелчок мыши.

Далее нажимаем на кнопку Next > и переходим ко второму шагу, на котором нам необходимо выбрать на аналогичном экране таблицу, связанную с главной связью от одной записи – ко многим и ее поля, в нашем случае это все поля таблицы

Ocenki .

На третьем шаге нужно подтвердить, что выбранные таблицы действительно связаны по значению поля NZ.

Четвертый шаг – выбор стиля формы и типа кнопок (рис. 2.10).

Шаг 5 – задание сортировки записей главной таблицы. Можно задать сортировку по имеющемуся у таблицы индексу или указать последовательность полей для создания сложного индекса (не более трех), например, поля N_fclt,

N_grup, Fio (рис. 2.11).

На шестом последнем шаге задаем заголовок (Titul) для формы и выбираем завершающую опера-

цию – Save form and modify it in Form Designer

Сохранить форму и модифицировать ее в дизайнере форм.

После нажатия на кнопку Finish выбираем папку для сохранения файлов экранной формы и ее название – можно оставить предлагаемое системой название, совпадающее с названием главной таблицы (у файлов таблицы и формы будут разные расширения).

51

В результате будет сгенерирована и открыта в дизайнере форма следующего вида (рис.2.12):

Объект

Label

Объект

Text-

Объект

Grid

Объект

Command

Button

Рис. 2.12. Экранная форма, разработанная мастером

На экранной форме присутствуют объекты следующих типов:

Label – надпись на форме, обычно не изменяющаяся (но может изменяться программно);

TextBox – поле редактирования, связанное с полем базы данных или переменной:

Grid – сложный объект, состоящий из столбцов, которые имеют заголовок (Header) и, обычно, редактируемые данные в виде объекта TextBox (можно заменить при необходимости на ComboBox раскрывающийся список, Spinner – счетчик и пр.);

CommandButton – командная кнопка, связанная с выполнением определенной процедуры.

Свойства формы и всех ее объектов можно просматривать и изменять в окне Properties (рис. 2.13). Если это окно отсутствует, его можно открыть, щелкнув правой кнопкой мыши на любом объекте и выбрав в контекстном меню слово Properties. В верхней части окна присутствует раскрывающийся иерархический список объектов, ниже – несколько страниц групп свойств объектов:

Data – данные, важнейшее свойство в этом разделе – ControlSourse для объектов, связанных с редактирование каких-либо данных;

52

Рис. 2.13. Окно свойств объектов

 

Metods

методы,

т.е.

дуры

(программные

модули),

няющиеся для объекта при наступлении определенных событий (Events). Примеры событий: Load Event – происходит перед созданием объекта (но после открытия таблиц, если это задано в Data Environment), Activate Event – при активизации объекта, When Event – перед тем, как курсор переместится на текущий объект, выбранный мышкой или при переходе на него с предыдущего объекта с использова-

ние клавиш TAB или Enter, Valid Event – перед тем, как курсор переместится c текущего на другой объект, Click Event – при щелчке мышкой на объекте и пр. ;

Layout – все. что связано с внешним видом объекта – расположение, размеры, шрифт, цвет, тип выравнивания, ShowTips – показывать или нет всплывающие подсказки, ScrollBars – показывать или нет полосы скроллинга и пр.

Other – прочие свойства.

В версии VFP 9.0 окно свойств дополнено страницей Favorites (Избранное), куда можно помещать список самых важных свойств объекта.

Для использования экранной формы нужно запустить ее в работу, что можно сделать из системы FoxPro несколькими способами: нажав на кнопку

Run на стандартной панели инструментов, горячими клавишами Ctrl+E, командой Run Form в пункте меню Form (этот пункт присутствует в меню только при активном окне Form Designer) или командой Do Form Spisok, написанной в окне Command (при этом папка, в которой расположены фай-

лы экранной формы Spisok.scx и Spisok.sct должна быть Default Directory

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

53

Задание № 2.3

1.Разработать с помощью мастера экранную форму для выданного задания.

2.Изучить свойства объектов Form, Label, TextBox, Grid, CommandButton.

3.Научиться изменять цвет, расположение и размер объектов.

4.Научиться выравнивать объекты.

5.В Grid-е задать по-русски названия столбцов, изменить тип выравнивания на центрирование заголовков.

6.Запустить в работу экранную форму, определить назначение каждой из кнопок, занести новые данные в базу с использованием экранной формы.

54

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

2.5. Использование раскрывающихся списков на экранных формах

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

Предварительно следует добавить новые таб-

лицы в Data Environment

окно, связанное с экранной формой и описывающее, какие таблицы связаны с формой, как они открываются и закрываются при запуске формы в работу (см. свойства в окне Properties). Это окно можно открыть, щелкнув на соответствующем названии в пункте меню View (рис. 2.14). Щелкнув правой кнопкой мыши на пустом месте этого окна, выберем команду Add в контекстном

меню, добавим таблицы Fclt, Spect, Predmrts и зададим правильно связи между ними перетаскиванием мышкой названия поля к названию индекса, как показано на рисунке.

Для добавления новых объектов в экранную форму следует использовать панель инструментов Form Controls, для выравнивания объектов полезна панель Layout (рис. 2.15). Если их нет, следует найти их названия в пункте View меню системы, щелкнуть на них мышкой и они появятся на экране.

Рис. 2.15. Панели инструментов для работы с объектами экранной формы

Найдем на панели Form Controls объект ComboBox, щелкнем на нем мышкой и покажем область размещения и размер этого объекта на экранной форме Spisok. Затем щелкаем правой кнопкой мыши на нем и в контекстном

55

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

меню выбираем пункт Builder… . В результате в VFP открывается окно Combo Box Builder (рис. 2.16). Это окно состоит их четырех страниц для выбора исходных данных, стиля и внешнего вида списка и задания, какую колонку и где сохранять при выборе пункта списка.

Опишем свойства ComboBox для работы со справочником факультетов.

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

Name_f, затем N_fclt. На второй странице заменим стиль drop-down combo на drop-down list, на третьей можно задать ширину полей.

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

1) колонка списка, значения из которой Вы хотите сохранять – N_Fclt;

2) поле, в котором будет сохраняться выбранное значение – Spisok.N_fclt.

Нажмем на кнопку OK и посмотрим в окне

Properties на странице Data

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

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

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

Более сложная операция – замена в колонке Grid-а объекта TextBox на ComboBox для выбора названия предмета из справочника. Для этого нужно

56

Рис. 2.18. Экранная форма с добавленными раскрывающимися списками
Задание № 2.4

выбрать в окне свойств объект Text1 колонки 3, щелкнуть на этой колонке в Grid-е и нажать на клавишу Delete на клавиатуре. Таким образом, поле редактирования для колонки 3 будет удалено. Далее выбрать на панели Form Controls объект ComboBox и щелкнуть мышкой на 3-ей колонке Grid-а. Далее надо описать свойства вставленного в колонку 3 объекта Combo1:

ControlSourse – если для колонки было задано ocenki.n_predm и BoundTo = .T. , это свойство автоматически становится таким же, как свойство колонки, т.е. ocenki.n_predm;

RowSourseType

6 – Fields;

RowSourse

predmets.n_predm, name_p;

ColumnCount

2;

ColumnWidths

20, 180;

BorderStyle

0 – None

SpecialEffect

1 – Plain.

Для показа названия предмета в таблице добавим количество колонок (для объекта Grid свойство ColumnCount изменим на 7), переместим колонку перетаскиванием мышкой за заголовок на четвертое место в таблице после колонки N предмета и

опишем свойства колонки 7:

ControlSourse

Predmets.name_p (вы-

бором из списка доступных полей);

ReadOnly .T. (делаем эту колонку не редактируемой).

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

1.Добавить на экранную форму раскрывающиеся списки для работы со справочниками, проверить их в работе.

2.Научиться заменять объект TextBox колонки Grid-а на ComboBox.

3.Занести в базу новые данные с использованием экранной формы.

57

2.6. Разработка отчетов (печатных форм)

Для разработки печатных отчетов, отражающих информацию базы данных, в системе VFP существует конструктор отчетов (Report Designer) и мастер разработки отчетов (Report Wizard). Важным свойством отчетов является возможность группировки данных и получения итоговых данных для групп и всего отчета. При формировании отчетов можно задавать фильтр отбора необходимых данных или формировать отчет на основе данных SQLзапроса или представления данных (View).

Наиболее просто для разработки основы отчета воспользоваться мастером отчетов с последующей модификацией и дополнением созданного мастером отчета в конструкторе отчетов.

Существует 2 типа мастеров отчета:

One-to-Many Report Wizard – мастер разработки отчета, в котором для одной записи главной таблицы существует множество записей связанной с ней дочерней таблицы;

Report Wizard – мастер разработки простого отчета, но с возможностью задания группировки данных.

Поставим задачу разработать отчет, в котором показаны оценки всех студентов за зимнюю сессию 2001-2002 учебного года (с 7.01.02 по 25.01.02) с группировкой данных по факультетам, курсам, группам и в группе – по фамилиям.

Как обычно, создание нового объекта начинаем, нажав кнопку New на стандартной панели инструментов, затем выбираем Report – Wizard – One- to-Many Report Wi-

zard.

Далее на первом шаге мастера (рис. 2.19) выбираем базу Students и поля главной таблицы базы (Spisok), которые мы хотим показать в отчете.

На втором шаге (рис. 2.20) выбираем поля дочерней таблицы – Ocenki.

Рис. 2.19. Шаг 1 мастера разработки отчета

58

Рис. 2.20. Шаг 2 мастера разработки отчета

Третий шаг – подтверждаем, что эти таблицы связаны по значению поля NZ.

На четвертом шаге необходимо задать порядок сортировки данных в отчете. Мастер позволяет задать не более трех значений полей для сложной сортировки (с созданием соответствующего сложного индекса). Выберем поля N_fclt, Kurs,

N_grup с сортировкой в порядке возрастания (Ascending).

Пятый шаг (рис. 2.21) – задаем стиль отчета, расположение его на листе (вертикальный лист – Portrait или горизонтальный – Landscape) и суммарные параметры – расчет среднего значения (Avg) для поля Ball.

Рис. 2.21. Шаг 5 мастера разработки отчета

На последнем 6-м шаге задаем заголовок отчета, выбираем команду

«Сохранить отчет и модифицировать его в конструкторе отчетов»

Save report and modify it in Report Designer и после нажатия на кнопку

59

Рис. 2.23.
Контекстное меню

Finish задаем имя (Spisok) и место сохранения файлов отчета (будут созданы два файла с одинаковым именем и расширениями *.frt и *.frx).

В окне Report Designer мы увидим отчет, показанный на рис. 2.22.

Зона

заголовка

отчета

Верхний

колонтитул

страницы

 

 

Зона

Field

Line

заголовка

группы NZ

Label

 

 

 

Зона детализации

 

 

Зона итогов

 

 

группы NZ

Рис. 2.22. Окно конструктора отчетов

Зона

Нижний

итогов

колонтитул

 

 

отчета

страницы

В конструкторе отчет разбит на отдельные зоны, информация которых может присутствовать в отчете один раз (Title и Summary), в начале каждой страницы (Page Header) или в конце каждой страницы (Page Footer), в начале каждой группы (Group Header, групп может быть много) и в конце каждой группы (Group Footer) и для каждой записи таблицы (Detail).

Контекстное меню для конструктора отчетов (щелчок правой кнопкой мыши на пустом месте окна Report Designer) содержит пункты (рис. 2.23):

Paste – вставить;

Preview – предварительный просмотр отчета на экране;

Print – напечатать отчет на принтере;

Data Environment – открыть окно данных, связанных с отчетом;

Data Grouping – определить группы для отчета. Первое, что нужно сделать для получения нуж-

ного нам отчета – открыть окно Data Environment,

60