FileMaker - formula de rut verificador para FM8

 
Vista:

formula de rut verificador para FM8

Publicado por hugo doorman (2 intervenciones) el 15/02/2008 16:52:35
crea en file maker un campo llamado RUT y un camp llamado DV (ojo que los campos los nobre con mayuscula)
luego en definicion campos escoges DV y lo creas como campo de calculo luego introduce el siguiente codigo:

Case( Length(RUT) = 8 ; // para el caso de rut con total de 8 digitos
If(Mod( Middle(RUT ; 1 ; 1 ) * 8 +
Middle(RUT ; 2 ; 1 ) * 9 +
Middle(RUT ; 3 ; 1 ) * 4 +
Middle(RUT ; 4 ; 1 ) * 5 +
Middle(RUT ; 5 ; 1 ) * 6 +
Middle(RUT ; 6 ; 1 ) * 7 +
Middle(RUT ; 7 ; 1 ) * 8 +
Middle(RUT ; 8 ; 1 ) * 9 ; 11 ) = 10 ; "K" ; // si el resto = 10 DV=k , de lo contrario ...
Mod( Middle(RUT ; 1 ; 1 ) * 8 +
Middle(RUT ; 2 ; 1 ) * 9 +
Middle(RUT ; 3 ; 1 ) * 4 +
Middle(RUT ; 4 ; 1 ) * 5 +
Middle(RUT ; 5 ; 1 ) * 6 +
Middle(RUT ; 6 ; 1 ) * 7 +
Middle(RUT ; 7 ; 1 ) * 8 +
Middle(RUT ; 8 ; 1 ) * 9 ; 11 ) ) ; // se imprime el resto
Length(RUT) = 7 ; // para el caso de rut con total de 7 digitos
If(Mod( Middle(RUT ; 1 ; 1 ) * 9 +
Middle(RUT ; 2 ; 1 ) * 4 +
Middle(RUT ; 3 ; 1 ) * 5 +
Middle(RUT ; 4 ; 1 ) * 6 +
Middle(RUT ; 5 ; 1 ) * 7 +
Middle(RUT ; 6 ; 1 ) * 8 +
Middle(RUT ; 7 ; 1 ) * 9 ; 11 ) = 10 ; "K" ;
Mod( Middle(RUT ; 1 ; 1 ) * 9 +
Middle(RUT ; 2 ; 1 ) * 4 +
Middle(RUT ; 3 ; 1 ) * 5 +
Middle(RUT ; 4 ; 1 ) * 6 +
Middle(RUT ; 5 ; 1 ) * 7 +
Middle(RUT ; 6 ; 1 ) * 8 +
Middle(RUT ; 7 ; 1 ) * 9 ; 11 ) ) ;
Length(RUT) = 6 ; // para el caso de rut con total de 6 digitos(raro, pero se ha dado)
If(Mod( Middle(RUT ; 1 ; 1 ) * 4 +
Middle(RUT ; 2 ; 1 ) * 5 +
Middle(RUT ; 3 ; 1 ) * 6 +
Middle(RUT ; 4 ; 1 ) * 7 +
Middle(RUT ; 5 ; 1 ) * 8 +
Middle(RUT ; 6 ; 1 ) * 9 ; 11 ) = 10 ; "K" ;
Mod( Middle(RUT ; 1 ; 1 ) * 4 +
Middle(RUT ; 2 ; 1 ) * 5 +
Middle(RUT ; 3 ; 1 ) * 6 +
Middle(RUT ; 4 ; 1 ) * 7 +
Middle(RUT ; 5 ; 1 ) * 8 +
Middle(RUT ; 6 ; 1 ) * 9 ; 11 ) ) ;
"Error" )
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