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

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

Postby nanoespinoza » Sun Apr 04, 2021 6: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 :oCol(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.
nanoespinoza
 
Posts: 135
Joined: Thu Mar 16, 2017 4:08 pm
Location: Ecuador

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

Postby nanoespinoza » Mon Apr 05, 2021 8:21 pm

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

Saludos

Fernando Espinoza A.
nanoespinoza
 
Posts: 135
Joined: Thu Mar 16, 2017 4:08 pm
Location: Ecuador

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

Postby cmsoft » Tue Apr 06, 2021 1: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: Select all  Expand view

     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
User avatar
cmsoft
 
Posts: 1192
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina

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

Postby nanoespinoza » Tue Apr 06, 2021 5: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.
nanoespinoza
 
Posts: 135
Joined: Thu Mar 16, 2017 4:08 pm
Location: Ecuador

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

Postby nageswaragunupudi » 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: Select all  Expand view

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: Select all  Expand view
#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
 


Image

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
User avatar
nageswaragunupudi
 
Posts: 10261
Joined: Sun Nov 19, 2006 5:22 am
Location: India

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

Postby nanoespinoza » Tue Apr 06, 2021 1:28 pm

Mi versión es FW xHarbour 1709.

Saludos
nanoespinoza
 
Posts: 135
Joined: Thu Mar 16, 2017 4:08 pm
Location: Ecuador

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

Postby nanoespinoza » Tue Apr 06, 2021 2: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.
nanoespinoza
 
Posts: 135
Joined: Thu Mar 16, 2017 4:08 pm
Location: Ecuador

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

Postby nanoespinoza » Tue Apr 06, 2021 2: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.
nanoespinoza
 
Posts: 135
Joined: Thu Mar 16, 2017 4:08 pm
Location: Ecuador


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 16 guests