Fortlaufende RechnungsNr. bzw. ID Nummer
Hallo,
ich hätte gerne, dass meine Rechnungen, Auftragsbestätigung und Angebote fortlaufende Nummern haben.
Dafür nutze ich folgenden Code
let myYear := year(today());
let myRN := max((select Rechnungen where year('Datum der Rechnungsstellung') = myYear).substr('ID-Nr', 8));
'ID-Nr' := "RE-" + myYear + "-" + format(number(myRN) + 1, "0000");
'Datum der Rechnungsstellung' := today().
Leider bleibt hier meine ID Nr. immer gleich. Lediglich das ABS, RE oder AN ändert sich wie gewünscht.
Wo liegt hier mein Denkfehler?
40 Antworten
-
Hallo zusammen,
leider bin ich immer noch nicht erfolgreich, ich schicke euch einfach mal zwei Bilder um das Problem sichtbarer zumachen.... Evtl. kann mir dann jemand einen Tipp geben.
Vielen Dank schonmal.
-
hm, so?
let myRN := max((select Rechnungen where year('Datum der Rechnungsstellung') = myYear).number(item(split('ID-Nr',"-"),2));
-
-
Torsten Stang said:
Das ist alles in eine Tabelle bei mir.
Also müsste ich dann einfach noch eine If-Formel für die Belegarten dazu einbauen?
Versuche ich mal...
-
Erik Möller said:
Also müsste ich dann einfach noch eine If-Formel für die Belegarten dazu einbauen?Genau - gemäß Deinem Code aus dem Originalpost dachte ich, Du hättest sowas schon... ;-)
-
Torsten Stang said:
Jetzt hat er wieder aufgehört die Zahlen fortlaufend zu zählen :(
Und ich nutze auch die richtigen Options-Nr.
let myArt := if Typ = 1 then
"AN"
else
if Typ = 3 then "ABS" else "RE" end
end;
let myYear := year(today());
let myRN := max((select Rechnungen where year('Datum der Rechnungsstellung') = myYear and item(split('ID-Nr', "-"), 0) = myArt).number(item(split('ID-Nr', "-"), 2)));
'ID-Nr' := myArt + myYear + "-" + format(myRN + 1, "0000");
'Datum der Rechnungsstellung' := today() -
Torsten Stang said:
myRNBei RE macht er es jetzt, bei AN bzw ABS nicht....
-
Torsten Stang said:
0000:( jetzt geht wieder nichts...
let myArt := if number(Typ) = 1 then "AN" else if number(Typ) = 3 then "ABS" else "RE" end end;
let myYear := year(today());
let myRN := max((select Rechnungen where year('Datum der Rechnungsstellung') = myYear and item(split('ID-Nr',"-"),0) = myArt).number(item(split('ID-Nr',"-"),2)));
'ID-Nr' := myArt + "-" + myYear + "-" + format(myRN + 1, "0000");
'Datum der Rechnungsstellung' := today()Hier ist der Wurm drin.
-
DIGITOOL said:
Hallo Digitool,
vielen Dank schonmal für deine Mitunterstützung.
Also ich erzeuge den neuen Rechnungsdatensatz über das + Symbol.
Passiert aber auch wenn ich über den Kunden reingehe.
"Code du im Trigger nach Änderung vom Feld TYP stehen hast", hier habe ich gar nichts drin stehen.
Heißt das ich muss hier den Code einfügen?
-
-
Erik Möller Torsten Stang
AHA,
max((select Rechnungen where year('Datum der Rechnungsstellung')..... funktioniert nicht, wenn es mehrere Datensätze mit dem Ergebnis gibt!
Lösche mal alle Datensätze oder wenn das nicht geht, die Datensätze die eine gleiche ID-NR (2022-XXXX) haben. So das es nur jeweils einen Datensatz mit (2022-XXXX) gibt.Dann sollte es funktionieren.
-
DIGITOOL said:
max((select Rechnungen where year('Datum der Rechnungsstellung')..... funktioniert nicht, wenn es mehrere Datensätze mit dem Ergebnis gibt!Wieso denn das? Wäre mir neu. ich übergeben mit (select Tabelle where Bedingung = xy) doch ein Array von Datensätzen an max(), welches genau das auch erwartet...?
Content aside
- Status Answered
- vor 2 JahrenZuletzt aktiv
- 40Antworten
- 179Ansichten
-
5
Folge bereits