Recuperacion de valor en XBROWSER

Recuperacion de valor en XBROWSER

Postby juanjogascem » Wed May 08, 2024 7:21 am

Hola,
Tengo el siguiente codigo para mostrar elementos en XBROWSER.
Code: Select all  Expand view  RUN

//----------------------------------------------------------------------------//
FUNCTION LisAyuda( oConexion, cSentencia  )
//----------------------------------------------------------------------------//
Local oDato
Local cDevuelvo

      oDato := Usar( oConexion, cSentencia )

 *     xBrowse( oDato )
       XBROWSER oDato TITLE "RELACION" ;
                SETUP XbrNoBar( oBrw )

       msgstop( cDevuelvo)
               
return NIL

function XbrNoBar( oBrw )
*************************

   oBrw:oWnd:bInit := < |oDlg|
      WITH OBJECT oDlg
         :oBar:Hide()
         oBrw:nTop -= :oBar:nHeight
         oBrw:nHeight += :oBar:nHeight
      END
      return nil
      >
      oBrw:bLDblClick  := { || msginfo(oBrw:aCols[1]:value) }
return nil
 

Pero quisiera asignar el valor de la primera columna seleccionada a una variable y cerrar el XBROWSER.
Podrian indicarme como se hace?

Saludos
Juan Jose
juanjogascem
 
Posts: 102
Joined: Wed May 31, 2006 8:49 am
Location: España

Re: Recuperacion de valor en XBROWSER

Postby cmsoft » Wed May 08, 2024 12:07 pm

Hola Juan:
Podrias cerrar la ventana del Browse al hacer dobleclick, y luego obtener el dato donde quedo parado el objeto oDato
Code: Select all  Expand view  RUN

function Main()
LOCAL oCn, oResult
FWCONNECT oCn HOST 'localhost' USER 'root' PASSWORD 'xxxxx' DATABASE 'test'

LisAyuda(oCn,'select codigo,nombre FROM articu')

return nil

//----------------------------------------------------------------------------//
FUNCTION LisAyuda( oConexion, cSentencia  )
//----------------------------------------------------------------------------//
Local oDato
Local cDevuelvo

      oDato := Usar( oConexion, cSentencia )

       XBROWSER oDato TITLE "RELACION" ;
                SETUP XbrNoBar( oBrw )

       cDevuelvo := oDato:FieldGet(1) // Aca obtienes la columna del objeto oDato que te interesa
       MsgInfo(cDevuelvo)
               
return NIL

function XbrNoBar( oBrw )
*************************

   oBrw:oWnd:bInit := < |oDlg|
      WITH OBJECT oDlg
         :oBar:Hide()
         oBrw:nTop -= :oBar:nHeight
         oBrw:nHeight += :oBar:nHeight
      END
      return nil
      >
      oBrw:bLDblClick  := { || oBrw:oWnd:End() } //Aca cierras la ventana
return nil
 


Espero que te sea de utilidad
User avatar
cmsoft
 
Posts: 1293
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina

Re: Recuperacion de valor en XBROWSER

Postby juanjogascem » Wed May 08, 2024 12:08 pm

Lo solucioné utilizando el PORTAPAPELES, pero no si es un forma elegante y eficaz de hacerlo
Code: Select all  Expand view  RUN

Local oDato
STATIC cDevuelvo

DEFINE CLIPBOARD oClp OF oWnd

      oDato := Usar( oConexion, cSentencia )

 *     xBrowse( oDato )
       XBROWSER oDato TITLE "RELACION" ;
                SETUP XbrNoBar( oBrw, aHead, oClp )

      cDevuelvo := oClp:getText()
               
   oClp:End()
return cDevuelvo

function XbrNoBar( oBrw, aHead, oClp )
**************************************
local cDevuelvo

      oBrw:oWnd:bInit := < |oDlg|
         WITH OBJECT oDlg
            :oBar:Hide()
            oBrw:nTop -= :oBar:nHeight
            oBrw:nHeight += :oBar:nHeight
            oBrw:lOemAnsi := .t.
            oBrw:cHeaders := aHead
            oBrw:aCols[1]:SetOrder()
            oBrw:aCols[1]:cOrder := 'A'
            oBrw:GoTop()
            oBrw:BClrStd := { || iif( oBrw:nArrayAt %2 == 0, {Memvar->Pija11, Memvar->Pija12},{Memvar->Pija21,Memvar->Pija22} )}
            oBrw:bLDblClick  := { || ( oClp:SetText( oBrw:aCols[1]:value ) ) }
         END
         return cDevuelvo
         >
    oClp:SetText( cText )
     
*      oBrw:bKeyDown := {|k| If( k == 13, (msginfo("action") ), nil ) }
return cDevuelvo
juanjogascem
 
Posts: 102
Joined: Wed May 31, 2006 8:49 am
Location: España

Re: Recuperacion de valor en XBROWSER

Postby juanjogascem » Wed May 08, 2024 12:39 pm

Cesar, gracias.
El cerrar la ventana era una de las cosas que estaba buscando y no daba con ello.

Saludos
juanjogascem
 
Posts: 102
Joined: Wed May 31, 2006 8:49 am
Location: España


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 103 guests