Get numerico problema al editar

Get numerico problema al editar

Postby nlerdafehn » Tue Oct 04, 2022 4:57 pm

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

Re: Get numerico problema al editar

Postby karinha » Tue Oct 04, 2022 5:54 pm

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

Por ejemplo:

Code: Select all  Expand view

       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
User avatar
karinha
 
Posts: 7824
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Get numerico problema al editar

Postby nlerdafehn » Sat Oct 08, 2022 6:11 pm

Hola Karinha, no utilizo picture en este caso

Code: Select all  Expand view
if !msgget('Configuracion inicial de barra','Incorpore tarjeta administradora',@qadmin,,,.t.)
    return .f.
 endif
Nicolás
nlerdafehn
 
Posts: 50
Joined: Tue Feb 02, 2021 10:21 pm
Location: Buenos Aires, Argentina

Re: Get numerico problema al editar

Postby karinha » Sat Oct 08, 2022 7:17 pm

Intente, ahora:

Code: Select all  Expand view

// 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
karinha
 
Posts: 7824
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Get numerico problema al editar

Postby nageswaragunupudi » Sun Oct 09, 2022 7:44 pm

You can enter upto 10 digits without PICTURE clause.
Please try this simple code:
Code: Select all  Expand view
   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
User avatar
nageswaragunupudi
 
Posts: 10641
Joined: Sun Nov 19, 2006 5:22 am
Location: India


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot], wilsongamboa and 40 guests