FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Ejemplo de xbrowse
Posts: 234
Joined: Tue Sep 01, 2009 07:55 AM
Ejemplo de xbrowse
Posted: Tue Apr 27, 2010 10:04 AM

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

Posts: 1335
Joined: Fri Jun 13, 2008 11:04 AM
Re: Ejemplo de xbrowse
Posted: Tue Apr 27, 2010 10:25 AM
Mr.José Luis,

XBrowse with Array sample

viewtopic.php?f=6&t=18605#p97526

To use xBrowse from resources

Code (fw): Select all Collapse
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
Posts: 234
Joined: Tue Sep 01, 2009 07:55 AM
Re: Ejemplo de xbrowse
Posted: Tue Apr 27, 2010 03:06 PM

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

Posts: 23
Joined: Thu Dec 10, 2009 06:07 AM
Re: Ejemplo de xbrowse
Posted: Tue Apr 27, 2010 06:09 PM
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
Posts: 234
Joined: Tue Sep 01, 2009 07:55 AM
Re: Ejemplo de xbrowse
Posted: Wed Apr 28, 2010 11:24 AM
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 (fw): Select all Collapse
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 (fw): Select all Collapse
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

Continue the discussion