FoxPro Club Главная

Конференция Решения Фотоальбом Сайт М.Дроздова Статьи Файловый архив Книга Visual FoxPro 9.0 Русский Help для Visual FoxPro
Пользователей: 9146
Вход
Поле ввода слов из справочников

Класс - поле ввода для удобного и быстрого выбора слов из списка. Инкрементальный поиск с автоподстановкой при наборе (как в MS Office), выбор из списка. ПОЯВИЛАСЬ НОВАЯ ВЕРСИЯ (+).


 
Прислал: matod   Категория: Интерфейс


Поле ввода слов из справочников

Предлагаемый класс похож на стандартный текстбокс и комбобокс с некоторыми дополнительными возможностями - автоподстановка слова по мере набора, выбор из выпадающего списка, дополнение словаря. Для использования необходимо поместить экземпляр класса на форму, задать RowSource, ControlSource, имена ключевого поля и поля с значением слова и установить флаги разрешения добавления новых слов, вкл/выкл выпадающего списка и др.
Опыт показывает, что пользователи, хорошо владеющие клавиатурой, предпочитают набирать слова по символам. Этот класс позволяет заметно увеличить скорость ввода, сократить число ошибок и излишнего засорения словарей-справочников.
В архиве - две версии. Первая (старая) - содержится в папке OLD архива: сам класс в библиотеке SRCHTEXT.VCX, .VCT, краткая документация README.TXT, пример БД и формы с использованием класса. Свежая версия существенно изменена и дополнена - есть возможность в качестве источника данных указывать имя представления, которое будет автоматически открываться, задавать фильтр на отображаемые записи, выполнять поиск по подстроке, введены несколько видов реакции на новое слово, исправлены некоторые ошибки (и конечно добавлены новые, о которых я буду рад услышать :0) ). Класс DCT_ находится в библиотеке DICT с двумя своими наследниками DCT2_ и DCT2s_ которые позволяют показывать доп. поле из словаря и выбирать слово либо по названию с автоподстановкой, либо по коду. В библиотеке BASE содержаться базовые классы для построения словаря. Если у вас есть своя библиотека базовых классов, вы можете попробовать не копировать BASE.VCX и подменить своими классами. UTIL.PRG - набор нужных функций, которые можно подключить по SET PROCEDURE в вашем приложении. DCT.DOC содержит мало-мальское описание объектов, остальное придется смотреть по коду и комментариям или спрашивать у меня. Пишите, буду признателен за любые замечания и предложения.
 
Сделайте оценку этого решения Плохо Удовлетворительно Так себе Хорошо Отлично Текущая оценка: (4.853) Вложение [55.7]kb
Дополнения пользователей
Поле ввода слов из справочников
[+][?]
Armagedo
18.05.06 12:58:58

Был вопросик, Андрей ответил....
Остальным на будущее...

Таблица (словарь) с данными, к которой должен быть привязан контрол должна быть проиндексирована с
выражением индекса upper(...) для поля значений словаря...

для правильной работы контрола необходимо,
 чтобы источник данных имел индекс по текстовому полю, указываемому в  NameSource. Имя тега должно
совпадать с именем поля, а выражение индекса должно быть upper. Т.е. имея таблицу с полем name,
необходимо создать индекс:  index on upper(name) tag name additive

Armagedo
18.05.06 13:36:44

Был вопросик, Андрей ответил....
Остальным на будущее...

Таблица (словарь) с данными, к которой должен быть привязан контрол должна быть проиндексирована с
выражением индекса upper(...) для поля значений словаря...

для правильной работы контрола необходимо,
 чтобы источник данных имел индекс по текстовому полю, указываемому в  NameSource. Имя тега должно
совпадать с именем поля, а выражение индекса должно быть upper. Т.е. имея таблицу с полем name,
необходимо создать индекс:  index on upper(name) tag name additive

Armagedo
18.05.06 13:36:55

Был вопросик, Андрей ответил....
Остальным на будущее...

Таблица (словарь) с данными, к которой должен быть привязан контрол должна быть проиндексирована с
выражением индекса upper(...) для поля значений словаря...

для правильной работы контрола необходимо,
 чтобы источник данных имел индекс по текстовому полю, указываемому в  NameSource. Имя тега должно
совпадать с именем поля, а выражение индекса должно быть upper. Т.е. имея таблицу с полем name,
необходимо создать индекс:  index on upper(name) tag name additive

[Дополнить]



© 2000-2017 Fox Club 
При размещении любых материалов с сайта на других ресурсах- прямая ссылка на www.foxclub.ru обязательна
Яндекс.Метрика