Hola nuevamente,
Estoy bastante activo estos dias porque estoy queriendo mejorar algunas cosas de mi codigo.
Actualmente, tengo una pantalla para editar información. Cuando al GET le digo que tiene una variable que es numerica, y le pongo VARNUM[1] := 0, puedo escribir hasta 9 digitos aproximadamente. Pero cuando pongo para editar, supongamos un 34 en el campo, me bloquea a poder poner un 3er digito. Osea, desde que puse varnum[1]:= 34 y puse refresh, despues no puedo editar ese campo por un numero mayor a 2 digitos, si me deja poner cualquier numero pero su limite siempre es 2 digitos o el numero inicial.
Alguna idea para solucionar? No quiero tener que convertirlo a texto y despues a val. No lo veo muy eficiente ni bueno para la experiencia del usuario. Ya que tambien uso eso en la función de msgget().
Por otro lado, hay alguna forma de hacer en el valid() alguna función que pregunte si el GET tiene 100% caracteres numericos? Porque intento hacer val(), pero si tiene almenos 1 numero, ya me arroja ese numero.
Muchas gracias.
Get numerico problema al editar
-
- Posts: 50
- Joined: Tue Feb 02, 2021 10:21 pm
- Location: Buenos Aires, Argentina
- Contact:
- karinha
- Posts: 7956
- Joined: Tue Dec 20, 2005 7:36 pm
- Location: São Paulo - Brasil
- Been thanked: 4 times
- Contact:
Re: Get numerico problema al editar
Holá, muestre la Clausula PICTURE del GET, porfa.
Por ejemplo:
Regards, saludos.
Por ejemplo:
Code: Select all | Expand
nCodigoProd := SPACE(15)
REDEFINE GET aGetVenda[3] VAR nCodigoProd ID 22 PICTURE "@K !!!!!!!!!!!!!!!" ;
OF oDlgVendas COLORS CLR_BLACK, CLR_WHITE ;
CURSOR oHand FONT oFont UPDATE BITMAP "BUSCAR" ;
VALID ( PESQUISA_PRODUTOS( nCodigoProd, aGetVenda, oLbx, ;
oDlgVendas, DbClientes, DbEstoque, DbPedidos, oSaida ) ) ;
ACTION( PESQUISA_PRODUTOS( nCodigoProd := [0000000000000], ;
aGetVenda, oLbx, oDlgVendas, DbClientes, DbEstoque, DbPedidos, ;
oSaida ) )
aGetVenda[3]:lBtnTransparent := .T. // transparent button get aGetVenda[1]
aGetVenda[3]:lAdjustBtn := .T. // Button Get Adjust Witdh aGetVenda[1]
aGetVenda[3]:lDisColors := .F. // Deactive disable color
aGetVenda[3]:nClrTextDis := CLR_WHITE // Color text disable status
aGetVenda[3]:nClrPaneDis := CLR_BLUE // Color Pane disable status
aGetVenda[3]:bKeyDown := { |nKey| IF( nKey == VK_F7, Eval( aGetVenda[3]:bAction ), Nil ) }
Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
-
- Posts: 50
- Joined: Tue Feb 02, 2021 10:21 pm
- Location: Buenos Aires, Argentina
- Contact:
Re: Get numerico problema al editar
Hola Karinha, no utilizo picture en este caso
Code: Select all | Expand
if !msgget('Configuracion inicial de barra','Incorpore tarjeta administradora',@qadmin,,,.t.)
return .f.
endif
Nicolás
- karinha
- Posts: 7956
- Joined: Tue Dec 20, 2005 7:36 pm
- Location: São Paulo - Brasil
- Been thanked: 4 times
- Contact:
Re: Get numerico problema al editar
Intente, ahora:
Regards, saludos.
Code: Select all | Expand
// C:\FWH..\SAMPLES\NICOLAS.PRG - 08/10/2022 - kapiabafwh@gmail.com
#Include "FiveWin.ch"
STATIC oWnd, oClp
FUNCTION Main()
LOCAL oBar
DEFINE WINDOW oWnd TITLE "MsgGet For Nicolas"
DEFINE BUTTONBAR oBar _3D OF oWnd
DEFINE BUTTON OF oBar ACTION Nicolas()
SET MESSAGE OF oWnd TO "MsgGet For Nicolas" NOINSET CLOCK DATE KEYBOARD
ACTIVATE WINDOW oWnd
RETURN NIL
/*
if !msgget('Configuracion inicial de barra','Incorpore tarjeta administradora',@qadmin,,,.t.)
return .f.
endif
*/
FUNCTION Nicolas()
LOCAL qAdmin := SPACE( 35 )
IF .NOT. MsgGet( "Configuracion inicial de barra", ;
"Incorpore tarjeta administradora - 35 Caracteres:", @qAdmin, "C", "@!" )
RETURN( .F. )
ENDIF
IF .NOT. EMPTY( qAdmin )
? qAdmin
ENDIF
RETURN( .T. )
// FIN / END
Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
- nageswaragunupudi
- Posts: 10733
- Joined: Sun Nov 19, 2006 5:22 am
- Location: India
- Been thanked: 10 times
- Contact:
Re: Get numerico problema al editar
You can enter upto 10 digits without PICTURE clause.
Please try this simple code:

Please try this simple code:
Code: Select all | Expand
n := 34
DEFINE DIALOG oDlg SIZE 200,120 PIXEL TRUEPIXEL
@ 20,20 GET n SIZE 150,24 PIXEL OF oDlg
@ 60,20 BUTTON "OK" SIZE 100,40 PIXEL ACTION (MsgInfo( n ),oDlg:End())
ACTIVATE DIALOG oDlg CENTERED

Regards
G. N. Rao.
Hyderabad, India
G. N. Rao.
Hyderabad, India