Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung - XPages => Thema gestartet von: Charly77 am 08.02.12 - 15:26:28

Titel: Auf einer XPage 2 Datumsfelder vergleichen und die Differenz ausgeben?
Beitrag von: Charly77 am 08.02.12 - 15:26:28
Hallo,

wir stehen hier grade auf dem Schlauch ...
folgender Javascript-Code will einfach nicht funzen:

if (getComponent("Abeginn_11") == null) {
var x = 0;}
else {
_dump(getComponent("Abeginn_11").getValue);
var a = getComponent("Abeginn_11").getValue();
var start:NotesDateTime = session.createDateTime(a);
}

if (getComponent("Aende_11") == null) {
var y = 0;}
else {
_dump(getComponent("Aende_11").getValue);
var b = getComponent("Aende_11").getValue();
var ende:NotesDateTime = session.createDateTime(b);
}

if (x == 0 | y == 0) {
0
}
else {
start.timeDifference(ende)/60
}


Gibt es hier einen Denkfehler?
Danke für eure Unterstützung!
Titel: Re: Auf einer XPage 2 Datumsfelder vergleichen und die Differenz ausgeben?
Beitrag von: m3 am 08.02.12 - 15:40:08
Wie waere es mit einer genaueren Fehler/Problembeschreibung? "Funktioniert nicht" ist - freundlich formuliert  - einfach ein bisschen sehr wage.
Titel: Re: Auf einer XPage 2 Datumsfelder vergleichen und die Differenz ausgeben?
Beitrag von: Charly77 am 08.02.12 - 15:43:42
Achja, da war ja noch was, sorry ...

Ich bekomme mit diesem Code keinen Zugriff auf den Feldinhalt.
Die Variablen (z.B. Variable "a" aus meinem Bsp.) enthalten immer "null"-Werte.

Heisst, dass ich es einfach nicht hinbekomme, einen Feldwert auszulesen.
Titel: Re: Auf einer XPage 2 Datumsfelder vergleichen und die Differenz ausgeben?
Beitrag von: m3 am 08.02.12 - 16:14:46
Zitat
Server JS
getComponent("elementName").getValue();
getComponent("elementName").setValue("something");

Note: you cannot access or set fields with visible=false. If you want to work with a field, but don't want to display it, give the field a CSS class with "display:none".

Get submitted value before validation
getComponent("elementName").getSubmittedValue()

Client JS
document.getElementById("#{id:elementID}").value;

Get a computed field's value:
document.getElementById("#{id:elementID}").innerHTML;
via Work with documents and fields on the XPage (http://xpageswiki.com/web/youatnotes/wiki-xpages.nsf/dx/Work_with_documents_and_fields_on_the_XPage#Get+and+set+a+field+on+the+XPage)

Wenn das nicht hilft, poste doch mal den entsprechenden Ausschnitt (!) aus der HTML-Seite im Browser, wo das Element "Abeginn_11" definiert wird.
Titel: Re: Auf einer XPage 2 Datumsfelder vergleichen und die Differenz ausgeben?
Beitrag von: umi am 09.02.12 - 15:09:52
Hallo
Code
if (getComponent("Abeginn_11") == null) {
var x = 0;}
else { 
_dump(getComponent("Abeginn_11").getValue);
var a = getComponent("Abeginn_11").getValue();
var start:NotesDateTime = session.createDateTime(a);
}

Meiner einer denkt, dass hier die Variablen a und x ausserhalb des If's gar nicht mehr existieren dürften.....
Stichwort: "Scope"
Titel: Re: Auf einer XPage 2 Datumsfelder vergleichen und die Differenz ausgeben?
Beitrag von: Charly77 am 10.02.12 - 12:17:29
Hallo,

habe das Problem gefunden ... das war im Rahmen einer 3 tägigen XPages Schulung.
Habe das schnell während der Schulung gepostet, daher auch meine spärlichen Kommentare.

Mein XPages-Trainer hat hier leider FELDNAMEN und FELDBEZEICHNUNG vertauscht.

Somit haben wir versucht ein Feld auszulesen, mit dem wir zu dem Zeitpunkt gar nicht gearbeitet/getestet haben. Das Feld hätte eigentlich Abeginn_1 heissen müssen. In den Eigenschaften des Feldes wurde durch die XPages der Name Abeginn_11 vergeben, warum auch immer.

Da meine Javascript-Kenntnisse scheinbar genauso eingeschränkt sind wie die des Trainers hat das ganze im Endeffekt 1 ganzen Tag gedauert um dieses Problem zu lösen. Und somit eine Menge Geld. Nur durch eine Vermutung meinerseits wurde das gelöst, da ich einfach getestet habe. Hätte ich früher tun sollen denn das kam mir von Anfang an Spanisch vor, aber hinterher ist man immer schlauer. Naja, dieser Lehrgang war eh für die Katz.