xBrowse - Tooltip

xBrowse - Tooltip

Postby MarioG » Wed Dec 18, 2013 2:30 pm

Gente:
Tengo el siguiente browse
Image

El acceso, mediante boton de la columna Banco, abre otro Browse para selección. Devuelve un array con código y descripción, el código se visualiza la lado del boton (como se ve arriba).
Hasta aquí todo correcto.
La pregunta es; si puedo definir un Tooltip, de manera que me muestre la descripción referida a tal codigo
A modo de ejemplo lo hago así (sin exito)
Code: Select all  Expand view
  WITH OBJECT oLstChq
      ...
      :bChange     := {|| oLstChq:MakeTotals(), nPosActual := oLstChq:BookMark, ;
                          oLstChq:Banco:cToolTip:= aBanco[1][2], oLstChq:Refresh() }
   END
   ...
   WITH OBJECT oLstChq:Banco
      :nHeadStrAlign:= :nDataStrAlign:= AL_RIGHT
      :cEditPicture := PIC_DIEZCIF0
      :nEditType    := EDIT_BUTTON
      :AddResource( "bmp_Banco" )
      :nBtnBmp      := 1

      :bstrData  := {|| aBanco[1][1] }
      :bEditBlock:= {|| aBanco:= (h0["Bancos"]:cAlias)->( oCaptu:Capturas( "FBank01", "FBank02", _ARBANCOS, "Bancos", TRUE, FALSE ) ), ;
                        saChqCobros[oLstChq:nArrayAt][_IDBanco]:= aBanco[1][1], ;
                        oLstChq:Refresh() }
   END
 

Se puede?
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: xBrowse - Tooltip

Postby El Loco » Wed Dec 18, 2013 4:02 pm

Mario, creo que esto puede llegar a darte una idea de como hacerlo.
El FW Samples\TestxBr3.prg tiene una función ShowFunction() que adaptándola te puede llegar a servir.
No tengo una PC a mano para probar pero fijate.
Un gran brazo amigo.
Miguel
FWH 32/64 14.04
Harbour 3.2.0 (r1306211258)
PellesC
El Loco
 
Posts: 328
Joined: Fri May 19, 2006 4:08 pm
Location: Buenos Aires - Argentina

Re: xBrowse - Tooltip

Postby MarioG » Wed Dec 18, 2013 10:33 pm

Miguelito querido!
Muchas gracias. Muy bueno el Tip
Lo estoy estudiando a ver si se puede adaptar

Hay que "inventar" una reunión! ;-)
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: xBrowse - Tooltip

Postby El Loco » Thu Dec 19, 2013 12:56 am

A ver Marito si esto te sirve.
Tomado de ejemplos de FH (XbRowEd.Prg y TestxBr3.prg chusmeando los prg se puede llegar a encontrar cada joyita .... Grande ANTONIO !!!) con algunas modificaciones.
Hay que pulir un poco el código, (lo hice medio a las disparadas) pero te puede dar una idea.

Code: Select all  Expand view
/*
*
* XbRowEd.Prg
*
* Using oBrw:CurrentRow() object for popup edits
*
*/



#include 'fivewin.ch'
#include 'adodef.ch'  // in \fwh\include folder
#include 'ord.ch'
#include 'xbrowse.ch'

REQUEST DBFCDX

function Main()

   local oBrw, oDlg, uData
   local oFont

   SET EXCLUSIVE OFF
   SET DELETED ON
   SET OPTIMIZE ON

   SetGetColorFocus()

   USE CUSTOMER NEW ALIAS CUST SHARED VIA 'DBFCDX'

   DEFINE FONT oFont NAME 'TAHOMA' SIZE 0,-12
   DEFINE DIALOG oDlg SIZE 640,460 PIXEL TITLE 'XBrowse Row Edit' ;
                      FONT oFont

   @ 10,10 XBROWSE oBrw SIZE -10,-30 PIXEL OF oDlg ;
      COLUMNS 'First', 'City', 'Age', 'Salary' ;
      PICTURES nil, nil, '999', '99,999,999.99' ;
      OBJECT uData ;
      AUTOSORT CELL LINES NOBORDER ;
      ON DBLCLICK RowEdit( oBrw:CurrentRow() )

   WITH OBJECT oBrw
      :nStretchCol  := STRETCHCOL_WIDEST
      :CreateFromCode()
   END

   @ 210, 10 BUTTON 'Edit'  SIZE 40,14 PIXEL OF oDlg ACTION RowEdit( oBrw:CurrentRow() )
   @ 210,270 BUTTON 'Close' SIZE 40,14 PIXEL OF oDlg ACTION oDlg:End()

   ACTIVATE DIALOG oDlg CENTERED
   RELEASE FONT oFont

   DbCloseAll()

return nil

static function RowEdit( oRow )


   local nFrom, nUpto
   Local cText := oRow:First +CRLF+ "__________________________________________"+CRLF+CRLF+  ;
                                    "Todo el text que quieras poner" +CRLF+ "Ya de forma estatica, como robada desde una .DBF" +CRLF+ ;
                                    "y .... bla, bla, bla, bla, bla, bla, bla..." +CRLF+ ;
                                    "y .... bla, bla, bla, bla, bla, bla, bla..." +CRLF+ ;
                                    "y .... bla, bla, bla, bla, bla, bla, bla..." +CRLF+ ;
                                    "y .... bla, bla, bla, bla, bla, bla, bla..." +CRLF+ ;
                                    "y .... bla, bla, bla, bla, bla, bla, bla..."
 

   nUpto := At( CRLF + "return", Lower( cText ) )
   if nUpto > 0
      cText := Left( cText, nUpto + 11 )
      cText := StrTran( cText, CRLF + "   cFunc := ProcName( 0 )", "" )
   endif

   if !Empty( cText )
      HTMLPOP( GetActiveWindow(), nil, 0x000E, cText )
   endif

return nil


Abrazos Marito y que el Abuelo te proteja.
Miguel
FWH 32/64 14.04
Harbour 3.2.0 (r1306211258)
PellesC
El Loco
 
Posts: 328
Joined: Fri May 19, 2006 4:08 pm
Location: Buenos Aires - Argentina

Re: xBrowse - Tooltip

Postby El Loco » Thu Dec 19, 2013 2:01 am

2do. ejemplo un poco mas sofisticado

Code: Select all  Expand view
/*
*
* XbRowEd.Prg
*
* Using oBrw:CurrentRow() object for popup edits
*
*/



#include 'fivewin.ch'
#include 'adodef.ch'  // in \fwh\include folder
#include 'ord.ch'
#include 'xbrowse.ch'

REQUEST DBFCDX

function Main()

   local oBrw, oDlg, uData
   local oFont

   SET EXCLUSIVE OFF
   SET DELETED ON
   SET OPTIMIZE ON

   SetGetColorFocus()

   USE CUSTOMER NEW ALIAS CUST SHARED VIA 'DBFCDX'

   DEFINE FONT oFont NAME 'TAHOMA' SIZE 0,-12
   DEFINE DIALOG oDlg SIZE 640,460 PIXEL TITLE 'XBrowse Row Edit' ;
                      FONT oFont

   @ 10,10 XBROWSE oBrw SIZE -10,-30 PIXEL OF oDlg ;
      COLUMNS 'First', 'City', 'Age', 'Salary' ;
      PICTURES nil, nil, '999', '99,999,999.99' ;
      OBJECT uData ;
      AUTOSORT CELL LINES NOBORDER ;
      ON DBLCLICK RowEdit( oBrw:CurrentRow() )

   WITH OBJECT oBrw
      :nStretchCol  := STRETCHCOL_WIDEST
      :CreateFromCode()
   END

   @ 210, 10 BUTTON 'Edit'  SIZE 40,14 PIXEL OF oDlg ACTION RowEdit( oBrw:CurrentRow() )
   @ 210,270 BUTTON 'Close' SIZE 40,14 PIXEL OF oDlg ACTION oDlg:End()

   ACTIVATE DIALOG oDlg CENTERED
   RELEASE FONT oFont

   DbCloseAll()

return nil

static function RowEdit( oRow )


   Local nFrom, nUpto
   Local A
   Local cText := oRow:First +CRLF+ "__________________________________________"+CRLF

      For A:= 1 To Len(oRow:aHeaders)
          cText+=  +CRLF+ oRow:aHeaders[A] +" : "
          Do Case
             Case ValType(oRow:aValues[A]) == "C" ; cText+= + oRow:aValues[A]
             Case ValType(oRow:aValues[A]) == "N" ; cText+= + Str(oRow:aValues[A])
             Case ValType(oRow:aValues[A]) == "L" ; If(oRow:aValues[A] , cText+= + "CASADO" , cText+= + "CASADO")
             Case ValType(oRow:aValues[A]) == "D" ; cText+= + DtoC(oRow:aValues[A])
          Endcase
          cText+= +CRLF+ "__________________________________________"
      Next A

   nUpto := At( CRLF + "return", Lower( cText ) )
   if nUpto > 0
      cText := Left( cText, nUpto + 11 )
      cText := StrTran( cText, CRLF + "   cFunc := ProcName( 0 )", "" )
   endif

   if !Empty( cText )
      HTMLPOP( GetActiveWindow(), nil, 0x000E, cText )
   endif

return nil

 


Besos y abrazos !!!
FWH 32/64 14.04
Harbour 3.2.0 (r1306211258)
PellesC
El Loco
 
Posts: 328
Joined: Fri May 19, 2006 4:08 pm
Location: Buenos Aires - Argentina

Re: xBrowse - Tooltip

Postby MarioG » Thu Dec 19, 2013 12:25 pm

Miguel;
Muchas gracias por tu tiempo!
Interesante la función. Ahora bien, en mi pretensión, la idea es que funcione como un Tooltip (el que por lo que observo, no funciona al señalar una celda, sino que lo hace sobre la cabecera).
O sea, la idea es que al señalar un "celda" que contiene un código, muestre su descripción...peeeero, sin tener que pulsar sobre un boton externo al browse.
Quizás es un poco loco... pero bue, ocurrencias dada la potencia de xbrowse.

Feliz Navidad y finde!!! (para todos)
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: xBrowse - Tooltip

Postby hmpaquito » Thu Dec 19, 2013 2:18 pm

Mario,

Yo lo tengo implementado, asi como dices tu, un tooltip que devuelve un texto variable sobre las lineas de cuerpo del browse, pero para la clase TSBrowse(). Mi clase TSBrowse(), literalmente, "da miedo" por la cantidad de cambios y hackings que tiene.
Basicamente, como lo tengo, es interviniendo el metodo :MouseMove() donde se llama al metodo (padre) :ShowToolTip(). Es necesario una Data tipo codeblock por cada objeto oCol que tenga la descripcion a mostrar. El codeblock deberia recibir como parametro el dato de la celda, o incluso el registro actual, para dbfs. Como guinda del pastel, el globo que aparece, muestra como titulo la cabecera de la columna, en negrita y debajo el texto segun el dato que hay debajo del puntero del mouse.

Feliz Navidad para todos ! :D
hmpaquito
 
Posts: 1482
Joined: Thu Oct 30, 2008 2:37 pm

Re: xBrowse - Tooltip

Postby El Loco » Thu Dec 19, 2013 7:05 pm

MarioG wrote:Miguel;
Muchas gracias por tu tiempo!
Interesante la función. Ahora bien, en mi pretensión, la idea es que funcione como un Tooltip (el que por lo que observo, no funciona al señalar una celda, sino que lo hace sobre la cabecera).
O sea, la idea es que al señalar un "celda" que contiene un código, muestre su descripción...peeeero, sin tener que pulsar sobre un boton externo al browse.
Quizás es un poco loco... pero bue, ocurrencias dada la potencia de xbrowse.

Feliz Navidad y finde!!! (para todos)

Mario no solo te trae la información de los Head si no también el contenido de los campos, además no hace falta pulsar el botón, con solo cliclear sobre una celda te trae la información del registro.
En el primer ejemplo hace exactamente eso. En cuanto a la información que te muestra esa la podes manejar a tu antojo.
La idea en si es que veas la posibilidades que da la función en si, las posibilidades son enormes.
Otra ventaja que le veo sobre el tooltip, es que permanece el hasta que le realices un nuevo click.

Bueno era solo una idea.
Abrazos.
Miguel
FWH 32/64 14.04
Harbour 3.2.0 (r1306211258)
PellesC
El Loco
 
Posts: 328
Joined: Fri May 19, 2006 4:08 pm
Location: Buenos Aires - Argentina

Re: xBrowse - Tooltip

Postby cnavarro » Thu Dec 19, 2013 9:18 pm

Hola
Creo que la clase TXBrwColumn de XBrowse tiene una DATA bToolTip
Este es el código que aparece con los parámetros que son pasados al codeblock

Code: Select all  Expand view

cTxt := eval( oCol:bToolTip, Self, nRow, nCol, nkeyFlags )
 
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6504
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: xBrowse - Tooltip

Postby MarioG » Thu Dec 19, 2013 10:26 pm

hmpaquito. Muchas gracias por tu interés

Miguel:
Que torpe!. No miré la declaración de DBLCLIC en el XBROWSE

CNavarro:
gracias!. Lo estoy probando
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: xBrowse - Tooltip

Postby rolando » Thu Dec 19, 2013 11:58 pm

Mario, si le agregas a

Code: Select all  Expand view
METHOD CreateButtons() CLASS TXBrwColumn

...

@ 0,0 BTNBMP ::oBtnElip OF ::oBrw NOBORDER SIZE 0,0
::oBtnElip:cCaption := IfNil( ::cBtnCaption, "..." )
::oBtnElip:bAction := {|| ::RunBtnAction() }
::oBtnElip:SetFont( If( ValType( ::oDataFont ) == "B", Eval( ::oDataFont, Self ), ::oDataFont ) )
::oBtnElip:SetColor( aColors[ 1 ], aColors[ 2 ] )

::oBtnElip:cTooltip:="prueba"   // agregado

...


Al pasar sobre un boton sale el tooltip "prueba"

A partir de esto supongo podrías reformar la clase para que haga lo que pretendes (agregandole datas, etc.)

Saludos

Rolando
User avatar
rolando
 
Posts: 593
Joined: Sat May 12, 2007 11:47 am
Location: San Nicolás - BA - ARGENTINA

Re: xBrowse - Tooltip

Postby MarioG » Fri Dec 20, 2013 12:36 am

Rolando, gracias!
Lo uso en botones... pero estoy contra reloj... asi es que quedará como tarea pendiente
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 38 guests