Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: CLI_Andreas_Schmidt am 05.08.05 - 14:13:12
-
Hi @all,
mir fehlt ein Ansatz bei folgendem Problemchen.
--> ich möchte eine Ansicht im Browser öffnen
--> In den Dokumenten gibt es ein feld "Grundpreis" und ein Feld "Endpreis"
--> jetzt soll beim öffnen der Ansicht in einer Spalte der "Endpreis" angezeigt werden.
Problem: Das Feld "Endpreis" muss beim Start in Abhängigkeit vom angemeldeten user (Länderkennung wäre hier sinnvoll) berechnet und dann in der Spalte angezeigt werden. Der Faktor für die Berechnung steht in einer anderen Ansicht mit zwei Felder "LAND" und "Faktor"
Mein Problem ist: Da eine Ansicht kein WebqueryOpen hat, kann ich schlecht beim öffnen irgendwas berechnen.
Gruss
Andreas
-
es geht vermutlich über $$View Maske, treat-content-as-html-Masken und JavaScript.
-
oder du baust die ansicht nach--> lässt eine Maske öffnen, in der über einen WebQueryOpen Agent in ein Feld der Code reingerechnet wird. --> ist aufwändig, aber dann unterliegst du keinen Beschrängungen mehr
-
@CLI
Der Fielmann-Detektiv würde dazu sagen:
Vergessen Sie's.
(Ansichten sind nie benutzerabhängig, Ansichten haben kein DbLookup, etc.)
Da mußt Du eine "ganz andere Brille" ausprobieren...
Gruß,
Uwe
-
Hi Datenbank24.
Genau das ist das Problem. Gut erkannt Du hast.
Die Idee von Mandalor könnte ich als Ansatz probieren. Ich könnte auch eine Seite voll-Printen. Müsste auch gehen und ich brauche kein Feld mehr setzen.
Wenn ich eine Lösung habe, werde ich sie posten.
Danke.
-
um auf View Ebene zu berechnen, sehe ich auch nur den Ansatz (wie bereits erwähnt) treat-content-as-html masken respektive embedded view und JavaScript.
-
oder du baust die ansicht nach--> lässt eine Maske öffnen, in der über einen WebQueryOpen Agent in ein Feld der Code reingerechnet wird. --> ist aufwändig, aber dann unterliegst du keinen Beschrängungen mehr
Das Problem an solchen Lösungen ist, dass sie nicht sonderlich gut skallieren. Das wäre mal eine Motivation mit Hilfe von JMeter (ein Java Profiling Tool, dass man gegen jede Webanwendung benutzen kann) zu zeigen, wie die Performance mit WebQueryOpen Agenten runtergeht.
Ich bleibe dabei: Es geht mit JavaScript und Treat Content as Html. Den User Identifier kann man vermutlich über ein Feld in der $$View Template Maske ermitteln und dann mit JavaScript in den Ansichtsspalten der Treat Content as html view weiterverarbeiten.
Das hört sich jetzt irrsinnig kompliziert an, ist aber imho eine ganz gute Möglichkeit, die Domino bereithält. Viel anders funktionieren viele Java-Web-Taglibs letzten Endes auch nicht.
-
genau so habe ich mir eine "Dynamische" Ansicht gebaut, die in einer ZEILE (=1 Datensatz, wenn man so will) Daten aus x verschiedenen Datenbanken anzeigt.
In der $$View- Maske werden über lookups die entsprechenden Werte zusammengesucht, und eine Javascript- Funktion bereitgestellt, die diese Werte ausliest und an die aktuelle Stelle printed
In der Ansicht selbst werden die Werte dann über die Javascript- Funktion an korrekter Stelle angezeigt...
Das funktioniert, weil die Maske mit eingebetteter Ansicht im Web eine einzige Form ist.
Gruß
Tode
-
.. oder einfach über einen LotusScript Agenten die Ansicht auslesen und die fehlenden Felder berechnen. Durch Navi Links wie "weiter" und "zurück" kann man sich dann praktisch durch die Ansicht klicken.