Реляционные СУБД в Visual FoxPro 8

         

Списки

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, список, который будем использовать для ввода названия города проживания клиента. В качестве источника данных для списка будем использовать таблицу.

  1. Создайте дополнительную таблицу city, содержащую одно поле Nmcity, и введите в нее названия всех городов предполагаемых клиентов фирмы.
  2. Откройте в окне конструктора форму для ввода информации о клиентах.
  3. Откройте окно окружения формы, выбрав из меню View (Вид) команду Data Environment (Среда окружения). Для добавления в окружение формы таблицы с наименованиями городов выберите команду Add (Добавить) контекстного меню. На экране откроется диалоговое окно Add Table or View (Добавить таблицу или представление данных), в котором выберите таблицу city.
  4. Удалите из формы поле ввода города проживания покупателя, поскольку в данном примере для ввода значения города проживания клиента будет использоваться список.
  5. Нажмите кнопку List Box (Список)
  6. Щелкните на месте удаленного поля ввода.
  7. Откройте окно Properties (Свойства) размещенного в форме списка.
  8. Чтобы связать созданное поле с полем таблицы customer, выберите свойство controisource (Источник данных). В поле ввода значения свойства воспользуйтесь кнопкой раскрытия списка и из списка всех полей открытой таблицы customer выберите поле city.
  9. Скорректируйте свойство RowsourceType (Тип источника данных), которое указывает тип источника данных. Выберите из списка значение Fields (Поля), поскольку список городов располагается в поле Nmcity таблицы city.
  10. Скорректируйте свойство RowSource (Источник данных списка), задав в поле ввода значения свойства city.Nmcity.
  11. Запустите форму на выполнение. Теперь при редактировании списка клиентов в поле ccity таблицы customer будет заноситься значение, выбираемое из списка (рис. 6.28).

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

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