Domino 9 und frühere Versionen > Entwicklung
Dokumente mit bestimmten Feldinhalt zählen
Glombi:
Hi,
ich würde mit der Search (nicht FTSearch) Methode arbeiten. Du kannst Deinen Suchstring analog zu einer Ansichtszugriffsformel machen.
dim session as NotesSession
dim db as NotesDatabase
dim dc as NotesDocumentCollection
dim searchstring as String
'... Settings...
searchstring = |Form = "xyz" & @Contains(Feldname;"Word") & Status = "offen"|
set dc = db.Search(searchstring,nothing,0)
dc.Count liefert Dir dann die Anzahl der Treffer. In dem Searchstring kannst Du explizit das Feld angeben.
Das mit dem Mail geht dann so:
dim maildoc as NotesDocument
set maildoc = db.CreateDocument
maildoc.Form = "Memo"
maildoc.SendTo = "Name des Mailempfängers"
maildoc.Subject = "Thema der Mail"
call maildoc.Send(false)
Andreas
TomLudwig:
Also ich habs mit dem code hier ausprobiert:
Dim ns As NotesSession
Dim db As NotesDatabase
Dim dc As NotesDocumentCollection
Dim searchstring As String
Dim flgcnt As Long
Set db = ns.CurrentDatabase
searchstring = |Form = "($AllBookedSchulungen)" & @Contains(Schulung;"Word Grundlagen")|
Set dc = db.Search(searchstring,Nothing,0)
flgcnt = dc.Count
Messagebox flgcnt
Funktioniert aber nicht. Es kommt die Fehlermeldung "Object Variable Not set"
An was kann das liegen? Und warum schreibt man bei dem searschstring die Anweisung in | - Zeichen ?
Glombi:
Die Session ist nicht gesetzt es fehlt
set ns = New NotesSession
Das Pipe-Zeichen zeigt Beginn und Ende eines String an. Es ist
"Das ist ein String"
|Das ist ein String|
{Das ist ein String}
Wenn Du | verwendest, sparst Du Dir die "" also,
"Das ist ein String in dem ein Wort in ""Hochkomma"" steht"
|Das ist ein String in dem ein Wort in "Hochkomma" steht"|
{Das ist ein String in dem ein Wort in "Hochkomma" und ein Pipe | steht steht"}
In Deinem Code ginge bspw. auch
searchstring = "Form = ""($AllBookedSchulungen)"" & @Contains(Schulung;""Word Grundlagen"")"
wenn Du in der Formelsprache ein Oder = | verwendest, solltest Du mit {...} arbeiten.
Andreas
koehlerbv:
Ich rate nach wie vor von FTSearch oder Search ab, da es mit GetAlDocumentsByKey einfacher und performanter geht.
Das Pipe-Symbol wird verwendet, um sich mit Anführungszeihen in Anführungszeichen nicht den Wolf zu tippen: | ist de facto ein "Über-Anführungszeichen" und ermöglicht es auf übersichtliche Weile, einen String mit enthaltenenen Anführungszeichen zu schreiben, wie er ja z.B. von Search gefordert wird.
Zum Code: Was sagt der Debugger ?
Euer Plan ist mir aber nach wie vor nicht ganz klar ... Da fällt es schwer, Ratschläge zu geben.
HTH,
Bernhard
TomLudwig:
Ich würds auch lieber mit GetAllDocumentsByKey machen.
Aber bei:
NotesView.GetAllDocumentsByKey("Word)
regt sich bei mir nichts, bzw. wird nichts gefunden. Es kommt immer 0 raus
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln