0

Fortlaufende Nummerierung Untertabelle

Guten Morgen allerseits,

ich habe schon einiges im Forum zu gleichen Themen gefunden jedoch bin ich was Programmierkenntnisse angeht eine absolute null, deshalb hoffe ich auf ein paar freundliche User die mir weiterhelfen können.

Folgendes Szenario:

Ich habe eine Haupttabelle mit Kommitenten (Nummer 70000 - 79999).

Nun importiere ich in eine Untertabelle über Zapier Produkte die unter anderem mit dieser Nummer gekennzeichnet sind. Jedoch bringen diese Importierungen auch eine Prozentzahl mit sich, welche unter anderem berücksichtigt werden muss. Ein Beispiel:

Produkt 1, Kommitentennummer 70001, 15% Kommissionsgebühr, 1. Artikel.

Bisher haben wir das dann alles in einem Barcode zusammengefasst, heißt 70001 15 0001.

Wie schaffe ich es 1. eine fortlaufende Nummerierung anhand der Kommissionsnummer und nicht der Importierungsreihenfolge zu erzeugen und wie schaffe ich es dazu noch die Provision hineinzuschieben.

Über jede Hilfe bin ich sehr dankbar!

7 Antworten

null
    • Ninox-Professional
    • planoxpro
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Michael, was genau soll fortlaufend nummeriert werden, wie soll diese Nummer am Ende aussehen und was hat es mit der nicht näher beschriebenen Kommissionsnummer auf sich?

     

    Sollen alle Einträge der Untertabelle zum Kommittenten mit 1, 2, 3 usw. laufend durchnummeriert werden? Oder soll dabei die Information "1. Artikel" irgendwie mit einbezogen werden ("70001 15 0001", "70001 15 0002" usw.)? Oder ...

    Mir ist das genaue Ziel der Aktion noch nicht klar.

    • Huber Leube Arnold GbR
    • Michael_Leube
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Guten Abend, vielen Dank dass du dich meinem Problem annimmst.

    Ich denke du hast das bereits richtig verstanden also:

    Kommitent 1 erhält die Nummer (70001) und bringt folgende Artikel:

    Artikel 1, 15% Provision; Artikel 2, 20% Provision; Artikel 3, 15% Provision

    Die Artikelnummern sollten dann wie folgt aussehen:

    70001150001

    70001200002

    70001150003

    Bei Kommitent 2 (70002) würde das ganze dann wieder von vorne losgehen, 70002(15)0001, ...0002, ...0003

    • Ninox-Professional
    • planoxpro
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Ah, okay. Wenn ich es jetzt richtig verstehe, dann gibt es also eine Hauptabelle (z. B. "Kommittenten") mit einer Untertabelle (z. B. "Kommissionen"), welche mindestens folgende Datenfelder enthält (Namen nur exemplarisch):

    KommittentenNr (Text)
    Provision (Zahl) --> immer Ganzzahlen?
    Kommittenten (Verknüpfung zu gleichnamiger Haupttabelle)

    Im einfachsten Fall könnte man nun in der Untertabelle ein Berechnungsfeld mit folgendem Code erstellen:

    let myKom := Kommittenten;
    let myRec := number(this.Nr);
    let myLaufNr := cnt(select Kommissionen where Kommittenten = myKom and number(Nr) <= myRec);
    KommittendenNr + format(Provision, "00") + format(myLaufNr, "0000")

    Da es sich um ein Berechnungsfeld handelt, wird die Nummer halt immer wieder neu berechnet, würde sich also ändern, wenn ein Datensatz in der Untertabelle gelöscht wird. Bevor ich jetzt aber denkbare Alternativen skizziere, frage ich am besten erst mal, ob das überhaupt in die richtige Richtung geht.

    • Ninox-Professional
    • planoxpro
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Ups, in der letzten Code-Zeile muss es natürlich auch "KommittentenNr" heißen.

    • Huber Leube Arnold GbR
    • Michael_Leube
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Bin leider jetzt erst dazu gekommen, also die Verknüpfung der Kommitenten Nr mit den Prozentzahlen funktioniert einwandfrei, auch die Nummer wird angehängt, jedoch fängt die letzte Nummer nicht von vorne an wenn sich die Kommissionsnummer ändern.

    • Ninox-Professional
    • planoxpro
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Kommissionsnummer? Oder Kommittentennummer?

     

    Ich war davon ausgegangen, dass die Datensätze der Untertabelle mit der Haupttabelle verknüpft sind. Mit dieser Variante müsste es aber auch ohne Verknüpfung funktionieren:

     

    let myKom := KommittentenNr;
    let myRec := number(this.Nr);
    let myLaufNr := cnt(select Kommissionen where KommittentenNr = myKom and number(Nr) <= myRec);
    KommittendenNr + format(Provision, "00") + format(myLaufNr, "0000")

    • Huber Leube Arnold GbR
    • Michael_Leube
    • vor 4 Jahren
    • Gemeldet - anzeigen

    So habe es damit gerade hinbekommen, ich bin dir unendlich dankbar!