Validar campo en formulario

Me explico, tengo un campo dentro de un formulario en el cual que se ingresa el Rut (numero único nacional, en Chile el nombre que tiene el numero de cedula de identidad es Rut), para que el rut sea correcto usa un dígito verificador que se asigna mediante una función matemática, me conseguí el código para validar que el numero que se ingresa es correcto, pero el problema que tengo es que no se donde ingresar ese código para que me lo valide, el numero tiene la siguiente estructura xx.xxx.xxx - POR, donde POR (mayúsculas) es el dígito verificador y el código que lo verifica es el siguiente:
FUNCTION Val_Rut
PARAMETERS rut,digver
STORE 0 TO suma
STORE 2 TO j
Largo = LEN(rut)
FOR i = Largo TO 1 STEP -1
Dig = VAL(SUBSTR(rut,i,1))
suma = suma + (Dig * j)
IF j = 7
j = 1
ENDIF
j = j + 1
ENDFOR
RESTO = MOD(suma,11)
DO CASE
CASE RESTO = 0
dv = 0
CASE RESTO = 1
dv = "K"
IF digver = "k" OR digver = "K"
* WAIT 'RUT INCORRECTO!!!' WINDOWS
RETURN .F.
ENDIF
RETURN .T.
OTHERWISE
dv = 11 - RESTO
ENDCASE
IF digver == ALLTRIM(STR(dv))
RETURN .T.
ELSE
* WAIT 'RUT INCORRECTO!!!' WINDOWS
RETURN .F.
Endif
endfunc
Trate de colocarlo en la opción valid del campo rut, pero me sale "Los métodos y eventos no pueden contener procedimientos o definiciones de clases anidadas". Ahora se me ocurre que a lo mejor tengo que crear 2 cuadros de textos, uno para el numero y otro para el dígito verificador.
De antemano muchísimas gracias, estoy un poco urgido con esto ya que lo tengo que entregar luego por lo que cualquier ayuda sirve.
Gracias
1

1 respuesta

1
Respuesta de
Lo que tienes que hacer es crear un método en el formulario con el nombre de la función, pasar todo el código de la funciona a ese método(quitándole la linea FUNCTION Val_Rut) y luego desde el valid del textbox llamar a ese método así:
Thisform. Val_Rut(cRut,cDigito).
Espero te sirva
Añade un comentario a esta respuesta
Añade tu respuesta
Haz clic para o
Escribe tu mensaje
¿No es la respuesta que estabas buscando? Puedes explorar otras preguntas del tema Visual Fox Pro o hacer tu propia pregunta: