Решено Поиск в окне выбора

Тема в разделе "Lotus - Программирование", создана пользователем beloff, 22 мар 2013.

  1. beloff

    beloff Well-Known Member

    Регистрация:
    24 июл 2012
    Сообщения:
    103
    Симпатии:
    0
    Всем привет. Вопрос следующий: можно ли организовать (и как, если можно) нормальный поиск в окне выбора. Описание задачи: при оформлении заказов есть куча контрагентов (есть отдельная вьюха где они хранятся по категориям - плательщик или получатель платежа 2.jpg ), юзерам лень скролить в поисках нужного, хотят чтобы поиском как в представлении искало. Окно вызывается
    PickListCollection(PICKLIST_CUSTOM если это важно. 1.jpg
    там идет Show Single Category "получатель платежа"
    Если название написать полностью так, как написано с кавычками и нажать Search Within Category - все нормально найдет. Если нажать Search All - ничего не найдет. Если производить поиск, например, по полю УНП, а не полному названию - ничего не найдет даже если нажать Search Within Category. Вопрос: как нибудь можно организовать нормальный поиск в окне, а не изврат? В представлении ковырялся, настройки столбцов менял, ничего не получилось. Прошу совета. Заранее спасибо.
     
  2. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.046
    Симпатии:
    18
    1) сделай первый столбец сортировочным и тогда достаточно будет просто писать название (без Ctrl+F)
    2) сделай рядом с кнопкой вызова окна небольшое поле куда достаточно вписать часть названия и по ентеру сразу открываться промт с названиями похожими на то, что ввели
     
  3. beloff

    beloff Well-Known Member

    Регистрация:
    24 июл 2012
    Сообщения:
    103
    Симпатии:
    0
    он и так сортировочный (Ascending). Название приходится писать с кавычками, Ctrl+F в окне не вызывается сочетанием клавиш, только когда начинаешь выбирать - вылазит окно поиска
     
  4. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    Можно организовать нормальный вид. Без кавычек.
    В окне поиска написано "Начинается с...", а не "Содержит..."
    И если название начинается с кавычек - следовательно...

    Ну я не встречал чтоб искали по названию контрагента. Обычно ищут по ИНН
     
  5. divankin

    divankin Senjor developer

    Регистрация:
    13 авг 2009
    Сообщения:
    182
    Симпатии:
    0
    Как вариант - вообще откажитесь от представления. Сделайте поиск с подсказками - ввел пару букв и тебе уже начали подсказывать значения. Как в Яндексе :)
    Показывайте окно с двумя полями: одно сверху для поискового запроса, второе ниже листбокс со списком значений. При каждом изменении значения верхнего поля заново вычисляется список значений в поле снизу. Так вы сможете делать поиск по любому набору полей в документах
     
  6. beloff

    beloff Well-Known Member

    Регистрация:
    24 июл 2012
    Сообщения:
    103
    Симпатии:
    0
    Divankin
    че-то не совсем идею догнал.
     
  7. Constantin A Chervonenko

    Constantin A Chervonenko Well-Known Member

    Регистрация:
    30 май 2006
    Сообщения:
    1.288
    Симпатии:
    0
    О! Ещё как важно.
    В Single Category обыкновенный Start with/Search text SearchAll не работает. Оно и понятно: 1-я сортированная колонка УЖЕ использована

    Зато, если отсортировать и вторую колонку в этой view, то по ней будет работать Start with/Search text Search within category
     
  8. susinmn

    susinmn Well-Known Member

    Регистрация:
    16 окт 2007
    Сообщения:
    530
    Симпатии:
    8
    По-моему, поиск будет по последней отсортированной.
     
  9. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.046
    Симпатии:
    18
    2) сделай рядом с кнопкой вызова окна небольшое поле куда достаточно вписать часть названия и по ентеру сразу открываться промт с названиями похожими на то, что ввели

    чем этот вариант не угодил?
     
  10. VladSh

    VladSh начинающий
    Lotus team

    Регистрация:
    11 дек 2009
    Сообщения:
    1.251
    Симпатии:
    2
    Интересен такой вариант: набираешь в поле, чуть ниже поля автоматически всплывает список с похожими вариантами, и при продолжении набора варианты автоматом корректируются; список кликабелен, т.е. выбранное значение вставляется в поле.
    Такое возможно сделать в Клиенте? JS или Java?
     
  11. Darkhan

    Darkhan Well-Known Member

    Регистрация:
    14 дек 2012
    Сообщения:
    96
    Симпатии:
    4
    VladSh, полноценного autocomplete на клиенте не получилось, но как альтернатива: база (там единственная форма)
     
  12. alexas

    alexas Well-Known Member

    Регистрация:
    10 июн 2009
    Сообщения:
    215
    Симпатии:
    0
    VladSh - в клиенте пользуюсь примерно так -
    поправил базу Darkhanа

    P.S. Кстати, если в отборе из списка использовыть @Contains вместо @Begins - будет искать совпадения и в середине слова.
    Можно скомбинировать @Contains и @Begins для поиска слова в предложении (если список состоит из предложений).
     

    Вложения:

  13. Darkhan

    Darkhan Well-Known Member

    Регистрация:
    14 дек 2012
    Сообщения:
    96
    Симпатии:
    4
    alexas, закрыть кнопку выбора у combobox-a с помощью layer, это очень ново для меня! хотя и реальный хардкорр)))
     
  14. VladSh

    VladSh начинающий
    Lotus team

    Регистрация:
    11 дек 2009
    Сообщения:
    1.251
    Симпатии:
    2
    Darkhan, alexas
    Круто, спасибо! :)

    С @Contains не получилось, не берёт варианты изнутри слов.
    Ещё хотелось бы ввод not case sensitive.
    А сильно хочется переход к листбоксу по клавише Down, это возможно не привлекая WinAPI? А то у меня на js что-то не выходит.

    Получилось: сделал Layer и поместил на него 2-й листбокс, в результате оно теперь появляется как бы сверху формы.
    Хотелось бы знать, есть ли подводные камни у такого решения? Влияет ли разрешение монитора и т.п. на положение Layer'а на форме? Не хотелось бы чтобы оно съехало куда-то вбок.
     
  15. alexas

    alexas Well-Known Member

    Регистрация:
    10 июн 2009
    Сообщения:
    215
    Симпатии:
    0
    VladSh, Layer не съезжает, от разрешения монитора не зависит. За все время пременения проблем не видел.
    Я еще скрываю иногда Laye-ом нижнюю полосу прокрутки календарного вида, если он внедрен на форму.

    Поместить листбокс на Layer классная мысль, спасибо.

    Давайте публиковать интересные UI "фишки" - то, что для тебя очевидно - может-быть откровением для других. Я уже призывал к этому раньше, но как-то не получил поддержки :) . А,то делаются классные базы, с огромным функционалом и чудовищным UI. Все-таки софт должен быть не только функциональным но и удобным и красивым - большой поклон продукции Aple времен Джобса (не реклама).

    изменено на case insensitive
     

    Вложения:

  16. alexas

    alexas Well-Known Member

    Регистрация:
    10 июн 2009
    Сообщения:
    215
    Симпатии:
    0
    case insensitive + поиск внутри слова (предлжения)
     

    Вложения:

  17. alexas

    alexas Well-Known Member

    Регистрация:
    10 июн 2009
    Сообщения:
    215
    Симпатии:
    0
    Еще UI "Фишка" :
    Задача: изменить скриптом поля открытого документа. Проблем нет, только поля визуально прописываются последовательно и это раздражает когда их много (например заполняем большую статическую таблицу). Если создать в памяти темповый док и записать нужные Item-ы туда, а потом сделать CopyAllItems(UI.document, True ) в целевой UI док (не забываем второй параметр - True) - поля обновляются мгновенно. Темповый док конечно не сохраняем.
     
  18. VladSh

    VladSh начинающий
    Lotus team

    Регистрация:
    11 дек 2009
    Сообщения:
    1.251
    Симпатии:
    2
    alexas
    Спасибо, вещь!)

    Всё-таки положил листбокс на слой, так лучше.
    Как насчёт перехода в листбокс по клавише Down, реально? Наверное это единственный трабл остался.
     
  19. VladSh

    VladSh начинающий
    Lotus team

    Регистрация:
    11 дек 2009
    Сообщения:
    1.251
    Симпатии:
    2
    Добавил скрытие листбокса при клике по форме, как бы "сброс всплывающего окошка". Только Exiting отрабатывает как-то странно, - только по клику выше поля ввода или сразу же ниже листбокса (я там форму переводами строки "продлил", а иначе событие не генерируется).
    + некоторые оптимизации.

    И всё-таки, как насчёт отлова клавиши Down? :)
    Добавил кнопку JS, но почему-то в 9-ке (в других не пробовал) выдаёт ошибку с каким-то бредом, что getElementByName не является функцией или что-то типа того. Это у всех так или только у меня?
     

    Вложения:

  20. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
Загрузка...

Поделиться этой страницей