Страница 1 из 1

Как TreeBrowse открыть определенную ветку

Добавлено: 22 Июнь 2007, 12:02
Webandrew
Как TreeBrowse открыть определенную ветку
Есть TreeBrowse например со структурой папок и связаный сним browse
со списком, который фильтруется по номеру текущей выбранной папки.
Выполняю поиск по всему файлу (котрый Browse), нахожу запись удовлетворяющий условию.

Как мне обновить TreeBrowse чтобы открылась соответствующая ветка с папкой содержащей найденную запись

Re: Как TreeBrowse открыть определенную ветку

Добавлено: 22 Июнь 2007, 22:40
Yufil
Webandrew писал(а):Как TreeBrowse открыть определенную ветку
Есть TreeBrowse например со структурой папок и связаный сним browse
со списком, который фильтруется по номеру текущей выбранной папки.
Выполняю поиск по всему файлу (котрый Browse), нахожу запись удовлетворяющий условию.

Как мне обновить TreeBrowse чтобы открылась соответствующая ветка с папкой содержащей найденную запись
Там с листбоксом связана очередь. В очереди есть поле Level
Для того, чтобы поддерево спряталось, надо установить знак Level в минус

Queue.Level=-Abs(Queue:Level)
Put(Queue)
Display(?TreeBrowse)

А чтобы развернулось - наоборот - в плюс

Queue.Level=Abs(Queue:Level)
Put(Queue)
Display(?TreeBrowse)

Другая проблема - при свёртывании и развёртывании мышью надо подкорректировать этот Level. Это события Event:Expanded и Event:Contracted

Примерно так
Case Field()
Of ?TreeBrowse)
Case Event()
Of Event:Expanded

Get(Queue,?TreeBrowse{PropList:MouseDownRow})
Queue:Level=Abs(Queue:Level)
Put(Queue)