FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Get numerico problema al editar
Posts: 50
Joined: Tue Feb 02, 2021 10:21 PM
Get numerico problema al editar
Posted: Tue Oct 04, 2022 04: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
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: Get numerico problema al editar
Posted: Tue Oct 04, 2022 05:54 PM
Holá, muestre la Clausula PICTURE del GET, porfa.

Por ejemplo:

Code (fw): Select all Collapse
       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
Re: Get numerico problema al editar
Posted: Sat Oct 08, 2022 06:11 PM
Hola Karinha, no utilizo picture en este caso

Code (fw): Select all Collapse
if !msgget('Configuracion inicial de barra','Incorpore tarjeta administradora',@qadmin,,,.t.)
    return .f.
 endif
Nicolás
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: Get numerico problema al editar
Posted: Sat Oct 08, 2022 07:17 PM
Intente, ahora:

Code (fw): Select all Collapse
// C:\FWH..\SAMPLES\NICOLAS.PRG - 08/10/2022 - <!-- e --><a href="mailto:kapiabafwh@gmail.com">kapiabafwh@gmail.com</a><!-- e -->

#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
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: Get numerico problema al editar
Posted: Sun Oct 09, 2022 07:44 PM
You can enter upto 10 digits without PICTURE clause.
Please try this simple code:
Code (fw): Select all Collapse
    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

Continue the discussion