Domino 9 und frühere Versionen > ND7: Entwicklung
Shared Field
aks:
Hi,
ich habe mir eine CD-Datenbank gebastelt.
Nun möchte ich aber dort noch folgendes drin haben:
Field -> Anzahl gesamt CDs:
Field -> CD-Nummer:
Ich dachte ich mach das evtl. über ein Shared Field aber das funzt net so ganz. Ich will quasi beim erstellen eines neuen Eintrages sehen wie viele CD Einträge befinden sich in der DB (Anzahl gesamt CDs) und dann beim Speichern soll als CD-Nummer die Anzahl +1 genommen werden. Natürlich soll dann die Gesamtanzahl auch aktualisiert werden.
Kann mir jemand nen Tip geben wie ich das recht simpel hinbekomme ?
DANKE
Andi
koehlerbv:
Mit einem shared field bist Du hier vollkommen auf dem Holzweg - shared fields sind wiederverwendbare Felddefinitionen (einmal definiert und in vielen Masken ohne Neudefinition einsetzbar).
Weiterhin ist ein Feld "Anzahl CDs" in einem CD-Dokument sehr verwirrend und eigentlich nichtssagend. Eine CD-Nummer lässt sich auch anders vergeben (vorausgesetzt, diese DB wird nur von einem einzigen Benutzer verwendet!). Du brauchst eine Ansicht nach CD-Nummer, absteigend sortiert. Diese kannst Du dann mit @Subset (@dbColumn (....); 1) auslesen und für das neue Dokument inkrementieren - siehe DesignerHelp.
Bernhard
aks:
Hi, danke für die Antwort. Die DB soll von mehr als einem User editiert werden. Kann man dann Deine Fromel hierzu abändern, oder wo liegt das Problem wenn mehr als ein user darauf zugreifen ?
Das Feld Anzahl gesamt CDs hatte ich nur angedacht, damit ich die CD Nummer irgendwie hochzählen kann und noch weiß was der letzte Stand war.
klaussal:
Altes Thema, nur neuer Mantel: NEIN, es gibt keine vernünftige Lösung zur fortlaufenden Nummerierung.
Demian:
Hallo,
hatte mal ein ähnliches Problem. Habe das mit Script im Exiting eines Feldes (Jahr) gelöst. Müsstest du halt ein bissie abändern, z.B. den Code im Postopen der Maske oder so.
Sub Exiting(Source As Field)
'==========================================================
'Beim Verlassen dieses Feldes wird automatisch, das Feld lfdNr gefüllt.
'Hierzu wird in der Ansicht "Ausbildung - Bewerbungen" das eingegebene
'Jahr gesucht, und die Anzahl der vorhanden Dokumente für dieses Jahr
'gezählt. Das Ergebnis wird mit 1 addiert.
'==========================================================
'Allgemein
Dim work As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim s As New notessession
Dim db As NotesDatabase
Dim view As NotesView
Dim doc As NotesDocument
'Vergleich
Dim Jahr As String
'Zähler
Dim i As Long
Dim i2 As Long
'==========================================================
Set uidoc = work.CurrentDocument
'eingegebenes Jahr speichern
Jahr = uidoc.FieldGetText("Jahr")
If Jahr = "" Then
Msgbox "Sie müssen das Ausbildungsjahr eingeben, damit die lfd. Nummer berechnet werden kann!",," "
Exit Sub
End If
'zu durchsuchende View setzen
Set db = s.CurrentDatabase
Set view = db.GetView("Ausbildung - Bewerbungen")
Set doc = view.GetFirstDocument
'Dokumente zählen
For i = 0 To view.AllEntries.Count
If doc Is Nothing Then Exit For
If Right(doc.Jahr(0),4) = Jahr Then i2 = i2 + 1
Set doc = view.GetNextDocument(doc)
Next
'lfd. Nummer setzen
Set doc = uidoc.Document
doc.lfdNr = i2 + 1
End Sub
Gruß
Demian
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln