Autor Thema: Eine View mehr oder weniger dynamisch filtern  (Gelesen 3138 mal)

Offline livebox

  • Frischling
  • *
  • Beiträge: 5
  • Geschlecht: Männlich
Eine View mehr oder weniger dynamisch filtern
« am: 22.04.10 - 14:56:25 »
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
- Nathan

Offline Ralf_M_Petter

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.879
  • Geschlecht: Männlich
  • Jeder ist seines eigenen Glückes Schmied
    • Ralf's Blog
Re: Eine View mehr oder weniger dynamisch filtern
« Antwort #1 am: 22.04.10 - 15:25:26 »
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
Jede Menge Tipps und Tricks zu IT Themen findet Ihr auf meinem Blog  Everything about IT  Eine wahre Schatzkiste sind aber sicher die Beiträge zu meinem Lieblingsthema Tipps und Tricks zu IBM Notes/Domino Schaut doch einfach mal rein.

Offline livebox

  • Frischling
  • *
  • Beiträge: 5
  • Geschlecht: Männlich
Re: Eine View mehr oder weniger dynamisch filtern
« Antwort #2 am: 23.04.10 - 09:54:52 »
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)
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...  ???
« Letzte Änderung: 23.04.10 - 11:27:14 von livebox »
- Nathan

Offline livebox

  • Frischling
  • *
  • Beiträge: 5
  • Geschlecht: Männlich
Re: Eine View mehr oder weniger dynamisch filtern
« Antwort #3 am: 26.04.10 - 10:59:57 »
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
- Nathan

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Eine View mehr oder weniger dynamisch filtern
« Antwort #4 am: 26.04.10 - 11:53:41 »
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

Offline Ralf_M_Petter

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.879
  • Geschlecht: Männlich
  • Jeder ist seines eigenen Glückes Schmied
    • Ralf's Blog
Re: Eine View mehr oder weniger dynamisch filtern
« Antwort #5 am: 26.04.10 - 12:11:44 »
Ich denke du beherrscht einfach die Volltextsuche nicht. Im Volltextsuche Querystring lassen sich die verschidensten Sachen machen und eine dieser Sachen ist die Einschränkung auf Felder. Ich habe es z.B. so gemacht, dass in der Dialogbox die Felder Ort Postleitzahl Strasse usw. eingegeben werden und der Lotus script code dann den QueryString erstellt, der eben genau diese Felder im Volltextindex anspricht. Die Syntax für Feldzugriff bei der Volltextsuche findest du in der Client Hilfe.

Grüße

Ralf
Jede Menge Tipps und Tricks zu IT Themen findet Ihr auf meinem Blog  Everything about IT  Eine wahre Schatzkiste sind aber sicher die Beiträge zu meinem Lieblingsthema Tipps und Tricks zu IBM Notes/Domino Schaut doch einfach mal rein.

Offline livebox

  • Frischling
  • *
  • Beiträge: 5
  • Geschlecht: Männlich
Re: Eine View mehr oder weniger dynamisch filtern
« Antwort #6 am: 26.04.10 - 14:03:00 »
Danke für den Input, Peter!

Ralf, du hast vollkommen recht! Ich bin vorhin drauf gestoßen: Ein mal in der normalen (Volltext)Suchleiste auf "More" klicken, dort die einzelnen Felder auswählen, ob größer oder gleich oder zwischen oder... Notes hat doch alles schon an Board!
(wenn denn die DB indiziert ist)

Und das konnten mir 3 verschiedene langjährie Notes-User, die auch schon NotesDBs "programmiert" haben, nicht sagen...


Jetzt muss ich nur noch die Feldnamen in der Form so ändern, dass sie für BWLer verständlich werden...

Okay, dieses Problem hat sich erledigt. Herzlichsten Dank für euer Bemühen!  :love:
Man liest sich.

MfG, livebox
« Letzte Änderung: 26.04.10 - 14:06:31 von livebox »
- Nathan

BigWim

  • Gast
Re: Eine View mehr oder weniger dynamisch filtern
« Antwort #7 am: 26.04.10 - 15:11:39 »
Zitat
Wenn ja - dann fehlen mir in meinem Wissen noch 3 Knackpunkte:
Vielleicht wird es Dich ja noch einmal beschäftigen.


Zitat
- Über eine Formel ein LotusScript starten
Du startest mit @Command( [ToolsRunMacro] ; <agentname> ) einen Agenten, der LotusScript ausführt oder eine Funktion aus einer Scriptbibliothek aufruft. Ich habe mir aus verschiedenen Gründen angewöhnt, meine Scripte in Scriptbibliotheken zu sammeln und in Schaltflächen, Agenten, .... liegen nur die Funktionsaufrufe. Aber gut, anderes Thema - muß ja nicht sein.


Zitat
- Ein Rückgabe-Ergebnis des Scripts als Wert in die Spalte schreiben
Die Werte in einer Spalte wirst Du so einfach nicht ändern können. Die Basis einer View bzw. deren Spalten sind ja die Items im Dokument. In der Mehrzahl laufen Agenten (oder es werden Aktionen ausgelöst), die die Items in den Dokumenten verändern und anschließend die Sicht der View aktualisiert. Ansonsten wirst Du Dich mit der API anfreunden müssen.


Zitat
- Vom Script auf die einzelnen Werte der HGView zugreifen
Da empfehle ich mal ein Studium der Scriptklassen "NotesViewEntry", "NotesViewEntryCollection". "NotesView" und "NotesViewColumn" sind auch ganz nützlich. Nicht zu vergessen, die Spalteneigenschaft "Verwenden beim Programmieren" in "Erweitert".


Markus

Offline livebox

  • Frischling
  • *
  • Beiträge: 5
  • Geschlecht: Männlich
Re: Eine View mehr oder weniger dynamisch filtern
« Antwort #8 am: 27.04.10 - 11:15:56 »
Hallo Markus,

herzlichen Dank für deinen Nachtrag - vielleicht werde ich es ja *irgendwann* mal wieder brauchen :)

MfG, livebox
- Nathan

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz