0

Paralelle fortlaufende Rechnungsnummern

Guten Tag zusammen, ich brauche einmal wieder eure Unterstützung. 

Ich baue mir gerade eine Datenbank zusammen damit ich als Buchhaltungsservice Rechnungen für mehrere Künstler schreiben kann. 

Folgende Tabellen gibt es: 

Tabelle mit Buchungen, in dieser befindet sich eine Befehlsschaltfläche mit welcher ich die Rechnungen versenden möchte.

Die Buchungstabelle ist mit einem Datensatz aus der Tabelle Künstler Verknüpft in welcher ich die Informationen wie Anschrift St.Nr. uws. für die Rechnung hinterlegt habe. 

Das klappt auch alles soweit. Ich scheitere jetzt nur an der automatischen Vergabe der Rechnungsnummern. Denn ich benötige mehrere paralell laufende Rechnungsnummern, da ja jeder Künstler eigens selbständig ist. 

Wenn ich eine Rechnung versende, soll Ninox quasi schauen was die letzte Rechnungsnummer des jeweiligen Künstlers ist und dann diese in ein Feld schreiben welches dann in das Rechnungslayout eingefügt wird. 

Das Problem ist nur dass meines wissen eine Kombination aus z.b. Rechnungsnummern für Künstler A mit A-001 und Künstler B mit B-001 im selben Feld nicht möglich ist, da es keine Funktion gibt welche Zahlen  kombiniert mit Buchstaben vergibt. 

Im Prinzip sollte das so aussehen. Wenn Künstler A verknüpt ist schaut Ninox was die letzte A-000 Nummer ist und wenn Künstler B hinterlegt ist vergibt das Programm dann B-000 Nummer +1. 

Die Buchstaben A und B sind in dem jeweiligen verknüpften Künstler Datensatz als Rechnungskürzel hinterlegt.

Ich hoffe ihr könnt mein Problem nachvollziehen, und vielleicht kann mir ja sogar jemand einen Lösungsansatz vorschlagen. 

Bin hier gerade echt am verzweifeln. 

 

Grüße Andi

1 Antwort

null
    • Leonid_Semik
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Andi,

    wenn die Rechnungsnummern mit einem Bindestrich getrennt ist, kannst du die Nummenrvergabe als Trigger nach Änderung des Verknüpfungsfeldes machen:

    ---

    let my := this;
    if cnt(select Buchungen where 'Künstler' = my.'Künstler') = 0 then
    Rechnungsnummer := 'Künstler'.'Rechnungskürzel' + "-" + "001"
    else
    let myMAX := max((select Buchungen)['Künstler' = my.'Künstler'].number(last(split(Rechnungsnummer, "-"))));
    Rechnungsnummer := my.'Künstler'.'Rechnungskürzel' + "-" + format(myMAX + 1, "000")
    end

    ---

    Leo