Lotus Notes / Domino Sonstiges > OLE/COM-Programmierung
Notes Datenbanksuche von außerhalb starten
(1/1)
Worn:
Hallo zusammen,
ich hoffe der Bereich ist korrekt. Sonst bitte verschieben.
Ich suche/frage nach einer Möglichkeit eine Notes Datenbank-Volltextsuche von außerhalb des Notes-Clients auszulösen.
Szenario:
Ich habe ein Programm, welches Makros auf bestimmten Tastenkombinationen starten kann. Ich hätte nun gerne eine Möglichkeit, einen bestimmten Text (irgendwo in Windows in irgendeinem Programm) zu markieren und dann ein Makro per z.B. STRG+1 auzulösen. Dieses Makro kopiert den markierten Text und übergibt die Daten an ein Tool. Dieses Tool soll nun den lokalen Notes Client veranlassen eine Volltextsuche in einer bestimmten Datenbank durchzuführen UND dies so anzuzeigen als wenn man selbst in der Datenbank die Volltextsuche durchgeführt hätte. Also sozusagen eine Remote-Datenbank-Volltextsuche.
Kann mir hier jemand einen Ansatz nennen? Mir ist klar, dass ich die Datenbank z.B. per VB.Net durchsuchen kann und die Ergebnisse über ein Programm weiter bearbeiten kann. Mir ist nicht klar, wie ich den Notes Client dazu bringen kann das alles zu machen als wenn es ein User getan hätte.
Ich danke euch wie immer.
Grüße
Ben
Axel:
Ich habe sowas mal in grauer Vorzeit gemacht.
Hier mal eine Code-Ausschnitt der die grundlegende Vorgehensweise verdeutlicht:
--- Code: ---
Dim objView As Object
Dim objDoc As Object
Dim objFirma As Object
Dim objName As Object
Dim sSuchString As String
Dim iResult As Integer
Dim objSession As Object
Dim objDb As Object
sSuchString = "FIELD Name CONTAINS 'Suchbegriff'"
Set objSession = CreateObject("Notes.NotesSession")
Set objDb = objSession.GetDatabase("NamedesServer", "Nameder Datenbank")
If objDb.IsOpen Then
Set objView = objDb.GetView("NamederAnsicht")
iResult = objView.FTSearch(sSuchString, 0)
If iResult = 0 Then
MsgBox "Es wurden keine Einträge gefunden die Ihrem Suchkriterium entsprechen.", _
vbInformation, "Adressübernahme"
Exit Sub
End If 'If iResult = 0
MsgBox "Suche ergab " & Str(iResult) & " Treffer"
'Zugriff auf die gefundenen Dokumente
Set objDoc = objView.GetFirstDocument
While Not (objDoc Is Nothing)
Set objFirma = objDoc.GetFirstItem("Name")
Set objName = objDoc.GetFirstItem("KontaktName")
Msgbox objFirma.Text
Msgbox objName.Text
Set objDoc = objView.GetNextDocument(objDoc)
Wend 'While Not (doc Is Nothing)
--- Ende Code ---
Da das ganze schon einige Jahre her ist, ist es aber gut möglich, dass es mit den neueren Versionen auch noch einfacher geht.
Axel
Worn:
Hi,
danke für deine Antwort. Sehe ich das richtig, dass hier aber die Suchergebnisse innerhalb eines Objekts des VB-Programms verfügbar sind? Ich möchte ja keine eigene Ansicht für die Treffer bauen (in VB) sondern quasi die Datenbank öffnen und die Suchtreffer im Viewbereich der Datenbank anzeigen so als hätte ich die Suche manuell in der Datenbank durchgeführt.
Grüße
Ben
Axel:
--- Zitat von: Worn am 25.04.12 - 13:26:22 ---Sehe ich das richtig, dass hier aber die Suchergebnisse innerhalb eines Objekts des VB-Programms verfügbar sind?
--- Ende Zitat ---
Ja.
--- Zitat von: Worn am 25.04.12 - 13:26:22 ---Ich möchte ja keine eigene Ansicht für die Treffer bauen (in VB) sondern quasi die Datenbank öffnen und die Suchtreffer im Viewbereich der Datenbank anzeigen so als hätte ich die Suche manuell in der Datenbank durchgeführt.
--- Ende Zitat ---
Ok, dann habe da was falsch verstanden.
Da wird die ganze Sache aber sehr schwierig. Mir ist da im Moment kein direkter Weg bekannt um sowas zu realisieren. Ich kann mich ganz dunkel daran erinnern, dass es früher sowas wie SendKeys gab. Damit konnte man ganz einfache Fernsteuerungen basteln.
Ob das heute noch funktioniert und ob man damit auch eine Volltextsuche auslösen kann kann ich leider nicht sagen. Aber ich wage es zu bezweifeln.
Ich denke du wirst dir da was anderes überlegen müssen.
Axel
Navigation
[0] Themen-Index
Zur normalen Ansicht wechseln