En esta ocasión quiero mostrar un tooltip sobre una celda de un xbrowse (array), buscando en el foro encontré algo similar a lo que deseo hacer, con este código ejemplo, se muestra en el tooltip la información de la celda referencia, pero lo que necesito que se muestre en el tooltip es el valor de la columna descripción.
Code: Select all
#include "FiveWin.ch"
#include "xbrowse.ch"
function Test()
local oDlg, oBrw
local aArray := {}
local nI
local hLinea := {=>}
local oCol
hLinea["id"] := 1
hLinea["referencia"] := "REFERENCIA1"
hLinea["descripcion"] := "LA DESCRIPCION DE LA REFERENCIA NUMERO 1"
hLinea["valor"] := 150000
AADD(aArray,hLinea)
hLinea := {=>}
hLinea["id"] := 2
hLinea["referencia"] := "REFERENCIA2"
hLinea["descripcion"] := "LA DESCRIPCION DE LA REFERENCIA NUMERO 2"
hLinea["valor"] := 250000
AADD(aArray,hLinea)
hLinea := {=>}
hLinea["id"] := 3
hLinea["referencia"] := "REFERENCIA3"
hLinea["descripcion"] := "LA DESCRIPCION DE LA REFERENCIA NUMERO 3"
hLinea["valor"] := 350000
AADD(aArray,hLinea)
hLinea := {=>}
DEFINE DIALOG oDlg Title "Test de Botones en xBrowse " size 700,300
oBrw:= txbrowse():new( oDlg )
oBrw:nRowHeight := 25
oBrw:nColDividerStyle := LINESTYLE_BLACK
oBrw:nRowDividerStyle := LINESTYLE_BLACK
oCol = oBrw:AddCol()
oCol:bStrData := {|| if(Len( aArray ) > 0 , aArray[oBrw:nArrayAt]["id"] ,"" ) }
oCol:cHeader = "id"
oCol:nWidth = 55
oCol:nHeadStrAlign = AL_LEFT
oCol:nDataStrAlign = AL_LEFT
oCol = oBrw:AddCol()
oCol:bStrData := {|| if(Len( aArray ) > 0 , aArray[oBrw:nArrayAt]["referencia"] ,"" ) }
oCol:cHeader = "referencia"
oCol:nWidth = 150
oCol:nHeadStrAlign = AL_LEFT
oCol:nDataStrAlign = AL_LEFT
oCol:bToolTip := { | oBrw,r,c,f,oMouseCol,nMouseRow| MyColToolTip( oBrw,r,c,f,oMouseCol,nMouseRow ) }
oCol = oBrw:AddCol()
oCol:bStrData := {|| if(Len( aArray ) > 0 , aArray[oBrw:nArrayAt]["valor"] ,"" ) }
oCol:cHeader = "valor"
oCol:nWidth = 90
oCol:nHeadStrAlign = AL_LEFT
oCol:nDataStrAlign = AL_LEFT
oBrw:SetArray( aArray )
oBrw:CreateFromCode()
ACTIVATE DIALOG oDlg center;
ON INIT ( oDlg:oClient := oBrw, ;
oDlg:ReSize() )
return nil
Function MyColToolTip( oBrw, r, c, f, oMouseCol, nMouseRow )
local uBm, uVal
if nMouseRow != oBrw:nRowSel
uBm := oBrw:BookMark
Eval( oBrw:bSkip, nMouseRow - oBrw:nRowSel ) //here (variable nMouseRow do not exists)
uVal := oMouseCol:Value
oBrw:BookMark := uBm
else
uVal := oMouseCol:Value
endif
return cValToChar( uVal )