Domino 9 und frühere Versionen > ND8: Entwicklung - XPages
Array mit Datumswerten
Joghurt:
Hallo zusammen,
folgendes Szenario: Ich habe hier
1. eine Form mit einem Feld "X" vom Typ Date/Time, Mehrfachwerte erlaubt, Trennzeichen ist eine neue Linie;
2. eine XPage mit der ich Werte aus dem Dokument anzeige und ggf. verändern kann;
3. ein Button, der bei Klick das Dokument updaten soll und noch ein paar Werte modifiziert.
Alles funktioniert wunderbar bis auf die Modifizierung von Feld X. Ich will nur, dass beim Ändern des Dokumentes das Änderungsdatum/Änderungszeit mit angehängt wird. Bei einem String-Array ist das ganze auch kein Problem. Mit dem Date/Time krieg ich's nicht hin.
Im klassischen Notes steht im QuerySaveEvent nur drin, dass er sich den Wert aus dem Feld in ein Array holen soll und ein Now() dranhängen soll. Genau das hätte ich jetzt gerne auch auf der XPage. Das kann doch nicht so schwierig sein? ...
Die XPage ist nur für das Web gedacht.
Danke für's Mitdenken...
Eliane
heini_schwammerl:
Ein Ansatz wäre evtl. über AppendItemValue
--- Code: ---var myDate:NotesDateTime = session.createDateTime("Today");
myDate.setNow();
[myDoc ist vorher definiert worden]
myDoc.appendItemValue("HistoryDateField", myDate.toJavaDate());
oder
var myDate:java.util.Date = new Date();
myDoc.appendItemValue("HistoryDateField", myDate);
--- Ende Code ---
Getestet habe ich das aber nicht.
Hauptproblem meiner Erfahrung nach ist das viele XPages Methoden bei Datumsfeldern ein java.util.Date als Parameter verlangen und dann böse sind wenn sie ein NotesDateTime bekommen.
Gruß
Henning
Joghurt:
Hmm.. das hat's auch nicht gebracht :( Ich krieg auch keine Fehlermeldung, dass irgendwas nicht stimmen würde. Das Feld wird nur einfach nicht geändert.
heini_schwammerl:
Hallo Eliane,
jetzt habe ich doch die Zeit gefunden und das gestern mal selbst zu testen und falle genauso auf die [...].
Evtl. schaffe ich das heute Abend noch durchzutesten. Mit Strings funktioniert es klaglos.
Übergangsweise könntest Du im QuerySave evtl. einen ComputeWithForm aktivieren und das Feld herkömmlich berechnen lassen. Einen (englischsprachigen) Hinweis zur Aktivierung von ComputeWithForm findest Du hier http://www.jmackey.net/groupwareinc/johnblog/johnblog.nsf/d6plinks/GROC-7HBJZ2
Gruss
Henning
heini_schwammerl:
Bin leider immer noch im Stress. Folgender Code ist umständlich, erzeugt aber bei mir das erwünschte Ergebnis (ich bin ein Admin, kein Entwickler)
--- Code: ---var dt:NotesDateTime = session.createDateTime("Today");
dt.setNow();
var timeArray = new Array();
for(i=0;i < currentDocument.getItemValue("LastModified").length; i++){
timeArray[i] = currentDocument.getItemValue("LastModified")[i]
}
timeArray.push(dt);
currentDocument.replaceItemValue("LastModified",timeArray);
--- Ende Code ---
Das Ergebnis ist bei mir dann
06.05.2011 00:11
06.05.2011 00:29
06.05.2011 00:29
06.05.2011 00:29
[...]
LastModified ist in diesem Beispiel das Zeitfeld.
Gruß
Henning
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln