Ejemplo de xbrowse

Post Reply
groiss
Posts: 206
Joined: Tue Sep 01, 2009 7:55 am
Location: Plasencia - ESPAÑA

Ejemplo de xbrowse

Post by groiss »

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
User avatar
anserkk
Posts: 1280
Joined: Fri Jun 13, 2008 11:04 am
Location: Kochi, India

Re: Ejemplo de xbrowse

Post by anserkk »

Mr.José Luis,

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 
 
Regards
Anser
groiss
Posts: 206
Joined: Tue Sep 01, 2009 7:55 am
Location: Plasencia - ESPAÑA

Re: Ejemplo de xbrowse

Post by groiss »

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
jcenteno
Posts: 23
Joined: Thu Dec 10, 2009 6:07 am

Re: Ejemplo de xbrowse

Post by jcenteno »

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
groiss
Posts: 206
Joined: Tue Sep 01, 2009 7:55 am
Location: Plasencia - ESPAÑA

Re: Ejemplo de xbrowse

Post by groiss »

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:

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
 
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.

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
 
Un saludo y gracias
José Luis
Post Reply