WinDev - Procedure para validar Rut Chileno

 
Vista:

Procedure para validar Rut Chileno

Publicado por Manuel (4 intervenciones) el 19/07/2007 22:21:29
Para los que tienen Windev en Chile, aqui les envio una funcion para validar el Rut Chileno, fue adaptado de una funcion echa para Visual Basic, tienen que crear un nuevo "Procedure", una ves creado dan clic con boton derecho sobre el "Procedure Global..." y seleccionan "New Global Procedure", le colocan un nombre y dentro del pegan este codigo:

//PROCEDURE PARA VALIDAR RUT CHILENO ADAPTADO PARA WINDEV POR MANUEL MONTT...
//ACEPTA LOS SIGUIENTES FORMATOS : 00000000-0, 00.000.000-0 y 000000000
FUNCTION ValidaRut(CadenaConRut is string)
RespValidacion is boolean
//DECLARAMOS ALGUNAS VARIABLES USADAS EN EL PROCESO
I is real
Z is numeric
CadenaLimpiA is string
DiG is string
XXXX is numeric
//VALIDAMOS QUE SE INGRESE ALGO
IF CadenaConRut <> "" AND Val(CadenaConRut) <> 0 THEN
// LIMPIAMOS EL RUT INGRESADO, SACANDO LOS - Y .
FOR I = 1 TO Length(CadenaConRut)
IF Middle(CadenaConRut, I, 1) = "-" OR Middle(CadenaConRut, I, 1) = "." THEN
// AQUI NO SE LLENA CadenaLimpia, SOLO SALTAMOS AL SIGUIENTE CARACTER
ELSE
CadenaLimpiA = CadenaLimpiA + Middle(CadenaConRut, I, 1)
END
END
// SE COMIENZA A CALCULAR, PARA VALIDAR EL RUT INGRESADO
CadenaConRut = CadenaLimpiA
DiG = (Middle(CadenaLimpiA, (Length(CadenaLimpiA)), 1))
IF ( Asc(DiG) <= 47 OR Asc(DiG) >= 58 )THEN
IF ( DiG = "K" OR DiG = "k" )THEN
DiG = "10"
ELSE
DiG = "12"
END
END
CadenaLimpiA = ""
FOR I = 1 TO (Length(CadenaConRut) - 1)
CadenaLimpiA = CadenaLimpiA + (Middle(CadenaConRut, I, 1))
END
CadenaConRut = ""
I = ""
I = (Length(CadenaLimpiA))
Z = 2
WHILE I <> 0
IF Z <> 8 THEN
CadenaConRut = Val(CadenaConRut) + (Val((Middle(CadenaLimpiA, I, 1))) * Z)
Z = Z + 1
ELSE
Z = 2
CadenaConRut = Val(CadenaConRut) + (Val((Middle(CadenaLimpiA, I, 1))) * Z)
Z = Z + 1
END
I = I - 1
END
Z = 11 - (Val(CadenaConRut) - IntegerPart((Val(CadenaConRut)) / 11) * 11)
XXXX = Asc(DiG)
IF ((DiG = 0) AND (Z = 11)) THEN
RespValidacion = True
ELSE
IF Z = DiG THEN
RespValidacion = True
ELSE
RespValidacion = False
END
END
ELSE
RespValidacion = False
END
CadenaConRut = ""
CadenaLimpiA = ""
RESULT RespValidacion

---------------FIN--------------------------Para llamarlo......

IF ValidaRut(EDIT_RUT..Value) = True THEN
Info("Rut Correcto")
ELSE
Error("Rut Erroneo")
END

---------- Donde "EDIT_RUT..Value", es el campo con el rut.

-------- PD: Ojala pongan una seccion de Codigo Fuente para Windev, para que aprendamos todos sobre esta potente herramienta..
Saludos
Manuel
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Procedure para validar Rut Chileno

Publicado por daniel sarquis (3 intervenciones) el 05/05/2009 04:31:02
Manuel,

tu puedes dictar un curso de windev?
desarrollas con el producto?

desde cuando?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Procedure para validar Rut Chileno

Publicado por Maru (1 intervención) el 11/02/2011 11:28:59
Hola Manuel, queria saber como vas con el desarrollo de windev, puedes publicar tu e-mail para contactarnos?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar