Форум: "Прочее";
Текущий архив: 2007.09.30;
Скачать: [xml.tar.bz2];
ВнизПоиск в выподающем списке, покритекуйте идею. Найти похожие ветки
← →
Kolan © (2007-08-31 09:28) [0]Здравстсвуйте,
Допустим есть список:
123 | Вася
456 | Сеня
789 | Павлик
итд…
Список этот в ComboBox"е(DB). Надо сделать возможность выбрать строку как по коду, так и по имени.
Решения
1. Над комбо боксом сделать два поля для кода и имени соответственно. Те вводиш в поле «код» 1 попадаем на Васю, итд…
С именем так же…
2.(Мое решение). Так как код это всегда число, а имя строка, то имхо можно обойтись без полей ввода. Можно анализоровать вводимые пользователем символы и если он набирает цифры, то искать по коду, а если буквы, то по имени.
Вопрос: нормальное ли решение 2?
← →
Сергей М. © (2007-08-31 09:32) [1]
> нормальное ли решение 2?
А у потенциального юзера нельзя ли уточнить, как ему будет удобней ?
← →
Rouse_ © (2007-08-31 09:36) [2]Если условие два гарантированно будет выполняться, то естественно проще обойтись общим полем ввода, главное довести это до пользователя
← →
Kolan © (2007-08-31 09:36) [3]> А у потенциального юзера
Не, мне до него не добраться. Тестеры сказали что 2 удобно…
Где бы посмотреть подобные решения, обычно если список с одним полем, то это в полне удобно(например выбор горога в интернет форме). А с двумя полями я сомневаюсь…
← →
Сергей М. © (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]> Я тоже сомневаюсь, что юзеру будет интересен и/или необходим
> код
Не код однозначно интересен. вместо имен там больницы. Тестер говорит пользователи коды наизусть помнють.
> Можно рядом положить какой-нибудь переключатель вроде
В другом месте тойже проги есть такое решение, но там не комбо бокс, а лист вох… Может действительно так и сделать? И однозначно буде и везде в программе фильтрация будет одинаково устроена… Наверно так и сделаю…
← →
Kolan © (2007-08-31 10:12) [9]
> [6] palva © (31.08.07 09:58)
Интересное поведение…
← →
Kolan © (2007-08-31 10:14) [10]
Наверно так и сделаю…
Только вот место отедает эти контролы порядочно…
← →
homm © (2007-08-31 10:25) [11]> Можно анализоровать вводимые пользователем символы и если
> он набирает цифры, то искать по коду, а если буквы, то по
> имени.
А можно ничего не анализировать и всегда искать в обоих полях, раз уж DB.
← →
Kolan © (2007-08-31 10:32) [12]> А можно ничего не анализировать и всегда искать в обоих
> полях, раз уж DB.
В принципе да, действительно…
Сейчас запрос, при набраной букве «а» выглядит так:… AND (Upper(NMPROF) LIKE Upper("a%"))"#$D#$A
И так:…AND (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
Ок, посмотрю пойду…
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.051 c