Контрол для ввода адреса
От: G0LD  
Дата: 04.08.08 04:33
Оценка:
Разрабатываем контрол для ввода пользователем адреса проживания. На данный момент встал вопрос о пересмотре его дизайна и его движка. Требуется консультация именно по первому вопросу — по его внешнему виду.
Сейчас контрол имеет такой вид:


Адрес человека формируется из двух частей — адреса КЛАДР(страна, город и улица) и уникальной части (дом, корпус, кв.)
Первые две строки — город и улица — выбираются в выпадающем списке из справочника КЛАДР (из его полной версии и локальной копии, в которую попали ранее введенные адреса). Поиск адреса по локальному справочнику КЛАДР пока отключен, иначе будет еще один раздел в выпадающем списке.


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

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


Процесс ввода нового адреса выглядит так:


Рассматриваются предложения по редизайну контрола с целью достижения его более удобной функциональности и "понятности". Какие формы ввода адреса используются в существующих и работающих приложениях?

04.08.08 09:44: Перенесено из '.NET GUI'
адресс ввод адреса
Re: Контрол для ввода адреса
От: grosborn  
Дата: 04.08.08 06:14
Оценка: +2
"Улицы вутри" или "Выполнить" непонятно зачем. Загромождают. Типы то же лишние.

Есть много уже отработанных подходов. Из них лучший не для веба — ввод по строке. Это когда ты начинаешь набирать первые буквы населенного пункта, под полем ввода открывается список выбора найденных в классификаторе вариантов соответствующих твоей строке ввода.

Если набираешь Иж
тебе список выбора
г. Ижевск Удмуртская Респ
пгт. Ижморский Кемеровская обл

Набираешь г.Иж
тебе только
г. Ижевск Удмуртская Респ

Если набираешь "Иж", а уже выбрал Краснодарский край, выбора нет, такого города в этом крае нету. При выборе одного из городов подставляется и регион в поле региона.

Ну и так же для всех полей, с учетом их специфики.
.
Posted via RSDN NNTP Server 2.1 beta
Забанен на рсдн за применение слова "Маргинал"
Re: Контрол для ввода адреса
От: Хитрик Денис Россия RSDN
Дата: 04.08.08 06:50
Оценка: +1
Здравствуйте, G0LD, Вы писали:

GLD>Рассматриваются предложения по редизайну контрола с целью достижения его более удобной функциональности и "понятности". Какие формы ввода адреса используются в существующих и работающих приложениях?


Понятность выиграет, если не будут использоваться сокращения. В лейблах и комбо-боксе они смотрятся особенно дико.
Правила нашего с вами форума.
Как правильно задавать вопросы. © 2001 by Eric S. Raymond; перевод: © 2002 Валерий Кравчук.
Re[2]: Контрол для ввода адреса
От: G0LD  
Дата: 04.08.08 07:05
Оценка:
Здравствуйте, grosborn, Вы писали:

G>"Улицы вутри" или "Выполнить" непонятно зачем. Загромождают. Типы то же лишние.


Там предполагается не улицы "Внутри", а "улицы во внутреннем справочнике"
Выполнить => открыть контрол ручного ввода нас. пункта (тот, что ниже скриншот)
Третий раздел там будет "Во внешнем справ." — полный КЛАДР (пока просто отключен по причине глюкогенности)

G>Есть много уже отработанных подходов. Из них лучший не для веба — ввод по строке. Это когда ты начинаешь набирать первые буквы населенного пункта, под полем ввода открывается список выбора найденных в классификаторе вариантов соответствующих твоей строке ввода.


G>Если набираешь Иж

G>тебе список выбора
G>г. Ижевск Удмуртская Респ
G>пгт. Ижморский Кемеровская обл

G>Набираешь г.Иж

G>тебе только
G>г. Ижевск Удмуртская Респ

G>Если набираешь "Иж", а уже выбрал Краснодарский край, выбора нет, такого города в этом крае нету. При выборе одного из городов подставляется и регион в поле региона.


Вероятно, на скринах не совсем ясно это видно, но именно так это и работает:
Re: Контрол для ввода адреса
От: G0LD  
Дата: 04.08.08 07:23
Оценка:
Есть большое желание увидеть альтернативные удобные варианты реализации контрола для ввода адресов на основе справочника КЛАДР с возможность ручного ввода недостающих в нем объектов. Как можно красиво объединить выбор справочных значений с вводом вручную, чтобы это было очевидно и понятно пользователю?
Re[3]: Контрол для ввода адреса
От: grosborn  
Дата: 04.08.08 08:46
Оценка:
> Вероятно, на скринах не совсем ясно это видно, но именно так это и работает:
>

Я же говорю — должен быть список. Это простой перечень элементов. А у тебя это целый контрол какой-то.

Ижевск; Удмуртская; Россия
— непонятно написно. Надо:
г. Ижевск (Удмуртская Респ, Россия)

Ещё у полей должен быть выбор из полного списка, открывающегося по присоединенной кнопочке с треугольничком — это тот же самый список, только поведение чуть другое. При наборе текста список выбора открывается ещё не позиционированный, а по кнопке с треугольничком — позиционирован сразу.

Для ввода нового населенного пункта отдельного пункта твоего контрола не требуется. Если В классификаторе какой-то деревни нет, то пользователь просто набивает название руками в это поле ввода. Если пользователь ввел руками, то просто обозначай значком справа от поля, с подсказкой — такого в классификаторе нет.

По завершении ввода в форме ты можешь предусмотреть действия по дозаполнению своих справочников тем, что введено, если что-то не соответствует классификатору. То есть кнопочка, что у тебя маленькая, она не нужна.

То есть в идеале — только заголовки полей, поля с присоединенными кнопками и простыми присоединяющимися списками, индикаторы, подсказки и алгоритм валидации с дополнительными формами.
Posted via RSDN NNTP Server 2.1 beta
Забанен на рсдн за применение слова "Маргинал"
Re[2]: Контрол для ввода адреса
От: grosborn  
Дата: 04.08.08 08:53
Оценка:
> GLD>Рассматриваются предложения по редизайну контрола с целью достижения его более удобной функциональности и "понятности". Какие формы ввода адреса используются в существующих и работающих приложениях?
>
> Понятность выиграет, если не будут использоваться сокращения. В лейблах и комбо-боксе они смотрятся особенно дико.

У тех, кто постоянно работает, сокращения нормально воспринимаются.
Вот этот вариант:
г. Ижевск (Удмуртская Республика, Россия)

даже может проигрывать вот этому:
г. Ижевск (Удмуртская Респ, Россия)

потому что воспринимается мозгом чуть иначе, Республика — незначащее в этом контексте слово занимает много места и замедляет распознавание группы слов.
Posted via RSDN NNTP Server 2.1 beta
Забанен на рсдн за применение слова "Маргинал"
Re[3]: Контрол для ввода адреса
От: grosborn  
Дата: 04.08.08 08:53
Оценка:
уж не говоря о варианте

город Ижевск (Удмуртская Республика, Россия)
Posted via RSDN NNTP Server 2.1 beta
Забанен на рсдн за применение слова "Маргинал"
Re[3]: Контрол для ввода адреса
От: Хитрик Денис Россия RSDN
Дата: 04.08.08 09:15
Оценка:
Здравствуйте, grosborn, Вы писали:

>> Понятность выиграет, если не будут использоваться сокращения. В лейблах и комбо-боксе они смотрятся особенно дико.

G>У тех, кто постоянно работает, сокращения нормально воспринимаются.
G>Вот этот вариант:
G>г. Ижевск (Удмуртская Республика, Россия)
G>даже может проигрывать вот этому:
G>г. Ижевск (Удмуртская Респ, Россия)
G>потому что воспринимается мозгом чуть иначе, Республика — незначащее в этом контексте слово занимает много места и замедляет распознавание группы слов.

Уточню.
На последней картинке есть комбобокс с элементами "окр", "у", "р-н". С моей точки зрения, "округ", "район" выглядели бы гораздо привлекательнее внутри предлагаемого списка.
Вторая картинка имеет в выпавшем контроле строку: "Улицы внутр.сп.". При том, что места — вагон.

Лейблы можно было бы организовать тоже без сокращений с помощью groupbox:
*** Область **************
Тип: <Combo> <EditBox>
**************************

*** Район   **************
Тип: <Combo> <EditBox>
**************************

*** Населённый пункт *****
Тип: <Combo> <EditBox>
**************************

Насчёт незначащих слов. Ничто не мешает выделять их более бледным цветом или меньшим размером. В том числе в комбобоксах.
Ну и если применять сокращения, то их нужно регламентировать, чтобы не возникло разных: "г. Ижевск", "гор Ижевск", "город Ижевск".
Правила нашего с вами форума.
Как правильно задавать вопросы. © 2001 by Eric S. Raymond; перевод: © 2002 Валерий Кравчук.
Re[4]: Контрол для ввода адреса
От: grosborn  
Дата: 04.08.08 09:38
Оценка: 8 (1)
> Уточню.
> На последней картинке есть комбобокс с элементами "окр", "у", "р-н". С моей точки зрения, "округ", "район" выглядели бы гораздо привлекательнее внутри предлагаемого списка.

С этим соглашусь.

> Вторая картинка имеет в выпавшем контроле строку: "Улицы внутр.сп.". При том, что места — вагон.


Это вообще нужно убрать и спора не будет.

> Лейблы можно было бы организовать тоже без сокращений с помощью groupbox:

>
> *** Область **************
> Тип: <Combo> <EditBox>
> **************************
> 
> *** Район   **************
> Тип: <Combo> <EditBox>
> **************************
> 
> *** Населённый пункт *****
> Тип: <Combo> <EditBox>
> **************************
>


С этим не соглашусь категорически. Это визуальная перегрузка формы. Напрягает через некоторое время работы.
И эти комбо вообще нужно убрать. Должно быть просто:

Заголовок поля: Поле
Заголовок поля: Поле
Заголовок поля: Поле
Заголовок поля: Поле

Регион: Краснодарский край
Район: Апшеронский район
Населенный пункт: г.Хадыженск

и т.д.

И здесь как раз сокращения нормально. "железнодорожная станция" лучше уж будет "жд станция".

> Насчёт незначащих слов. Ничто не мешает выделять их более бледным цветом или меньшим размером. В том числе в комбобоксах.


Экстрим. Да и технически это усложнение. Предложение имеет право на жизнь, но я лично так мудрить не стал бы. Для визуальных приложений ещё подумал бы, а для ввода адреса — нет.

> Ну и если применять сокращения, то их нужно регламентировать, чтобы не возникло разных: "г. Ижевск", "гор Ижевск", "город Ижевск".


Нормализовывать их нужно. То есть приводить к одному стандарту. Это немного другое, чем регламентировать.
Posted via RSDN NNTP Server 2.1 beta
Забанен на рсдн за применение слова "Маргинал"
Re[3]: Контрол для ввода адреса
От: Mamut Швеция http://dmitriid.com
Дата: 04.08.08 12:45
Оценка:
G>>Если набираешь "Иж", а уже выбрал Краснодарский край, выбора нет, такого города в этом крае нету. При выборе одного из городов подставляется и регион в поле региона.

GLD>Вероятно, на скринах не совсем ясно это видно, но именно так это и работает:

GLD>

Ужас. Зачем столько пустого места? Зачем надписи "внтури сп." и "выполнить"?


dmitriid.comGitHubLinkedIn
Re: Контрол для ввода адреса
От: Dog  
Дата: 04.08.08 16:40
Оценка:
GLD>Рассматриваются предложения по редизайну контрола с целью достижения его более удобной функциональности и "понятности". Какие формы ввода адреса используются в существующих и работающих приложениях?
Кстати, а что по этому поводу говорит 1С ?
... << RSDN@Home 1.2.0 alpha rev. 730>>
Re[2]: Контрол для ввода адреса
От: Аноним  
Дата: 05.08.08 04:43
Оценка:
Dog>Кстати, а что по этому поводу говорит 1С ?

Есть подбор одного значения по строке (списка подборе по строке нет), выбор из справочника и набор текстом самостоятельно.
Если наберешь г.Ижевск, то ничего из классификатора не получишь.
Сокращения и порядок классификатора рулят:

Томская обл
Колпашевский р-н
Колпашево г

Всё как в классификаторе. Ну в классификаторе это понятно, экономия места.
Re[4]: Контрол для ввода адреса
От: G0LD  
Дата: 06.08.08 07:02
Оценка:
G>Ещё у полей должен быть выбор из полного списка, открывающегося по присоединенной кнопочке с треугольничком — это тот же самый список, только поведение чуть другое. При наборе текста список выбора открывается ещё не позиционированный, а по кнопке с треугольничком — позиционирован сразу.

G>То есть в идеале — только заголовки полей, поля с присоединенными кнопками и простыми присоединяющимися списками, индикаторы, подсказки и алгоритм валидации с дополнительными формами.


Нашел что-то отдаленно похожее по описанию (здесь http://www.mista.ru/articles1c/kladr.htm)

заполнение города
Re: Контрол для ввода адреса
От: Sinclair Россия https://github.com/evilguest/
Дата: 12.08.08 03:15
Оценка: 25 (3) +1 :)
Здравствуйте, G0LD, Вы писали:

После многолетних размышлений о способах ввода и отображения адреса я пришел к такому выводу:
Адрес должен вводиться одной строкой.
Причины:
1. Адрес — это адрес. Это монолитная вещь. Если я хочу скопировать адрес из одного места в другое, я хочу скопировать его целиком, а не перебивать десять мелких полей.
2. Структура адреса сильно зависит от локальных особенностей. Термины "владение" и "строение" практически не встречаются за пределами Москвы, а в поселке Кольцово Новосибирской области до 2008 года не было улиц.
3. Принуждать человека к определенной последовательности ввода информации — плохо.

Итак, как бы я действовал:
1. Придумал парсер адресов. Нужно распознавать несколько видов типичных выражений, которые сильно зависят от предметной области.
2. Сделал бы контрол на основе RichEdit или чего-то еще, что позволяет раскрашивать синтаксис
3. Придумал раскраску синтаксиса для адреса. Главное — отличать распознанные идентификаторы от нераспознанных, чтобы помочь человеку с ними справиться.
4. Выполнял бы парсинг в момент валидации.

То есть, допустим оператор скопипастил в контрол текст "Волгина, 1, позвать Семёна" и нажал Tab.
Контрол задумался, и превратил текст в
"117485, г. Москва, ул. Академика Волгина, д.1, позвать Семёна". Подразумевается, что "позвать семена" распознать не удалось. Если оператору не нравится результат, то он его исправляет.

Неплохие примеры подобного функционала есть в Outlook: контролы для ввода списка адресатов письма и контрол ввода адреса контакта.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[2]: Контрол для ввода адреса
От: Stanislav Elinson  
Дата: 12.08.08 08:34
Оценка:
Sinclair wrote:
> Skip
> То есть, допустим оператор скопипастил в контрол текст "Волгина, 1,
> позвать Семёна" и нажал Tab.
> Контрол задумался, и превратил текст в
> "/117485, г. Москва, ул. Академика /Волгина, /д./1, *позвать Семёна*".
> Подразумевается, что "позвать семена" распознать не удалось. Если
> оператору не нравится результат, то он его исправляет.

А как себя должен вести такой контрол, если есть несколько вариантов, подходящих под "Волгина, 1"?
Posted via RSDN NNTP Server 2.1 beta
Re[3]: Контрол для ввода адреса
От: Sinclair Россия https://github.com/evilguest/
Дата: 12.08.08 09:00
Оценка:
Здравствуйте, Stanislav Elinson, Вы писали:

SE>А как себя должен вести такой контрол, если есть несколько вариантов, подходящих под "Волгина, 1"?

Должен ругаться и предлагать разрулить неопределенность вручную.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[4]: Контрол для ввода адреса
От: Stanislav Elinson  
Дата: 12.08.08 09:17
Оценка:
Sinclair wrote:
> Должен ругаться и предлагать разрулить неопределенность вручную.

Хмм, какой-то это не очень дружелюбный контрол.
Наверое все-таки неплохо выподающий список вариантов где-то показать?
Posted via RSDN NNTP Server 2.1 beta
Re[5]: Контрол для ввода адреса
От: Sinclair Россия https://github.com/evilguest/
Дата: 12.08.08 09:36
Оценка:
Здравствуйте, Stanislav Elinson, Вы писали:

SE>Хмм, какой-то это не очень дружелюбный контрол.

SE>Наверое все-таки неплохо выподающий список вариантов где-то показать?
Посмотрите, как работает MS Outlook при распознавании адресов получателей.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[2]: Контрол для ввода адреса
От: grosborn  
Дата: 13.08.08 05:44
Оценка: :)
Поздравляю, ты изобрел велосипед с квадратными колесами!
Если тебе нужно вводить адрес строкой, то просто к тому, что было описано выше добавляешь снизу одно поле "Адрес строкой" и делаешь соответствующие обработчики. Вариант отработанный.
Posted via RSDN NNTP Server 2.1 beta
Забанен на рсдн за применение слова "Маргинал"
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.