Bonjour ...
Pour cette petite source je n'ai rien inventé, mais je cherchais une source permettant le calcul d'un chiffre clef d'après le modulo 10 récursif que je n'ai pas trouvée sur ce site et c'est alors que j'ai pensé que cela pouvait rendre service à d'autres dans mon cas (je pense surtout aux petits suisses qui veulent imprimer des BVR ou BVR+ avec leur propre numéro de référence..... je ne sait pas si le système est le même dans d'autre pays...) ;)
J'ai aussi mis la version que j'ai adapté pour Crystal Report afin de pouvoir calculer mon chiffre clef de manière autonome au moment de l'impression.
Source / Exemple :
// version VB
Function Modulo10(ByVal StrNbre As String) As Integer
Dim modTable(0 To 9) As Integer
Dim modReport As Integer
Dim modSerie As Integer
modTable(0) = 0: modTable(1) = 9
modTable(2) = 4: modTable(3) = 6
modTable(4) = 8: modTable(5) = 2
modTable(6) = 7: modTable(7) = 1
modTable(8) = 3: modTable(9) = 5
For modSerie = 1 To Len(StrNbre)
modReport = modTable((modReport + Mid(StrNbre, modSerie, 1)) Mod 10)
Next
Modulo10 = (10 - modReport) Mod 10
End Function
//Version Crystal Report (edition de fonction en "Basic Syntax")
Function modulo10 (StrNbre as string) as number
Dim modTable() As number
modTable = array (1,2,3,4,5,6,7,8,9,10)
Dim modReport As number
Dim modSerie As number
Dim Nbretemp as number
modTable(1) = 0: modTable(2) = 9
modTable(3) = 4: modTable(4) = 6
modTable(5) = 8: modTable(6) = 2
modTable(7) = 7: modTable(8) = 1
modTable(9) = 3: modTable(10) = 5
For modSerie = 1 To Len(StrNbre)
Nbretemp = tonumber(Mid(StrNbre, modSerie, 1))
modReport = modTable(((modReport + Nbretemp) Mod 10)+1)
Next
Modulo10 = (10 - modReport) Mod 10
End Function
Conclusion :
voila, c'est tout... à part un grand merci à hosang pour le code original :)
http://www.hosang.ch/modulo10.htm
et pour ceux qui veulent comprendre le fonctionnement (page 3):
http://www.postfinance.ch/medialib/fr/pf/globale_mediendateien/service/handbuecher.Par.0019.File.tmp/hb_records_fr.pdf
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.