Hi, ich kann die Prüfziffer leider nicht in der Anwendung berechnen, da ich keinen Zugang zu dem Code habe. Und LL22 haben wir leider auch nicht.
Soll ich überhaupt versuchen diesen Code in die Benutzervariablen von L&L zu unterbringen, oder gleich eine externe Anwendung auf die DB loslassen?
Private Function NvePruefzifferBerechnen(ByVal sKzVpe As String, _
ByVal sBbn As String, _
ByVal sLfdNr As String) As String
' Variablen der Function
Dim iZwischensumme As Integer = 0
Dim iStringziffer As Integer = 0
Dim iMerkWert As Integer = 0
Dim iStrLaenge As Integer = 0
' Beschreibung zur Berechnung
' NVE 3 4 0 1 2 3 4 5 1 2 3 4 5 6 7 8 9
' multipliziert * * * * * * * * * * * * * * * * *
' Gewichtung 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3
' Ergebniss 9+ 4+ 0+ 1+ 6+ 3+12+ 5+ 3+ 2+ 9+ 4+15+ 6+21+ 8+27 = 135
' 135 MOD 10 := 13 Rest 5 := Prüfziffer ist 5
' Berechnung
iStrLaenge = sKzVpe.Length
For i As Integer = 1 To iStrLaenge
iStringziffer = CInt(Mid(sKzVpe, i, 1))
If i Mod 2 = 0 Then
iZwischensumme += iStringziffer
Else
iZwischensumme += iStringziffer * 3
End If
Next
iMerkWert = iStrLaenge
iStrLaenge = sBbn.Length
For i As Integer = iMerkWert + 1 To iMerkWert + iStrLaenge
iStringziffer = CInt(Mid(sBbn, i - iMerkWert, 1))
If i Mod 2 = 0 Then
iZwischensumme += iStringziffer
Else
iZwischensumme += iStringziffer * 3
End If
Next
iMerkWert += iStrLaenge
iStrLaenge = sLfdNr.Length
For i As Integer = iMerkWert + 1 To iMerkWert + iStrLaenge
iStringziffer = CInt(Mid(sLfdNr, i - iMerkWert, 1))
If i Mod 2 = 0 Then
iZwischensumme += iStringziffer
Else
iZwischensumme += iStringziffer * 3
End If
Next
' Die Prüffziffer
Return CStr(((10 - (iZwischensumme Mod 10)) Mod 10))
End Function