FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Consulta sobre el uso de gráficos en filas de un xBrowse
Posts: 163
Joined: Thu Mar 16, 2017 04:08 PM

Consulta sobre el uso de gráficos en filas de un xBrowse

Posted: Sun Apr 04, 2021 06:38 PM
Estimados

Tengo un xBrowse donde en dos de la columnas tnego definido que el contenido sea un ráfico y texto, esto con los siguientes comandos


WITH OBJECT :-)Col(2)
:AddBitmap(aGraphsL, )
:bBmpData := {|| oLbx:KeyNo() } // número del bitmap para cada fila
:nBmpWidth := 22 // ancho de la franja donde se muestra el bitmap, png
:bCellToolTip := { || AyudaEvtEsp(oLbx:aArrayData[oLbx:KeyNo(),2]) }
END


Pero, como la necesidad hace que ese xBrowse sea dinámico, voy ingresando nuevas filas (rows) y se vuelve a ordenar el xBrowse, esto crea la necesidad de actualizar la matriz con los gráficos para cada fila, y ahí está mi problema, vuelvo a crear la matriz "aGraphsL" agregando los componentes requeridos, pero el xBrowse luego de actualizarse con oLbx:SetArray(aLineaTiempo,.F.) actualiza todo el contenido de texto correctamente, pero los gráficos siguen siendo los mismos, sin cambiar de fila, ni incrementarse.

¿Puedo resolver esto de alguna forma?

Saludos

Fernando Espinoza A.
Posts: 163
Joined: Thu Mar 16, 2017 04:08 PM

Re: Consulta sobre el uso de gráficos en filas de un xBrowse

Posted: Mon Apr 05, 2021 08:21 PM

Estimados; alguna idea sobre como resolver el problema descrito previamente.

Saludos

Fernando Espinoza A.

Posts: 1344
Joined: Wed Nov 16, 2005 09:14 PM

Re: Consulta sobre el uso de gráficos en filas de un xBrowse

Posted: Tue Apr 06, 2021 01:14 AM
Hola Fernando, no entendí bien tu solicitud.
A cada nueva fila le pones un nuevo grafico? O el grafico que muestras en cada fila tiene que ver con un estado o el valor de un campo del registro?
Yo tengo un ejemplo de uso en que el grafico muestra un icono del estado de cada registro.
Code (fw): Select all Collapse
     oBrw:aCols[2]:AddBitMap( 'PEND.BMP' )
     oBrw:aCols[2]:AddBitMap( 'VISADA.BMP' )
     oBrw:aCols[2]:AddBitMap( 'DISPO.BMP' )
     oBrw:aCols[2]:AddBitMap( 'NDISPO.BMP' )
     oBrw:aCols[2]:AddBitMap( 'DEV.BMP' )
     oBrw:aCols[2]:AddBitMap( 'ACEPT.BMP' )
     oBrw:aCols[2]:AddBitMap( 'RECH.BMP' )
     oBrw:aCols[2]:AddBitMap( 'INGR.BMP' )
     oBrw:aCols[2]:AddBitMap( 'RENU.BMP' )    
     oBrw:aCols[2]:bBmpData := {|| oQryBrw:estado  }

Cada vez que actualizo el xbrowse segun sea el dato de estado se muestra el bmp correspondiente.
No se si eso te pueda servir
Posts: 163
Joined: Thu Mar 16, 2017 04:08 PM

Re: Consulta sobre el uso de gráficos en filas de un xBrowse

Posted: Tue Apr 06, 2021 05:11 AM

Estimado cmsoft

Sería lo segundo, el grafico que se muestra en cada fila tiene que ver con el valor de un campo.

El tema es que cuando agregó una nueva fila, ese nuevo valor no va al final, sino que se ordena de acuerdo a un índice, y ahí es donde no me funciona, porque si bien defino de nuevo toda la matriz con los gráficos (aGraphsL en mi ejemplo), cada adición al xBrowse no se muestra bien y las filas del final se quedan sin su gráfico y como el orden cambió, los gráficos no guardan relación (si agrego 2 filas, solo las primeras n-2 filas, muestran un gráfico y los únicos correctos serán los que coincidan por azar).

Saludos

Fernando Espinoza A.

Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM

Re: Consulta sobre el uso de gráficos en filas de un xBrowse

Posted: Tue Apr 06, 2021 11:34 AM
If you please indicate the FWH version you are using, we can advise a solution most appropriate for the FWH version.

How oCol:AddBitmap( aArray ) works:

TXBrwColumn object internally maintains an array of bitmaps oCol:aBitmaps.

When we first call oCol:AddBitmap( { bmp1, bmp2, bmp3 } ), oCol:aBitmaps is filed with { bmp1, bmp2, bmp3 }.

If we call oCol:AddBitmap( { new1, new2, new3 } ) these new bitmaps are added to the existing oCol:aBitmaps but do not replace the existing bitmaps.
Now the oCol:aBitmaps is { bmp1, bmp2, bmp3, new1, new2 new3 }
So, If oCol:bBmpNo returns 1 it still shows bmp1 only not new1.

If we want to replace existing bitmaps, then
Code (fw): Select all Collapse
AEval( oCol:aBitmaps, { |b| PalBmpFree( b ) } )
oCol:aBitmaps := {}
oCol:AddBitmap( { new1, new2, new3 } )
// Now oCol:aBitmaps is { new1, new2, new3 }


So, oCol:AddBitmap() and oCol:bBmpNo are not suitable for dynamic arrays of images.

In such cases, we recommend an approach similar to the sample given below:
Code (fw): Select all Collapse
#include "fivewin.ch"

function Main()

   local oDlg, oBrw, oFont
   local aData := ;
      {  { "browse", "c:\fwh\bitmaps\32x32\browse.bmp" } ;
      ,  { "button", "c:\fwh\bitmaps\32x32\button.bmp" } ;
      ,  { "calc",   "c:\fwh\bitmaps\32x32\calc.bmp" } ;
      ,  { "copy",   "c:\fwh\bitmaps\32x32\copy.bmp" } ;
      }

   DEFINE FONT oFont NAME "TAHOMA" SIZE 0,-14
   DEFINE DIALOG oDlg SIZE 340,400 PIXEL FONT oFont

   @ 35,10 XBROWSE oBrw SIZE -10,-10 PIXEL OF oDlg ;
     DATASOURCE aData COLUMNS 1, 2 ;
     HEADERS "NAME", "BMP" ;
     CELL LINES NOBORDER AUTOSORT

   WITH OBJECT oBrw
      :nStretchCol   := 1
      WITH OBJECT :aCols[ 2 ]
         :cDataType        := "F"
         :lBmpTransparent  := .t.
         :nDataBmpAlign    := AL_CENTER
      END
      //
      :CreateFromCode()
   END

   @ 10,10 BUTTON "ADD-1" SIZE 40,15 PIXEL OF oDlg ;
      ACTION ( AAdd( oBrw:aArrayData, { "attach", "c:\fwh\bitmaps\32x32\attach.bmp" } ), ;
               oBrw:Refresh() )

   @ 10,60 BUTTON "ADD-2" SIZE 40,15 PIXEL OF oDlg ;
      ACTION ( AAdd( oBrw:aArrayData, { "floppy", "c:\fwh\bitmaps\32x32\floppy.bmp" } ), ;
               oBrw:Refresh() )

   ACTIVATE DIALOG oDlg CENTERED
   RELEASE FONT oFont

return nil




If your requirement is different, please let us know and we will provide a suitable solution.

Please indicate your FWH version.
Regards



G. N. Rao.

Hyderabad, India
Posts: 163
Joined: Thu Mar 16, 2017 04:08 PM

Re: Consulta sobre el uso de gráficos en filas de un xBrowse

Posted: Tue Apr 06, 2021 01:28 PM

Mi versión es FW xHarbour 1709.

Saludos

Posts: 163
Joined: Thu Mar 16, 2017 04:08 PM

Re: Consulta sobre el uso de gráficos en filas de un xBrowse

Posted: Tue Apr 06, 2021 02:16 PM

Estimado Mr. Rao:

Complementando la respuesta previa, le informo que la primera alternativa de solución dada por usted, funcionó correctamente de acuerdo a lo que necesito.

xBrowse es muy bueno.

Saludos

Fernando Espinoza A.

Posts: 163
Joined: Thu Mar 16, 2017 04:08 PM

Re: Consulta sobre el uso de gráficos en filas de un xBrowse

Posted: Tue Apr 06, 2021 02:16 PM

Estimado Mr. Rao:

Complementando la respuesta previa, le informo que la primera alternativa de solución dada por usted, funcionó correctamente de acuerdo a lo que necesito.

xBrowse es muy bueno.

Saludos

Fernando Espinoza A.

Continue the discussion