Archief - OGM-nummer genereren in VB6

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Xeromem

Legacy Member
ik verlang al een tijdje naar een eenvoudig programma die voor mij een gestructureerde mededeling kan creeeren, de zogenaamde OGM.

daar mijn kennis over het programmeren nihil is, vraag ik jullie vriendelijke tn-gamers' hulp :hug:

ik heb een stukje vb code kunnen bemachtigen van een vriendelijke heer, hier te vinden -> http://www.torbeyns-mineur.be/program/finance.bas
er staat een stukje code tussen ivm ogm, misschien dat het jullie gemakkelijker maakt

ik heb al een layout verwezenlijkt, download eventueel onderstaande vb6-projectje om te zien wat mijn bedoelingen zijn

-> ogm.7z <-

OGM berekenen is niet zo moeilijk, je neemt een 10 cijferig getal waar jij een logica in ziet en deelt die door 97 waarna je de restwaarde (2 getallen na de komma, afgerond) neemt. Die plak je dan weer achter je 10 cijferig getal en je hebt een OGM!
het is eenvoudig, maar zo'n klein progje zou het leven voor mij en alle geïnteresseerden misschien een toch stuk gemakkelijker maken :)
met een programma die de berekeningen zelf doet, ellimineer je ook de kans om fouten te maken

alvast bedankt ;)

Red2048

Legacy Member
Heb vroeger een gelijkaardige project geschreven in vb6, heb het even aangepast voor uw project.
Verwijder de "finance.bas" module uit het bovenstaand project en plaats onderstaande code in je "OGMGEN" form.

Code:
Option Explicit

Const sOGM_MASK_FORMAT = "+++K/F/C+++"          ' zonder spaties
'Const sOGM_MASK_FORMAT = "+++ K/F/C +++ "      ' met spaties

Private Sub Form_Load()

    Text1.Text = "2561024768"   ' voorbeeld nummer
    
End Sub

Private Sub Command1_Click()

    Dim sNormal As String
    Dim sStruct As String

    OGM_Generate Text1.Text, sNormal, sStruct
    
    Text2.Text = sNormal
    Text3.Text = sStruct
    
End Sub

Private Sub Command2_Click()
    Clipboard.Clear
    Clipboard.SetText Text2.Text
End Sub

Private Sub Command3_Click()
    Clipboard.Clear
    Clipboard.SetText Text3.Text
End Sub

Private Function OGM_Generate(ByVal sInput As String, _
                              ByRef sOutput1 As String, _
                              ByRef sOutput2 As String)

    If IsNumeric(sInput) And Len(sInput) = 10 Then        ' "2561024768"

        Dim ubRest As Byte
        ubRest = CDbl(sInput) - (Int(CDbl(sInput) / 97) * 97)   ' "19"
        sOutput1 = sInput & Format(ubRest, "00")                ' "256102476819"

        Dim str As String
        str = sOGM_MASK_FORMAT                                  '   = "+++K/F/C+++"
        str = Replace(str, "K", Mid(sOutput1, 1, 3))            ' K = "256"   klant nummer
        str = Replace(str, "F", Mid(sOutput1, 4, 4))            ' F = "1024"  factuur nummer
        str = Replace(str, "C", Mid(sOutput1, 8, 5))            ' C = "76819" controle nummer
        sOutput2 = str                                          '   = "+++256/1024/76819+++"

    Else

        MsgBox "Onjuist Nummer.", , "Error"
        
        sOutput1 = ""
        sOutput2 = ""
    
    End If
    
End Function
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan