Domino 9 und frühere Versionen > ND8: Entwicklung

Eine View mehr oder weniger dynamisch filtern

(1/2) > >>

livebox:
Hallo folks,

ich bin Notes-Neuling (User seit ca 6 Monaten, "Entwickler" seit 4 Wochen). Die Suchfunktion habe ich schon benutzt, aber nicht genau gefunden, was ich suche.

Ich bin grade dabei, eine an sich recht simple DB für eine Abteilungs-interne Anwendung zusammenzuklicken. Keine großartige Sache, aber eine ordentliche Suche/Filterung ist wichtig. So was in der Art:

User klickt einen Button an
bekommt ein Popup / eine Form
gibt ein paar Randdaten ein
klickt "submit"
und bekommt eine View(?) mit zutreffenden Dokumenten.

Eine echte dynamische Suche gibt's in Notes/Domino nicht, so viel habe ich mitbekommen. (Ich gehe davon aus, das ist noch aktuell?) Aber könnte ich eine Suchmaske erstellen, in der der User verschiedene vorgegebene Dinge auswählen kann?
Das sollte mit Dropdown-Boxen etwa so aussehen:

[-------------] für [---------] ist [------] [gib Wert ein] und [-------] [gib Wert ein]
(Preis            )       (Apfel   )       (gleich )                          (größer)
(Kosten         )       (Birne   )       (größer)                           (kleiner)
(Zahl im Lager)       (Banane)       (kleiner)

Das ganze 3-5 mal untereinander; der User kann dann so viele Kriterien-Zeilen ausfüllen, wie er will. Das ganze design-technisch umzusetzen bekomme ich hin. Wird halt 'ne Menge Arbeit, bei Apfel, Birne etc. stehen in der Realität an die 50 Punkte.


Tja... wie gesagt, trotz Suchfunktion fehlen mir da im Moment jegliche Denk-Ansätze, die Logik dahinter irgendwie hinzubekommen. Für Vorschläge für andere Filter-Möglichkeiten bin ich auch offen. Obiger Ansatz ist die Idee meines Chefs, das hat er von Excel abgeguckt. Da gibt es eine ähnliche Funktion. Ich setze ihm das gerne um - wenn das denn möglich ist.

Ich erhoffe mir hier eben entweder ein "nein, vergiss es" oder zumindest ein paar Schlagworte, mit denen ich mich durch die Domino Designer Help wühlen kann.

MfG, livebox

Ralf_M_Petter:
Ich denke mal der folgende Link

http://www-10.lotus.com/ldd/bpmpblog.nsf/dx/automate-full-text-search

sollte einen Anhaltspunkt liefern wie man dynamische Listen auf mit klassischen Notesboardmittel hinbekommen kann. Ich persönlich würde sowas aber nicht mit den klassischen UI Mitteln von Notes lösen wollen.

Grüße

Ralf

livebox:
Hallo Ralf,

vielen Dank für die super-schnelle Antwort und den Link, das schaut schon sehr gut aus! Bin jetzt grade fleißig dran, mich in LotusScript einzulesen. Ich werde schauen, wie weit ich mit dem Link komme; Fragen folgen sicher noch.

So long!

MfG, livebox



Edit: here we go!

Eine Frage zu dem Code auf der verlinkten Seite:

--- Zitat ---query = Evaluate({ @URLEncode("Domino"; Query) }, docDialog)
--- Ende Zitat ---
Wo kommt die "Query" her? Ist das der String, den der User in der DialogBox ins Suchfeld eingibt? Und wie ist das, wenn im Datensatz Zahlen (als Zahlen deklariert) abgelegt sind? Gibts da keine Probleme mit dem String?


...und: Dieses Script sucht nur nach Werten, die genau so vorkommen, ist das richtig? Dieses eben angesprochene "Query" kann ich ja nicht einfach durch eine Formel ersetzen, sonst sucht er nur nach 0 oder 1...  ???

livebox:
Okay, lesen bildet - das mit der Query stand ja auf der verlinkten Seite. Schande über mich  ::)

Aber der ganze Spaß ist dann doch nichts anderes als eine Volltext-Suche, die man eben erst über einen Button aktiviert und die ein mehr oder weniger schönes Fensterchen zeigt?
Das bringt mich leider nicht weiter. Ein Dokument in meiner DB hat am Ende des Tages viele viele Werte, die zum Teil auch gleich oder ähnlich sein werden. Und wie im Eingangspost schon erwähnt, sollte die Suche auch irgendwie "Spalte abc: Wert ist zwischen x und y" können. Da ist eine Volltextsuche leider ungeeignet.


Ich habe noch eine andere Lösung im Hinterkopf, allerdings weiß ich nicht, ob die sich so umsetzen lässt? Wie gesagt, ich bin noch nicht lange dabei.

Die Idee ist folgende: Der User bekommt auf Klick eine Form, in die er diverse Werte einträgt. Z.B. Preis für Abc größer als x und kleiner als y. Auf Klick werden diese Werte in einer View im Hintergrund gespeichert und es öffnet sich eine View, in der die Ergebnisse angezeigt werden.
Diese Ergebnis-View hat eine Spalte mit dem Namen "zeige". Da drin steht 0 oder 1. Oder auch ja oder nein - was auch immer. Standardmäßig steht in der Spalte ein ja, allerdings hat sie eine Formel im Hintergrund Diese prüft diverse Bedingungen, wie zB:
"Hole aus der Hintergrund-View (=HGView; nach Datum sortiert) die letzte (=aktuellste) Zeile. Wenn Preis aus aktueller Zeile < HGView.MinPreis oder Preis aus aktueller Zeile < HGView. MaxPreis, dann setze Rückgabewert auf nein."
Wenn also eine der eingegebenen Bedingungen nich erfüllt ist, steht in dieser Spalte für diese Zeile ein "nein". Und über SetViewFilter beim Aufruf der View lasse ich mir nur diese Zeilen anzeigen, die ein "ja" in dieser Spalte enthalten.


Könnte das so funktionieren?
Wenn ja - dann fehlen mir in meinem Wissen noch 3 Knackpunkte:
- Über eine Formel ein LotusScript starten (denn in der Spalte darf ich ja nur Formeln eingeben)
- Ein Rückgabe-Ergebnis des Scripts als Wert in die Spalte schreiben
- Vom Script auf die einzelnen Werte der HGView zugreifen


MfG, livebox

Peter Klett:
Das wird so nicht funktionieren (ich wüßte jedenfalls nicht, wie).

Vorstellbar wäre ein Ordner (gemeinsam, bei erster Benutzung privat). In diesen Ordner werden die Dokumente, die den Suchkriterien entsprechen, hineingeschoben. Vorher nicht vergessen, die in dem Ordner befindlichen Dokumente aus diesem zu entfernen (nicht löschen, dann sind sie weg, falls der Benutzer löschen darf).

Nachteil ist, dass der private Ordner, der durch die erste Nutzung des gemeinsamen Ordners erstellt wird, nicht mehr aktualisiert wird. Bei einem Gestaltungs-Update müsste der von jedem Benutzer manuell gelöscht werden. Deshalb ist es wichtig, Funktionalität in dem Ordner (neue Suche, Ordner leeren o.ä.) nicht direkt in den Ordner zu bauen, sondern z.B. in Agenten, die von Schaltflächen im Ordner gestartet werden.

Viele Grüße

Peter

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln