0

Automatische Rechnungsnummer

Hallo zusammen!

Aktuell bin ich dabei  mir ein CRM mit Adressverwaltung, Projektplanung, Angebots- /Rechnungsstellung etc. zu erstellen. Das klappt soweit auch prima und bin mit den meisten Dingen durch.

Allerdings hapert es bei mir bei der automatischen Generierung von z.B. Rechnungsnummern. Zwar bietet das Forum manchen Beitrag, aber so richtig fündig bin ich da für mich noch nicht geworden.

Daher die Frage: Wie ist es möglich eine 5-Stellige Nummer automatisch zu generieren bzw. weiterzuzählen. Sie soll dabei unabhängig vom Datum sein und erst ab einer bestimmten Zahl beginnen. Bei Rechnungen z.B. bei "60000", dann "60001", "60002" etc. Aus dem Grund, weil ich für verschiedene Dinge unterschiedliche aber klar definierte Nummernkreise verwende.

Schon mal danke für die HIlfe!

Beste Grüße
Mathias

6 Antworten

null
    • bernd
    • vor 6 Jahren
    • Gemeldet - anzeigen

    ReNummer := max((select Tabelle).ReNummer)+1

     

    ReNummer: Feldename, wo die Nummer steht;

    Tabelle: Tabellenname der entsprechenden Tabelle;

     

    Beim ersten Datensatz steht dort natürlich eine 1, diese dann manuell in eine erst zu vergebene Nummer, z.B. 6000 ändern. Alle anderen sind dann fortlaufend...

    • mbonline
    • vor 6 Jahren
    • Gemeldet - anzeigen

    Hey danke für den Tipp!

    Eine ähnliche Beschreibung habe ich schon mal gelesen. Allerdings entsteht dadurch ein Problem..

    Gebe ich die gewünschte Nummer an z.B. 60000 und erstelle dann eine neue Rechnung, dann hängt er hinten einfach eine "1" an, dann sieht es bei Rechnung 2 - 600001 und bei der dritten so 6000011 aus. Also es kommt immer eine weitere 1 hinten dran.

    • Ninox-Professional
    • planoxpro
    • vor 6 Jahren
    • Gemeldet - anzeigen

    Liegt wahrscheinlich daran, dass die Nummer ein Textfeld ist (was sachlich gesehen auch richtig wäre). Dann könnte man es so machen (Tabellen-Optionen, "Bei neuem Datensatz folgendes Script ausführen"):

    let myNr := max((select Tabelle).Nummer);
    Nummer := text(number(myNr) + 1)

    • bernd
    • vor 6 Jahren
    • Gemeldet - anzeigen

    ich würde einfach ein Zahlenfeld nehmen...

    • Ninox-Professional
    • planoxpro
    • vor 6 Jahren
    • Gemeldet - anzeigen

    Das könnte man in diesem speziellen Fall machen, aber man wird das Feld dann in anderen Anwendungssituationen dann möglicherweise jedes Mal wieder in einen String umwandeln müssen.

     

    Deshalb würde ich persönlich auch hier die Grundregel beherzigen, generell nur solche Felder als numerisch zu deklarieren, mit denen tatsächlich auch mathematische Operationen durchgeführt werden könnten, also Mengen, Beträge, Abmessungen usw., Ziffernfolgen wie Postleitzahlen, Kunden- oder sonstige Identifikationsnummern jedoch im Textformat zu speichern.

     

    Aber das kann und soll natürlich jeder machen, wie er es für richtig hält. Rein technisch gesehen würde in diesem Fall natürlich auch die numerische Variante funktionieren.

    • mbonline
    • vor 6 Jahren
    • Gemeldet - anzeigen

    Danke - genau so gehts! :-) 

    Es stimmt, die Rechnungsnummer war als Textfeld ausgewählt. Die Lösung habe ich nun so wie oben von Copytexter beschrieben gewählt. Das Feld der Rechnungsnummer bleibt weiter ein Textfeld und mit dem entsprechenden Code wird dann trotzdem die Nummer fortlaufend geführt.

    Super!

Content aside

  • vor 6 JahrenZuletzt aktiv
  • 6Antworten
  • 2370Ansichten