On-line: Andrey, Haz, гостей 1. Всего: 3 [подробнее..]
АвторСообщение



Пост N: 16
Зарегистрирован: 22.01.14
ссылка на сообщение  Отправлено: 19.03.15 19:20. Заголовок: Tree в XBrowse


Начинаю новый проект, а в нем хочу данные представлять в виде дерева --
очень удобно, наглядно для пользователя. Дерево строится, показываю его в XBrowse.
Но есть проблемма, не знаю как подойти к ее решению

@ 4 , 0 XBROWSE oBrw Size oMainWindow:oMsgBar:nWidth, -oMainWindow:oMsgBar:nHeight Of oMainWindow DATASOURCE oTree ;
HEADERS "Наименование " ;
PICTURES nil ;
ON DBLCLICK RowEdit( oBrw:CurrentRow() );
CELL LINES FOOTERS FASTEDIT NOBORDER FONT oFontBrw

в XBROWSE показываю oTree, дерево отображается нормально, раскрывается и т.д.
в функции RowEdit - корректирую текущую запись, или в зависимости от флага добавляю запись

WITH OBJECT oBrw
:lVThumbTrack := .t.
:nStretchCol := 1
:lDisplayZeros := .f.
:bChange := { || AAll->( DBGOTO( oBrw:oTreeItem:Cargo[ 1 ] ) )}
:bEdit := { |oRec| RowEdit(oRec) }
oBrw:l2007 := .T.
oBrw:lFlatStyle := .F.

:CreateFromCode()

:bKeyChar := { |nKey| If( nKey == 13, Eval(oBrw:bLDblClick), nil ) }
oBrw:bLDblClick = { || MSGINFO("Нажали мышь"),If( oBrw:oTreeItem:nLevel == 1, Nil, (MsgInfo(oBrw:oTreeItem:nLevel), RowEdit(oBrw:CurrentRow()), oBrw:Refresh()) ) }

END
Eval( oBrw:bChange )
oBrw:Refresh()
oMainWindow:oClient := oBrw

записи корректируютя, добавляются в базы DBF, но как их отобразить, показать измененные в XBROWSE.
т.е. необходимо изменять данные в oTree. Не нашел никаких методов для перерисовки TREE.
Неужели нужно по новому перезачитывать в oTree данные из баз данных.
Примеров по этому не нашел. Может есть какие-то решения? Подскажите.

Harbour 3.2.0dev (r1412151448) + FWH14.12 + BCC582

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 3 [только новые]





Пост N: 297
Зарегистрирован: 17.06.10
ссылка на сообщение  Отправлено: 19.03.15 23:49. Заголовок: Можно в postedit обн..


Можно в postedit обновление бровса делать

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 17
Зарегистрирован: 22.01.14
ссылка на сообщение  Отправлено: 20.03.15 14:18. Заголовок: Tree в XBrowse


В XBrowse добавляю нужные колонки и пытаюсь вставить bOnPostEdit :
WITH OBJECT :AddCol()
:cHeader := "адрес установки" + CRLF +"(улица дом)"
:nHeadStrAlign := AL_CENTER
:bEditValue := { || If( oBrw:oTreeItem:nLevel == 1, 0, oBrw:oTreeItem:Cargo[ 5 ] ) }
:bOnPostEdit = { | oCol, xVal, nKey | AAll->cAdres := xVal, oBrw:Refresh() } // вставил для перерисовки
:nDataStrAlign := AL_LEFT
:nWidth := 150
END

ничего не изменилось

дерево строю таким образом:
// ---------------------------------------------------------
TREE oTree
oTree:Cargo := { 0, Space(40), 0, 0, Space(25), Space(25) }
do while ! AAll->( eof() )
TREEITEM oID_KOD PROMPT ATerm->CNAIM CARGO { 0, Space(40), 0, 0, Space(25), Space(25) }
TREE
do while ATerm->CNAIM == oID_KOD:cPrompt .and. ! AAll->( eof() )
TREEITEM oCNAIM PROMPT AAll->CNAIM CARGO { AAll->( RECNO()), AAll->CNAIM, AAll->nSOU, AAll->nMerch, AAll->cAdres, AAll->cMesto }
AAll->( DbSkip( 1 ) )
enddo
ENDTREE
enddo
ENDTREE

потом в XBrowse подключаю нужный столбец и показываю данные
:bEditValue := { || If( oBrw:oTreeItem:nLevel == 1, 0, oBrw:oTreeItem:Cargo[ 5 ] ) }

т.е. необходимо изменять соответствующие Cargo
Как-то необходимо связать между собой XBrowse и TREE, или получать соответствующие индексы элементов
oTREE и там все перезаписывать. А если необходимо добавить запись, т.е. мне нужно будеть отслеживать структуру oTREE и следить за этим? Странно, что нет никаких методов в объекте XBrowse, чтобы нормально работать с TREE/

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 298
Зарегистрирован: 17.06.10
ссылка на сообщение  Отправлено: 20.03.15 14:48. Заголовок: Попробовать рефрешит..


Попробовать рефрешить oTree-обект в postedit
Посмотреть у Линареса, там много на эту тему


Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 553
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет