Das Notes Forum
Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: pimpfling am 23.08.12 - 10:29:42
-
Moin,
ich möchte im Browser in einer Maske den Wert eines verborgenen Feldes setzten.
Das versuche ich so:
@Command( [EditDocument] );
@SetField("Status"; "Delete");
@Command([FileSave]);
@Command([CloseWindow]);
@Command( [OpenPage] ; "delete" )
Leider passiert garnix.
Was mache ich hier falsch, bzw. wie mache ich es richtig?
-
Hidden Fields werden nicht in das Web-Formular gerendert, wodurch Sie bei der Kommunikation zwischen Server und Browser nicht bekannt sind. Die Maskeneigenschaft "HTML für alle Felder generieren" ändert diesen Zustand, führt aber u.U. zu anderen mglw. unerwünschten Effekten.
Ansonsten kannst Du das Feld auch sichtbar lassen für das Web und in den Feldeigenschaften in den HTML-Tags bei Stil Type = HIDDEN eintragen.
-
hm, hilft irgendwie nicht.
Ich habe jetzt mal das ganze auf folgendes zusammengekürzt:
@Command( [EditDocument] );
@SetField("Status"; "Delete")
Das Feld habe ich jetzt temporär mal sichtbar gemacht, leider wird aber der Wert "Delete" nicht in das Feld Status eingetragen.
Seltsam finde ich auch das wenn ich die Zeile
@Command([FileSave])
noch dran hänge, kriege ich:
Error 500
HTTP Web Server: Lotus Notes Exception - @Function is not valid in this context
-
Wäre es nicht vielleicht einfacher das setzen des Feldes mit Hilfe von Javascript zu machen?
Da es sich um ein verstecktes Feld handelt müsste, wie schon von Marco gesagt, die Maskeneigenschaft "HTML für alle Felder generieren" gemacht werden.
Das Speichern kann dann auch mit Javascript gemacht werden, wodurch das WebQuerySave-Event angestoßen wird.
Im WebQuerySave-Event kannst Du dann einen Agenten aufrufen, der dann die weitere Arbeit macht.
-
Hallo,
ja, JavaScript hatte ich auch schon überlegt. Ich habe auch schon dazu per Google gesucht. Leider ist mir nicht klar wie ich das bewerkstelligen soll.
Falls jemand ein funktionierendes Beispiel hat, würde ich mich freuen :)
-
Hi,
hat evtl. jemand einen Hinweis wie ich das mit JS bewerkstelligen kann?
Danke.
-
Hallo,
document.form.<Feldname>.Value="<Dein wert>"
Andreas
-
Vielen Dank,
klappt leider nicht.
Ich habe jetzt
document.form.WebStatus.Value="Test"
document.form[0].WebStatus.Value="Test"
probiert.
Leider ohne Erfolg.
Das Feld ist sichtbar und editierbar. Trotzdem wird nichts eingetragen.
Muss das Dokument im Editmodu sein? Habe ich zwar probiert, ging aber auch nicht.
-
Folgendes funktioniert:
var targetField = document.getElementsByName("Status").item(0);
targetField.value = "Delete";
document.forms[0].submit();
Damit wird das Feld gefüllt und das Dokument gespeichert.
Voraussetzung: Dokument ist im Editmodus.
Blöd ist auch das ich danach in einen 404 Error renne.
Wenn ich mit einer zus. Zeile versuche eine vorhandene Seite zu öffnen, funktionieren die drei Zeile dadrüber nicht mehr.
Die zus. Zeile:
window.location = "http://meinserver.domain.de/meinedb.nsf/New%20Person?OpenPage";
Zwei Fragen:
1) Wie kriege ich das mit dem Editmodus hin (nicht vorher einen andern Knopf drücken müssen um in den Editmodus zu kommen)
2) Wie kann ich den 404 Error umgehen, bzw. wie muss die zus. Zeile lauten damit das Dokument auch gespeichert wird.
Der 404 Error: HTTP Web Server: Couldn't find design note - ($All)
Die View will ich nicht öffnen, ich will eine bestimmte Seite aufmachen.
-
So, jetzt gehts:
var targetField = document.getElementsByName("Status").item(0);
targetField.value = "Delete";
document.forms[0].submit()
Dok wird immer Edit Modus geöffnet.
$$Return beinhaltet jetzt einen validen Wert