Добавление данных в список
В главе 6 мы рассматривали использование объектов типа ListBox (Список), которые значительно облегчают ввод данных в поля, одновременно избавляя от дополнительных ошибок, которые могут возникнуть при вводе. Список может формироваться из значений, содержащихся в поле таблицы, массива, запроса и т. п. В этой главе рассмотрим создание списка, значения которого вводятся пользователем в интерактивном режиме с использованием дополнительного поля ввода.
Создание списка рассмотрим на примере редактирования поля, содержащего город, для таблицы customer. Выполните следующие действия:
- Откройте форму для ввода списка клиентов в окне конструктора форм.
- Нажмите кнопку List Box (Список) на панели инструментов Form Controls (Элементы управления формы).
- Установите указатель мыши на место предполагаемого расположения поля и, удерживая кнопку мыши в нажатом состоянии, переместите курсор по диагонали так, чтобы получилась рамка требуемого размера для поля списка.
- Откройте окно свойств для размещенного в форме списка.
- Скорректируйте свойство Name (Имя) созданного объекта, присвоив ему имя lstcity.
- Чтобы связать созданное поле с полем таблицы customer, выберите свойство controisource (Источник данных). В поле ввода значения свойства воспользуйтесь кнопкой раскрытия списка и из списка всех полей открытой таблицы Customer выберите поле ccity.
- Скорректируйте свойство RowSourceType (Тип источника данных), которое указывает тип источника данных. Выберите из списка значение Value (Значение), поскольку список городов будет формироваться с помощью вводимых значений.
- Используя кнопку Text Box (Поле ввода) на панели инструментов Form Controls (Элементы управления формы), создайте под списком поле редактирования.
- Скорректируйте свойство Name (Имя) поля редактирования, присвоив ему имя txtAddText.
- Используя окно процедур свойства Keypress (Нажатие клавиши), введите в нем следующие команды:
LPARAMETERS nKeyCode, nSHIFTCTRLALT IF nKeyCode = 13 && 13 к:л:-:-ав1си Enter IF!EMPTY(THIS.Value) * добавляем значен;;" в список THISFORM.lstCity.Addltem (THIS.Value) ENDIF * очищаем поле ввода THIS.Value = "" ENDIF
Эта процедура позволит пользователю ввести текст в поле ввода и нажатием клавиши Enter добавить значение в список, освободив окно для ввода следующей информации (рис. 15.27).
Рис. 15.27. Определение свойства KeyPress
Теперь при запуске формы на выполнение значения, введенные в поле ввода Поле формирования списка, при нажатии клавиши Enter переносятся в список городов (рис. 15.28).
Рис. 15.28. Формирование списка с помощью поля ввода в диалоговом режиме