Das Notes Forum
Domino 9 und frühere Versionen => ND7: Entwicklung => Thema gestartet von: slecram am 14.02.07 - 09:13:14
-
Hallo,
ich habe vor ein paar wochen schon einmal in einem anderen Forum mein Problem gepostet, bin aber leider nicht zu einer lösung des problems gekommen
Ich kann mir auch einfach nicht erklären, wieso das nicht funktioniert. Es ist ja keine "besondere" funktion. :-:
Problem in vereinfachter Form:
Ich fülle ein berechnetes Feld (Field_1) in einer Web Applikation über einen Agenten mit einem Wert (hier: "Hallo") und speichere anschließend ab.
button_füllen:
@Command([ToolsRunMacro]; "(ag_füllen)")
(ag_füllen):
@SetField("Field_1";"Hallo");
button_speichern:
@Command([FileSave]);
@Command([FileCloseWindow)];
Wenn ich jetzt das Dokument öffne, ist das berechnete Feld leer. Er speichert als den Inhalt nicht richtig ab. Im Notes funktioniert das ganze.
Wenn ich das Feld "bearbeitbar" setze funzt es auch im web. aus sicherheitsgründen soll es aber berechnet sein.
Kann das mal einer nachstellen und gucken, ob das bei euch funzt?
Gruß und thx schon einmal
-
Ist das Feld 'berechnet', 'berechnet zur Anzeige' oder 'berechnet beim Anlegen'?
Rainer
-
funktioniert nicht, egal ob berechnet oder berechnet zur anzeige.
z.Z. Berechnet
-
Theorie:
Wenn du ein Formular im Web speicherst werden ja nur die Werte übertragen, die in HTML-Input-Feldern in HTML-Form-Abschnitten stehen.
Ich vermute mal, dass ein berechnetes Feld nicht als Input - Tag gerendert wird, sondern einfach als statischer Text, und deshalb wird die Änderung auch nicht an den Domino Server übertragen und kann dort auch nicht gespeichert werden.
Lösen könntest du das Problem evtl. mit einer Kombination aus verstecktem Feld, in das du den Wert schreibst, und berechnetem Feld, das den Wert des versteckten Felds anzeigt.
Nachteil von dieser Lösung wäre, dass jemand mit Kentnissen der Kommunikation zwischen Browser und Web Server den Wert im versteckten Feld manipulieren könnte.
-
Hallo,
das habe ich schon probiert.
Das funktioniert auch soweit, bis ich das bearbeitbare "Quellfeld" im Web ausblende.
Dann ist das berechnete Feld auch wieder leer..
hat das mal einer von euch nach gestellt? würde gern wissen, ob es vielleicht an meiner Lotus Notes Version liegt...
ne möglichkeit, die ich noch auch schon probiert habe ist das Feld manuell per Durchgang-HTML einzubinden
<input type="text" name="field_1" value="field_1">
jetzt weiss ich nicht, wie ich das feld als berechnet setzen kann, oder wie ich den value ansprechen und somit mit einem agenten verändern kann...
-
setze das Feld auf 'bearbeitbar' und im Reiter '<HTML>' unter 'Andere' trägst Du 'readonly' ein
Gruss
Otto
-
Versuch mal "Generate Html for all fields" im zweiten Reiter der form zu aktivieren.
Falls das nicht funktioniert, erzähl ich dir einen zweiten Trick. ;) (Otto hat das schon gemacht)
Und jetzt something completly different:
Diese ganzen Sachen sind aus Sicht des Entwicklers einer Web Anwendung magic.
Gibt aber heute - besonders für Mozilla - Tools, die dabei helfen die magic ein bischen transparenter zu machen.
Zum Bleistift zeigt Firebug genau an, welche Felder in einem HTTP-request übertragen werden.
Solche Tools sind
- im Grunde nicht so mühseelig in der Benutzung
- können in verschiedenen Umgebungen verwendet werden: Notes, Php, asp.net, java, everything web
Firebug kann definitiv das anzeigen, von dem Thomas spricht.
Vielleicht kann ich am WE mal ein Kurztutorial schreiben, mit dem man das in Notes nutzen kann. Will das sowieso noch besser beherrschen, weil ich das auch für POX (plain old xml) Webservices gegen Domino nutzen kann, die auf der Arbeit anstehen.
Gruß Axel
-
Zur Klärung:
Berechnete Felder werden im Web als Text dargestellt und nicht als <input>.
Wenn Du das Quellfeld im Web ausblendest über die HideWhen properties, so wird das Feld nicht ins Web gerendert ( ausser im Formular ist angehakt, dass alle Felder im Web verfügbar sind ).
Wenn das Feld nicht als <input> gerendert wird, wird es beim Submit natürlich auch nicht mitgeliefert.
Möglichkeit 1:
Du versteckst das Feld via CSS - Style : { display:none;}
Als Durchganshtml müsste dann bei value="field_1" das Feld stehen oder ein Computed Text, welcher den Wert von field_1 berechnet.
Möglichkeit 2:
Du verwendest anstatt eines Agenten, Javascript um das Feld zu ändern.
-
@Urs: Mit der Schaltfläche "Generate HTML for all fields" wird imho aber schon ein input-element für in Notes verborgene Felder generiert.
-
@Axel: stimmt "Generate HTML for all fields" generiert alle versteckten Felder als <input type="hidden"> ich wusste nur nicht mehr so genau wie das Häkchen hiess.
-
Zur Klärung:
Berechnete Felder werden im Web als Text dargestellt und nicht als <input>.
Wenn Du das Quellfeld im Web ausblendest über die HideWhen properties, so wird das Feld nicht ins Web gerendert ( ausser im Formular ist angehakt, dass alle Felder im Web verfügbar sind ).
Wenn das Feld nicht als <input> gerendert wird, wird es beim Submit natürlich auch nicht mitgeliefert.
Möglichkeit 1:
Du versteckst das Feld via CSS - Style : { display:none;}
Als Durchganshtml müsste dann bei value="field_1" das Feld stehen oder ein Computed Text, welcher den Wert von field_1 berechnet.
Möglichkeit 2:
Du verwendest anstatt eines Agenten, Javascript um das Feld zu ändern.
alles klar... danke ;)