Projektnummern erstellen
Hallo zusammen,
ich bin ein Neuling, der entweder die Dokumentation nicht richtig nutzen kann oder vielleicht auch nicht versteht. Da ich hier im Forum viele Ideen und konstruktive Antworten gelesen habe, möchte ich auch einfach meine "simple" Frage stellen. (Ich fange gerade erst mit Ninox an. Vor Jahren habe ich mal etwas sql "gemacht".. aber das soll mir hier wohl nicht viel nutzen...)
Ich möchte zunächst eine Projektnummer bei jedem neuen Datensatz erstellen.
Diese soll mit einem "P" beginnen und die Jahreszahl (YY) integriert haben.
die nächsten beiden Ziffern sollen auf den Projekttypen schlussfolgern lassen.
die letzten Nummern sollen dann entsprechend fortlaufend sein
PYYAAXXX
YY=Jahr
AA=Projektart (Auswahlfeld vorhanden um die ID zu entnehmen)
XXX=automatische fortlaufende Nummer
Bin ich bei euch an der richtigen Adresse? ;-)
Gruß Reiner
3 Antworten
-
Hallo Reiner, prinzipiell könnte man die Projekt-Nummer z. B. so erstellen:
let myPNr := "P" + text(year(today())) + format(number(Projektart), "00");
let maxPNr := last(((select Projekte where substr(ProjektNr, 0, 5) = myKNr) order by Nr).ProjektNr);
let myLNr := number(substr(myLNr, 5, 3)) + 1;
ProjektNr := myPNr + format(myLNr, "000")
Der Code setzt aber voraus, dass im Auswahlfeld "Projektart" schon ein Eintrag ausgewählt wurde. Das ist als Trigger "Bei neuem Datensatz" aber nicht gegeben. Eine alternative Möglichkeit wäre, den Code auf einen Button zu legen und mit diesem nach dem Auswählen der Projektart die Projektnummer zu generieren.
-
Danke für das Feedback. Natürlich kann ich beim erstellen des neuen Datensatzes noch nicht entschieden haben, welche Projektart es ist... damit fällt meine Formulierung natürlich ins Wasser.
Das Feld mittels zusätlichem Button zu füllen klingt auch interessant. Ziel ist für mich, eine eindeutige Projektnummer zu generieren.
Wie sieht es dann mit dem Button aus?
-
Der Code würde sich bei einem Button nicht ändern. Allerdings müsste man berücksichtigen, dass er nur unter bestimmten Bedingungen ausgeführt werden kann. Erstens: Es darf noch keine ProjektNr vergeben sein. Zweitens: Es muss eine Projektart ausgewählt sein.
Dazu gibt es wiederum zwei Möglichkeiten: Entweder durch Abfrage im Code oder indem man den Button "versteckt" und nur einblendet, wenn die Voraussetzungen gegeben sind. Für letzteres könnte man in den Optionen unter "Nur anzeigen, wenn" folgendes angeben:
Projektart and not ProjektNr
Die alternative Abfrage im Code könnte so aussehen:
if not ProjektNr then
if Projektart then
let myPNr := "P" + text(year(today())) + format(number(Projektart), "00");
let maxPNr := last(((select Projekte where substr(ProjektNr, 0, 5) = myKNr) order by Nr).ProjektNr);
let myLNr := number(substr(myLNr, 5, 3)) + 1;
ProjektNr := myPNr + format(myLNr, "000")
else
alert("Bitte vorher eine Projektart auswählen!")
end
else
alert("Es wurde bereits eine ProjektNr vergeben!")
end
Content aside
- vor 4 JahrenZuletzt aktiv
- 3Antworten
- 678Ansichten