Que estoy haciendo mal?

Post Reply
Gaston
Posts: 13
Joined: Fri Jun 05, 2009 7:28 pm

Que estoy haciendo mal?

Post by Gaston »

Hola gente, estoy queriendo mostrar en un xbrowse una grilla de checkboxs... en realidad ya lo he hecho de esta forma...

Code: Select all

#include "FiveWin.ch"
#include "xbrowse.ch"

function Main()
   local oDlg, oBrw
   DEFINE DIALOG oDlg SIZE 300, 200
   @ 0, 0 XBROWSE oBrw OF oDlg 
   oBrw:CreateFromCode() 
   oBrw:bKeyDown = { || CrearColumna(oBrw) }
      
   ACTIVATE DIALOG oDlg CENTER ON INIT ( oDlg:oClient := oBrw, oDlg:Resize() )

return nil

//---------------------------------------------------------------------------------//
Function crearcolumna(obrw)

Local oCol,I,nI
LOCAL aListas:={{"Plato 1",.T.,.T.,.T.},{"Plato 2",.F.,.T.,.F.}}
LOCAL aCargos:={"Platos","Caliente","Frio","Templado"

FOR I = 1 TO LEN(aListas[1])
    oCol:=obrw:addCol()
NEXT
oBrw:SetArray(aListas)           
oBrw:aCols[1]:cHeader:= "Platos"
oBrw:aCols[1]:nWidth:=100
FOR nI = 2 TO LEN(aCargos)
    oBrw:aCols[nI]:cHeader:=aCargos[nI]
    oBrw:aCols[nI]:nWidth:=50    
    oBrw:aCols[nI]:SetCheck( { "Checkon", "Checkoff" },{ |o,v|oBrw:aArrayData[oBrw:nRowSel,oBrw:nAt]:=v} )
NEXT
obrw:refresh()
return .t.
 
Ahora, todo este codigo anda bien, pero la segunda vez.. o sea.. cuando arranca el xbrowse esta vacio, luego aprieto una tecla y me tiene que armar la grilla, esto es asi porque de antemano yo no se cuantas columnas y filas va a tener.
En este ejemplo, al momento de armarla por primera vez da error, pero si se aprieta otra vez la tecla, arma toda la grilla bien... alquien sabe que estoy haciendo mal? El error es porque el elemento 2 de la grilla no existe a pesar de que antes hice un SetArray con 4 columnas de elementos.. Bueno, si peden compilar ese codigo veran de manera muy simple lo que quiero decir.. Gracias por su apoyo de siempre.-.
Post Reply