Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: MrMagoo am 12.06.03 - 17:47:39

Titel: Wert eines Feldes in Suchstring
Beitrag von: MrMagoo am 12.06.03 - 17:47:39
Hallo ich habe bei folgendem Code aus der Hilfe ein Problem

     Set dc = db.Search("@Contains(Subject;""Valdez"")", dt, 0)
     Set doc = dc.GetFirstDocument()

So funktioniert es auch Prima, allerdings Suche ich nicht nach Valdez, sondern nach dem Inhalt des Feldes Titel
mein Code:

Sub Initialize
     Dim session As New NotesSession
     Dim dt As New NotesDateTime("07/15/97")
     Dim db As NotesDatabase
     Dim dc As NotesDocumentCollection
     Dim doc As NotesDocument
     Dim subj1 As String
     subj1= uidoc1.fieldgetText("Titel")
     Set db = session.CurrentDatabase
     Set dc = db.Search("@Contains(Subject; subj1)", dt, 0)
     Set doc = dc.GetFirstDocument()
     While Not(doc Is Nothing)
        Messagebox doc.Subject(0)
        Set doc = dc.GetNextDocument(doc)
     Wend
End Sub

Jetzt nimmt er jedes Dokument und wählt nicht nach subj1 aus
???
Titel: Re:Wert eines Feldes in Suchstring
Beitrag von: Rob Green am 12.06.03 - 17:58:26
sieht auf den ersten Blick danach aus, als ob Du uidoc1.fieldgetText("Titel") nicht korrekt bestimmt hast. Genauer gesagt UIDOC1 soll ja sicherlich das Doc im Frontend des Users sein. Dazu ergänze vorher:

Dim UIWS as NEW NotesUIWorkspace
Dim UIDOC1 as NotesUIDocument
Set uidoc1 = UIWS.currentdocument
....
Titel: Re:Wert eines Feldes in Suchstring
Beitrag von: ata am 12.06.03 - 20:35:40
... im db.Search übergibst du einen Formel-String als Parameter - dein String enthält den Namen einer Variablen, den er dort nicht kennnt...

Sub Initialize
    Dim ws As New NotesUIWorkspace
    Dim session As New NotesSession
    Dim dt As New NotesDateTime("07/15/97")
    Dim db As NotesDatabase
    Dim dc As NotesDocumentCollection
    Dim doc As NotesDocument
    Dim uidoc As NotesUIDocument
    Dim subj1 As String
    Dim sSearch As String

    Set uidoc = ws.CurrentDocument
    subj1= uidoc1.fieldgetText("Titel")
    Set db = session.CurrentDatabase
    sSearch = |@Contains( Subject ; "|+subj1+|" )|

    Set dc = db.Search( sSearch , dt, 0)
    If dc.Count = 0 Then Exit Sub

    Set doc = dc.GetFirstDocument()
    While Not(doc Is Nothing)
        Messagebox doc.Subject(0)
        Set doc = dc.GetNextDocument(doc)
    Wend
End Sub


ata
Titel: Re:Wert eines Feldes in Suchstring
Beitrag von: MrMagoo am 13.06.03 - 08:30:14
Morgen zusammen und danke für die Antworten.
Die Version von ata hat die Lösung gebracht.
Gruß