FoxPro8

         

Добавление данных в список


В главе 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. Формирование списка с помощью поля ввода в диалоговом режиме


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