Validar cedula en un datawindows

mi datawindows se llama dw_padre y mi campo se llama sle_cedula que esta en el datawindows como obtengo el dato ingresado en sle_cedula para validarla

tengo esta programacion

if dwo.name="b_cli" then
Integer li_par1, li_par2, li_par3, li_par4
Integer li_imp1, li_imp2, li_imp3, li_imp4, li_imp5
// Variables para almacenar la suma de los dígitos de intentar par, impar, etc
Integer li_sp, li_si, li_st, li_verificador, li_ds
// Almacenamos el código verificador, que es el ultimo dígito de la cedula
li_verificador = Integer( Right(dw_1.object.sle_cedula.text, 1))
// almacenamos los dígitos de intentar par
li_par1 = Integer( Right( Left( dw_1.object.sle_cedula.text, 2), 1))
li_par2 = Integer( Right( Left( dw_1.object.sle_cedula.text, 4), 1))
li_par3 = Integer( Right( Left( dw_1.object.sle_cedula.text, 6), 1))
li_par4 = Integer( Right( Left( dw_1.object.sle_cedula.text, 8), 1))
// almacenamos los dígitos de intentar impar
li_imp1 = Integer( Left(dw_1.object.sle_cedula, 1))
li_imp2 = Integer( Right( Left( dw_1.object.sle_cedula.text, 3), 1))
li_imp3 = Integer( Right( Left( dw_1.object.sle_cedula.text, 5), 1))
li_imp4 = Integer( Right( Left( dw_1.object.sle_cedula.text, 7), 1))
li_imp5 = Integer( Right( Left( dw_1.object.sle_cedula.text, 9), 1))
// Los dígitos de intentar par, se suman
li_sp = li_par1 + li_par2 + li_par3 + li_par4
// los dígitos de intentar impar se multiplican por 2
If li_imp1 * 2 > 9 Then
// si el resultado es mayor que 9, se le resta 9
li_imp1 = (li_imp1 * 2) - 9
Else
// de caso contrario se almacena el dígito impar multiplicado por 2
li_imp1 = li_imp1 * 2
End If
If li_imp2 * 2 > 9 Then
li_imp2 = (li_imp2 * 2) - 9
Else
li_imp2 = li_imp2 * 2
End If
If li_imp3 * 2 > 9 Then
li_imp3 = (li_imp3 * 2) - 9
Else
li_imp3 = li_imp3 * 2
End If
If li_imp4 * 2 > 9 Then
li_imp4 = (li_imp4 * 2) - 9
Else
li_imp4 = li_imp4 * 2
End If
If li_imp5 * 2 > 9 Then
li_imp5 = (li_imp5 * 2) - 9
Else
li_imp5 = li_imp5 * 2
End If
// suma de todos los dígitos de intentar impar
li_si = li_imp1 + li_imp2 + li_imp3 + li_imp4 + li_imp5
// suma tota, suma de pares + suma de impares
li_st = li_sp + li_si
// se calcula la decena superior
li_ds = (Integer( Left( String( li_st), 1)) + 1) * 10
// si el código verificador es igual a la resta de la decena superio menos la suma total
If li_verificador = (li_ds - li_st) Then
// si es igual, entonces la cedula es correcta
MessageBox("Resultado", "La cedula es verdadera")
Else
// de caso contrario, es incorrecta
MessageBox("Resultado", "La cedula es incorrecta")
End If
end if

Añade tu respuesta

Haz clic para o