Autor Thema: Array mit Datumswerten  (Gelesen 3917 mal)

Joghurt

  • Gast
Array mit Datumswerten
« 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


Offline heini_schwammerl

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 697
  • Geschlecht: Männlich
Re: Array mit Datumswerten
« Antwort #1 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
« Letzte Änderung: 02.05.11 - 16:14:51 von heini_schwammerl »

Joghurt

  • Gast
Re: Array mit Datumswerten
« Antwort #2 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.

Offline heini_schwammerl

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 697
  • Geschlecht: Männlich
Re: Array mit Datumswerten
« Antwort #3 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
Gruss
Henning

Offline heini_schwammerl

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 697
  • Geschlecht: Männlich
Re: Array mit Datumswerten
« Antwort #4 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
« Letzte Änderung: 06.05.11 - 00:37:12 von heini_schwammerl »

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: Array mit Datumswerten
« Antwort #5 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.
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Joghurt

  • Gast
Re: Array mit Datumswerten
« Antwort #6 am: 10.05.11 - 09:58:22 »
Danke euch beiden. Es funktioniert jetzt alles wie gewünscht :-)


Gruß
Eliane

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz