Busco y busco, pero no acabo de encontralo, me gustaria ver un ejemplo de xbrowse definido desde recursos, sobre un array, an el que hemos de definir las columnas una por una, pues no necesitamos todas las del array.¿Alguien tiene algo sobre esto?, le agradecería mucho una manita.
Muchas gracias y un saludo
José Luis
Ejemplo de xbrowse
Re: Ejemplo de xbrowse
Mr.José Luis,
XBrowse with Array sample
http://forums.fivetechsupport.com/viewt ... 605#p97526
To use xBrowse from resources
Regards
Anser
XBrowse with Array sample
http://forums.fivetechsupport.com/viewt ... 605#p97526
To use xBrowse from resources
Code: Select all
REDEFINE XBROWSE oBrw ID 2100 OF oDlg ;
COLUMNS 1, 2, 3, 4 ; // This is line is not necessary if there are only 4 columns in the array
HEADERS "S", "Quantity", "Partnumber", "Description" ARRAY aTest
Anser
Re: Ejemplo de xbrowse
Hasta ahí, lo tengo todo más o menos visto, lo que no acabo de encontrar es ninguno en el que las columnas se creen gracias a un bucle for/next.
Un saludo y gracias
José Luis
Un saludo y gracias
José Luis
Re: Ejemplo de xbrowse
José Luis,
Prueba asi:
WITH OBJECT ( oBrow := TXBrowse():New( oFolder:aDialogs[1] ) )
//:CreateFromResource( 101 )
...
FOR i := 4 TO 13 STEP 2
IF ! EMPTY( aCatalog[nForm, i] )
&& Agrega columnas al xBrowse
WITH OBJECT ( oCol := :AddCol() )
:cHeader := aCatalog[nForm, i]
:nArrayCol := aCatalog[nForm, i + 1]
// :cPicture := aCatalog[nEl, 33 + ii] // Picture
:nWidth := aCatalog[nForm, 28 + ii]
:nHeadStrAlign := AL_CENTER
IF HB_IsNumeric( (cAlias)->&( aCatalog[nForm,i + 1] ) )
:nDataStrAlign := AL_RIGHT
ELSE
:nDataStrAlign := AL_LEFT
ENDIF
END
ii++
ELSE
LOOP
ENDIF
NEXT i
:nHeaderLines := 1
:nFooterLines := 1
:l2007 := TRUE
:CreateFromCode()
END
El ejemplo lo uso con dbf, solo he cambiado :nArrayCol, que es el elemento del array que deseas.
Saludos,
Jairo
Prueba asi:
WITH OBJECT ( oBrow := TXBrowse():New( oFolder:aDialogs[1] ) )
//:CreateFromResource( 101 )
...
FOR i := 4 TO 13 STEP 2
IF ! EMPTY( aCatalog[nForm, i] )
&& Agrega columnas al xBrowse
WITH OBJECT ( oCol := :AddCol() )
:cHeader := aCatalog[nForm, i]
:nArrayCol := aCatalog[nForm, i + 1]
// :cPicture := aCatalog[nEl, 33 + ii] // Picture
:nWidth := aCatalog[nForm, 28 + ii]
:nHeadStrAlign := AL_CENTER
IF HB_IsNumeric( (cAlias)->&( aCatalog[nForm,i + 1] ) )
:nDataStrAlign := AL_RIGHT
ELSE
:nDataStrAlign := AL_LEFT
ENDIF
END
ii++
ELSE
LOOP
ENDIF
NEXT i
:nHeaderLines := 1
:nFooterLines := 1
:l2007 := TRUE
:CreateFromCode()
END
El ejemplo lo uso con dbf, solo he cambiado :nArrayCol, que es el elemento del array que deseas.
Saludos,
Jairo
Re: Ejemplo de xbrowse
Bueno por ahorala cosa la llevo así :
Con este código inicializo el xbrowse para un array de al menos 19 columnas, de las que sólo quiero mostrar desde la 11 en adelante:
El problema me aparece ahora, cuando tengo que anexar un número variable de columnas con datos alfanúmericos de las columnas del array carrera.
Aquí me pierdo, pues no se como decirle que dato ha de coger
Otro problema lo tengo con el bloque bskip, que si le pongo el mío no funciona, e incluso si copio de los fuentes el que viene con el xbrowse, tampoco.
Un saludo y gracias
José Luis
Con este código inicializo el xbrowse para un array de al menos 19 columnas, de las que sólo quiero mostrar desde la 11 en adelante:
Code: Select all
REDEFINE XBROWSE olbx ID 123 OF oDlg COLUMNS 11, 12,13, 14 HEADERS "Corredor", "Nº", "Vehículo", "Grupo" ARRAY carrera
olbx:l2007:=.t.
olbx:nfreeze:=4
olbx:bClrStd := {|| { CLR_BLACK, IIF( olbx:aarraydata[olbx:narrayat,2],rgb(255,200,200),iif(olbx:narrayat%2=0,rgb(255,255,150),16777215)) } }
*olbx:bskip:={|n,nold| dorskip(n,osay1,"rtiempo",olbx)}
olbx:nMarqueeStyle := MARQSTYLE_HIGHLCELL
olbx:lFastEdit:= .t.
olbx:nStretchCol := STRETCHCOL_LAST
Aquí me pierdo, pues no se como decirle que dato ha de coger
Otro problema lo tengo con el bloque bskip, que si le pongo el mío no funciona, e incluso si copio de los fuentes el que viene con el xbrowse, tampoco.
Code: Select all
function dorskip(n,olbx)
local nOld
nOld := olbx:nArrayAt
olbx:nArrayAt += n
olbx:nArrayAt := Min( Max( olbx:nArrayAt, 1 ), Len( olbx:aArrayData ) )
return olbx:nArrayAt - nOld
José Luis