Das Notes Forum

Domino 9 und frühere Versionen => ND7: Entwicklung => Thema gestartet von: Banditbond am 18.06.07 - 11:55:09

Titel: @Command([Filesave]) im Web
Beitrag von: Banditbond am 18.06.07 - 11:55:09
Moin !

Habe folgendes Problem:
Habe eine Webanwendung welche aus mehreren Schritten besteht zwischen dennen gesprungen werden kann.

Im Moment verwende ich an mehreren Stellen Action HotSpots welche Feldwerte setzen und dann ein @Command([FileSave]) ausführen.
Dadurch wird die Seite neugeladen und dabei können z.B. Hide/When Formeln auf den neuen Werten laufen.

Nun muss ich an mehreren Stellen JavaScript nutzen, das Problem ist das ein dortiges forms[0].submit() NICHT einem @Command([FileSave]) entspricht !

Es entspricht einem @Command([FileSave]) gefolgt von einem @Command([FileCloseWindow]), d.h. es wird das $$return feld ausgewertet, was  bei einem reinen @Command([FileSave]) nicht passiert !

Habe schon versucht über $$return einfach die aktuelle Form wieder aufzurufen, dabei wird natürlich ein neues Doc agelegt.

Als Info: Es gibt ein SaveOptions Feld auf meiner Form, wird ein @Command([FileSave]) ausgeführt wird zwar wie oben beschrieben verfahren, ABER KEIN Dokument angelegt. (Bug ?)

Hat jemand eine Idee wie ich das ganze mit JavaScript angehen kann ?
Titel: Re: @Command([Filesave]) im Web
Beitrag von: Ayhan am 19.06.07 - 15:29:46
Hi,

guck dir mal im Quellcode einer Domino-Generierten Seite im Head die JS-Funktion _doClick an. Du kannst über diese Funktion das aktuelle Dokument aktualisieren (Hide-Whens, Berechnete Felder etc.).

Diese Funktion erscheint, wenn du mindestens 1 Hide-When Formel in deiner Maske hast bzw. du mindestens ein Feld mit der Eigenschaft "Werte aktualisieren bei Dokumentaktualisierung" aktiviert hast.

Aufruf z. B.:
<a href="javascript:_doClick('$Refresh', this, '_self', '#_RefreshKW_sprache')">Feld sprache aktualisieren</a>

Hoffe, es hilft dir.
Titel: Re: @Command([Filesave]) im Web
Beitrag von: Banditbond am 20.06.07 - 10:48:55
Danke erstmal,

hatte slebst schon versucht mithilfe der _doClick weiter zu kommen, allerdings ohne Erfolg.

Habe jetzt einen, zugegeben sehr unschönen, Workaround gefunden der für meine einfache Anwendung ausreicht.

Habe einen Button der Subform hinzugefügt welcher ein @Command[FileSave]) durchführt. Unter den HTML Probs habe ich ihm einen Namen, z.B. Save gegeben und unter Style "display: none;" eingetragen. (Den Button NICHT versteckt)

dadurch ist er im Web unsichtbar, per JS2 kann ich aber per
"window.document.forms[0].Save.click()" den Button aufrufen und mein FileSave durchführen.

Funktioniert einwandfrei und wie gewünscht.

Gruß, Daniel