Autor Thema: Suchfunktion programmieren  (Gelesen 3501 mal)

Offline jr

  • Senior Mitglied
  • ****
  • Beiträge: 260
  • Geschlecht: Männlich
  • Bitte keine eierlegenden Wollmilchsäue...
    • Homepage
Suchfunktion programmieren
« am: 24.02.03 - 16:07:05 »
Hallo,

wenn ich die Volltextsuche manuell aktiviere, sortiert Notes die gefunden Dokumente nach Wichtigkeit in der aktuellen Ansicht. Kann man dies auch mit Lotus Script erreichen, dass die Ergebnisse eines Search oder FTSearch in der gleichen Ansicht angezeigt werden?

Für Tipps wäre ich dankbar.

JR
Wer in den Fußstapfen eines anderen geht, hinterlässt keine Spuren und kommt nie als Erster an.

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re:Suchfunktion programmieren
« Antwort #1 am: 24.02.03 - 17:51:32 »
Hi,

das geht nur, wenn du das Suchergebnis in einen Ordner packst.

Als Ergebnis bekommst du eine Collection zurück und diese kannst du mit der Methode PutAllInFolder in einen Ordner schieben. Allerdings solltest du den Odner vorher leeren.

Axel
 
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline jr

  • Senior Mitglied
  • ****
  • Beiträge: 260
  • Geschlecht: Männlich
  • Bitte keine eierlegenden Wollmilchsäue...
    • Homepage
Re:Suchfunktion programmieren
« Antwort #2 am: 24.02.03 - 18:19:17 »
Das mit dem Ordner habe ich schon gemacht. Da gibt es aber ein kleines Problem  ???:

Es muss ein privater Ordner sein, damit nicht das Ergebnis eines Benutzers das eines anderen Benutzer überschreibt. Mit "Gemeinsam, bei erster Nuztung persönlich" habe ich aber schlechte Erfahrung, weil die Funktion "db.GetView("xxx")" anscheinend willkürlich die persönliche Kopie oder den allgemeinen Ordner benutzt. Außerdem soll die Funktion auch für Leser der Datenbank funktionieren.

Hat jemand ein Lösungsvorschlag?
Wer in den Fußstapfen eines anderen geht, hinterlässt keine Spuren und kommt nie als Erster an.

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re:Suchfunktion programmieren
« Antwort #3 am: 25.02.03 - 08:15:22 »
Hi,

du musst dafür sorgen, dass der persönliche Ordner angelegt ist, bevor du mit db.GetView darauf zu greifst.

Auch als Leser kannst du persönliche Ordner erstellen. Du mußt nur den entsprechenden Haken in der ACL setzen.


Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline jr

  • Senior Mitglied
  • ****
  • Beiträge: 260
  • Geschlecht: Männlich
  • Bitte keine eierlegenden Wollmilchsäue...
    • Homepage
Re:Suchfunktion programmieren
« Antwort #4 am: 25.02.03 - 08:35:38 »
Hallo Axel,

danke für Deine Hilfe. Ich habe das ja alles schon ausprobiert, aber es klappt einfach nicht. Auf einem Rechner arbeitet die Funktion einwandfrei, auf einem anderen Rechner versucht Notes auf den gemeinsamen Ordner zuzugreifen.

Ich habe hier mal den Code eingefügt. Der Ordner "folder_PrivateSearch" ist Gemeinsam, bei erster Nutzung persönlich.


If (ws.DialogBox("subform_Search", True, True, True, False, False, False, "Suchen", dialog, True, True)) Then
   Call ws.SetTargetFrame("frame_Main")
   Call ws.CurrentDatabase.OpenView("folder_PrivateSearch")
      
   Set docs = db.Search(dialog.s_Formula(0), Nothing, 0)
      
   ' Call db.GetView("folder_PrivateSearch").Remove... funktioniert nicht
   Call ws.CurrentView.View.AllEntries.RemoveAllFromFolder("folder_PrivateSearch")
   Call docs.PutAllInFolder("folder_PrivateSearch")
      
   Call profile.Save(False, False)
End If


Vielleicht fällt irgend jemandem ein grober Fehler meinerseits auf.

Danke,

Joachim

Wer in den Fußstapfen eines anderen geht, hinterlässt keine Spuren und kommt nie als Erster an.

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re:Suchfunktion programmieren
« Antwort #5 am: 25.02.03 - 08:53:03 »
Hi,

auf den ersten Blick sieht der Code eingentlich ganz ok aus. Meine Lösung sieht ein bisschen anders aus. Die Datenbnak in der ich das einsetze läuft seit ca. einem halben Jahr auf ca. 200 Rechner problemlos.

Als erstes habe ich im PostOpen-Event im Datenbank-Script diese beiden Zeilen:

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

Damit öffne ich kurz den Ordner. Er ist vom Typ "öffentlich, bei erster Benutzung privat". Ist er für den User nicht vorhanden, wird er angelegt.

Im Recherche-Agent greife ich dann so auf den Ordner zu:

...
Dim view As NotesView
Dim vc As NotesViewEntryCollection
Dim foldername As String

foldername = "Recherche"

...

'Recherche durchführen, Ergebnis steht in collection

...

Set view = db.GetView(foldername)
Set vc = view.AllEntries

...
Call vc.RemoveAllFromFolder(foldername)  'Ordner leeren

Call collection.PutAllInfolder(foldername) 'Rechercheergebnis in Ordner
...      

Das sieht dann nicht viel anders aus als dein Code.

Axel


Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline wflamme

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 690
  • Geschlecht: Männlich
  • Irgendwie geht das schon...
    • wflamme
Re:Suchfunktion programmieren
« Antwort #6 am: 25.02.03 - 11:36:38 »
Grüße,
Wolfgang

"I love deadlines. I love the whooshing sound they make as they pass by..."
DOUGLAS ADAMS

wflamme@mainz-online.de
http://www.sns1.de/partner/flamme/wflamme.nsf

Offline jr

  • Senior Mitglied
  • ****
  • Beiträge: 260
  • Geschlecht: Männlich
  • Bitte keine eierlegenden Wollmilchsäue...
    • Homepage
Re:Suchfunktion programmieren
« Antwort #7 am: 25.02.03 - 13:14:45 »
Hallo wflamme,

super Tipp!  :) Vielen Dank. Die Idee die Tastatur direkt anzusprechen um den Suchstring einzutragen ist klasse. Dann kann ich auf die Ordner verzichten. Ich brauch zwar ein bisschen mehr, weil ich nur bestimmte Felder durchsuchen muss, aber das ist dann kein Problem mehr.

Vielen Dank,

jr
Wer in den Fußstapfen eines anderen geht, hinterlässt keine Spuren und kommt nie als Erster an.

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re:Suchfunktion programmieren
« Antwort #8 am: 25.02.03 - 13:57:02 »
Hi,

ich hab mir das mal angeschaut. Ja, ist gut und schön, aber...

Dann kann ich auch den Suchbegriff in die Suchleiste eintippen. Das Problem der Volltextsuche das ich sehe, und aus diese Problematik bin ich von unseren Usern mehrmals angesprochen worden, ist, dem Ergebnis fehlt jegliche Struktur. Unter Struktur verstehe ich die in der Ansichtengestaltung festgelegte Sortierung und Kategorisierung, die unter Umständen für ein Zuordnen eines Dokumentes wichtig ist. Ich denke da z.B. an Adressen und Kontaktpersonen.

Wenn ich das über Ordner mache, bekomme ich das Ergebnis klar strukturiert angezeigt.

Und den Faktor Zeit (angesprochen auf der Webseite von wflamme) kann ich in meiner Anwendung in keinster Weise nachvollziehen. Die Ordnerleerung, auch bei vielen Dokumenten ist kaum zu merken.

Ist meine persönliche Meinung, aber die Reaktion unserer User hat mich darin bestätigt.

Axel
 
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline jr

  • Senior Mitglied
  • ****
  • Beiträge: 260
  • Geschlecht: Männlich
  • Bitte keine eierlegenden Wollmilchsäue...
    • Homepage
Re:Suchfunktion programmieren
« Antwort #9 am: 25.02.03 - 14:52:28 »
@Axel,

im Prinzip hast du recht. Aber den Benutzer direkt die Suchleiste bedienen zu lassen ist meist zuviel verlangt. Der Suchstring muss automatisch zusammengesetellt werden - in diesem Fall mit "FIELD xx Contains yy" - das kann kein Normal-User.

Die Lösung mit privaten Ordnern kann ich nicht nutzen, weil diese auf dem Server nicht erstellt werden dürfen.

Was auch noch geht ist ein gemeinsamer Ordner. Wenn jemand eine Suche durchgeführt hat, und ein andere ebenfalls eine Suche startet, wird das Ergebnis zwar überschrieben, aber die Liste beim ersten Benutzer bleibt solange erhalten, bis er den Aktualisieren-Knopf drückt. Das ist auch noch eine Lösung. Ich werde alles einmal ausprobieren und der Kunde soll entscheiden, was für Ihn die beste Lösung ist.

Danke für die Hilfe,

JR
Wer in den Fußstapfen eines anderen geht, hinterlässt keine Spuren und kommt nie als Erster an.

Offline wflamme

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 690
  • Geschlecht: Männlich
  • Irgendwie geht das schon...
    • wflamme
Re:Suchfunktion programmieren
« Antwort #10 am: 25.02.03 - 15:15:10 »
Hi,

ich hab mir das mal angeschaut. Ja, ist gut und schön, aber...

Dann kann ich auch den Suchbegriff in die Suchleiste eintippen. Das Problem der Volltextsuche das ich sehe, und aus diese Problematik bin ich von unseren Usern mehrmals angesprochen worden, ist, dem Ergebnis fehlt jegliche Struktur. Unter Struktur verstehe ich die in der Ansichtengestaltung festgelegte Sortierung und Kategorisierung, die unter Umständen für ein Zuordnen eines Dokumentes wichtig ist. Ich denke da z.B. an Adressen und Kontaktpersonen.

Wenn ich das über Ordner mache, bekomme ich das Ergebnis klar strukturiert angezeigt.

Und den Faktor Zeit (angesprochen auf der Webseite von wflamme) kann ich in meiner Anwendung in keinster Weise nachvollziehen. Die Ordnerleerung, auch bei vielen Dokumenten ist kaum zu merken.

Ist meine persönliche Meinung, aber die Reaktion unserer User hat mich darin bestätigt.


Also das Leeren des Folders macht wirklich nicht viel aus - hier wird wohl wie üblich einfach der Bereich als frei deklariert Beim Kompaktieren merkt man's dann. Aber beim Schreiben sieht's schon anders aus.

Der Verlust von Kategorien, ja das stimmt, ist aber kein Nachteil gegenüber der regulären Volltextsuche. Dafür fallen bei der Folder-Lösung mindestens Highlighting und Relevanz weg, sowie die universelle Anwendbarkeit auf alle Ansichten/Dokumente.

Man muß es fallweise abwägen - ich sage immerhin: Schön, daß es noch eine Alternative gibt.
Grüße,
Wolfgang

"I love deadlines. I love the whooshing sound they make as they pass by..."
DOUGLAS ADAMS

wflamme@mainz-online.de
http://www.sns1.de/partner/flamme/wflamme.nsf

Offline wflamme

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 690
  • Geschlecht: Männlich
  • Irgendwie geht das schon...
    • wflamme
Re:Suchfunktion programmieren
« Antwort #11 am: 25.02.03 - 16:28:03 »
Und btw: Da gab's doch auch noch irgendwelche Restriktionen bzgl. der Zahl der Dokumente bei der Folders-Lösung? Habe da jedenfalls einen Notes-API-Workaround (sandbox) in Erinnerung.
Grüße,
Wolfgang

"I love deadlines. I love the whooshing sound they make as they pass by..."
DOUGLAS ADAMS

wflamme@mainz-online.de
http://www.sns1.de/partner/flamme/wflamme.nsf

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz