
- •Проектирование форм ввода и редактирования данных в конструкторе форм Visual FохРrо
- •Курский государственный технический университет.
- •1. Цель работы
- •2. Окно конструктора форм
- •3. Создание формы
- •3. 1. Настройка параметров формы
- •3. 2. Среда окружения формы
- •3. 3. Размещение объектов в форме
- •3. 3. 1. Размещение полей таблиц и надписей к ним с использованием построителя формы
- •3. 3. 2. Размещение текстовой информации в конструкторе форм
- •3. 3. 3. Размещение полей ввода
- •3. 3. 4. Размещение полей редактирования
- •4. Создание кнопок управления в конструкторе форм
- •4.1. Размещение одиночных кнопок
- •4.2. Создание группы кнопок
- •5. Создание переключателей и флажков
- •6. Создание линий и контуров
- •7. Применение списков для ввода и редактирования данных
- •7.1. Списки
- •7.2. Раскрывающиеся списки
- •8. Применение составных объектов для работы с таблицами
- •9. Порядок выполнения работы
- •10. Контрольные задания
- •11. Контрольные вопросы
7. Применение списков для ввода и редактирования данных
7.1. Списки
Списки в Visual FoxPro используются для отображения в форме элементов, которые могут быть заданы с помощью массива, меню, списка файлов, значений поля таблицы и т. д.
Visual FoxPro позволяет использовать разные объекты для отображения в форме одного и того же поля. Если вводимых в поле значений много, удобно применять списки, т. е. объекты типа ListBox (Список).
Для указания источника данных списка используется свойство RowSourceType (Тип источника данных), содержащее следующие значения:
Таблица 5
Значение |
Источник данных |
0 (None) |
Значения элементов списка определяются программно с помощью методов AddItem (Добавить объект) или AddListItem (Добавить объект списка) |
1 (Value) |
Список задается в виде строки, элементы в которой разделяются запятыми |
2 (Alias) |
В качестве источника данных используется таблица. Количество выводимых полей таблицы определяется значением свойства ColumnCount |
3 (SQL Statement) |
Список содержит данные, полученные в результате выполнения SQL оператора |
4 (Query) |
Список содержит данные, полученные в результате выполнения указанного запроса. Запрос задается именем файла с расширением .OPR |
5 (Array) |
Источником данных является заданный массив |
6 (Fields) |
Значения элементов списка определяются полями таблицы |
7 (Fields) |
Список содержит перечень файлов текущей папки. В свойстве RowSource вы можете задать шаблон выбора файлов |
8 (Structure) |
В качестве источника данных используется структура таблицы |
9 (Popup) |
Список содержит пункты всплывающего меню |
Объекты типа ListBox имеют дополнительные свойства, которые отсутствовали у ранее рассмотренных объектов:
Таблица 6
Свойство |
Назначение |
ColumnCount |
Определяет число колонок в списке |
FirstElement |
Задает первый элемент массива, который будет отображаться в списке |
NumberOfElements |
Определяет количество элементов массива, отображаемых в списке |
RowSourse |
Указывает источник данных списка |
Разместим в форме, предназначенной для редактирования списка клиентов из таблицы DoctorTab, список, который будем использовать для ввода специализации врача. В качестве источника данных для списка будем использовать таблицу.
Удалите из формы поле ввода специализации врача, поскольку в данном примере для ввода специализации врача будет использоваться список.
Нажмите кнопку List Box (Список) на панели инструментов Form Controls.
Щелкните на месте удаленного поля ввода.
Откройте окно Properties (Свойства) размещенного в форме списка.
Чтобы связать созданное поле с полем таблицы DoctorTab, выберите свойство ControlSource (Источник данных). В поле ввода значения свойства воспользуйтесь кнопкой раскрытия списка и из списка всех полей открытой таблицы DoctorTab выберите поле SpecDc.
Скорректируйте свойство RowSourceType, которое указывает тип источника данных. Выберите из списка значение Fields (Поля), поскольку список специализаций располагается в поле SpecDc таблицы DoctorTab.
Скорректируйте свойство RowSource (Источник данных списка), задав в поле ввода значения свойства doctortab. specdc.
Запустите форму на выполнение. Теперь при редактировании списка специализации врачей в поле SpecDc таблицы DoctorTab будет заноситься значение, выбираемое из списка (рис.10).
Р
ис.
10. Вывод специализации врача из списка