Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: pram am 02.08.11 - 18:32:04

Titel: Volltextsuche in der Notes_UI_View zurücksetzen
Beitrag von: pram am 02.08.11 - 18:32:04
Hallo zusammen,

gibt es mittels LS eine Möglichkeit, die Suchergebnisse einer UI (!) -View zurückzusetzen.

Hintergrund: Ich möchte in der Ansicht mit
Code
ws.currentview.SelectDocument(doc) 
zu einem bestimmten Dokument springen.
Leider geht das nicht, wenn der User zuvor eine (Volltext)Suche in der View ausgeführt hat, da die View dann nur die Suchtreffer anzeigt und das Dokument dann meistens nicht dabei ist und auch nicht zu diesem hingesprungen werden kann.

Was ich schon probiert habe:
Call ws.currentView.Deselectall()
Call ws.currentView.View.Clear()
Call ws.Urlopen(view.Notesurl+"&Query=")

Insb. mit letzterem Befehl kann ich die Query zwar setzen, aber nicht auf leer setzen, was ich eigentlich will.
Alternativ würde es mir auch helfen, wenn ich festellen könnte, ob eine View gerade Suchergebnisse anzeigt oder nicht, dann könnte ich einen entsprechenden Warnhinweis ausgeben.

Gruß
Roland
Titel: Re: Volltextsuche in der Notes_UI_View zurücksetzen
Beitrag von: eknori am 02.08.11 - 18:37:55
evtl noch ein Call notesUIWorkspace.ViewRefresh nach dem Clear ?
Titel: Re: Volltextsuche in der Notes_UI_View zurücksetzen
Beitrag von: koehlerbv am 02.08.11 - 18:49:45
Auf jeden Fall noch ein NotesUIWorkspace.ViewRefresh, da das Clear sich ja auf die backend-View bezieht und dadurch die UI-View gar nichts weiss von ihrem Glück.

Bernhard
Titel: Re: Volltextsuche in der Notes_UI_View zurücksetzen
Beitrag von: pram am 03.08.11 - 10:13:20
ich hab jetzt noch ein wenig rumprobiert, ich denke dass die Volltextsuche im Backend und im Frontend irgendwie zwei paar Stiefel sind.

mein Code sieht aktuell so aus
Code
Call ws.CurrentDatabase.OpenView(viewName,"",false,True)
Call ws.currentView.Deselectall()
Call ws.currentView.View.Clear()
Call ws.currentView.View.refresh()
MsgBox ws.Currentview.Viewname
Call ws.Viewrefresh()
Call ws.currentview.SelectDocument(doc)
und der Code wird im Rahmen eines Dokuments ausgeführt (falls das wichtig ist)
Zuerst öffne ich die View (wobei die in den Meisten Fällen schon offen ist, es erfolgt lediglich ein Wechsel der Tabs) da ansonsten im Dokument ws.currentView = NOTHING ist. Dann versuche ich, die FT-Suche in der View zurückzusetzen

Vielleicht hat noch jemand eine Idee, ansonsten "ist das einfach so"...

Gruß
Roland
Titel: Re: Volltextsuche in der Notes_UI_View zurücksetzen
Beitrag von: pram am 03.08.11 - 10:33:07
EDIT: ich komme der Lösung schon etwas näher:

Code
Call ws.CurrentDatabase.OpenView(viewName,"",False,True)	' setzt currentView
Call ws.Urlopen(ws.currentView.View.Notesurl+"&Query=%00")	' löscht FT-Suche, macht aber ws.currentView ungültig
Call ws.CurrentDatabase.OpenView(viewName,"",False,True)	' setzt currentView wieder...
Call ws.currentview.SelectDocument(doc) ' ...so dass hier das Dokument selektiert werden kann

wenn ich auch etwas Bauchschmerzen habe, die View per urlopen zu öffnen und der Query einen NUL-Character zu übergeben (und soweit ich weiß geht das auch erst mit 8.5... werd mal ältere Versionen testen.)
weitere Unschönheit: Das Volltexteingabefenster der View geht immer auf...

müsste noch irgendwie ein @Command( [ViewShowSearchBar] ; onOff ) mit Lotusscript absetzen

Gruß
Roland