Domino 9 und frühere Versionen > Entwicklung
automatisch generierte fortlaufende Zahl
marohe:
Hallo,
es mag ja einfach klingen, aber wie bekomme ich in eine Eingabemaske eine automatisch generierte fortlaufende Zahl welche ich dann in einer Ansicht sortieren kann?!?
1. Eintrag bekommt 001
2. Eintrag bekommt 002
usw..
Danke
Performance:
- in so einem Fall ist es angebracht wenn nur auf dem führenden Server die nächste fortlaufende Nummer erzeugt wird ....wenn beim Client ein Dokument erstellt wird wird keine Nummer generiert bis dieses dok repliziert wird und auf dem Server ein Agent die nächste Nummer reinschreibt.
z.B. in der Form ist ein Feld "pid" das berechnet ist mit value = pid - Typ Text
Im dok Postopen:
If Source.IsNewDoc Then
...... hole die view mit den Pid doks - erste Spalte = pid aufsteigend sortiert
Set view = database.GetView( "AufsteigendsortierteView")
Set doc = view.GetLastDocument
If doc Is Nothing Then
nextNr$ = "001"
Else
nextNr$ = Cint(doc.pid(0)) + 1
End If
Call Source.FieldSetText( "pid", nextNr$)
Problem dabei ist, es können auch 2 gleichzeitig ein neues dok anlegen auf dem gleichen server, also kann entweder im Querysave nochmal ein check gemacht werden ob die pid schon vorhanden ist (vorher ein view.refresh) oder kann hier auch mit einem lock flag gearbeitet werden( da würde man einen Agent brauchen der ein unlock macht falls was schiefgeht) ...... oder besser die Nummernvergabe erledigt ein scheduled Agent nachts.
cu
marohe:
Hmmm, hört sich gut an, ich werde das mal versuchen.
Was ist eigentlich wenn ich ein Dok lösche, zum beispiel die Nr. 15 und lege ein neues an, ist dann die 15 wieder freigegeben oder wird stur weitergezählt?!?
Auf jeden fall mal danke für die Hilfe..
marohe
Performance:
yep .. es wird stur weitergezählt ... wegen der Auswahl des letzten doks in der view
view.GetLastDocument
... also wenn du das letzte dok löscht ist es ok ... wenn mittendrin eins verschwindet musst du das löschen abfangen im Postdocumentdelete(Source As Notesuidatabase) der db .... dann müsste eine neue Berechnung der Felder vorgenommen werden d.h. die nächsten doks rutschen eins nach oben.
Es kommt aber darauf an ob diese Felder anderswo benutz werden dann wird es "etwas kompliziert" wegen dem ganzen update ....
cu
harkpabst_meliantrop:
Andere Frage:
Warum sortierst du nicht nach Erstelldatum oder so? Wenn du hier im Forum mal nach fortlaufender Nummerierung suchst, wirst du unter Anderem eine große Verdammungsrede bezüglich der fortlaufenden Nummern von Wolfgang Flamme finden.
Fortlaufende Nummern sind wirklich kein Spaß, man halst sich reichlich potentielle Probleme auf. Wenn sie sich vermeiden lassen, dann sollte man ruhig einen Bogen drum machen.
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln