Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: littleS am 20.05.05 - 11:56:18
-
Hallo,
wenn ich mir im debugger "gdoc" anschaue, sehe ich unter
gdoc.items
gdoc.items
gdoc.items
gdoc.items
Jetzt dachte ich eigentlich ich könnte in Formula über
Test[0] den Wert "3" erhalten. Es gibt dann allerdings die Fehlermeldung
"Array Index out of bounds".
Wenn ich auf den Wert zugreifen kann, wollte ich in einer For-Schleife dann alle Elemente in Test durchlaufen, aber so weit bin ich noch nicht.
Kann mir jemand auf die Sprünge helfen?
s.
-
Kann man eigentlich in der Hilfe unter NotesItem sehr genau nachlesen. Was Du brauchst, ist
Test.Values (i)
** edit **
müssen natürlich runde Klammern und nicht eckige sein ...
-
Hi,
ein Blick in die Designer-Hilfe wirkt manchmal Wunder.
Beispiele: @For
1. Dieser Agent zeigt nacheinander alle Elemente des Felds "Kategorien" an.
@For(n := 1; n <= @Elements(Kategorien); n := n + 1;
@Prompt([OK]; "Kategorie " + @Text(n); Kategorien[n])
)
Bei der Formelsprache ist der Index des ersten Elementes 1 und nicht wie bei Script 0.
Test[1] würde dann bei dir den Wert "3" ergeben.
Axel
-
@Jens,
du warst mal wieder schneller. ;)
Aber ich denke hier geht's eigentlich um die Formelsprache.
Axel
-
Kann sein, dass es um Formelsprache geht, die Fehlermeldung kenne ich nur von Script, deshalb poste ich meinen Senf zu Script:
notesDocumemt.getFirstItem(ITEMNAME) liefert ein NotesItem zurück
notesItem.Values liefert ein Array mit den Werten zurück, die das Item hält
array(i) liefert dir das Element des Arrays, das an der i-ten Stelle steht (wobei 0 oder 1 die Basis ist, je nach Einstellung)
Für dein Vorhaben musst du das kombinieren, analog zur Hierarchie, die der Debugger dir anzeigt:
notesDocument.getFirstItem(ITEMNAME).Values(i)
ich empfehle, Feldnamen als Konstanten zu deklarieren und dann die Konstanten mit der GetFirstItem-Methode zu verwenden wie gezeigt, anstelle der abgekürzten Form.
Also nicht
notesDocument.Test
sondern
notesDocument.GetFirstItem("Test")
Erspart Schreibfehler und daraus resultierende Folgefehler.
-
Danke für die prompte Hilfe.
s.
-
ich empfehle, Feldnamen als Konstanten zu deklarieren und dann die Konstanten mit der GetFirstItem-Methode zu verwenden wie gezeigt, anstelle der abgekürzten Form.
Also nicht
notesDocument.Test
sondern
notesDocument.GetFirstItem("Test")
I second that.
Braucht man für eine Operation mehrere Felder in einem Dokument kann man dann die Feldnamen in Arrays oder sogar in KOnfigurationsdokumente schreiben. *
Das ist oft wirklich übersichtlicher als diese endlosen Listen von Feldnamen mit verkürzter Syntax.
Eine leichte Variation - wobei man dort das von Thomas angesprochene Feature des Autochecks, ob dieses Item in dem Dokument überhaupt vorhanden ist nicht hat - ist diese Syntax:
doc.getItemValue("nameItem") --> gibt Array zurück
oder:
doc.getItemValue("nameItem")(0)
--> gibt ersten Wert zurück. Datentyp abhängig von Datentyp Item.
Axel
* Das letzte erinnert mich dann ein bischen an den beancontainer von dem Springfr. :-X