Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.09.30;
Скачать: CL | DM;

Вниз

Поиск в выподающем списке, покритекуйте идею.   Найти похожие ветки 

 
Kolan ©   (2007-08-31 09:28) [0]

Здравстсвуйте,
 Допустим есть список:

123 | Вася
456 | Сеня
789 | Павлик
итд&#133


Список этот в ComboBox"е(DB). Надо сделать возможность выбрать строку как по коду, так и по имени.

Решения
1. Над комбо боксом сделать два поля для кода и имени соответственно. Те вводиш в поле «код» 1 попадаем на Васю, итд&#133
С именем так же&#133

2.(Мое решение). Так как код это всегда число, а имя строка, то имхо можно обойтись без полей ввода. Можно анализоровать вводимые пользователем символы и если он набирает цифры, то искать по коду, а если буквы, то по имени.

Вопрос: нормальное ли решение 2?


 
Сергей М. ©   (2007-08-31 09:32) [1]


> нормальное ли решение 2?


А у потенциального юзера нельзя ли уточнить, как ему будет удобней ?


 
Rouse_ ©   (2007-08-31 09:36) [2]

Если условие два гарантированно будет выполняться, то естественно проще обойтись общим полем ввода, главное довести это до пользователя


 
Kolan ©   (2007-08-31 09:36) [3]

> А у потенциального юзера

Не, мне до него не добраться. Тестеры сказали что 2 удобно&#133

Где бы посмотреть подобные решения, обычно если список с одним полем, то это в полне удобно(например выбор горога в интернет форме). А с двумя полями я сомневаюсь&#133


 
Сергей М. ©   (2007-08-31 09:42) [4]


> с двумя полями я сомневаюсь


Я тоже сомневаюсь, что юзеру будет интересен и/или необходим код, если конечно юзер не прожженный бухгалтер, который план счетов воспринимает не иначе как куча кодов)


 
Virgo_Style ©   (2007-08-31 09:46) [5]

(2) imho очень логично.
Можно рядом положить какой-нибудь переключатель вроде RadioGroup или SpeedButton - искать как число, искать как строку, автоматический выбор. И на этот переключатель обязательно горячие клавиши назначить.


 
palva ©   (2007-08-31 09:58) [6]

> Где бы посмотреть подобные решения,
Можно запустить regedit, в нем слева показано дерево. Некоторые ветки в этом дереве можно открыть, потом встать где-нибудь выше. Если теперь с клавиатуры вводить буквы, то выделение будет перемещаться вниз на введенную букву. Например вводим D и сразу же перемещаемся вниз на первый попавшийся видимый узел, имя которого начинается с D. Если ввести быстро сразу две буквы DI, то переместимся вниз на узе с названием DI... Если ввести D, а потом подумать и ввести I, то переместимся сначала на D..., а потом новый поиск ниже до узла I...


 
Игорь Шевченко ©   (2007-08-31 10:00) [7]

Мы делали, как в [5]
Анализ усложняет.


 
Kolan ©   (2007-08-31 10:12) [8]

> Я тоже сомневаюсь, что юзеру будет интересен и/или необходим
> код

Не код однозначно интересен. вместо имен там больницы. Тестер говорит пользователи коды наизусть помнють.


> Можно рядом положить какой-нибудь переключатель вроде

В другом месте тойже проги есть такое решение, но там не комбо бокс, а лист вох&#133 Может действительно так и сделать? И однозначно буде и везде в программе фильтрация будет одинаково устроена&#133 Наверно так и сделаю&#133


 
Kolan ©   (2007-08-31 10:12) [9]


> [6] palva ©   (31.08.07 09:58)

Интересное поведение&#133


 
Kolan ©   (2007-08-31 10:14) [10]


Наверно так и сделаю…

Только вот место отедает эти контролы порядочно&#133


 
homm ©   (2007-08-31 10:25) [11]

> Можно анализоровать вводимые пользователем символы и если
> он набирает цифры, то искать по коду, а если буквы, то по
> имени.

А можно ничего не анализировать и всегда искать в обоих полях, раз уж DB.


 
Kolan ©   (2007-08-31 10:32) [12]

> А можно ничего не анализировать и всегда искать в обоих
> полях, раз уж DB.

В принципе да, действительно&#133

Сейчас запрос, при набраной букве «а» выглядит так:
&#133 AND (Upper(NMPROF) LIKE Upper("a%"))"#$D#$A

И так:
&#133AND (CAST(CDPROF AS VarChar(7)) LIKE "1%")"#$D#$A
При набраной «1»

А вы как предлогаете организовать запрос?


 
homm ©   (2007-08-31 10:39) [13]

Как то так :)
…AND ((CAST(CDPROF AS VarChar(7)) LIKE "XX%") OR (Upper(NMPROF) LIKE Upper("XX%")))


 
KSergey ©   (2007-08-31 11:17) [14]

Подобных DB-лукапов много в библиотеке InfoPower: с многоколоночными выпадашками, поискалочками и т.д. (а так же дописываением слова в combobox по первым вводимым символам)

Они обычно выкладывали скомпилированную демку, которую можно скачать и посмотреть (хотя бы для идей).


 
Kolan ©   (2007-08-31 11:26) [15]

> InfoPower

Ок, посмотрю пойду&#133


 
euru ©   (2007-08-31 11:39) [16]

Как это сделано в SAP R/3.

На экране имеется поле ввода, в которое вводится значение кода. Как только пользователь начинает вводить значение, выпадает отсортированный в хронологическом порядке список с кодами, вводимыми им ранее и совпадающими с уже введёнными символами. Одновременно рядом с полем появляется кнопка, позволяющая при необходимости вызвать окно поиска. В этом окне можно задать критерии поиска и выбрать из списка, удовлетворяющего этим критериям, нужное значение.


 
Kolan ©   (2007-08-31 11:43) [17]

> 16] euru ©   (31.08.07 11:39)

Благодарю — полезная информация.



Страницы: 1 вся ветка

Текущий архив: 2007.09.30;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.021 c
15-1188845968
DVM
2007-09-03 22:59
2007.09.30
из C++ в Delphi непонятная мне строка. Помогите перевести.


2-1189066158
Fleg
2007-09-06 12:09
2007.09.30
методы


15-1188811524
Alien1769
2007-09-03 13:25
2007.09.30
Демонстрация "правильной" работы в системе Клиент-Сервер


3-1179990389
олег_л
2007-05-24 11:06
2007.09.30
Quick Report


15-1188799204
yura123
2007-09-03 10:00
2007.09.30
коннекшн между домом