Page 1 of 1

Consulta Sobre un Valid() "SOLUCIONADO"

Posted: Wed Jun 17, 2020 12:36 am
by remtec
Hola Amigos.

Estoy mareado con un valid y no logro dar la solución.

El problema es que mando una variable con una dato "X" a la Function ValidR, agrego espacios o cualquier cosa que le agregue a la variable, pero el oGet no se actualiza.

Muchos Saludos

Antonio

Dejo el codigo que estoy probando:

Code: Select all


// Aqui entra un Datos con numeros

Function Rut3(c4)
  local c1 := "Previous "
  local c3 := "        "
  local oDlg, oFont, oGet
  Private c2

  c2 = c4

   SetGetColorFocus()

   DEFINE FONT oFont NAME "TAHOMA" SIZE 0,-24
   DEFINE DIALOG oDlg SIZE 300,300 PIXEL TRUEPIXEL FONT oFont
        oDlg:lTransparent := .F.

   @  40,40 GET c1 SIZE 200,36 PIXEL OF oDlg

   @  90,40 GET oGet VAR c2 SIZE 200,36 PICTURE "@R ##.###.#####" PIXEL OF oDlg ;
      WHEN  ( oGet:oGet:Picture := "@KR ##########", .T. );
        VALID If( ValidaR(c2), ( oGet:oGet:Picture := "@R ##.###.#####", oGet:Refresh(), .t. ), .f. )     // Aqui necesito que se muestre actualizado el valor de c2 que se digito y luego en la funcion se modico.
        
   @ 140,40 GET oGet3 VAR c3 SIZE 200,36 PIXEL OF oDlg

   @ 220,40 BTNBMP PROMPT "OK" SIZE 220,40 PIXEL OF oDlg FLAT ACTION oDlg:End()

   ACTIVATE DIALOG oDlg CENTERED
   RELEASE FONT oFont

   
return nil


Function ValidaR(c2)
    arut=alltrim(c2)
    ee=10-len(c2)
    arut=repl("9",ee)+c2

    c2=arut       // Aqui le modifico la variable del oGet 

    Return .t.


 

Re: Consulta Sobre un Valid()

Posted: Wed Jun 17, 2020 8:26 am
by Enrico Maria Giordano
remtec wrote:

Code: Select all

c2=arut       // Aqui le modifico la variable del oGet
Intenta asì:

Code: Select all

oGet:VarPut( c2 )
EMG

Re: Consulta Sobre un Valid()

Posted: Wed Jun 17, 2020 2:20 pm
by remtec
Hola EMG

Muchas gracias por responder.

Al aplicar lo que me indicas, arroja un error.

Error description: Error BASE/1005 Message not found: TGET:_PICTURE
Args:
[ 1] = O TGET

Muchos Saludos
Antonio

Re: Consulta Sobre un Valid()

Posted: Wed Jun 17, 2020 2:48 pm
by Enrico Maria Giordano
Mira el ejemplo modificado:

Code: Select all

// Aqui entra un Datos con numeros

Function Rut3(c4)
  local c1 := "Previous "
  local c3 := "        "
  local oDlg, oFont, oGet
  Private c2

  c2 = c4

   SetGetColorFocus()

   DEFINE FONT oFont NAME "TAHOMA" SIZE 0,-24
   DEFINE DIALOG oDlg SIZE 300,300 PIXEL TRUEPIXEL FONT oFont
        oDlg:lTransparent := .F.

   @  40,40 GET c1 SIZE 200,36 PIXEL OF oDlg

   @  90,40 GET oGet VAR c2 SIZE 200,36 PICTURE "@R ##.###.#####" PIXEL OF oDlg ;
      WHEN  ( oGet:oGet:Picture := "@KR ##########", .T. );
        VALID If( ValidaR(oGet,c2), ( oGet:oGet:Picture := "@R ##.###.#####", oGet:Refresh(), .t. ), .f. )     // Aqui necesito que se muestre actualizado el valor de c2 que se digito y luego en la funcion se modico.
        
   @ 140,40 GET oGet3 VAR c3 SIZE 200,36 PIXEL OF oDlg

   @ 220,40 BTNBMP PROMPT "OK" SIZE 220,40 PIXEL OF oDlg FLAT ACTION oDlg:End()

   ACTIVATE DIALOG oDlg CENTERED
   RELEASE FONT oFont

   
return nil


Function ValidaR(oGet,c2)
    arut=alltrim(c2)
    ee=10-len(c2)
    arut=repl("9",ee)+c2

    c2=arut       // Aqui le modifico la variable del oGet 

    oGet:VarPut(c2)

    Return .t.
EMG

Re: Consulta Sobre un Valid()

Posted: Wed Jun 17, 2020 3:27 pm
by remtec
Hola EMG

Muchas gracias por tu ayuda, disculpa las molestias.

Funciono PERFECTO.

Muchos Saludos

Antonio