Он-лайн самоучитель Visual FoxPro
Списки Visual FoxPro для отображения в форме одного и того же поля позволяет использовать разные объекты. Например, в предыдущем примере для ввода информации в поле, указывающее страну проживания, мы использовали переключатель. Если вводимых в поле значений много, удобно применять списки, называемые объектами типа ListBox (Список).
Списки в Visual FoxPro используются для отображения в форме элементов, которые могут быть заданы с помощью массива, меню, списка файлов, значений поля таблицы и т. д. Для указания источника данных для списка применяется свойство RowSourceType (Тип источника данных), имеющее значения, описанные в табл. 6.14.
Таблица 6.14. Значения свойства RowSourceType
Значение | Источник данных |
0 (None) | Значения элементов списка определяются программно с помощью методов Additem (Добавить объект) или AddListltem(Добавить объект списка) |
1 (Value) | Список задается в виде строки, элементы в которой разделяются запятыми |
2 (Alias) | В качестве источника данных используется таблица. Количество выводимых полей таблицы определяется значением свойства ColumnCount (Количество полей) |
3 (SQLStatement) | Список содержит данные, полученные в результате выполнения SQL-оператора |
4 (Query) | Список содержит данные, полученные в результате выполнения указанного запроса. Запрос задается именем файла с расширением QPR |
5 (Array) | Источником данных является заданный массив |
6 (Fields) | Значения элементов списка определяются полями таблицы |
7 (Files) | Список содержит перечень файлов текущей папки. В свойстве RowSource (Источник данных списка) вы можете задать шаблон выбора файлов |
8 (Structure) | В качестве источника данных используется структура таблицы |
9 (Popup) | Список содержит пункты всплывающего меню |
Объекты типа ListBox имеют также свойства, которые отсутствовали у ранее рассмотренных объектов (табл. 6.15).
Таблица 6.15. Свойства объектов типа ListBox, отсутствовавшие у рассмотренных ранее объектов
Свойство | Назначение |
ColumnCount(Количество колонок) | Определяет число колонок в списке |
FirstElement(Первый элемент) | Задает первый элемент массива, который будет отображаться в списке |
Number Of Elements(Количество элементов) | Определяет количество элементов массива, отображаемых в списке |
RowSource(Источник данных списка) | Указывает источник данных списка |
Разместим в форме, предназначенной для редактирования списка клиентов из таблицы customer, список, который будем применять для ввода названия города проживания клиента. В качестве источника данных для списка будем использовать таблицу.
- Создайте дополнительную таблицу city, содержащую одно поле Nmcity и введите в нее названия всех городов предполагаемых клиентов фирмы.
- Откройте в окне конструктора форму для ввода информации о клиентах.
- Откройте окно окружения формы, выбрав из меню View (Вид) команду Data Environment (Окружение). Для добавления в окружение формы таблицы с наименованиями городов выберите команду Add (Добавить) контекстного меню. На экране откроется диалоговое окно Add Table or View (Добавить таблицу или отображение), в котором выберите таблицу city.
- Удалите из формы поле ввода города покупателя, поскольку в данном примере для ввода значения города проживания клиента будет использоваться список.
- Нажмите кнопку List Box (Список) на панели инструментов FormControls (Элементы управления формы).
- Щелкните на месте удаленного поля ввода.
- Откройте окно Properties (Свойства) размещенного в форме списка.
- Чтобы связать созданное поле с полем таблицы customer, выберите свойство controisource (Источник данных). В поле ввода значения свойства воспользуйтесь кнопкой раскрытия списка и из списка всех полей открытой таблицы customer выберите поле ccity.
- Скорректируйте свойство RowSourceType (Тип источника данных), которое указывает тип источника данных. Выберите из списка значение Fields(Поля), поскольку список городов располагается в поле Nmcity таблицы City.

Рис. 6.25. Использование в форме списка
- Скорректируйте свойство RowSource (Источник данных списка), задав в поле ввода значения свойства city NmCity.
- Запустите форму на выполнение. Теперь при редактировании списка клиентов в поле ccity таблицы customer будет заноситься значение, выбираемое из списка (рис. 6.25).
Назад | Оглавление | Дальше