Domino 9 und frühere Versionen > Entwicklung
In NotesDocument schreiben und aktualisieren
Semeaphoros:
Also, das andere Doc ist ein reines Backend-Dokument - Richtig?
Dann hat es aber auch keine Events. Und das Berechnen erfolgt ja alles in der Maske drin, also in UI-Events. Das hat mit dem (Windows-)EventDriven Modell zu tun (8tung, das ist nicht zu verwechseln mit Object-Modell, wie das häufig gemacht wird).
Da gibt es aber ein Hintertürchen:
Bedingung: Im Dokument muss ein Feld namens "Form" beinhalten, in dem dier Name der zu benutzenden Maske/Formular drin steht.
Gibt es das Feld, dann kann man die Methode "ComputeWithForm" aufrufen, um das Dokument mit den Events des Formulars berechnen zu lassen. Also etwa:
Doc.Form="DasZuVerwendendeFormular"
If Doc.ComputeWithForm(False,False) Then
' arbeite weiter
Else
' Fehlermeldung, die Berechnung hat nicht geklappt
End If
Rob Green:
bezieht sich das auf das komplette Neuberechnen im Backend, wo normalerweise computewithform lediglich
"Validates a document by executing the default value, translation, and validation formulas, if any are defined in the document form" und damit keine berechneten Felder neu kalkuliert? Heißt, durch Nutzung eines Feldes namens Form kann man dennoch per computewithform einen kompletten Refresh auslösen im Backend?
Auf default values, translation formulas, validation formulas und computed formulas? Wäre absolut cool!
Semeaphoros:
Du fragst mich jetzt etwas, bisher hat mir das Ding eigentlich immer das gemacht, was ich erwartet habe, aber vielleicht hab ich mich schon dran gewöhnt, dass ich fast nur Validierungen und so drin habe, könnte sein, meistens mach ich Berechnungen eh über Script und hinterlege hinter das Formular ein entsprechendes Custom-Objekt. So hab ichs sowieso viel einfacher, meine Berechnungen auch ausserhalb des UI auszulösen, die gesamte Logig ist in der Custom-Klasse hinterlegt, und wenn die sauber aufgebaut ist, lässt sich das eben auch ausserhalb des Forms verwenden. Hat sich schon häufig bewährt und ich habe gerade eben meine Vortragsvorschläge für die Lotusphere 04 abgeschickt, die sich vorwiegend genau mit diesem Thema beschäftigt. Hoffe sehr, dass mindestens einer meiner Vorschläge auch einschlägt :-)
Rob Green:
ok, verstehe, wie Du das meinst (reine Script Nutzung). Diese Frage wird spätestens strategisch wichtig beim Neuentdecken der mächtigen R6 Formelsprache. Da wird man schnell verleitet, Formeln zu nutzen, nur um evtl. zu spät erkennen zu müssen, daß man im Backend Neuberechnungen anstellen muß, leider die Form aus zu vielen Bestandteilen besteht, um es über einen kleinen Miniagent quasi halb händisch zu erledigen. Konsequenz (mehr interne Ohrenmarke für mich): vorher genau überlegen, ob man ein computewithform benötigen wird und wenn es um eine komplette Neukalkulation geht, um wie viele Felder. Wenn sehr viele, dann Nutzung von Formeln ausschließen, insofern es User GUI zuläßt. Sonst gleich parallel ein kurzes Scriptmodul aufbauen, das die Neuberechnungen dynamisch über geschickte Feldnamensbezeichnungen ausführt.
Semeaphoros:
Ja, zum Beispiel, und Evaluate nutzen, um @Formeln via Script zu nutzen, seit etwa 5.0.6 hat Evaluate richtig an Nutzen gewonnen (Rückgabe von Werten und die Möglichkeit, ein Dokument mit auf den Weg zu geben)
Navigation
[0] Themen-Index
[*] Vorherige Sete
Zur normalen Ansicht wechseln