Requiero crear de manera dinámica algunas columas de un xbrowse. Lo estoy haciendo de la siguiente manera:
Code: Select all
oBrwReci := TXBrowse():New( ::oDlgRcj )
oBrwReci:nMarqueeStyle := MARQSTYLE_HIGHLROW
oBrwReci:nRowDividerStyle := LINESTYLE_LIGHTGRAY
oBrwReci:nColDividerStyle := LINESTYLE_LIGHTGRAY
oBrwReci:nHeaderLines := 1
oBrwReci:lColDividerComplete := .t.
oBrwReci:lRecordSelector := .t.
oBrwReci:nStretchCol := STRETCHCOL_LAST
oBrwReci:l2007 := .f.
oBrwReci:oFont := oFont1
oBrwReci:lFooter := .t.
oBrwReci:nFooterLines := 1
oBrwReci:nFooterHeight := 24
oBrwReci:bRClicked := {|nRow, nCol | ::mRegReci( nRow,nCol,oBrwReci,cbTipItem ) }
oBrwReci:bKeyDown := {|nKey,oGet,nCol|TecItemNota(nKey,oGet,nCol,cbTipItem)}
oBrwReci:bClrStd := {|| { CLR_BLACK,clrEstFondo(::detalle[oBrwReci:nArrayAt]["estado"]) } }
oBrwReci:bClrSelFocus := {|| { CLR_WHITE,clrEstSelec(::detalle[oBrwReci:nArrayAt]["estado"]) } }
oCol = oBrwReci:AddCol()
oCol:bStrData := {|| if(Len( ::detalle ) > 0 , Transform(::detalle[oBrwReci:nArrayAt]["id"],oLamcla:PIC9) ,"" ) }
oCol:AddResource( "#8208" )
oCol:cHeader = "Item"
oCol:nWidth = 30
oCol:nHeadStrAlign = AL_LEFT
oCol:nDataStrAlign = AL_LEFT
oCol:oHeaderFont = oFont
oCol:nFootBmpNo := 1
oCol:bLClickFooter := {|r,c,f,o| EVAL(cbTipItem) }
oCol = oBrwReci:AddCol()
oCol:bStrData := {|| if(Len( ::detalle ) > 0 , cValToChar(::detalle[oBrwReci:nArrayAt]["documento"]) ,"" ) }
oCol:cHeader = "Documento"
oCol:nWidth = 60
oCol:nHeadStrAlign = AL_LEFT
oCol:nDataStrAlign = AL_LEFT
oCol:oHeaderFont = oFont
oCol = oBrwReci:AddCol()
oCol:bStrData := {|| if(Len( ::detalle ) > 0 , cValToChar(::detalle[oBrwReci:nArrayAt]["factura"]) ,"" ) }
oCol:cHeader = "Factura"
oCol:nWidth = 50
oCol:nHeadStrAlign = AL_LEFT
oCol:nDataStrAlign = AL_LEFT
oCol:oHeaderFont = oFont
oCol = oBrwReci:AddCol()
oCol:bStrData := {|| if(Len( ::detalle ) > 0 , dtoc(::detalle[oBrwReci:nArrayAt]["fecha"]) ,"" ) }
oCol:cHeader = "Fecha"
oCol:nWidth = 60
oCol:nHeadStrAlign = AL_LEFT
oCol:nDataStrAlign = AL_LEFT
oCol:oHeaderFont = oFont
oCol:cFooter = "TOTALES"
oCol:oFooterFont = oFont3
//Datos de las Columnas
aData := {"riva","rica","rfte"}
aTitu := {"Rete 1","Rete 2","Rete 3"}
FOR p:= 1 TO len(aData)
oCol = oBrwReci:AddCol()
oCol:bStrData := {|| if(Len( ::detalle ) > 0 , Transform(::detalle[oBrwReci:nArrayAt][(aData[p])],oLamcla:PIC7) ,"" ) }
oCol:cHeader = aTitu[p]
oCol:nWidth = 91
oCol:nHeadStrAlign = AL_RIGHT
oCol:nDataStrAlign = AL_RIGHT
oCol:oHeaderFont = oFont
NEXT
oCol = oBrwReci:AddCol()
oCol:bStrData := {|| if(Len( ::detalle ) > 0 , Transform(::detalle[oBrwReci:nArrayAt]["abon"],oLamcla:PIC7) ,"" ) }
oCol:cHeader = "Vr Pago/Abono"
oCol:nWidth = 91
oCol:nHeadStrAlign = AL_RIGHT
oCol:nDataStrAlign = AL_RIGHT
oCol:oHeaderFont = oFont
oCol:bFooter = {|| Transform(::hEncabezado["total"],oLamcla:PIC7) }
oCol:nFootStrAlign = 1
oCol:oFooterFont = oFont3
oBrwReci:SetArray( ::detalle )
oBrwReci:CreateFromResource( 102 )
Que estoy haciendo mal?
De antemano gracias