|
Поиск на "лету" | ☑ | ||
---|---|---|---|---|
0
Nevskiy83
22.02.16
✎
21:54
|
Скажите, пожалуйста, хочу сделать поиск из введенных ранее значений
Процедура НаименованиеАвтоПодборТекста(Элемент, Текст, ТекстАвтоПодбора, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; СписокЗначений = Новый СписокЗначений; Для каждого СтрокаТаб из ТаблицаЗначений цикл ОтборСтр = Новый Структура; ОтборСтр.Вставить("Строка", СтрокаТаб.Строка); Строки = ТаблицаЗначений.НайтиСтроки(ОтборСтр); Если Строки.Количество() > 1 Тогда Сч = 0; Пока Сч<Строки.Количество()-1 Цикл ТаблицаЗначений.Удалить(Строки[Сч]); Сч = Сч+1; КонецЦикла; КонецЕсли; КонецЦикла; Если НЕ СокрЛП(Текст) = "*" Тогда ДополнинительноеУсловие = "ГДЕ | ВТ.Строка ПОДОБНО &СтрокаПоиска"; Иначе ДополнинительноеУсловие = ""; КонецЕсли; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Строка |ПОМЕСТИТЬ ВТ |ИЗ | &ТЗ КАК ТЗ |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ВТ.Строка |ИЗ | ВТ КАК ВТ |" + ДополнинительноеУсловие; Запрос.УстановитьПараметр("ТЗ", ТаблицаЗначений); Если НЕ ДополнинительноеУсловие = "*" Тогда Запрос.УстановитьПараметр("СтрокаПоиска", Текст+"%"); КонецЕсли; Результат = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = Результат.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл СписокЗначений.Добавить(ВыборкаДетальныеЗаписи.Строка); КонецЦикла; Если СписокЗначений.Количество()>0 Тогда ЭлементСЗ=ВыбратьИзСписка(СписокЗначений,Элемент); КонецЕсли; Если ЭлементСЗ<>Неопределено И СписокЗначений.Количество()>0 Тогда Элемент.Значение = ЭлементСЗ.Значение; КонецЕсли; КонецПроцедуры Поиск работает, но при выводе списка происходит позиционирование на первую строку и продолжить ввод в строке не возможно. Можно ли это как-нибудь обойти? Спасибо. P.S Формы не управляемые |
|||
1
Garykom
гуру
22.02.16
✎
21:58
|
без картинки не совсем понятно что хочется
|
|||
2
Nevskiy83
22.02.16
✎
22:05
|
[URL=http://s013.radikal.ru/i323/1602/d6/6ec8e53764c1.jpg][IMG]http://s013.radikal.ru/i323/1602/d6/6ec8e53764c1t.jpg[/IMG][/URL]
Если я в поле Имя ввожу "1" и останавливаюсь, то появляется список найденного и дальше вводить не возможно, т.к фокус находится на первой строке списка. |
|||
3
Nevskiy83
22.02.16
✎
22:05
|
||||
4
Garykom
гуру
22.02.16
✎
22:07
|
понятно делай задержку по таймеру который взводится заново нажатиями кнопок
как только не нажимаем кнопки 1 секунду (самим подобрать удобное) то только запускаем поиск т.е. набрали слово, пауза 1 секунда - комп ищет пока набираем ничего не ищет |
|||
5
Garykom
гуру
22.02.16
✎
22:09
|
(4)+ еще можно играться с фокусом ввода http://devtrainingforum.v8.1c.ru/forum/thread.jsp?id=562834&threadtype=0
|
|||
6
0xFFFFFF
22.02.16
✎
22:10
|
(0) а потом говорят, ваша 1с тормозит...
|
|||
7
0xFFFFFF
22.02.16
✎
22:11
|
Искать на Подобно после ввода символа... мде
|
|||
8
Nevskiy83
22.02.16
✎
22:11
|
(6) Ну, вот, хотят люди, а ля "живой" поиск :)
(4) Спасибо! попробую |
|||
9
0xFFFFFF
22.02.16
✎
22:12
|
Для приличия хоть бы в тз разово спихнул
|
|||
10
0xFFFFFF
22.02.16
✎
22:13
|
(8) а потом будут говорить про мертвую 1с :)
|
|||
11
Garykom
гуру
22.02.16
✎
22:24
|
(6) угу когда на яве подобное ваял, то сделал прерывание подбора в случае когда он запустился и тут снова кнопку нажали
и про ограничения подбора не забыл limit|top чтобы не искал слишком долго |
|||
12
youalex
22.02.16
✎
22:45
|
(0) Сделать форму, эмулирующую "ВыбратьИзСписка" ?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |