![]() |
|
Поиск строки в Дереве | ☑ | ||
---|---|---|---|---|
0
renowka
15.03.13
✎
10:06
|
На управляемой форме расположено заполненное дерево. Есть поле ввода строки и кнопка "поиска". Как сделать поиск строки введенной в поле вовода по нажатию на кнопку "поиск"? По аналогии с тем что расположен в главной панели в обычном приложении.
|
|||
1
sapphire
15.03.13
✎
10:07
|
(0) Свойство ОтборСтрок
|
|||
2
sapphire
15.03.13
✎
10:08
|
Ну или находить строку и делать её текущей.
|
|||
3
renowka
15.03.13
✎
10:11
|
Могу найти строки и получить их индексы. Не получается по нажатию на "поиск", выделить следующую строку
|
|||
4
pessok
15.03.13
✎
10:12
|
(3) что конкретно не получается?
|
|||
5
pessok
15.03.13
✎
10:12
|
+(4) и почему именно индекс, а не сама строка?
|
|||
6
renowka
15.03.13
✎
10:13
|
Индекс - потому что 8.2
|
|||
7
renowka
15.03.13
✎
10:14
|
Не получается нажать "поиск", спозиционироваться на строке и остановиться. Нажать опять поиск - спозиционироваться на следующей строке
|
|||
8
pessok
15.03.13
✎
10:14
|
(6) а СтрокаДереваЗначений, потому что гладиолус, не выходит?
|
|||
9
pessok
15.03.13
✎
10:15
|
КоллекцияСтрокДереваЗначений (ValueTreeRowCollection)
Найти (Find) Синтаксис: Найти(<Значение>, <Колонки>, <ВключатьПодчиненные>) Параметры: <Значение> (обязательный) Тип: Произвольный. Искомое значение. <Колонки> (необязательный) Тип: Строка. Список имен колонок, в которых будет осуществляться поиск, разделенных запятыми. Если параметр не указан, поиск осуществляется по всем колонкам дерева. Значение по умолчанию: Пустая строка <ВключатьПодчиненные> (необязательный) Тип: Булево. Определяет, будут ли участвовать в поиске строки подчиненных коллекций (если таковые имеются). Истина - строки подчиненных коллекций участвуют в поиске. Значение по умолчанию: Ложь Возвращаемое значение: Тип: СтрокаДереваЗначений, Неопределено. Строка, которая содержит искомое значение. Если значение не найдено, то возвращается значение Неопределено. Описание: Осуществляет поиск значения в дереве в указанных колонках коллекции строк дерева значений. Доступность: Сервер, толстый клиент, внешнее соединение. Примечание: Метод эффективно использовать для поиска уникальных значений. Пример: НайденнаяСтрока = СтрокиСостава.Найти(ТекЗатрата, "Затрата"); Если НайденнаяСтрока = Неопределено Тогда Текст = "ru = ""Затрата не найдена!"";" + " en = ""Expense not found!"""; Предупреждение(НСтр(Текст)); Иначе Количество = НайденнаяСтрока.Норма; КонецЕсли; |
|||
10
renowka
15.03.13
✎
10:18
|
Мне нужно искать любую введенную подстроку, этот метод даст результат только на полное совпадение строки
|
|||
11
renowka
15.03.13
✎
10:19
|
Индексы получаю Коллекции элементов моего дерева и методом Найти(СтрокаДерева[ИмяПоля], СтрокаПоиска)
|
|||
12
pessok
15.03.13
✎
10:21
|
(11) дык СтрокаДерева это и есть то, что тебе нужно
|
|||
13
pessok
15.03.13
✎
10:22
|
(11) насколько я понимаю, ты рекурсивно оббегаешь дерево циклом. вот когда нашел, по СтрокаДерева и позиционируйся, а не по индексу его
|
|||
14
renowka
15.03.13
✎
10:26
|
ок, в дереве две, три, ... одинаковые, как на следующей найденной строке спозиционироваться?
|
|||
15
pessok
15.03.13
✎
10:27
|
(14) хранить в переменной модуля позицию счетчика, начинать следуюзий обход уже с нее
|
|||
16
sapphire
15.03.13
✎
10:27
|
(14) Запоминать, что ты на ней уже останавливалась
|
|||
17
pessok
15.03.13
✎
10:30
|
вообще, конечно, спасибо 1С за такой онанизм со списками на УФ
|
|||
18
renowka
15.03.13
✎
10:50
|
(16) Вот с этим и проблема. подскажите как это делается?
Есть ТаблицаИндексов и ДеревоДокументов. По кнопке нужно брать следующий индекс и искать строку в этом дереве, останавливаясь перед каждым новым индексом |
|||
19
renowka
15.03.13
✎
14:29
|
идеи?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |