Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Fis am 31.07.03 - 12:26:42
-
Hallo,
möchte gerne eine Serienverwaltung schaffen. Und zwar wollen die hier das die Leute von A-K ab 30000 anfangen und L-Z ab 80000 anfangen. Warum auch immer.
Hat da einer nen Lösungsvorschlag?
Danke und Gruß
Rodan
-
Was ist eine "Serienverwaltung" ?
-
Was kann das ding was macht das ding?!?! Serienverwaltung?!?! ??? ;)
-
Hi,
die Serien sollen fortlaufende Nummern bekommen? Serien A - K sollen den Werteberich von 30.000 bis 79.999 haben. Serien L - Z sollen den Wertebereich 80.000 bis... haben. Ist das so gemeint?
Falls ja, würde ich ein Konfigurationsdokument machen, in dem die jeweils letzte vergebene Nummer pro Serie 1 (A-K) und Serie 2 (L-Z) gespeichert wird.
Bei Neuanlage dann das entsprechende Feld anhand des Buchstabens ermitteln und inkrementieren.
Mit dieser Lösung können aber keine Lücken gefüllt werden,d.h. wenn eine Serie wegfällt, kann die dafür vergebene Nummer nicht nochmak vergeben werden. Aber das ist ja meistens auch so gewollt.
Andreas
-
Auman ich glaub ich bin überarbeitet ::)
Aber so wie das Glombi schön beschrieben hat ist es richtig
-
Das ist ja schon hunderttausend Mal diskutiert worden, aber trotzdem nochmal der Hinweis: Notes und serielle Nummern ist ein "no-no". Da es Notes erlaubt, daß in n Repliken einer DB gleichzeitig gearbeitet wird, ist es mehr als wahrscheinlich, daß doppelte Nummern vergeben werden.
Der einzig sichere Weg ist (ausser, wenn nur ein einziger User die Nummernvergabe machen darf) ein Agent auf einem bestimmten Server, der periodisch nummernlose neue Doks mit ebensolchen versieht.
HTH,
Bernhard
-
Hi,
zur fortlaufenden Nummerierung findest du hier was:
http://www.atnotes.de/index.php?board=9;action=display;threadid=7395 (http://www.atnotes.de/index.php?board=9;action=display;threadid=7395)
Axel
-
Hi,
zur fortlaufenden Nummerierung findest du hier was:
http://www.atnotes.de/index.php?board=9;action=display;threadid=7395 (http://www.atnotes.de/index.php?board=9;action=display;threadid=7395)
Axel
Der Thread führt auch wieder den Nachweis, daß sich fortlaufende Nummern und Notes einfach beissen - und daran ist Notes nicht "schuld".
Wie schon erwähnt: Wenn es akzeptabel ist, daß Nummern nicht on the fly vergeben werden, sondern periodisch auf einem einzigen Server, dann kann man es sicher realisieren durch einen periodischen Agent. Ansonsten muß man sich auf jeden Fall ein anderes Verfahren aussuchen.
Vielleicht kann uns Rodan ja schreiben, wozu die Nummern denn gebraucht werden? U.U. ergeben sich daraus ja Vorschläge ...
-
Es werden keine Repliken angelegt, es ist nur eine Datenbank und die wollen unbedingt diese fortlaufende Nummer. Aber schon mal Danke
-
Ich trau' dem immer nicht ... Sichere Dich da mal ab, in dem Du darauf hinweist, daß das ganze Verfahren nicht funktioniert, wenn auf einmal auch jemand im Home Office erfassen soll etc.
Und ansonsten: Das Ermitteln der letzten Nummer, das Erzeugen einer neuen etc. und muß dann - wenn es schon sein muß - alles genau hintereinander passieren beim Speichern des Dokuments. Machst Du es bei der Anlage des Doks, dann könnte dies ja auch wieder verworfen werden ...
-
So da hab ich es gefunden
Public Function ArtNrIntern_neu(db As NotesDatabase, PrNr As String,artdoc As NotesDocument) As String
On Error Goto ErrHandler
Dim Nr As Double
Dim NrStr As String
Dim view As notesview
Set view = db.Getview("(LookupArtNrIntern)")
Dim doc As notesdocument
Set doc = view.GetLastDocument
NrStr$ = Right$(Cstr(doc.ArtNrIntern(0)),6)
Nr = Cdbl(NrStr$) +1
ArtNrIntern_neu = PrNr+" - "+Cstr(Nr)
Call view.Refresh
Exit Function
ErrHandler:
ArtNrIntern_neu = "00-xx-00"
Print "Fehler in Funktion ""ArtNrIntern_neu"" in Bibl. Artikel!"+Chr(10)+"Fehlerbeschreibung: "+Error()+Chr(10)+"Zeile: "+Cstr(Erl())
Exit Function
End Function
-
Hast Du das "gefunden" oder selber geschrieben aus Deinem Kontext heraus ?
Deine beiden Nummernkreise löst das sowieso nicht.
Wozu ist PrNr ?
Den Parameter artdoc verstehe ich auch nicht.
Etwas gewagt ist auch das Abschnippeln der Nummer auf 6 Stellen - ohne Szenario, was bei einem Überlauf passiert. Dann fängt das Ding einfach von vorne an ...
-
Das hab ich in einer unsere DB´s gefunden, das lößt nicht ganz mein Problem, aber geht schon mal in die richtige Richtung
-
... such mal im Forum nach einem Anhang ähnlich SequenzingNumber - da hat mal jemand ne DB mit sequentiellem Numbering reingehängt - wenn du es nicht findest, dann poste mir - ich hab sie vielleicht noch wo rumligen...
ata
-
Hab ich, danke ata :D