FoxPro8

         

Списки


Visual FoxPro позволяет использовать разные объекты для отображения в форме одного и того же поля. Например, в предыдущем примере для ввода информации в поле, указывающее страну проживания, мы использовали переключатель. Если вводимых в поле значений много, удобно использовать списки, называемые объектами типа ListBox (Список).

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

Таблица 6.14. Значения свойства RowSourceType



Значение Источник данных
0 - None Значения элементов списка определяются программно с помощью методов Additem (Добавить объект) или AddListltem (Добавить объект списка)
1 - Value Список задается в виде строки, элементы в которой разделяются запятыми
2 - Alias В качестве источника данных используется таблица. Количество выводимых полей таблицы определяется значением свойства ColumnCount (Количество полей)
3 - SQL Statement) Список содержит данные, полученные в результате выполнения SQL-оператора
4 - Query (.QPR) Список содержит данные, полученные в результате выполнения указанного запроса. Запрос задается именем файла с расширением .QPR
5 - Array Источником данных является заданный массив
6 - Fields Значения элементов списка определяются полями таблицы
7 - Files Список содержит перечень файлов текущей папки. В свойстве RowSource (Источник данных списка) вы можете задать шаблон выбора файлов
8 - Structure В качестве источника данных используется структура таблицы
9 - Popup Список содержит пункты всплывающего меню

Объекты типа ListBox имеют также свойства, которые отсутствовали у ранее рассмотренных объектов (табл. 6.15).

Таблица 6.15. Свойства объектов типа ListBox, отсутствовавшие у рассмотренных ранее объектов

Свойство Назначение
ColumnCount (Количество колонок) Определяет число колонок в списке
FirstElement (Первый элемент) Задает первый элемент массива, который будет отображаться в списке
NumberOfElements (Количество элементов) Определяет количество элементов массива, отображаемых в списке
RowSource (Источник данных списка) Указывает источник данных списка
<
Разместим в форме, предназначенной для редактирования списка клиентов из таблицы customer, список, который будем использовать для ввода названия города проживания клиента. В качестве источника данных для списка будем использовать таблицу.

  • Создайте дополнительную таблицу city, содержащую одно поле Nmcity, и введите в нее названия всех городов предполагаемых клиентов фирмы.


  • Откройте в окне конструктора форму для ввода информации о клиентах.


  • Откройте окно окружения формы, выбрав из меню View (Вид) команду Data Environment (Среда окружения). Для добавления в окружение формы таблицы с наименованиями городов выберите команду Add (Добавить) контекстного меню. На экране откроется диалоговое окно Add Table or View (Добавить таблицу или представление данных), в котором выберите таблицу city.


  • Удалите из формы поле ввода города проживания покупателя, поскольку в данном примере для ввода значения города проживания клиента будет использоваться список.


  • Нажмите кнопку List Box (Список)
    на панели инструментов Form Controls (Элементы управления формы).


  • Щелкните на месте удаленного поля ввода.


  • Откройте окно Properties (Свойства) размещенного в форме списка.


  • Чтобы связать созданное поле с полем таблицы customer, выберите свойство controisource (Источник данных). В поле ввода значения свойства воспользуйтесь кнопкой раскрытия списка и из списка всех полей открытой таблицы customer выберите поле city.


  • Скорректируйте свойство RowsourceType (Тип источника данных), которое указывает тип источника данных. Выберите из списка значение Fields (Поля), поскольку список городов располагается в поле Nmcity таблицы city.


  • Скорректируйте свойство RowSource (Источник данных списка), задав в поле ввода значения свойства city.Nmcity.


  • Запустите форму на выполнение. Теперь при редактировании списка клиентов в поле ccity таблицы customer будет заноситься значение, выбираемое из списка (рис. 6.28).




  • Рис. 6.28. Использование в форме списка


    Содержание раздела