El problema que se me presenta es el siguiente: tengo un dialogo donde hay un Ttreeview que tiene un primer nivel VENTAS debajo del cual hay otro 2016 y debajo de el uno por cada mes del año en curso. En el segundo cuadro de dialogo hay un txbrowse con las facturas correspondientes al mes seleccionado en el TREE del primer dialogo.
Deba jo del browse hay dos botones que permites seleccionar MES ANTERIOR o MES SIGUIENTE y mostrar las facturas correspondientes.
Lo que necesito es que al mover los meses en el browse se actualice el mes correspondiente en el TREE.
O sea ir subiendo o Bajando en los meses del tree a medida que subo o bajo en los meses del browse.
Les adjunto una imagen para que vean mejor como esta hecho.
He visto por ahi que en alguna version del TTreeview habia un metodo GONEXT() y otro GOPREV() que hacia esto pero la clase actual no los tiene.
He querido hacerlo usando el metodo SELECT(oItem) pero no he podido entender como obtener el Objeto necesario para pasar al metodo.
Se que los objetos se guardan en el array aItems del TREE pero cono estos se anidan no he podido entender como llegar a los que me interesan.
Agradeceria cualquier ayuda que pueda 'iluminarme', muchas gracias a todos.
por su a alguien le interesa del dejo el codigo fuente de como hice el TREE
- Code: Select all Expand view
- //.......................................
FUNCTION AddItems( oTree )
local oImageList,oItem,aItems:={},cMes,n,cText
local cAnio := cValTochar( year(date()))
local aMeses:={'Enero','Febrero','Marzo','Abril','Mayo','Junio','Julio','Agosto',;
'Setiembre','Octubre','Noviembre','Diciembre' }
local aObjetos:={}
// imagenes para el tree
oImageList := TImageList():New()
oImageList:Add( TBitmap():Define( "b_xtransfer",, oWnd ))
oImageList:Add( TBitmap():Define( "b_xopened",, oWnd ))
oImageList:Add( TBitmap():Define( "b_xuser",, oWnd ))
oImageList:Add( TBitmap():Define( "b_xcamion",, oWnd ))
oImageList:Add( TBitmap():Define( "b_xstock",, oWnd ))
oImageList:Add( TBitmap():Define( "b_xmoney",, oWnd ))
oImageList:Add( TBitmap():Define( "b_xbrowse",, oWnd ))
oImageList:Add( TBitmap():Define( "b_xstockadd",, oWnd ))
oImageList:Add( TBitmap():Define( "b_xdebcred",, oWnd ))
oImageList:Add( TBitmap():Define( "b_xctrl",, oWnd ))
oTree:SetImageList( oImageList )
oTree:blDBLClick:= {|| cText:= oTree:GetSelText(),;
SelectActionTree( cText ) }
AADD(aItems,{ 'Ventas', oTree:add( 'Ventas',0) })
AADD(aItems,{ 'Stock de Productos', oTree:add( 'Stock de Productos',4) })
AADD(aItems,{ 'Clientes', oTree:add( 'Clientes',2) })
AADD(aItems,{ 'Proveedores', oTree:add( 'Proveedores',3) })
AADD(aItems,{ 'Compras', oTree:add( 'Compras',7) })
AADD(aItems,{ 'Movimientos de Caja', oTree:add( 'Movimientos de Caja',8) })
// agrega a ventas
AADD(aItems,{ cAnio,aItems[1,2]:Add(cAnio,1)})
AADD(aItems,{ 'Todas',aItems[7,2]:Add( 'Todas',1)})
// agrega meses a año
For n:= 1 TO month(Date())
cMes:=aMeses[n]
AADD(aItems,{ cMes,aItems[7,2]:Add( cMes,1, n )}) // 2
next
// agrega a Clientes
AADD(aItems,{ 'Cuentas Corrientes',aItems[3,2]:Add('Cuentas Corrientes',6)})
AADD(aItems,{ 'Saldos de Cuentas' ,aItems[3,2]:Add('Saldos de Cuentas',5)})
// agrega a Stock
AADD(aItems,{ 'Total de Productos' ,aItems[2,2]:Add('Total de Productos',6)})
AADD(aItems,{ 'Lista de Precios' ,aItems[2,2]:Add('Lista de Precios',5)})
AADD(aItems,{ 'Codificación de Productos' ,aItems[2,2]:Add('Codificacion de Productos',9)})
// agrega a Compras
AADD(aItems,{ 'Compras del Mes',aItems[5,2]:Add('Compras del Mes',6)})
AADD(aItems,{ 'Todas las Compras' ,aItems[5,2]:Add('Todas las Compras',6)})
// agrega a movimientos de caja
AADD(aItems,{ 'Movimientos Mensuales',aItems[6,2]:Add('Movimientos Mensuales',6)})
AADD(aItems,{ 'Movimientos del Día' ,aItems[6,2]:Add('Movimientos del Día',6)})
*xbrowse( oTree:aItems)
oTree:ExpandBranch( aItems[1,2])
oTree:ExpandBranch( aItems[2,2])
*oTree:ExpandAll()
oTree:GoTop()
RETU .T.