Hola buenas tardes para todos
Estoy intentando cambiar por completo el oTree que tengo montado sobre el xbrowse, intento usar la funci贸n oBrw:settree() pero lo que hace es sobre poner las columnas que se est谩n mostrando.
Si se hace varias veces clic sobre el bot贸n de cambio, se aumentan mas y mas columnas.

Estoy intentando cambiar por completo el oTree que tengo montado sobre el xbrowse, intento usar la funci贸n oBrw:settree() pero lo que hace es sobre poner las columnas que se est谩n mostrando.
Si se hace varias veces clic sobre el bot贸n de cambio, se aumentan mas y mas columnas.

#include "fivewin.ch"
function Main()
local oTree, oFont2, oBtCmb
local oDlg, oFont, oBrw
Local cbCambioEstado := <|x|
聽 聽 oBrw:oTreeItem:Cargo[2] := x
聽 聽 oBrw:refresh()
>
Local cbCambioTree := <||
聽 聽 oTree := buildtree2()
聽 聽 oBrw:SetTree(oTree)
聽 聽 oBrw:refresh()聽
聽 聽 oTree:OpenAll()聽
>
oTree := buildtree1()
DEFINE FONT oFont NAME "TAHOMA" SIZE 0,-15
DEFINE FONT oFont2 NAME "TAHOMA" SIZE 0,-9
DEFINE DIALOG oDlg SIZE 700,500 PIXEL TRUEPIXEL FONT oFont
聽 聽 @ 0, 20 BUTTONBMP oBtCmb OF oDlg PIXEL size 80, 21 PROMPT "Cambiar oTree" FONT oFont2 ACTION EVAL(cbCambioTree)聽
聽 聽 @ 20,20 XBROWSE oBrw SIZE -20,-20 PIXEL OF oDlg ;
聽 聽 DATASOURCE oTree ;
聽 聽 COLUMNS 2 ;
聽 聽 HEADERS "ITEM", "AUTO";
聽 聽 CELL LINES NOBORDER
聽 聽 WITH OBJECT oBrw
聽 聽 :lDisplayZeros := .f.
聽 聽 :aCols[ 1 ]:AddBitmap( { FWDArrow(), FWRArrow(), GetTreeBmps()[ 2 ] } )
聽 聽 :aCols[2]:bEditValue := {|| oBrw:oTreeItem:Cargo[2] }
聽 聽 :aCols[2]:cDataType 聽:= "L"
聽 聽 :aCols[2]:nEditType := EDIT_GET
聽 聽 :aCols[2]:SetCheck()
聽 聽 :aCols[2]:bOnPostEdit 聽 聽:= { | o, x, n | EVAL(cbCambioEstado,x) }聽 聽 聽
聽 聽 :bClrStd := { || { CLR_BLACK, If( oBrw:oTreeItem:nLevel == 1, CLR_YELLOW, CLR_WHITE ) } }
聽 聽 :CreateFromCode()
聽 聽 END
聽 聽 oTree:OpenAll()
ACTIVATE DIALOG oDlg CENTERED
RELEASE FONT oFont
return nil
//CONSTRUIMOS EL PRIMER TREE
function buildtree1()
Local oTree
Local aData := {}
Local aData2 := {}
Local t,r
aData 聽 聽:= ;
{ 聽{ "Facturas", 00,.T. 聽} ;
, 聽{ "Pedidos", 00,.F. } ;
, 聽{ "Remsiones", 00,.F. } ;
, 聽{ "Notas", 00,.F. } ;
}
aData2 聽 聽:= ;
{ 聽{ "Agregar ", 01,.T. } ;
, 聽{ "Modificar ", 02,.T. } ;
}
TREE oTree
FOR r:=1 TO len(aData)
聽 聽 TREEITEM aData[r][1] CARGO { 聽aData[r][2] , aData[r][3] 聽}聽 聽 聽
聽 聽 TREE
聽 聽 FOR t:=1 TO len(aData2)
聽 聽 聽 聽 TREEITEM aData2[t][1] CARGO { aData2[t][2] , aData2[t][3] 聽}
聽 聽 NEXT 聽
聽 聽 ENDTREE
NEXT聽 聽
ENDTREE
Return oTree
//CONSTRUIMOS EL SEGUNDO TREE
function buildtree2()
Local oTree
Local aData := {}
Local aData2 := {}
Local t,r
aData 聽 聽:= ;
{ 聽{ "Cuentas", 00,.T. 聽} ;
, 聽{ "Comprobantes", 00,.F. } ;
, 聽{ "Centros", 00,.F. } ;
, 聽{ "Conceptos", 00,.F. } ;
, 聽{ "Consultas", 00,.F. } ;
}
aData2 聽 聽:= ;
{ 聽{ "Eliminar", 00,.T. } ;
, 聽{ "Enviar ", 00,.T. } ;
, 聽{ "Procesar ", 00,.T. } ;
, 聽{ "Anular ", 00,.T. } ;
}
TREE oTree
FOR r:=1 TO len(aData)
聽 聽 TREEITEM aData[r][1] CARGO { 聽aData[r][2] , aData[r][3] 聽}聽 聽 聽
聽 聽 TREE
聽 聽 FOR t:=1 TO len(aData2)
聽 聽 聽 聽 TREEITEM aData2[t][1] CARGO { aData2[t][2] , aData2[t][3] 聽}
聽 聽 NEXT 聽
聽 聽 ENDTREE
NEXT聽 聽
ENDTREE
Return oTreeSaludos
LEANDRO AREVALO
Bogot谩 (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com
[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 25.01 ] [ xHarbour 64 bits) ]
LEANDRO AREVALO
Bogot谩 (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com
[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 25.01 ] [ xHarbour 64 bits) ]