Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Hedwig14 am 19.06.07 - 14:27:26

Titel: fortlaufende Feldbezeichnung
Beitrag von: Hedwig14 am 19.06.07 - 14:27:26
ich habe in einer maske 5 Felder, die alle den Gleichen Namen haben.
Unterschied, am Ende steht eine fortlaufende nummer.

In meinem Scrips muss ich mit allen Felden das gleiche durchlaufen lassen.

Gibt es die Möglichkeit die Feldnamen automatisch hochzuzählen:

Hier ist mein Ansatz:

   
   Dim ws As New NotesUIWorkSpace   
   Dim s As New NotesSession
   Dim db As Notesdatabase
   Dim doc As NotesDocument
   Dim uidoc As NotesUIDocument
   
   Set db = s.CurrentDatabase
   Set UiDoc = ws.CurrentDocument
   Set doc = uidoc.Document
   
   n = 1
   
   Do While n < 6
      
      n = n + 1
   Loop
   
   
   Dim mdoc As notesdocument   
   
   If doc.Menü_KeineLieferung1(0) = "" Then
      Set mdoc = New NotesDocument(db)   
      mdoc.Form = "KANTINEMenüübersicht"   
      mdoc.Menüübersicht_Kantine = doc.Menü_Kantine(0)
      mdoc.Menüübersicht_Anbieter = doc.Menü_Anbieter(0)
      mdoc.Menüübersicht_KW = doc.Menü_KW(0)
      mdoc.Menüübersicht_Tag = doc.Menü_Tag1(0)
      mdoc.Menüübersicht_Bestellende = doc.Menü_Bestellende1(0)
      mdoc.Menüübersicht_Beschreibung = doc.Menü_Beschreibung1(0)
      Call mdoc.Save( False, True )
   End If
   
   If doc.Menü_KeineLieferung2(0) = "" Then
      Set mdoc = New NotesDocument(db)   
      mdoc.Form = "KANTINEMenüübersicht"   
      mdoc.Menüübersicht_Kantine = doc.Menü_Kantine(0)
      mdoc.Menüübersicht_Anbieter = doc.Menü_Anbieter(0)
      mdoc.Menüübersicht_KW = doc.Menü_KW(0)
      mdoc.Menüübersicht_Tag = doc.Menü_Tag2(0)
      mdoc.Menüübersicht_Bestellende = doc.Menü_Bestellende2(0)
      mdoc.Menüübersicht_Beschreibung = doc.Menü_Beschreibung2(0)
      Call mdoc.Save( False, True )
   End If
   
   If doc.Menü_KeineLieferung3(0) = "" Then
      Set mdoc = New NotesDocument(db)   
      mdoc.Form = "KANTINEMenüübersicht"   
      mdoc.Menüübersicht_Kantine = doc.Menü_Kantine(0)
      mdoc.Menüübersicht_Anbieter = doc.Menü_Anbieter(0)
      mdoc.Menüübersicht_KW = doc.Menü_KW(0)
      mdoc.Menüübersicht_Tag = doc.Menü_Tag3(0)
      mdoc.Menüübersicht_Bestellende = doc.Menü_Bestellende3(0)
      mdoc.Menüübersicht_Beschreibung = doc.Menü_Beschreibung3(0)
      Call mdoc.Save( False, True )
   End If
   
   If doc.Menü_KeineLieferung4(0) = "" Then
      Set mdoc = New NotesDocument(db)   
      mdoc.Form = "KANTINEMenüübersicht"   
      mdoc.Menüübersicht_Kantine = doc.Menü_Kantine(0)
      mdoc.Menüübersicht_Anbieter = doc.Menü_Anbieter(0)
      mdoc.Menüübersicht_KW = doc.Menü_KW(0)
      mdoc.Menüübersicht_Tag = doc.Menü_Tag4(0)
      mdoc.Menüübersicht_Bestellende = doc.Menü_Bestellende4(0)
      mdoc.Menüübersicht_Beschreibung = doc.Menü_Beschreibung4(0)
      Call mdoc.Save( False, True )
   End If
   
   If doc.Menü_KeineLieferung5(0) = "" Then
      Set mdoc = New NotesDocument(db)   
      mdoc.Form = "KANTINEMenüübersicht"   
      mdoc.Menüübersicht_Kantine = doc.Menü_Kantine(0)
      mdoc.Menüübersicht_Anbieter = doc.Menü_Anbieter(0)
      mdoc.Menüübersicht_KW = doc.Menü_KW(0)
      mdoc.Menüübersicht_Tag = doc.Menü_Tag5(0)
      mdoc.Menüübersicht_Bestellende = doc.Menü_Bestellende5(0)
      mdoc.Menüübersicht_Beschreibung = doc.Menü_Beschreibung5(0)
      Call mdoc.Save( False, True )
   End If
   
   
   Call uidoc.Close
Titel: Re: fortlaufende Feldbezeichnung
Beitrag von: eknori (retired) am 19.06.07 - 14:30:02
Ja, indem du in deinem Code nicht die abgekürzte Schreibweise

doc.Menü_Kantine(0)


verwendest, sondern

Set item = doc.getFirstItem("Menü_Kantine")

Menü_Kantine ist ein String; den kannst du durch eine Variable ersetzen und dann in der Schleife der Variable den entsprechenden Feldnamen zuweisen.
Titel: Re: fortlaufende Feldbezeichnung
Beitrag von: Hedwig14 am 19.06.07 - 14:45:48
Hallo eknori,

mmmh das habe ich nur halb verstanden.

Kannst Du mir ein Beispiel aufgeben ?
Titel: Re: fortlaufende Feldbezeichnung
Beitrag von: Glombi am 19.06.07 - 14:48:09
Ulrich meint sowas:

Dim i as integer
for i = 1 to 5

If doc.GetItemValue("Menü_KeineLieferung" & cstr(i))(0) = "" Then
    ...
End If

Next

Andreas
Titel: Re: fortlaufende Feldbezeichnung
Beitrag von: DerAndre am 19.06.07 - 14:49:26
So z.B.

      For i = 0 To 9
         doc.GetItemValue ("Menü_KeineLieferung"+Cstr(i)) (0)
                        .
                        .
                        .
      Next



Uuuuuuund nimm besser die ü's raus...
Titel: Re: fortlaufende Feldbezeichnung
Beitrag von: Hedwig14 am 19.06.07 - 14:54:11



perfekt Glombi

Super, vielen Dank !