0

Rechnungsnummer

hallo, habe ein Problem mit der Formel, die hat funktioniert ab bei 10 ist fertig... kann mir da jemand helfen.

let myYear := year(today()); let myRN := max((select Rechnungen where year('Datum der Rechnungsstellung') = myYear).substr('ID-Nr', 10)); 'ID-Nr' := "R" + myYear + "1020" + format(number(myRN) + 1, "0"); 'Datum der Rechnungsstellung'; = today()

 

damit die Rechnungsnummern weiter zählen:

4 Antworten

null
    • Ninox-Professional
    • planoxpro
    • gestern
    • Gemeldet - anzeigen
     said:
    die hat funktioniert ab bei 10 ist fertig

    ??? Was genau ist das Problem?

    Wenn ich den Code richtig interpretiere, dann hat die ID-Nr aktuell folgenden Aufbau:

    R20251020 plus 1-stelliger laufender Nummer, also bspw. R202510209. Die Zählung der Zeichen beginnt in Ninox grundsätzlich aber immer bei 0, weshalb du mit dem substr('ID-Nr', 10) einen leeren String zurückbekommst, der sich natürlich auch nicht in eine Zahl umwandeln und um 1 erhöhen lässt.

    Du müsstest also den substr()-Wert korrigieren, damit die letzte der insgesamt 10 Ziffern ausgelesen wird:

    max((select Rechnungen where year('Datum der Rechnungsstellung') = myYear).substr('ID-Nr', 9))

    Wenn die laufende Nummer über 9 hinaus gehen, also 2-stellig sein soll, dann müsstest du das zusätzlich beim format() auch angeben:

    'ID-Nr' := "R" + myYear + "1020" + format(number(myRN) + 1, "00");

    Der substr()-Wert sollte unverändert bleiben können, weil damit alle Zeichen ab Position 9 ausgelesen werden, also sowohl 09 wie auch 10, 11 usw.

      • Eulamie_Esclamada
      • gestern
      • Gemeldet - anzeigen

       danke, habe es ausprobiert let myYear := year(today());
      let myRN := max((select Rechnungen where year('Datum der Rechnungsstellung') = myYear).substr('ID-Nr', 9));
      'ID-Nr' := "R" + myYear + "1020" + format(number(myRN) + 1, "00");
      'Datum der Rechnungsstellung';
      = today()

      wenn die 10 erreicht ist wird bei jedem neuen Datensatz die Endung 10

      • Ninox-Professional
      • planoxpro
      • gestern
      • Gemeldet - anzeigen

       Dann versuch's mal so:

      let myYear := year(today());
      let myRN := max((select Rechnungen where year('Datum der Rechnungsstellung') = myYear).number(substr('ID-Nr', 9)));
      'ID-Nr' := "R" + myYear + "1020" + format(myRN + 1, "00");
      'Datum der Rechnungsstellung' := today()
      • Eulamie_Esclamada
      • gestern
      • Gemeldet - anzeigen

       super jetzt klappt es .. vielen danke für deine hilfe

Content aside

  • gesternZuletzt aktiv
  • 4Antworten
  • 29Ansichten
  • 2 Folge bereits