by FranciscoA » Sat Sep 26, 2009 3:18 am
Hola Daniel.
Comprobado, es cuestión de versión. He leído varios post en los cuales se describe este inconveniente.
Sin embargo, he logrado solucionarlo de la manera siguiente. Dejo el ejemplo por si alguien tiene el mismo problema que yo.
Decidí no tocar la Classe TxBrowse. El recurso está posteado un poco más arriba.
#include "FiveWin.ch"
#include "xBrowse.ch"
static aTitCols:={}
static aFootCols:={}
static aWidthCols:={}
static aPictCols:={}
static nValores:=0
//--------------------------------------------------------------------------------------------------------------------//
Function Main()
local oBrw,oGet1,oGet2
local n:=0,oCol
Local oDlg, nConsec:=0,dFecIni:=Date()
local aMiArray:={{"","","",""}}
SET DATE BRITISH
SET CENTURY ON
SET CONFIRM ON
SET EPOCH TO 1990
dFecIni := Date()
DEFINE DIALOG oDlg RESOURCE "INTERES" TITLE "PRUEBA DE TXBROWSE CON ARRAY"
REDEFINE GET oGet1 VAR nConsec ID 101 OF oDlg ;
UPDATE ;
PICTURE "9999" ;
VALID ( if(!empty(nConsec), (Actualice(oBrw, nConsec, dFecIni ), .T.),(MsgStop("Debe ingresar un valor.","Alto"),.f.) ) )
oGet1:bGotFocus := {||oGet1:SetColor( CLR_WHITE, CLR_BLUE ) }
oGet1:bLostFocus := {||oGet1:SetColor( CLR_BLACK, CLR_WHITE ) }
REDEFINE GET oGet2 VAR dFecIni ID 102 OF oDlg ;
UPDATE ;
VALID ( if(!empty(dFecIni), (Actualice(oBrw, nConsec, dFecIni ), .T.),(MsgStop("Debe ingresar un valor.","Alto"),.f.) ) )
oGet2:bGotFocus := {||oGet2:SetColor( CLR_WHITE, CLR_BLUE ) }
oGet2:bLostFocus := {||oGet2:SetColor( CLR_BLACK, CLR_WHITE ) }
oBrw := TXBrowse():New( oDlg )
//ESTILOS DE LINEAS
oBrw:nMarqueeStyle := MARQSTYLE_HIGHLROW //barra selectora
oBrw:nColDividerStyle := LINESTYLE_INSET
oBrw:nRowDividerStyle := LINESTYLE_INSET
oBrw:lColDividerComplete := .t. //completa pintado hasta el footer cuando lineas no llenan todo el browse
//HEADERS Y FOOTERS
oBrw:nHeaderHeight := 30 //Altura cabeceras de col
oBrw:lFooter := .t. //Que tendrá footer
oBrw:nFooterLines := 1 //Lineas del footer
oBrw:nFooterHeight := 30 //Altura del Footer
oBrw:lRecordSelector := .t. //poner o no, COL de la flechita de la izq
//COLORES (texto y fondo del texto)
oBrw:bClrHeader := {|| { nRGB(140, 0, 0), nRGB(229,0,0) } } // VERDECITO
oBrw:bClrFooter := oBrw:bClrHeader
oBrw:bClrStd := {|| { nRGB( 0, 0, 0), nRGB(255,248,220) } } // colores para lineas normales
oBrw:bClrSel := {|| { nRGB( 0, 0,255), nRGB(241,222,088) } } // para barra de linea selecc cuando el control no tiene el foco
oBrw:bClrSelFocus := {|| { nRGB( 0, 0, 0), nRGB(248,195, 34) } } // para barra de linea selecc cuando el control tiene el foco
oBrw:nRowHeight := 20 //altura entre lineas
//COLUMNAS DEL BROWSE
oCol = oBrw:AddCol()
oCol:bStrData = { || Transform(aMiArray[1][1],"9999") }
oCol:nDataStrAlign := 1
oCol:cHeader = "Consec"
oCol:bFooter = {|| "Hola" }
oCol:nFootStrAlign := 1
oCol:nWidth = 44
oCol:cEditPicture := NumPict( 4, 0, .F., .f. )
oCol = oBrw:AddCol()
oCol:bStrData = { || aMiArray[1][2] }
oCol:nDataStrAlign := 1
oCol:cHeader = "Fecha"
oCol:bFooter = {|| "Hola" }
oCol:nWidth = 88
oCol = oBrw:AddCol()
oCol:bStrData = { || aMiArray[1][3] }
oCol:nDataStrAlign := 1
oCol:cHeader = "Hora"
oCol:nWidth = 88
oCol = oBrw:AddCol()
oCol:bStrData = { || aMiArray[1][4] }
oCol:nDataStrAlign := 1
oCol:cHeader = "Valores"
oCol:bFooter = {|| TRANSFORM(nValores,"9,999,999,999.99") }
oCol:nWidth = 100
oCol:cEditPicture := NumPict( 14, 2, .F., .t. )
For n:=1 to len(oBrw:aCols)
aadd(aTitCols,oBrw:aCols[n]:cHeader)
aadd(aFootCols,oBrw:aCols[n]:bFooter)
aadd(aWidthCols,oBrw:aCols[n]:nWidth)
aadd(aPictCols,oBrw:aCols[n]:cEditPicture)
Next
oBrw:CreateFromResource(181)
oBrw:SetArray(aMiArray)
ACTIVATE DIALOG oDlg CENTERED
Return Nil
//--------------------------------------------------------------------------------------------------------------------//
Static Function Actualice(oBrw, nConsec, dFecIni )
Local dFecha := dFecIni, xVeces:=1, nValor:=1000
local aMiArray := {}
If empty(nConsec) .OR. empty(dFecha)
Return NIL
EndIf
nValores:=0
While xVeces <= nConsec
AAdd( aMiArray, { xVeces++, DtoC( dFecha ), time(), nValor } )
dFecha += 10
nValores+=nValor
nValor ++
EndDo
oBrw:SetArray(aMiArray)
AEval( oBrw:aCols, {|oCol| oCol:cHeader := aTitCols[oCol:nArrayCol] ,;
oCol:bFooter := aFootCols[oCol:nArrayCol] ,;
oCol:nWidth:= aWidthCols[oCol:nArrayCol] ,;
oCol:cEditPicture:= aPictCols[oCol:nArrayCol] } )
oBrw:Refresh()
Return NIL
Francisco J. Alegría P.
Chinandega, Nicaragua.
Fwxh-MySql-TMySql