Get numerico problema al editar

Post Reply
nlerdafehn
Posts: 50
Joined: Tue Feb 02, 2021 10:21 pm
Location: Buenos Aires, Argentina
Contact:

Get numerico problema al editar

Post by nlerdafehn »

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.
Nicolás
User avatar
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

Post by karinha »

Holá, muestre la Clausula PICTURE del GET, porfa.

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
nlerdafehn
Posts: 50
Joined: Tue Feb 02, 2021 10:21 pm
Location: Buenos Aires, Argentina
Contact:

Re: Get numerico problema al editar

Post by nlerdafehn »

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
User avatar
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

Post by karinha »

Intente, ahora:

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
User avatar
nageswaragunupudi
Posts: 10733
Joined: Sun Nov 19, 2006 5:22 am
Location: India
Been thanked: 10 times
Contact:

Re: Get numerico problema al editar

Post by nageswaragunupudi »

You can enter upto 10 digits without PICTURE clause.
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
 


Image
Regards

G. N. Rao.
Hyderabad, India
Post Reply