Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: HRaq am 09.07.03 - 13:18:29
-
Hallo Leute,
ich möchte in einer bestimmten Ansicht per Lotus Script die Anzahl der Dokumente zählen und das Ergebnis in ein Feld einer Maske übertragen.
Ich bin seit Tagen am suchen....keine Lösung. Könnt Ihr mir bitte helfen?
Danke Henning
-
... wie hast du gesucht?
Spaß beiseite - hier mit einer Schleife alle Docs zählen:
Dim ws As New NotesUIWorkspace
Dim docThis As NotesDocument
Dim dbThis As NotesDatabase
Dim view As NotesView
Dim doc As NotesDocument
Dim counter As Long
Set docThis = ws.CurrentDocument.Document
Set dbThis = docThis.ParentDatabase
Set view = dbThis.GetView( "DerAnsichtsName" )
counter = 0
If not view Is Nothing Then
Set doc = View.GetFirstDocument
While Not doc Is Nothing
counter = counter + 1
Set doc = view.GetNextDocument(doc)
Wend
End If
docThis.Dein_FeldName_Zur_Aufnahme_Der_Nummer = counter
... sollte ins aktuell geöffnete Dokument die Anzahl der Doc's aus der Ansicht in ein Feld schreiben...
ata
-
Hallo Ata,
danke für den Tipp, das Script werd ich einbauen und mal schauen, was passiert...
Wie ich gesucht Habe? Designer Hilfe, Programming Guide, AT-Notes (Entwicklung).....
Gruß Henning
-
Hallo Ata,
vielen Dank, es klappt.......
Gruß Henning
-
geht zur Not auch mit einer Formel
@Prompt([OK];"Number of Elements";@Text(@Elements(@DbColumn( "" : "NoCache" ; "ServerName" : "Datenbnk.nsf" ; "Ansicht" ; 1 ))))
;D
-
wobei man die Formel auch in Script darstellen kann...
Sub Click(Source As Button)
Dim dummy As Variant
dummy = DbColumn ( "" , "NoCache" , "Servername" , "DevIdea.nsf" , "Alpha" , 2 )
NumOfDocsInView% = Ubound ( dummy ) + 1
Msgbox NumOfDocsInView%
End Sub
Function DBColumn(strClass As String, strNoCache As String, strServer As String, strDatabase As String, strView As String, numCol As Integer) As Variant
quotes = Chr(34)
strFormula = "@Left(@Trim( @DbColumn(" & quotes & strClass & quotes & ":" & quotes & strNoCache & quotes & ";" & quotes & strServer & quotes & ":" & quotes & strDatabase & quotes & ";" & quotes & strView & quotes & ";" & numCol & "));1)"
DbColumn = Evaluate( strFormula )
End Function
-
@Eknori
... deine DBColumn-Funktion ist pfiffig - wie sieht es im Vergleich zur Schleife mit der Performance aus - hast du Erfahrungswerte...
ata
-
habe ich in diese Richtung nie getestet. Bei DBColumn gibt es aber eine Beschränkung, was die Anzahl der Daten (64 k ? )betrifft. Eignet sich daher nicht für Ansichten, die etliche Datensätze haben.
-
Hallo Ata, hallo Eknori,
Ihr beiden seid echt klasse. Hätte nie gedacht, solche Ergebnisse auf meine Anfrage zu bekommen. Nochmals vielen Dank.
Gruß Henning
-
Hi,
ich hätt auch noch einen, wenn's auch mit Verspätung ist ;)
Dim session As New NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Dim vc As NotesViewEntryCollection
Set db = session.CurrentDatabase
Set view = db.GetView("Name der Ansicht)
Set vc = view.AllEntries
Messagebox vc.Count
Die Formel arbeitet allerdings mit der ViewEntry bzw. Collection Klassen. Mitunter erlebt man dabei die tollsten Dinge!
Besser ist, wenn die Ansicht nicht kategorisiert ist.
Die Formel müsste aber von der Performance her besser sein, wenn viele Dokumente in der View sind, da nicht iteriert wird.
Die 64 K Grenze sollte auch nicht gelten.
Andreas