Domino 9 und frühere Versionen > ND6: Entwicklung

Volltextsuche in einer View

<< < (2/3) > >>

Axel:
Ich habe das mal probiert. Das funktioniert auch, wenn du nur den Suchwert angibst. Ich war da auf dem falschen Dampfer. Ich habe diese FTSearch-Variante noch nie eingesetzt.

Aber du fällst hier in die Frontend-/Backendfalle. D.h. du löst die Suche im Backend aus, das Frontend bekommt aber nichts mit davon. Das wird so nicht funktionieren.

Was hast du denn vor? Vielleicht finden wir eine andere Lösung.


Axel
 

bikerboy:
Ja vor habe ich folgendes,


1. Benutzer drückt einen Suchknopf

2. Benutzer füllt Maske aus

3. Die View in der er der USer sich befindet wir dahingehend gefiltert, also nur die Ergebnisse bleiben stehen.

Axel:
Yoo, dann bleibt dir nur der Umweg über einen Ordner.

D.h. der User füllt die Suchmaske aus, dann wird ein FTSearch über die Datenbank gemacht (denn nur die liefert die eine NotesDocumentCollection mit den gefundenen Dokumenten zurück) und die packst du dann mit NotesDocumentCollection.PutAllInFolder in einen Ordner.

Dabei ist zu beachten, dass es ein persönlicher Ordner sein sollte, da sich sonst die einzelnen User ins Gehege kommen und dass der Ordner vor eine neuen Such geleert werden muss. Sonst wird das Ergebnis verfälscht.


Axel
 

bikerboy:
Hmmm kannst du mir bitte ne Schnellanleitung geben,



--- Code: --- Dim session As New NotesSession
Dim docColl As NotesDocumentCollection

Dim folderName As String


folderName = {persFolderOf}+  session.UserName

Call AdrDB.EnableFolder(folderName)

Set docColl = AdrDB.FTSearch(Query,0)
Call docColl.PutAllInFolder(folderName)


--- Ende Code ---


WIe gehts dann weiter , ich will dass der Folder dann gleich geöffnet wird

Axel:
Einen Ordner mit Script zu öffnen ist nicht so ohne weiteres möglich.

Du kannst es mit

Call notesUIWorkspace.OpenDatabase( server$, file$, view$, key$, newInstance, temp )

mit den entsprechenden Parametern versuchen. Im Parameter view$ gibst du dann den Namen des Ordners an.

Noch ein Fallstrick über den du mit Sicherheit fällst is diese Zeile

Call AdrDB.EnableFolder(folderName)

Damit wird der Ordner aber nicht automatisch angelegt, wenn er nicht vorhanden ist. D.h. du musst selbst dafür sorgen, dass der Ordner vor der ersten Verwendung angelegt wird. Und genau an diesem Punkt habe ich schon Tage zugebracht und meine Haare sind um einiges grauer geworden.

Mein Lösungsweg sieht inzwischen so aus:

Im Database-Script (PostOpen-Event) habe ich zwei Formelzeilen drin


@Command([OpenView]; "(Suchergebnis)");
@Command([FileCloseWindow]);


Damit wird beim Öffnen der DB der Ordner kurz geöffnet und wieder geschlossen. Existiert er nicht wird er angelegt. Du musst natürlich in deiner Gestaltung einen SPOFU(Gemeinsam, privat bei Erstbenutzung)-Ordner angelegt haben.

Wenn der User eine Suche machen will, öffnet er den Ordner und führt seine Suche über eine Aktion aus der Aktionsleiste aus.

Diesen Weg habe ich bereits in mehreren DBs im Einsatz und bislang funktioniert das Ganze ohne Probleme.

Axel

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln