Das Notes Forum

Domino 9 und frühere Versionen => ND9: Entwicklung => Thema gestartet von: tfrenz am 14.01.14 - 15:15:58

Titel: Variablen Durchnummerieren
Beitrag von: tfrenz am 14.01.14 - 15:15:58
Gibt es eine Möglichkeit in Lotusscript durchnummerierte Variablen in einer For-Schleife abzufragen?

habe z.B. Variablen Name1, Name2, Name3, ... Name10
Nun möchte z.B. so abfragen:

For x = 0 To 10
   If name+x = "" Then
       Print "Name " + CStr(x) + " leer"
   End If
Next

Ich muss dann das ganze nicht 10x Schreiben.

Danke Thomas
Titel: Re: Variablen Durchnummerieren
Beitrag von: koehlerbv am 14.01.14 - 15:23:52
Warum verwendest Du kein Array oder keine List Variable?

Bernhard
Titel: Re: Variablen Durchnummerieren
Beitrag von: MadMetzger am 14.01.14 - 15:29:45
Man kann den (recht simplen) Check auch in eine eigene Function auslagern.

Ich finde aber die Variante mit List bzw. Array aber wohl am geschicktesten.
Titel: Re: Variablen Durchnummerieren
Beitrag von: tfrenz am 14.01.14 - 15:30:48
Hallo Bernhard,

ja das würde schon gehen, aber ich möchte dann noch in der DB die entsprechenden Felder die auch Durchnummeriert sind ggf. befüllen.

Thomas
Titel: Re: Variablen Durchnummerieren
Beitrag von: Klafu am 14.01.14 - 15:39:07
Das kannst du ja mit einem Array genauso machen.
Titel: Re: Variablen Durchnummerieren
Beitrag von: MadMetzger am 14.01.14 - 15:39:37
Das würde für die List-Variante, die eher wie eine Java-Map als eine Liste ist, sprechen.

List-Key = Itemname im Dokument und Schwupp kannst du die Sachen relativ bequem rüberschaufeln, wenn List-Key und Itemname übereinstimmen sollten. Oder du hast eine Chance von dem List-Key auf den Itemnamen "umzurechnen".

Array ginge natürlich auch.
Titel: Re: Variablen Durchnummerieren
Beitrag von: Glombi am 14.01.14 - 15:40:33
Wenn Du über Felder mit einem Laufsuffix iterieren willst, dann nutze

notesDocument.GetItemValue("Feldname" & cstr(i))

wobei i dann die Laufvariable in einer Schleife ist.

Andreas
Titel: Re: Variablen Durchnummerieren
Beitrag von: Peter Klett am 14.01.14 - 16:21:18
Und wie befüllst Du Deine Scriptvariablen? Wenn Du dort keine Liste oder ähnliches nimmst, schreibst Du an der Stelle ja auch schon alles mehrfach.

name1 = doc.Name1 (0)
name2 = doc.Name2 (0)

So solltest Du es besser nicht machen ...


Falls es überhaupt notwendig ist, die Variablen in Script vorzuhalten, wäre das mit einer Liste sehr elegant

Dim felder List As String
For x = 0 To 10
   felder ("name" & x) = doc.GetItemValue ("name" & x) (0)
Next x

Deine Print-Routine sieht dann so aus

Forall feld In felder
   If feld = "" Then
      Print Listtag (feld) & " leer"
   End If
End If

Aus der Liste heraus füllst Du später ganz simpel die Felder des Dokuments

Forall feld in felder
   Call doc.ReplaceItemValue (Listtag (feld), feld)
End Forall
Titel: Re: Variablen Durchnummerieren
Beitrag von: tfrenz am 14.01.14 - 17:41:20
Danke.

hat mit der List super funktioniert.