Cargar un Browse desde GET..ACTION..
- Compuin
- Posts: 1251
- Joined: Tue Dec 28, 2010 1:29 pm
- Location: Quebec, Canada
- Has thanked: 7 times
- Been thanked: 3 times
Cargar un Browse desde GET..ACTION..
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
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
Hbmk2 32/64 Bits (Build 19.29.30133)
Microsoft Visual C 32 Bits
MySql 8.0.24 32/64 Bits
VS Code
Re: Cargar un Browse desde GET..ACTION..
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
Codigo funciones Rellena y Busqueda
y el codigo del del dialogo que debes incluir a tu .RC
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
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
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
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
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
- Compuin
- Posts: 1251
- Joined: Tue Dec 28, 2010 1:29 pm
- Location: Quebec, Canada
- Has thanked: 7 times
- Been thanked: 3 times
Re: Cargar un Browse desde GET..ACTION..
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 GETCode: Select all | Expand
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 BusquedaCode: Select all | Expand
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 .RCCode: Select all | Expand
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
Hbmk2 32/64 Bits (Build 19.29.30133)
Microsoft Visual C 32 Bits
MySql 8.0.24 32/64 Bits
VS Code
- Compuin
- Posts: 1251
- Joined: Tue Dec 28, 2010 1:29 pm
- Location: Quebec, Canada
- Has thanked: 7 times
- Been thanked: 3 times
Re: Cargar un Browse desde GET..ACTION..
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
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
Hbmk2 32/64 Bits (Build 19.29.30133)
Microsoft Visual C 32 Bits
MySql 8.0.24 32/64 Bits
VS Code
Re: Cargar un Browse desde GET..ACTION..
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
Enviado desde mi POCOPHONE F1 mediante Tapatalk
Fwh 24.07 64 bits + Harbour 64 bits 3.2dev(r2407221137) + MSVC64
- nageswaragunupudi
- Posts: 10721
- Joined: Sun Nov 19, 2006 5:22 am
- Location: India
- Been thanked: 8 times
- Contact:
Re: Cargar un Browse desde GET..ACTION..
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:
![Image](https://imagizer.imageshack.com/img922/797/IUi3tR.gif)
Source of the function is available in TGet.prg.
Usage:
Code: Select all | Expand
#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](https://imagizer.imageshack.com/img922/797/IUi3tR.gif)
Regards
G. N. Rao.
Hyderabad, India
G. N. Rao.
Hyderabad, India
- Compuin
- Posts: 1251
- Joined: Tue Dec 28, 2010 1:29 pm
- Location: Quebec, Canada
- Has thanked: 7 times
- Been thanked: 3 times
Re: Cargar un Browse desde GET..ACTION..
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
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
Hbmk2 32/64 Bits (Build 19.29.30133)
Microsoft Visual C 32 Bits
MySql 8.0.24 32/64 Bits
VS Code
- karinha
- Posts: 7935
- Joined: Tue Dec 20, 2005 7:36 pm
- Location: São Paulo - Brasil
- Been thanked: 3 times
- Contact:
Re: Cargar un Browse desde GET..ACTION..
Code: Select all | Expand
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