PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Datenbanken - fortlaufende Nummern vergeben


Sebastian Lewers
07.03.2002, 12:00
Ich will in einer Datenbank jedem Dokument eine fortlaufende Nummer vergeben.

Ich hab da ein paar möglichkeiten getestet, aber irgendwie war da noch nicht das wahre dabei.

Hat jemand eine Idee ?

Gruß
S€S€


Timo Bakenecker
01.04.2002, 23:41
hallo Sese,

lege ein Profildokument an ( Anleitung dazu findest Du in der Hilfe oder einem guten Buch ) , dann hole Dir den Zählerwert aus dem Profildokument mit dem
Befehl "GetProfileDoc". Zähle den Zählwert um eins hoch, und schreibe diesen dann mit "SetProfileDoc" wieder zurück. Den hochgezählten Wert in ein Feld mit der Nummer schreiben mit z.b. @SetField("Feld", Wert) , ...fertig .

Gruß,

Tremon

Sebastian Lewers
18.09.2002, 10:51
Da ich nun endlich meinen Lotus Script Kurs besucht habe, kann ich auch endlich eine Lösung anbieten.

Wen es denn dann interessiert:

Dafür muß nur eine Ansicht mit allen Dokumenten erstellt werden.
Wenn das Feld "DocNumber" leer ist, werden alle Dokumente in der Ansicht "All" gezählt, der Wert um 1 erhöht, und in das Feld "DocNumber" geschrieben.


Sub Querysave(Source As Notesuidocument, Continue As Variant)
Dim uiws As New notesuiworkspace
Dim uidoc As notesuidocument
Set uidoc = uiws.currentdocument
Dim docnumber As String
docnumber = uidoc.fieldgettext("DocNumber")
If docnumber = "" Then
Dim session As New notessession
Dim db As notesdatabase
Set db = session.currentdatabase
Dim view As notesview
Set view =db.getview("All")
Dim doc As notesdocument
Set doc = view.getfirstdocument
Dim count As Integer
Do Until doc Is Nothing
count = count+1
Set doc = view.getnextdocument(doc)
Loop
Dim ausgabe As String
ausgabe = Cstr(count+1)
Call uidoc.fieldsettext("DocNumber", ausgabe)
End If
End Sub


Gruß

SESE

Kleiner_Stinker
22.10.2002, 10:32
Falls Du nióch Interesse an einer Lösung hast, so kannst Du hier weiterlesen:

Ein Profildokument funktioniert bei vielen Anwendern, die gleichzeitig neue Dokumente erstellen nicht korrekt.

1. Ein einfache Maske erstellen mit dem Counter drauf.
2. Eine Ansicht mit dem Filter auf das Dokument erstellen.
3. Beim Speichern: Dok suchen, Zähler übernehmen und um eins erhöhen.

Solche Sachen funktionieren aber nur auf einem Server. :p


Gruß aus HH

Sebastian Lewers
22.10.2002, 11:11
Danke Stinker.

Bei deiner Ausführung fehlt jedoch noch etwas !!!
1. Ein einfache Maske erstellen mit dem Counter drauf.
2. Eine Ansicht mit dem Filter auf das Dokument erstellen.
3. Beim Speichern: Dok suchen, Zähler übernehmen und um eins erhöhen. ... und dann :confused: ?
Der Counter in dem Dokument muß doch auch erhöht werden !! Und da lag bisher immer mein Problem, da ich dieses Dokument nicht öffnen konnte (ohne Script).

Trotzdem Danke. ;)

Gruß
SESE

Kleiner_Stinker
22.10.2002, 11:46
Wie ich sehe bist Du noch immer dabei...

Es auch ohne Script möglich in ein Doc zu schreiben.
(SetDocField)

Sonst war meine Anleitung wohl etwas sehr kurz... :mauer:

Gruß
Arne-Hilm

Sebastian Lewers
22.10.2002, 14:21
Hallo noch einmal.

Stimmt mit der Funktion gehts. Aber hab das Problem wie gesagt schon mit Script gelöst .

Danke noch einmal.

Gruß
SESE