Autor Thema: Suchfunktion implementieren  (Gelesen 2534 mal)

Offline DannyCrown

  • Junior Mitglied
  • **
  • Beiträge: 93
  • Geschlecht: Männlich
  • Use Kill with care - Designer Hilfe
Suchfunktion implementieren
« am: 17.06.09 - 13:24:58 »
Ich möchte in einer Datenbank eine eigene Suchfunktion implementieren. az möchte ich alle Dokumente einer Form durchgehen und ein Feld namens Betreff auf möglichen Inhalt prüfen. Die Dokumente bei denen das Suchkriterium erfüllt ist möchte ich dann gerne in einer Ansicht haben um sie in einer Picklist anzuzeigen o. ä.

Ich bekomme auch mittlerweile schon alle Dokumente in eine DocumentCollection, aber stehe im Moment auf dem Schlauch wie ich dann weiter vorgehen könnte.

Allerdings gibt es ja schon die Standardsuche in Notes und da kann man ja auch unter Mehr Bedingungen hinzufügen.
Wenn man dort jetzt die Bedingung "Feld betreff enthält suche" eingibt hat man genau das was ich will. Allerdings hätte ich es nicht gerne in dem grauen Kasten oben, sondern würde es lieber in Skript selber schreiben. Hat jemand ne Idee, was dazu alles benötigt wird?

quasi so:

« Letzte Änderung: 17.06.09 - 13:40:14 von DannyCrown »
MfG Daniel O0

Offline Spalter

  • Aktives Mitglied
  • ***
  • Beiträge: 109
  • Mit der Lizenz zum Löschen!!!
Re: Suchfunktion implementieren
« Antwort #1 am: 17.06.09 - 13:32:01 »
 ;)

Hallo Daniel,

schau Dir mal die

FTSearch method

der NotesDatabaseClass an.

Gruß
Spalter

Offline DannyCrown

  • Junior Mitglied
  • **
  • Beiträge: 93
  • Geschlecht: Männlich
  • Use Kill with care - Designer Hilfe
Re: Suchfunktion implementieren
« Antwort #2 am: 17.06.09 - 13:36:56 »
aber die FTSearch Methode gibt mir doch auch nur ne DocumentCollection zurück, wenn ich richtig lesen kann, oder?

Zitat
Syntax
Set notesDocumentCollection = notesDatabase.FTSearch( query$, maxdocs%, [ sortoptions% ], [ otheroptions% ] )

Aber die DocumentCollection hab ich ja schon mit den gesuchten Dokumenten, weiß jetzt nur nicht weiter, wie ich sie grafisch in ner Ansicht darstellen kann
MfG Daniel O0

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Suchfunktion implementieren
« Antwort #3 am: 17.06.09 - 13:45:03 »
Du brauchst einen *persönlichen* Ordner für die Suchergebnisse (SPOFU). Die Docs Deiner NotesDocumentCollection kannst Du dann mit einer Methode alle dort hinein schieben.
Vor jeder neuen Suche sollte der Ordner natürlich geleert werden (auch dafür gibt es Methoden - Achtung jedoch bei Dokumenthierarchien via $Ref!).

Wenn möglich, sollte man die Suche gleich aus dem persönlichen Suchordner heraus starten lassen.. Auch dazu wurde hier schon viel geschrieben.

Bernhard

Offline DannyCrown

  • Junior Mitglied
  • **
  • Beiträge: 93
  • Geschlecht: Männlich
  • Use Kill with care - Designer Hilfe
Re: Suchfunktion implementieren
« Antwort #4 am: 18.06.09 - 07:39:00 »
So, das mit dem Suchen und dem Ordner klappt jetzt alles so weit, nur hab ich jetzt noch ein kleines Problem. Wenn ich den Ordner dann nach der Suche aufrufe wird er nicht in der Rahmengruppe angezeigt, sondern in dieser Standard Gliederung, wo einfach alle Ansichten und Ordner in der linken Seite stehen. Dachte eigentlich das das Problem mit nem einfachen SetTargetFrame erledigt wäre, aber wenn ich die Methode aufrufe bekomme ich folgende Fehlermeldung: "In diesem Kontext können Ansichten nicht gewechselt werden." Habe aber keine Ahnung, warum ich die Anischt nicht wechseln kann. Hat da jemand ne Idee?

Code
If dc.Count > 0 Then
dc.PutAllInFolder("Suche")		
'uiws.SetTargetFrame("Inhalt")
Call uidb.OpenView("Suche")
End If

edit: Also setTargetFrame alleine funktioniert wunderbar, nur kann ich danach halt dann nicht mehr den Ordner öffnen. Ich weiß aber wirklich nicht warum.

edit2: Komischerweise funktioniert auch ein

Code
@SetTargetFrame("Inhalt");
@Command([OpenView];"Suche")

in nem Extrabutton, aber mit LS klappts nicht

Code
Dim uiws As New NotesUIWorkspace
Dim uidb As NotesUIDatabase
Set uidb = uiws.CurrentDatabase
uiws.SetTargetFrame("Inhalt")
Call uidb.OpenView("Suche")
« Letzte Änderung: 18.06.09 - 08:18:58 von DannyCrown »
MfG Daniel O0

Offline DannyCrown

  • Junior Mitglied
  • **
  • Beiträge: 93
  • Geschlecht: Männlich
  • Use Kill with care - Designer Hilfe
Re: Suchfunktion implementieren
« Antwort #5 am: 18.06.09 - 11:32:23 »
Hat denn niemand ne Idee, warum das nicht klappt???
MfG Daniel O0

Offline DannyCrown

  • Junior Mitglied
  • **
  • Beiträge: 93
  • Geschlecht: Männlich
  • Use Kill with care - Designer Hilfe
Re: Suchfunktion implementieren
« Antwort #6 am: 19.06.09 - 08:15:38 »
Hat dieses Phänomen denn noch niemand gehabt?  :-[
MfG Daniel O0

Offline DannyCrown

  • Junior Mitglied
  • **
  • Beiträge: 93
  • Geschlecht: Männlich
  • Use Kill with care - Designer Hilfe
Re: Suchfunktion implementieren
« Antwort #7 am: 19.06.09 - 10:31:00 »
Wenn ich

Code
uiws.OpenFrameSet("Notes Main Frameset")
Call uiws.SetTargetFrame("Inhalt")
Call uidb.OpenView("Suche")

in einer Maske aufrufe, dann klappt das auch wunderbar.
Werde dann wohl diesen Umweg über eine Suchenmaske machen, wenn das andere nicht geht
MfG Daniel O0

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz