0

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

null
    • mirko3
    • vor 2 Jahren
    • Gemeldet - anzeigen

    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)

    *

    • CENTaros Finanzen GmbH
    • Robby_Kurze
    • vor 2 Jahren
    • Gemeldet - anzeigen

    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

    • mirko3
    • vor 2 Jahren
    • Gemeldet - anzeigen

    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 2 JahrenZuletzt aktiv
  • 3Antworten
  • 259Ansichten