Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: littleS am 20.05.05 - 11:56:18

Titel: Verständnisproblem: Zugriff auf Variable
Beitrag 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.
Titel: Re: Verständnisproblem: Zugriff auf Variable
Beitrag von: Semeaphoros am 20.05.05 - 12:06:22
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 ...
Titel: Re: Verständnisproblem: Zugriff auf Variable
Beitrag von: Axel am 20.05.05 - 12:09:18
Hi,

ein Blick in die Designer-Hilfe wirkt manchmal Wunder.

Zitat
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
Titel: Re: Verständnisproblem: Zugriff auf Variable
Beitrag von: Axel am 20.05.05 - 12:11:09
@Jens,

du warst mal wieder schneller.  ;)

Aber ich denke hier geht's eigentlich um die Formelsprache.

Axel
Titel: Re: Verständnisproblem: Zugriff auf Variable
Beitrag von: animate am 20.05.05 - 12:18:40
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.
Titel: Re: Verständnisproblem: Zugriff auf Variable
Beitrag von: littleS am 20.05.05 - 12:39:33
Danke für die prompte Hilfe.


s.
Titel: Re: Verständnisproblem: Zugriff auf Variable
Beitrag von: Marinero Atlántico am 20.05.05 - 12:45:25
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