Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung - XPages => Thema gestartet von: Joghurt am 02.05.11 - 14:23:42

Titel: Array mit Datumswerten
Beitrag von: Joghurt am 02.05.11 - 14:23:42
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

Titel: Re: Array mit Datumswerten
Beitrag von: heini_schwammerl am 02.05.11 - 16:10:48
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);
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
Titel: Re: Array mit Datumswerten
Beitrag von: Joghurt am 03.05.11 - 13:46:00
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.
Titel: Re: Array mit Datumswerten
Beitrag von: heini_schwammerl am 04.05.11 - 10:40:50
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 (http://www.jmackey.net/groupwareinc/johnblog/johnblog.nsf/d6plinks/GROC-7HBJZ2)
Gruss
Henning
Titel: Re: Array mit Datumswerten
Beitrag von: heini_schwammerl am 06.05.11 - 00:34:45
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);
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
Titel: Re: Array mit Datumswerten
Beitrag von: flaite am 06.05.11 - 13:04:23
Keine Ahnung von expages, aber eine mögliche Abkürzung von Heinis schlüssigen code könnte so aussehen:

Code
var dt:NotesDateTime = session.createDateTime("Today");
dt.setNow();
var timeArray = currentDocument.getItemValue("LastModified");
if (timeArray != null) {
timeArray.push(dt);
	currentDocument.replaceItemValue("LastModified",timeArray);
}

document.appendNotesItem erzeugte ja auch schon in Notes ein neues Item in einem Document und fügte nicht dem Werte-Array eines vorhandenen Items einen neuen Wert hinzu. Deshalb halte ich es für schlüssig, dass appendNotesItem wie das oben verucht wurde nicht funktioniert.
Titel: Re: Array mit Datumswerten
Beitrag von: Joghurt am 10.05.11 - 09:58:22
Danke euch beiden. Es funktioniert jetzt alles wie gewünscht :-)


Gruß
Eliane