Domino 9 und frühere Versionen > ND7: Entwicklung

Shared Field

(1/6) > >>

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