Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Andreas Huhn am 07.12.05 - 08:03:24

Titel: Feldnamen variabel übergeben
Beitrag von: Andreas Huhn am 07.12.05 - 08:03:24
Hallo,

in den meisten Basic-Dialekten ist das ja nicht möglich, aber für LS will ich doch mal nachfragen da es meiner db hunderte Seiten Code ersparen würde...

Ist es möglich einen Teil eines Feldnamens variabel zu übergeben?

Beispiel: Zwei Textfelder, txtFeld1 und txtFeld2

Folgendes funktioniert nicht, verdeutlicht aber was ich meine:

   For i = 1 To 2
      Msgbox doc.txtFeld(0) & i
   Next


Gibts dafür in LS eine Möglichkeit?


Gruß,

Andreas
Titel: Re: Feldnamen variabel übergeben
Beitrag von: Axel am 07.12.05 - 08:20:48
Gibts dafür in LS eine Möglichkeit?

Aber sicher doch.

Des Rätsels Lösung heißt: notesDocument.GetItemValue( itemName$ )

   For i = 1 To 2
      Msgbox doc.GetItemValue("txtFeld" & Trim$(Str$(i)))(0)
   Next


Axel
Titel: Re: Feldnamen variabel übergeben
Beitrag von: Andreas Huhn am 07.12.05 - 08:28:57
Guten Morgen Axel,

leider kommen da nur leere Messageboxen, ohne den Inhalt der Felder zurücktzliefern.

Msgbox doc.tr1(0) liefert mir dagegen den Inhalt.

Auch wenn ich das doc zuerst speichere gehts nicht.

Titel: Re: Feldnamen variabel übergeben
Beitrag von: Axel am 07.12.05 - 08:45:17
Wie sieht denn dein Code aus? Hast du die richtigen Feldnamen genommen?


Axel
Titel: Re: Feldnamen variabel übergeben
Beitrag von: Andreas Huhn am 07.12.05 - 09:35:47
... mir hat der Kaffe gefehlt der mir die Augen weit genug öffnet...

war mein Fehler.

Danke Axel!

Viele Grüße,

Andreas
Titel: Re: Feldnamen variabel übergeben
Beitrag von: Andreas Huhn am 07.12.05 - 09:50:28
zu früh gefreut...

in dem Fall daß der Inhalt des Feldes gebraucht wird hats funktioniert. Aber wie kann man den Bezug allgemein auf das Feld setzen?

doc.GetFirstItem( "txtFeld1" )

-->

Set rtitem = doc.GetFirstItem( doc.txtFeld & Trim$(Str$(i)) )


hätte nach einer .GetItem Methode von doc gesucht, aber die gibt es leider nicht. Gibts auch da eine Möglichkeit?
Titel: Re: Feldnamen variabel übergeben
Beitrag von: gossifu am 07.12.05 - 10:03:11
Hallo Andreas,

das ist doch die Methode die Du suchst.
Und weiter machst Du mit der Item- oder Richtextitem-Klasse.

Ich sehe da keine Probleme.

Kjeld
Titel: Re: Feldnamen variabel übergeben
Beitrag von: Andreas Huhn am 07.12.05 - 10:11:39
Hallo Gossifu,

aber die Zeile löst einen "Type Missmatch" aus.

Set rtitem = doc.GetFirstItem( doc.txtFeld & Trim$(Str$(i)) )


txtFeld ist jetzt natürlich ein RichTextFeld wie das rtitem schon vermuten lässt.
Titel: Re: Feldnamen variabel übergeben
Beitrag von: rar am 07.12.05 - 10:17:51
Hi,
es muss
Set rtitem = doc.GetFirstItem( "txtFeld" & Trim$(Str$(i)) )
heißen.
Titel: Re: Feldnamen variabel übergeben
Beitrag von: Andreas Huhn am 07.12.05 - 10:48:02
Danke rar, das hat funktioniert. Auch wenn mir nicht so klar ist warum auf das übergeordnete doc. jetzt plötzlich verzichtet werden kann. Wenigstens gehts jetzt. Danke!

Gruß,

Andreas
Titel: Re: Feldnamen variabel übergeben
Beitrag von: Thomas Schulte am 07.12.05 - 10:58:29
Les dir dazu doch einfach mal die Online Hilfe zu dem Befehl doc.getfirstitem durch und dann überlegt dir mal warum das nicht funktionieren kann wenn du in diesem Parameter ein referenziertes Feld drin hast.
Titel: Re: Feldnamen variabel übergeben
Beitrag von: Andreas Huhn am 07.12.05 - 12:58:41
hmm.. ich denke ich weiß was du meinst. Weil als Parameter ein String und nicht  ein Object erwartet wird.