Как TreeBrowse открыть определенную ветку
Есть TreeBrowse например со структурой папок и связаный сним browse
со списком, который фильтруется по номеру текущей выбранной папки.
Выполняю поиск по всему файлу (котрый Browse), нахожу запись удовлетворяющий условию.
Как мне обновить TreeBrowse чтобы открылась соответствующая ветка с папкой содержащей найденную запись
Как TreeBrowse открыть определенную ветку
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Re: Как TreeBrowse открыть определенную ветку
Там с листбоксом связана очередь. В очереди есть поле LevelWebandrew писал(а):Как TreeBrowse открыть определенную ветку
Есть TreeBrowse например со структурой папок и связаный сним browse
со списком, который фильтруется по номеру текущей выбранной папки.
Выполняю поиск по всему файлу (котрый Browse), нахожу запись удовлетворяющий условию.
Как мне обновить TreeBrowse чтобы открылась соответствующая ветка с папкой содержащей найденную запись
Для того, чтобы поддерево спряталось, надо установить знак 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)