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

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
Webandrew
Прохожий
Сообщения: 2
Зарегистрирован: 13 Июль 2005, 17:03

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

Сообщение Webandrew »

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

Как мне обновить TreeBrowse чтобы открылась соответствующая ветка с папкой содержащей найденную запись
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

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

Сообщение 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)
Ответить