FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Imagen en XBrowse con RecordSet
Posts: 396
Joined: Tue Mar 18, 2008 09:41 PM
Imagen en XBrowse con RecordSet
Posted: Tue May 26, 2009 04:54 PM
Hola Amigos,

Tengo un problema con mi XBrowse.
Resulta que cuando intento asignarle una imagen a una columna, no hace nada (bueno en realidad sale un signo como una barra del SHIFT-7)

Lo cierto, es que me está dando problemas desde que intento poner imagenes a un XBrowse vinculado a un RecordSet.
Trabajando con SQL Server.

Tengo otras aplicaciones donde trabajaba con un XBrowse vinculado a un ARRAY y con base de datos DBF y nunca me dió problema con las imagenes.

Si alguien ha conseguido poner una imagen al XBrowse con recordset, le agradecería me diese alguna pista.

Aquí les muestro mi código:

Gracias.

Code (fw): Select all Collapse
....
REDEFINE XBROWSE oXbr_Usr ;
   RECSET oRs ID ID_USR_XBRW OF oDlg AUTOSORT 
....

ACTIVATE DIALOG oDlg NOWAIT ;
   ON INIT ( oXbr_Usr:aCols[2]:cHeader := "Activo",;
             oXbr_Usr:aCols[3]:cHeader := "Usuario",;
             oXbr_Usr:aCols[4]:cHeader := "Password",;
             oXbr_Usr:aCols[2]:AddResource( "yes" ),;
             oXbr_Usr:aCols[2]:AddResource( "no" ),;
             oXbr_Usr:aCols[2]:bBmpData := { || 2 },; // Asigno el bitmap "no" por defecto
             oXbr_Usr:aCols[2]:bStrData := { || Iif( oRs:Fields( "campoLogico" ):Value, "Si", "No" ) },; // Asigno si o no
             oXbr_Usr:aCols[2]:bEditValue := { || .t. } )
Javier,

FWH 8.04 2008
Posts: 54
Joined: Thu Dec 27, 2007 06:56 PM
Re: Imagen en XBrowse con RecordSet
Posted: Tue May 26, 2009 07:27 PM
Hola Javier

¿tu campo "campologico" esta definido como de tipo bit en tu tabla SQL?

Tal vez podria forzar la consulta cambiando
oXbr_Usr:aCols[2]:bStrData := { || Iif( oRs:Fields( "campoLogico" ):Value, "Si", "No" ) },; // Asigno si o no

por

oXbr_Usr:aCols[2]:bStrData := { || Iif( oRs:Fields( "campoLogico" ):Value=.t., "Si", "No" ) },; // Asigno si o no

Saludos

Luis
Posts: 396
Joined: Tue Mar 18, 2008 09:41 PM
Re: Imagen en XBrowse con RecordSet
Posted: Wed May 27, 2009 10:42 AM

Hola Luis,

Pues efectivamente, tnego definido el campo logico como tipo 'bit' en mi tabla SQL Server.

Probaré tu sugerencia, a ver si da buen resultado.

Ya te comentaré como me ha ido.
Gracias. :wink:

Javier,

FWH 8.04 2008
Posts: 396
Joined: Tue Mar 18, 2008 09:41 PM
Re: Imagen en XBrowse con RecordSet
Posted: Wed May 27, 2009 11:10 AM
Hola de nuevo!

Ya lo probé.
Pero sigue sin dar resultado.

En realidad, esta linea de código
Code (fw): Select all Collapse
oXbr_Usr:aCols[2]:bStrData := { || Iif( oRs:Fields( "campoLogico" ):Value=.t., "Si", "No" ) },; // Asigno si o no


No tiene que ver con los bitmaps, ya que lo único que hace es substituir el valor que se vé po defecto .T. o .F. por el literal "Si" o "No".

Las lineas que deberían poner el bitmap, son:

Code (fw): Select all Collapse
oXbr_Usr:aCols[2]:AddResource( "yes" ),; // añadimos el bitmap yes
oXbr_Usr:aCols[2]:AddResource( "no" ),;  // añadimos el bitmap no
oXbr_Usr:aCols[2]:bBmpData := { || 2 },; // le decimos que muestre el segundo, es decir, "no"


Pero no funciona! :-) :-) :-)
Javier,

FWH 8.04 2008
Posts: 1335
Joined: Fri Jun 13, 2008 11:04 AM
Re: Imagen en XBrowse con RecordSet
Posted: Thu May 28, 2009 05:29 AM
Dear Mr.Javier,

Code (fw): Select all Collapse
// Alternative way to display BMP, if multiple conditions and more than 2 bitmaps are there
oBrwMenu:aCols[2]:AddResource("CheckOn")
oBrwMenu:aCols[2]:AddResource("CheckOff")

// Checkbox should be displayed only if the menu type is not a Submenu
oBrwMenu:aCols[2]:bBmpData :={ || iif(oBrwMenu:aArrayData[oBrwMenu:nArrayAt][4],0,iif(oBrwMenu:aArrayData[oBrwMenu:nArrayAt][3],1,2))  }

I am reading the recordset values to an array and then the array is used in xBrowse. The above code is working fine for me. I think your problem is with the management of .T. .F. from recordset and how FWH interpret the Logical value from the recordset. Are you sure that the your recordset field type is BIT ?

Regards

Anser
Posts: 396
Joined: Tue Mar 18, 2008 09:41 PM
Re: Imagen en XBrowse con RecordSet
Posted: Thu May 28, 2009 09:07 AM

Dear anserkk ,

Yes! My logical fields from SQL Server database is a bit type.

I'm trying to do the same like you. But widtout using array. So working directly with
the XBrowse RecordSet.
I have code samples of old applications that use an array with Xbrowse and it does works very fine.

So i think that finnally i'll back to use arrays at my Xbrowse.
Charging first the recordset values to the Xbrowse array.... i suppous ....

Any way, thank you.
Javier.

Javier,

FWH 8.04 2008
Posts: 396
Joined: Tue Mar 18, 2008 09:41 PM
Re: Imagen en XBrowse con RecordSet
Posted: Thu May 28, 2009 04:23 PM
Hola de nuevo!

Al final, pude hacer un XBrowse de RecordSet que muestra imagenes.
:-) :-) :-)

Al parecer, todo estaba bien.
Lo único es que el AUTOSORT parecía molestarle.
En cuanto lo he quitdao, ya muestra las imagenes.

Dejo el código por si a alguien le biene bien saberlo.

Un saludo.
:-)

Code (fw): Select all Collapse
REDEFINE XBROWSE oXbr_Usr ;
   RECSET oRs ID ID_USR_XBRW OF oDlg  // AUTOSORT
......
ACTIVATE DIALOG oDlg NOWAIT ;
   ON INIT ( oXbr_Usr:aCols[1]:cHeader := "Activo",;
             oXbr_Usr:aCols[2]:cHeader := "Usuario",;
             oXbr_Usr:aCols[3]:cHeader := "Password",;
             oXbr_Usr:aCols[1]:AddResource( "on" ),;
             oXbr_Usr:aCols[1]:AddResource( "off" ),;
             oXbr_Usr:aCols[1]:bBmpData := ;
                    { || Iif( oRs:Fields( "activo" ):Value, 1, 2 ) },;
             oXbr_Usr:aCols[2]:bStrData := ;
                { || Iif( oRs:Fields( "activo" ):Value, "si", "no" ) } )
Javier,

FWH 8.04 2008

Continue the discussion