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

Post Reply
nanoespinoza
Posts: 143
Joined: Thu Mar 16, 2017 4:08 pm
Location: Ecuador
Been thanked: 1 time

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

Post by nanoespinoza »

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: 143
Joined: Thu Mar 16, 2017 4:08 pm
Location: Ecuador
Been thanked: 1 time

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

Post by nanoespinoza »

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

Saludos

Fernando Espinoza A.
User avatar
cmsoft
Posts: 1300
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina
Has thanked: 1 time
Been thanked: 3 times

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

Post by cmsoft »

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


     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
nanoespinoza
Posts: 143
Joined: Thu Mar 16, 2017 4:08 pm
Location: Ecuador
Been thanked: 1 time

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

Post by nanoespinoza »

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.
User avatar
nageswaragunupudi
Posts: 10733
Joined: Sun Nov 19, 2006 5:22 am
Location: India
Been thanked: 11 times
Contact:

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

Post by nageswaragunupudi »

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


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

#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
nanoespinoza
Posts: 143
Joined: Thu Mar 16, 2017 4:08 pm
Location: Ecuador
Been thanked: 1 time

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

Post by nanoespinoza »

Mi versión es FW xHarbour 1709.

Saludos
nanoespinoza
Posts: 143
Joined: Thu Mar 16, 2017 4:08 pm
Location: Ecuador
Been thanked: 1 time

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

Post by nanoespinoza »

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: 143
Joined: Thu Mar 16, 2017 4:08 pm
Location: Ecuador
Been thanked: 1 time

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

Post by nanoespinoza »

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