Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2007.09.30;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.051 c
2-1188993958
Странник81
2007-09-05 16:05
2007.09.30
Вывод файла на экран


15-1188367884
Человек
2007-08-29 10:11
2007.09.30
Исскуство создание компонент (Фаронов)


1-1185019258
Makhanev Alexander
2007-07-21 16:00
2007.09.30
Совместимость с вистой...


15-1188387931
ElectriC
2007-08-29 15:45
2007.09.30
Проблемка c Vist ой


2-1188729507
MAXHo
2007-09-02 14:38
2007.09.30
Сохранение страниц в TWebBrowser





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский