Domino 9 und frühere Versionen > ND6: Entwicklung

Formeln im Web

(1/2) > >>

ERVO:
Hallo Forum,

ich habe eine Schaltfläche hinter der sich folgende Formel verbirgt:

@SetField( "Tat_rueckgabe"; @Today);
@SetDocField( BuchID; "status"; "0");
@SetDocField( BuchID; "AusleihDatum"; "" );

In Notes Client funktioniert das, aber im Web werden zwar die Werte gesetzt aber nicht gespeichert. Die beiden unteren werden ohne Probleme ausgeführt, aber die Felder im angezeigten Dokument werden nicht gesetz. hab versucht das mit den Befehlen "EditDocument" und "FileSave" einzurahmen, hat aber nichts gebracht.

Hat jemand eine Idee woran es liegen könnte?

Grüsse Eric

flaite:
Du kannst diese Werte über Script im WebQuerySave Agenten füllen. So geht das natürlich nicht.
Das Client-Server Kommunikationsmodell zwischen Notes-Client->Domino-Server und Web-Browser->Domino-Server sind völlig unterschiedlich.
Das erste basiert auf Remote Procedure Call und das grobgranularere und unflexiblere Webmodell auf Request-Respone auf Basis des Http Protokolls (weitgehend immer http-get und http-post).
Theoretisch ist sowas mit dem neuen Ajax Programmiermodell möglich, aber ich würds echt mit WebquerySave versuchen. Du speicherst die ID des BuchID Docs im Dokument, liest dies im WebquerySave aus, holst dir mit der ID das Dokument, führst die Änderungen durch und speicherst das Dokument.
Geht mit Formelsprache oder Skript, wobei ich hier wirklich dringend Skript empfehle.


Axel

Thomator:
Hallo,

alternativ kannst Du dich auch der JavaScript-Ereignisse des Dokuments bedienen.

Bei einem @Command([FileSave]) in einer Schaltfläche können über das onSubmit-Ereignis die Werte auch noch gesetzt werden.

Ist evtl. etwas unkomlizierter als ein WebQerySave-Agent.
Aber eben immer Geschmacksfrage.

Nach meiner Erfahrung sind @SetField und @SetDocField im Web nicht unbedingt zuverlässig.

Thomas

flaite:
Ich glaub, dass sich die Felder "status" und "Ausleihdatum" in einem anderen Dokument als dem gerade im Browser sichtbaren gesetzt werden müssen, oder?
Zumindest ist der 1. Parameter der 3 Parameter von z.B. @SetDocField( BuchID; "status"; "0"); ein Indiz dafür.
In Sachen Kristallkugel-Lesen bekommt man hier natürlicherweise eine gewisse Übung, hehe. Es ist auch für die Fragensteller sicher nicht einfach zu wissen, welche Kontextinfo in welchem Maß relevant ist.
Das geht nicht über JavaScript, es sei denn über Ajax, aber das ist a) komplex und würde b) in diesem Fall wenig Sinn machen.
JavaScript eigenet sich gut um Felder im gerade sichtbaren zu setzen.

Axel

ERVO:

--- Zitat von: kennwort am 30.07.05 - 08:33:14 ---Ich glaub, dass sich die Felder "status" und "Ausleihdatum" in einem anderen Dokument als dem gerade im Browser sichtbaren gesetzt werden müssen, oder?

--- Ende Zitat ---

So isses! Die Befehle gehen auch, nur das aktuell zum Lesen geöffente Dokument läst sich nicht ändern :-(

Vieleicht noch mal zum Kontext:
Die Ausleihe wird mit @Command([Compose];...) angelegt, dort kann man auch mit @SetField arbeiten. Aber wenn es zurückgegeben wird, will ich ja das Dokument nicht bearbeiten, sondern nur per Schaltfläche @today als Wert für die tatsächliche Rückgabe setzen.

Wenn ich mit WebQuerySave arbeite, muss ich das Dokument dafür Speichern?

Ich hab´s jetzt anders gemacht:
Ein Schaltfläche "zurückgeben", die das Dokument in den Editier-Modus bringt, und dort eine , die die Felder setzt und speichert. Dabei kann man auch noch Bemerkungen erfassen.

Danke
Eric

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln