Cargar un Browse desde GET..ACTION..

Cargar un Browse desde GET..ACTION..

Postby Compuin » Sun May 16, 2021 6:39 pm

Hola foro,

Necesito cargar un Browse desde un GET y seleccionar un registro para llenar el mismo

Alguien tiene un ejemplo de como hacerlo?

Gracias de antemano
FWH 20.12
Hbmk2 32/64 Bits (Build 19.29.30133)
Microsoft Visual C 32 Bits
MySql 8.0.24 32/64 Bits
VS Code
Compuin
 
Posts: 1214
Joined: Tue Dec 28, 2010 1:29 pm
Location: Quebec, Canada

Re: Cargar un Browse desde GET..ACTION..

Postby jvtecheto » Sun May 16, 2021 7:35 pm

Hola amigo:

Yo utilizo algo como lo que pides, pero a ver como te lo explico. Lo intento... Este es el codigo del GET que tiene un bitmap (como puedes comprobar) tambien tengo en cuenta si el usuario pulsa simplemente Enter
que se lance la busqueda del codigo, tambien que pulse la tecla + , utilizo en ello dos funciones una trivial rellena() en la cual relleno automaticamente con ceros a la izquierda , la puedes desechar si quieres y luego
la de la busqueda en si que es un dialogo en el que se muestra el browse y permite buscar.
Se podria mejorar muchisimo con busqueda incremental, no lo he conseguido nunca desde un dialogo, tambien el codigo sera muy mejorable, pero a mi me funciona.
Ah veras que utilizo listbox en vez de XBrowse , no he conseguido nunca colocar los botones arriba del Xbrowse y que se vean bien, lo tengo pendiente, puedes probar tu.
Tambien veras que en la funciona hay uN DO CASE, ya que utilizo el mismo dialogo para todas las tablas que busco, ajusta tu, tus alias y las tablas que quieres buscar

A ver por partes.
codigo del GET
Code: Select all  Expand view

 REDEFINE GET oObra VAR cObra ID 101 BITMAP "OBRAS1" OF oDlg PICTURE "9999" ;
   ACTION ( cObra := Busqueda( cAlias ), oInicio:SetFocus(), oDlg:UPDATE() ) ;
   VALID ( Rellena( oObra ) ) .AND. ;
   ( IF( Obr->( dbSeek( cObra ) ), ( oDlg:UPDATE(), .T. ), ;
         ( cObra := Busqueda( "Obr" ), oSayObra:Refresh(), oInicio:SetFocus(), oDlg:UPDATE(), .T. ) ) ) UPDATE

   oObra:bGotfocus := { || oWndMain:SetMsg( "Codigo de obra.Tecla <+> permite buscar" ) }
   oObra:bKeyDown := { | nKey | IIf( nKey = VK_ADD, ( cObra := Busqueda( "Obr" ), oDlg:UPDATE(), oInicio:SetFocus() ), ) }

 


Codigo funciones Rellena y Busqueda
Code: Select all  Expand view

FUNCTION Rellena( oVar1 )

   LOCAL cValor
   cValor := oVar1:cText() // Recupera el valor del Objeto Get
   IF ! Empty( cValor )
      cValor := PadL( AllTrim( cValor ), Len( cValor ), "0" )
      oVar1:cText( cValor ) // Asigna el valor con Ceros al objeto Get
      oVar1:Refresh() // le indico al objeto Get, que se vuelva a pintar
   ENDIF
   RETURN .T.

// ------------------------------------------------------------------------

FUNCTION Busqueda( cAlias )

   LOCAL xVret
   LOCAL oDlg, oBrw
   LOCAL oRad, oBusqueda, oSayCodigo, oSayNombre
   LOCAL nRad, cBusqueda
   LOCAL oDbf
   LOCAL lanzaEdit, lanzaAdd
   LOCAL cBloqueEdit, cBloqueAdd, bBloqueEdit, bBloqueAdd
   LOCAL cIndice := ( cAlias ) ->( ordSetFocus() )

   dbSelectArea( cAlias )
   DATABASE oDbf

   DEFINE DIALOG oDlg NAME "BUSCAR" ;
   TITLE "Buscar Registro"

   // El alias puede ser Prov,Art,Trab,Obr. Hay que adaptarlo a los alias a buscar
   DO CASE
      CASE cAlias = "Prov"
         lanzaEdit := "EditProve(.F.)"
         lanzaAdd := "EditProve(.T.)"
      CASE cAlias = "Obr"
         lanzaEdit := "EditObras(.F.)"
         lanzaAdd := "EditObras(.T.)"
      CASE cAlias = "Trab"
         lanzaEdit := "EditTraba(.F.)"
         lanzaAdd := "EditTraba(.T.)"
      CASE cAlias = "Art"
         lanzaEdit := "EditArti(.F.)"
         lanzaAdd := "EditArti(.T.)"
   END CASE
   cBloqueEdit := "{ |oBrw| " + lanzaEdit + ",oBrw:Refresh(),oBrw:SetFocus() }"
   cBloqueAdd := "{ |oBrw| " + lanzaAdd + ",oBrw:Refresh(),oBrw:SetFocus() }"
   bBloqueEdit := &( cBloqueEdit )
   bBloqueAdd := &( cBloqueAdd )

   nRad := Space( 1 )
   nRad := 2

  /* oDbf:SetOrder(2)
   cBusqueda:=SPACE(15) */


   REDEFINE SAY oSayCodigo PROMPT IF( nRad == 1, "Codigo", "Nombre" ) ID 99 OF oDlg COLOR CLR_GREEN UPDATE
   REDEFINE SAY oSayNombre PROMPT ( cAlias ) ->Nombre ID 98 OF oDlg COLOR CLR_RED UPDATE

   REDEFINE GET oBusqueda VAR cBusqueda ID 100 OF oDlg ;
   PICTURE "@!"  ON CHANGE ( ::Assign(), IIf( oDbf:SEEK( cBusqueda ), ( oBrw:UpStable(), oDlg:UPDATE() ),  ) )

   REDEFINE RADIO oRad VAR nRad ID 102, 103 OF oDlg ;
   ON CHANGE ( IF( nRad == 1, ( oDbf:SetOrder( 1 ), cBusqueda := Space( 4 ) ), ( oDbf:SetOrder( 2 ), cBusqueda := Space( 15 ) ) ), oBusqueda:SetFocus() )  ;
   VALID ( IF( nRad == 1, oSayCodigo := "Codigo", oSayCodigo := "Nombre" ), oDlg:UPDATE(), .T. ) UPDATE

   REDEFINE BTNBMP ID 109 RESOURCE "ADD1" OF oDlg ACTION Eval( bBloqueAdd, oBrw ) TOOLTIP "Añadir egistros" NOBORDER // Añade un registro
   REDEFINE BTNBMP ID 108 RESOURCE "EDIT1" OF oDlg ACTION Eval( bBloqueEdit, oBrw ) TOOLTIP "Modificar registros" NOBORDER  // Modifica un regitro
   REDEFINE BTNBMP ID 104 RESOURCE "SELECT1" OF oDlg ACTION ( xVret := ( cAlias ) ->Codigo, oDlg:END() ) TOOLTIP "Seleccionar registro" NOBORDER // Selecciona
   REDEFINE BTNBMP ID 105 RESOURCE "EXIT3" OF oDlg ACTION ( xVret := ( cAlias ) ->Codigo, oDlg:END() ) TOOLTIP "Abandona busqueda" NOBORDER

   REDEFINE LISTBOX oBrw FIELDS oDbf:Codigo, oDbf:Nombre ;
   Alias (cAlias) HEADERS "CODIGO", "NOMBRE" ;
   ON CHANGE ( oSayNombre := ( cAlias ) ->Nombre, oDlg:UPDATE() ) ;
   ON DBLCLICK ( xVret := ( cAlias ) ->Codigo, oDlg:END() ) ;
   ID 106 OF oDlg UPDATE

   oDbf:Gotop()
   oBrw:bSkip = { | nRecs | oDbf:Skipper( nRecs ) }
   oBrw:nLineStyle := 3 // ( Puede asumir valores 0 a 10 ) 1,3
   oBrw:bGotFocus := { || oBrw:Refresh() }
   oBrw:bKeyDown := { | nKey | IIf( nKey = 13, ( xVret := ( cAlias ) ->Codigo, oDlg:END() ), ) }

   ACTIVATE DIALOG oDlg CENTERED ON INIT ( oDbf:SetOrder( 2 ), cBusqueda := Space( 15 ), oBusqueda:SetFocus() ) ;
                                           VALID ( xVret := ( cAlias ) ->Codigo, ( cAlias ) ->( ordSetFocus( cIndice ) ), .T. )

   RETURN ( xVret )

// -------------------------------------------------------------------------

 


y el codigo del del dialogo que debes incluir a tu .RC
Code: Select all  Expand view

LANGUAGE LANG_SPANISH, SUBLANG_SPANISH_MODERN
BUSCAR DIALOG 26, 47, 274, 173
STYLE DS_3DLOOK | DS_MODALFRAME | DS_SETFONT | WS_CAPTION | WS_POPUP | WS_SYSMENU
CAPTION "LOCALIZACION REGISTRO"
FONT 10, "Arial"
{
    EDITTEXT        100, 8, 32, 204, 12, WS_GROUP, WS_EX_LEFT
    CONTROL         "", 106, "TWBrowse", 0x50A30000, 0, 68, 268, 102, 0x00000000
    AUTORADIOBUTTON "Código", 102, 224, 20, 36, 10, 0, WS_EX_LEFT
    AUTORADIOBUTTON "Nombre", 103, 224, 40, 36, 10, 0, WS_EX_LEFT
    GROUPBOX        "Busqueda", 101, 219, 1, 49, 63, 0, WS_EX_LEFT
    LTEXT           ".", 99, 79, 20, 69, 8, NOT WS_GROUP | SS_LEFT, WS_EX_LEFT
    LTEXT           "", 98, 12, 10, 121, 8, NOT WS_GROUP | SS_LEFT, WS_EX_LEFT
    LTEXT           "Búsqueda por :", -1, 11, 20, 51, 9, NOT WS_GROUP | SS_LEFT, WS_EX_LEFT
    GROUPBOX        "", 4001, 4, 0, 213, 64, 0, WS_EX_LEFT
    PUSHBUTTON      "", 109, 8, 48, 18, 14, BS_BITMAP, WS_EX_LEFT
    PUSHBUTTON      "", 108, 28, 48, 18, 14, BS_BITMAP, WS_EX_LEFT
    PUSHBUTTON      "", 104, 48, 48, 18, 14, BS_BITMAP, WS_EX_LEFT
    PUSHBUTTON      "", 105, 68, 48, 18, 14, BS_BITMAP, WS_EX_LEFT
}
 


Posdata, si quieres los bitmaps te los puedo enviar pero puedes usar los de tu eleccion eso no es problema.
Ya te digo que este tema es mejorable pero a mi me funciona.

Un saludo

Jose
Fwh 24.07 64 bits + Harbour 64 bits 3.2dev(r2407221137) + MSVC64
User avatar
jvtecheto
 
Posts: 597
Joined: Mon Mar 04, 2013 4:32 pm
Location: Spain

Re: Cargar un Browse desde GET..ACTION..

Postby Compuin » Sun May 16, 2021 7:38 pm

jvtecheto wrote:Hola amigo:

Yo utilizo algo como lo que pides, pero a ver como te lo explico. Lo intento... Este es el codigo del GET que tiene un bitmap (como puedes comprobar) tambien tengo en cuenta si el usuario pulsa simplemente Enter
que se lance la busqueda del codigo, tambien que pulse la tecla + , utilizo en ello dos funciones una trivial rellena() en la cual relleno automaticamente con ceros a la izquierda , la puedes desechar si quieres y luego
la de la busqueda en si que es un dialogo en el que se muestra el browse y permite buscar.
Se podria mejorar muchisimo con busqueda incremental, no lo he conseguido nunca desde un dialogo, tambien el codigo sera muy mejorable, pero a mi me funciona.
Ah veras que utilizo listbox en vez de XBrowse , no he conseguido nunca colocar los botones arriba del Xbrowse y que se vean bien, lo tengo pendiente, puedes probar tu.
Tambien veras que en la funciona hay uN DO CASE, ya que utilizo el mismo dialogo para todas las tablas que busco, ajusta tu, tus alias y las tablas que quieres buscar

A ver por partes.
codigo del GET
Code: Select all  Expand view

 REDEFINE GET oObra VAR cObra ID 101 BITMAP "OBRAS1" OF oDlg PICTURE "9999" ;
   ACTION ( cObra := Busqueda( cAlias ), oInicio:SetFocus(), oDlg:UPDATE() ) ;
   VALID ( Rellena( oObra ) ) .AND. ;
   ( IF( Obr->( dbSeek( cObra ) ), ( oDlg:UPDATE(), .T. ), ;
         ( cObra := Busqueda( "Obr" ), oSayObra:Refresh(), oInicio:SetFocus(), oDlg:UPDATE(), .T. ) ) ) UPDATE

   oObra:bGotfocus := { || oWndMain:SetMsg( "Codigo de obra.Tecla <+> permite buscar" ) }
   oObra:bKeyDown := { | nKey | IIf( nKey = VK_ADD, ( cObra := Busqueda( "Obr" ), oDlg:UPDATE(), oInicio:SetFocus() ), ) }

 


Codigo funciones Rellena y Busqueda
Code: Select all  Expand view

FUNCTION Rellena( oVar1 )

   LOCAL cValor
   cValor := oVar1:cText() // Recupera el valor del Objeto Get
   IF ! Empty( cValor )
      cValor := PadL( AllTrim( cValor ), Len( cValor ), "0" )
      oVar1:cText( cValor ) // Asigna el valor con Ceros al objeto Get
      oVar1:Refresh() // le indico al objeto Get, que se vuelva a pintar
   ENDIF
   RETURN .T.

// ------------------------------------------------------------------------

FUNCTION Busqueda( cAlias )

   LOCAL xVret
   LOCAL oDlg, oBrw
   LOCAL oRad, oBusqueda, oSayCodigo, oSayNombre
   LOCAL nRad, cBusqueda
   LOCAL oDbf
   LOCAL lanzaEdit, lanzaAdd
   LOCAL cBloqueEdit, cBloqueAdd, bBloqueEdit, bBloqueAdd
   LOCAL cIndice := ( cAlias ) ->( ordSetFocus() )

   dbSelectArea( cAlias )
   DATABASE oDbf

   DEFINE DIALOG oDlg NAME "BUSCAR" ;
   TITLE "Buscar Registro"

   // El alias puede ser Prov,Art,Trab,Obr. Hay que adaptarlo a los alias a buscar
   DO CASE
      CASE cAlias = "Prov"
         lanzaEdit := "EditProve(.F.)"
         lanzaAdd := "EditProve(.T.)"
      CASE cAlias = "Obr"
         lanzaEdit := "EditObras(.F.)"
         lanzaAdd := "EditObras(.T.)"
      CASE cAlias = "Trab"
         lanzaEdit := "EditTraba(.F.)"
         lanzaAdd := "EditTraba(.T.)"
      CASE cAlias = "Art"
         lanzaEdit := "EditArti(.F.)"
         lanzaAdd := "EditArti(.T.)"
   END CASE
   cBloqueEdit := "{ |oBrw| " + lanzaEdit + ",oBrw:Refresh(),oBrw:SetFocus() }"
   cBloqueAdd := "{ |oBrw| " + lanzaAdd + ",oBrw:Refresh(),oBrw:SetFocus() }"
   bBloqueEdit := &( cBloqueEdit )
   bBloqueAdd := &( cBloqueAdd )

   nRad := Space( 1 )
   nRad := 2

  /* oDbf:SetOrder(2)
   cBusqueda:=SPACE(15) */


   REDEFINE SAY oSayCodigo PROMPT IF( nRad == 1, "Codigo", "Nombre" ) ID 99 OF oDlg COLOR CLR_GREEN UPDATE
   REDEFINE SAY oSayNombre PROMPT ( cAlias ) ->Nombre ID 98 OF oDlg COLOR CLR_RED UPDATE

   REDEFINE GET oBusqueda VAR cBusqueda ID 100 OF oDlg ;
   PICTURE "@!"  ON CHANGE ( ::Assign(), IIf( oDbf:SEEK( cBusqueda ), ( oBrw:UpStable(), oDlg:UPDATE() ),  ) )

   REDEFINE RADIO oRad VAR nRad ID 102, 103 OF oDlg ;
   ON CHANGE ( IF( nRad == 1, ( oDbf:SetOrder( 1 ), cBusqueda := Space( 4 ) ), ( oDbf:SetOrder( 2 ), cBusqueda := Space( 15 ) ) ), oBusqueda:SetFocus() )  ;
   VALID ( IF( nRad == 1, oSayCodigo := "Codigo", oSayCodigo := "Nombre" ), oDlg:UPDATE(), .T. ) UPDATE

   REDEFINE BTNBMP ID 109 RESOURCE "ADD1" OF oDlg ACTION Eval( bBloqueAdd, oBrw ) TOOLTIP "Añadir egistros" NOBORDER // Añade un registro
   REDEFINE BTNBMP ID 108 RESOURCE "EDIT1" OF oDlg ACTION Eval( bBloqueEdit, oBrw ) TOOLTIP "Modificar registros" NOBORDER  // Modifica un regitro
   REDEFINE BTNBMP ID 104 RESOURCE "SELECT1" OF oDlg ACTION ( xVret := ( cAlias ) ->Codigo, oDlg:END() ) TOOLTIP "Seleccionar registro" NOBORDER // Selecciona
   REDEFINE BTNBMP ID 105 RESOURCE "EXIT3" OF oDlg ACTION ( xVret := ( cAlias ) ->Codigo, oDlg:END() ) TOOLTIP "Abandona busqueda" NOBORDER

   REDEFINE LISTBOX oBrw FIELDS oDbf:Codigo, oDbf:Nombre ;
   Alias (cAlias) HEADERS "CODIGO", "NOMBRE" ;
   ON CHANGE ( oSayNombre := ( cAlias ) ->Nombre, oDlg:UPDATE() ) ;
   ON DBLCLICK ( xVret := ( cAlias ) ->Codigo, oDlg:END() ) ;
   ID 106 OF oDlg UPDATE

   oDbf:Gotop()
   oBrw:bSkip = { | nRecs | oDbf:Skipper( nRecs ) }
   oBrw:nLineStyle := 3 // ( Puede asumir valores 0 a 10 ) 1,3
   oBrw:bGotFocus := { || oBrw:Refresh() }
   oBrw:bKeyDown := { | nKey | IIf( nKey = 13, ( xVret := ( cAlias ) ->Codigo, oDlg:END() ), ) }

   ACTIVATE DIALOG oDlg CENTERED ON INIT ( oDbf:SetOrder( 2 ), cBusqueda := Space( 15 ), oBusqueda:SetFocus() ) ;
                                           VALID ( xVret := ( cAlias ) ->Codigo, ( cAlias ) ->( ordSetFocus( cIndice ) ), .T. )

   RETURN ( xVret )

// -------------------------------------------------------------------------

 


y el codigo del del dialogo que debes incluir a tu .RC
Code: Select all  Expand view

LANGUAGE LANG_SPANISH, SUBLANG_SPANISH_MODERN
BUSCAR DIALOG 26, 47, 274, 173
STYLE DS_3DLOOK | DS_MODALFRAME | DS_SETFONT | WS_CAPTION | WS_POPUP | WS_SYSMENU
CAPTION "LOCALIZACION REGISTRO"
FONT 10, "Arial"
{
    EDITTEXT        100, 8, 32, 204, 12, WS_GROUP, WS_EX_LEFT
    CONTROL         "", 106, "TWBrowse", 0x50A30000, 0, 68, 268, 102, 0x00000000
    AUTORADIOBUTTON "Código", 102, 224, 20, 36, 10, 0, WS_EX_LEFT
    AUTORADIOBUTTON "Nombre", 103, 224, 40, 36, 10, 0, WS_EX_LEFT
    GROUPBOX        "Busqueda", 101, 219, 1, 49, 63, 0, WS_EX_LEFT
    LTEXT           ".", 99, 79, 20, 69, 8, NOT WS_GROUP | SS_LEFT, WS_EX_LEFT
    LTEXT           "", 98, 12, 10, 121, 8, NOT WS_GROUP | SS_LEFT, WS_EX_LEFT
    LTEXT           "Búsqueda por :", -1, 11, 20, 51, 9, NOT WS_GROUP | SS_LEFT, WS_EX_LEFT
    GROUPBOX        "", 4001, 4, 0, 213, 64, 0, WS_EX_LEFT
    PUSHBUTTON      "", 109, 8, 48, 18, 14, BS_BITMAP, WS_EX_LEFT
    PUSHBUTTON      "", 108, 28, 48, 18, 14, BS_BITMAP, WS_EX_LEFT
    PUSHBUTTON      "", 104, 48, 48, 18, 14, BS_BITMAP, WS_EX_LEFT
    PUSHBUTTON      "", 105, 68, 48, 18, 14, BS_BITMAP, WS_EX_LEFT
}
 


Posdata, si quieres los bitmaps te los puedo enviar pero puedes usar los de tu eleccion eso no es problema.
Ya te digo que este tema es mejorable pero a mi me funciona.

Un saludo

Jose


Jose,

Muchisimas gracias por tomarte de tu tiempo y responderme tan detalladamente

Voy a probar tu codigo y te estare comentando
FWH 20.12
Hbmk2 32/64 Bits (Build 19.29.30133)
Microsoft Visual C 32 Bits
MySql 8.0.24 32/64 Bits
VS Code
Compuin
 
Posts: 1214
Joined: Tue Dec 28, 2010 1:29 pm
Location: Quebec, Canada

Re: Cargar un Browse desde GET..ACTION..

Postby Compuin » Sun May 16, 2021 8:12 pm

Lo que necesito es que por medio del boton llamar a un prg que contiene otro Browse. De ese brow se seleccionar un registro y con un click o Enter llenar el campo desde donde ejecute el boton del Get

Espero haberme hecho entender
FWH 20.12
Hbmk2 32/64 Bits (Build 19.29.30133)
Microsoft Visual C 32 Bits
MySql 8.0.24 32/64 Bits
VS Code
Compuin
 
Posts: 1214
Joined: Tue Dec 28, 2010 1:29 pm
Location: Quebec, Canada

Re: Cargar un Browse desde GET..ACTION..

Postby jvtecheto » Sun May 16, 2021 8:27 pm

Si eso lo hace el código que he adjuntado, adaptarlo a tus tablas y funciona, si pulsas enter, te la + o un código que no existe se abre el diálogo con el browse, eliges el registro y te lo coloca en el get

Enviado desde mi POCOPHONE F1 mediante Tapatalk
Fwh 24.07 64 bits + Harbour 64 bits 3.2dev(r2407221137) + MSVC64
User avatar
jvtecheto
 
Posts: 597
Joined: Mon Mar 04, 2013 4:32 pm
Location: Spain

Re: Cargar un Browse desde GET..ACTION..

Postby nageswaragunupudi » Mon May 17, 2021 1:29 pm

You may consider using the FWH built-in function PopupBrowse(), which is created for this purpose only.
Source of the function is available in TGet.prg.

Usage:
Code: Select all  Expand view
#include "fivewin.ch"

REQUEST DBFCDX

function Main()

   local cState   := PadR( "New York", 25 )
   local oDlg, oFont, oGet

   SetGetColorFocus()

   USE STATES SHARED VIA "DBFCDX" READONLY

   DEFINE FONT oFont NAME "TAHOMA" SIZE 0,-16
   DEFINE DIALOG oDlg SIZE 450,150 PIXEL TRUEPIXEL FONT oFont ;
      TITLE "Get-PopUpBrowse"

   @ 20,20 SAY "State Name :" SIZE 100,24 PIXEL OF oDlg

   @ 20,140 GET oGet VAR cState SIZE 200,26 PIXEL OF oDlg ;
      ACTION PopUpBrowse( "STATES", oGet, nil, 2 )

   @ 90,20 BUTTON "CHECK" SIZE 100,30 PIXEL OF oDlg ACTION MsgInfo( cState )

   ACTIVATE DIALOG oDlg CENTERED
   RELEASE FONT oFont

return nil
 


Image
Regards

G. N. Rao.
Hyderabad, India
User avatar
nageswaragunupudi
 
Posts: 10642
Joined: Sun Nov 19, 2006 5:22 am
Location: India

Re: Cargar un Browse desde GET..ACTION..

Postby Compuin » Mon May 17, 2021 1:33 pm

Hello Mr Rao and thanks

This is a good apporach but I need to call another Browse in case if the row I'm looking for does not exist I can Add it fron the browser itself

Please advise
FWH 20.12
Hbmk2 32/64 Bits (Build 19.29.30133)
Microsoft Visual C 32 Bits
MySql 8.0.24 32/64 Bits
VS Code
Compuin
 
Posts: 1214
Joined: Tue Dec 28, 2010 1:29 pm
Location: Quebec, Canada

Re: Cargar un Browse desde GET..ACTION..

Postby karinha » Mon May 17, 2021 2:04 pm

Code: Select all  Expand view

   REDEFINE GET aGet[56] VAR CNOMENECES    PICTURE "@K" ID 76 OF oFld:aDialogs[2] ;
      UPDATE COLORS CLR_BLACK, CLR_WHITE FONT oFont BITMAP "BUSCAR"               ;
      ACTION( BUSCA_NECESSIDADES( aGet ) )

   aGet[56]:cToolTip := OemToAnsi( "<F7> - Cadastro de Necessidades" )
   aGet[56]:lBtnTransparent := .T.       // transparent button
   aGet[56]:bKeyDown := { |nKey| IF( nKey == VK_F7, Eval( aGet[56]:bAction ), Nil ) }
 


Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7824
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 85 guests