Nummer für Rechnungspositionen automatisch generiere
Hallo,
ich habe folgendes schon mal selbst hinbekommen! STOLZ!
Eingetragen in der Tabelle Rechnungsposition -> Bei neuem Datensatz folgendes Skript ausführen
“Pos. Nr.” := format(cnt(select Rechnungspositionen), “000”)
Klappt auch, aber natürlich zählt er komplett durch. Eigentlich will ich aber, dass er bei einer neuen Rechnung wieder mit 1 anfängt. Wie kann ich das bewerkstelligen?
Viele Grüße
Michael
9 Antworten
-
Hallo Michael, mit deiner Formel werden immer sämtliche Positionen aller Rechnungen gezählt. Es sollen aber nur die Positionen gezählt werden, die zu einer bestimmten Rechnung gehören. Man müsste deshalb beim “select” einen entsprechenden Filter setzen. Ich vermute mal, dass “Rechnungspositionen” eine Untertabelle von “Rechnungen” (o. ä.) ist. Dann könnte man es so versuchen:
let myRE := number(Rechnungen);
format(cnt(select Rechnungspositionen where number(Rechnungen) = myRE), “000”)
Eine andere Möglichkeit wäre, die Nummer der Position nicht als Trigger “Bei neuem Datensatz” zu erzeugen, sondern mit einem Funktionsfeld in den Rechnungspositionen zu berechnen. Dann hätte man immer eine durchgehende Nummerierung, auch wenn man mal eine Position löscht:
let myRE := number(Rechnungen);
let myPos := number(Nr);
format(cnt(select Positionen where number(Rechnungen) = myRE and number(Nr) <= myPos), “000”)
-
Super, danke für die Alternativen. Ich werde beide mal ausprobieren. Bin leider NOCH nicht so fit in den NX funktionen und coding.
-
Die Variante mit dem Funktionsfeld, gefällt mir besser. Folgendes habe ich jetzt in das neue Feld “Pos” eingefügt
let myRE := number(Rechnungen);
let myPos := number(Pos);
format(cnt(select Rechnungspositionen where number(Rechnungen) = myRE and number(Pos) <= myPos), “000”)Leider bringt der Editor jetzt die Fehlermeldung: Symbol erwartet: ) in Zeile 3, Spalte 101. Ich verstehe nicht, warum er dort eine Klammer will?
Gruß
Michael -
hinter myPos kommt keine Klammer
-
Die Klammer müsste korrekt sein, aber statt “Pos” muss es hier tatsächlich “Nr” heißen, denn das ist immer die interne Datensatznummer. Versuch“s mal so:
let myRE := number(Rechnungen);
let myPos := number(Nr);
format(cnt(select Rechnungspositionen where number(Rechnungen) = myRE and number(Nr) <= myPos), ”000“)
-
Die Fehlermeldung bleibt leider die Gleiche.
Symbol erwartet: ) in Zeile 3, Spalte 100 -> Das wäre direkt hinter der dritten 0
-
-
Falls das Skript per Copy and Paste in den Ninox-Editor übertragen wurde, müssten die Anführungszeichen noch mal neu eingetippt werden. Das ist leider notwendig, weil sie hier im Forum falsch formatiert werden.
Dass das Bild nicht angezeigt wirs, ist ebenfalls ein Bug des Forums.
-
@Copytexter! Danke jetzt geht“s. Tolles Forumsfeature. :-(
Content aside
- vor 4 JahrenZuletzt aktiv
- 9Antworten
- 607Ansichten