Auftragsnummer
Liebe Ninox Gemeinde,
ich brauch mal wieder einen Rat.
Ich vergebe Auftragsnummern in einer Tabelle Auftragserfassung. Nun wird aus einem Auftrag mit der Auftragsnummer A2021-0001 ein Folgeauftrag ebenfalls in der Tabelle Auftragserfassung generiert weil viele Bestandteile identisch bleiben.
Dieser bekommt die Auftragsnummer A2021-0001/1.
Folgendes habe ich dafür auf einen Button gesetzt:
let d := duplicate(this);
let my := this;
d.(Auftragsnummer := my.Auftragsnummer + "/" + 1)
Jetzt zur eigentlichen Frage:
Wenn es nun hierzu nochmal einen Folgeauftrag gibt soll beim drücken des Buttons dieser Folgeauftrag die Auftragsnummer A2021-0001/2 bekommen.
Wie kann ich das erreichen? Es soll also nur hinter dem Slash hochgezählt werden.
Schon jetzt vielen Dank für die Hilfe.
3 Antworten
-
Hi Robby. Vorschlag. Gruß Mirko
*
let lastANR := this.Auftragsnummer;
let nextRecord := duplicate(this);
let counter := number(substr(lastANR, 11)) + 1;
let firstPartANR := substr(lastANR, 0, 11);
nextRecord.(Auftragsnummer := firstPartANR + counter)
*
-
Hi Mirko,
danke für den Ansatz.
Hab das ganze noch etwas verändert damit ich erstmal den Slash hinter die Auftragsnummer bekomme und dann muss geprüft werden ob es schon ein Folgeauftrag ist. Nun funktioniert es wie gewünscht.
Das ist meine komplette Buttonfunktion für die, die einen ähnlichen Ansatz brauchen:
let result1 := dialog("Restkabinen in Folgeauftrag übernehmen", "Sind Sie sicher das Sie die noch vorhanden Kabinen in den Folgeauftrag übernehmen wollen?", ["Ja", "Nein"]);
if result1 = "Ja" then
let my := this;
if length(Auftragsnummer) > 12 then
let d := duplicate(this);
let lastANR := this.Auftragsnummer;
let counter := number(substr(lastANR, 12)) + 1;
let firstPartANR := substr(lastANR, 0, 12);
d.(Auftragsnummer := firstPartANR + counter);
d.(Kunde := my.Kunde);
d.('geliefert am' := 'geliefert am');
d.(Standort := my.Standort);
d.(Toilettenart := Toilettenart);
d.('Abgerechnet bis Tag' := 'Abgerechnet bis Tag');
d.(Anzahl := 'Anzahl Übertrag Folgeauftrag');
d.(Status := 2);
d.('Anzahl zur Abholung' := 0)
else
let d := duplicate(this);
d.(Auftragsnummer := my.Auftragsnummer + "/" + 1);
d.(Kunde := my.Kunde);
d.('geliefert am' := 'geliefert am');
d.(Standort := my.Standort);
d.(Toilettenart := Toilettenart);
d.('Abgerechnet bis Tag' := 'Abgerechnet bis Tag');
d.(Anzahl := 'Anzahl Übertrag Folgeauftrag');
d.(Status := 2);
d.('Anzahl zur Abholung' := 0)
end
else
alert("Übertrag abgebrochen")
end -
Du hast Recht, da war ein Bug drin für den allerersten Folgeauftrag. Aber das hast Du ja selbst bemerkt. ;-). Um die if-else-Abfrage zu sparen, könntest Du folgendes nutzen:
*
let lastANR := this.Auftragsnummer;
let nextRecord := duplicate(this);
let counter := number(substr(lastANR, 11)) + 1;
let firstPartANR := substr(lastANR, 0, 10);
nextRecord.(Auftragsnummer := firstPartANR + "/" + counter)
*
Content aside
- vor 3 JahrenZuletzt aktiv
- 3Antworten
- 260Ansichten