Das Notes Forum

Domino 9 und frühere Versionen => ND7: Entwicklung => Thema gestartet von: Lancelot am 20.11.08 - 15:12:54

Titel: Meldung "Could not create field %1
Beitrag von: Lancelot am 20.11.08 - 15:12:54
Hi Leute,

ich bekomme diese Meldung wenn ich per LS eine Listenvariabele mit mehreren Werten
in ein normales Textfeld "Mehrfachwerte erlaubt und Trennung wie Anzeige auf Leere Zeile"
eintragen möchte.

Auf der IBM Seite steht was von einer Größe von 64, aber ich komme nicht an diese Grenze hin.
Bei den Werten der Variabelen handelt es sich um Textstring mit max 10 Zeichen.

Hier mein Script:

   i = 0
   y = coll.Count
   Redim vlieferant(y-1)
   Redim vwarenbereich(y-1)
   
   While Not (doc Is Nothing)
      
      For x = 1 To coll.Count
         vlieferant(i) = doc.LieferKuBz
         vwarenbereich(i) = doc.modell
         
         i = i + 1               
         Set doc = coll.GetNextDocument(doc)
      Next
   Wend   
   
   newdoc.form = "sk"
   newdoc.lieferant = vlieferant   
   newdoc.warenbereich = vwarenbereich


Hoffe jemand kann mir helfen.
Titel: Re: Meldung "Could not create field %1
Beitrag von: m3 am 20.11.08 - 15:18:42
For x=0 to (y-1) .....

Und "doc.LieferKuBz" sowie "doc.modell" liefern Dir NICHT den String zurück, der in dem Feld steht. Bitte schau dir NotesDocument.GetItemValue in der Designer-Hilfe an.
Titel: Re: Meldung "Could not create field %1
Beitrag von: dirk_2909 am 20.11.08 - 15:21:10
Du solltest Deine Variablen erst einmal ordentlich deklarieren.
Dann dem Array nur die einzelen STrings zuweisen. Momentan sind deine Arrays vom Typ Variant und DU weißt jedem Arrayindex ein Variant (Array) zu. Das kann bei der Zuweisung nicht gut gehen (2 DImensional).
Das Sollte gehen (ohne Test):

 i = 0
   y = coll.Count
   dim vlieferant(y-1) as String
   dim vwarenbereich(y-1) String
  
   While Not (doc Is Nothing)
      
      For x = 1 To coll.Count
         vlieferant(i) = doc.LieferKuBz(0)
         vwarenbereich(i) = doc.modell(0)
        
         i = i + 1              
         Set doc = coll.GetNextDocument(doc)
      Next
   Wend  
  
   newdoc.form = "sk"
  call newdoc.ReplaceItemValue( "lieferant , vlieferant   )
   newdoc.ReplaceItemValue( "warenbereich" , vwarenbereich )
Titel: Re: Meldung "Could not create field %1
Beitrag von: m3 am 20.11.08 - 15:26:20
Dirk, die "for x" Schleife wirds aufhauen, wenn Du bei 1 anfangst, bis coll.Count (==y) zählst, das Array aber nur bis y-1 (also coll.Count-1) definiert ist. OK, ich lass es bis heute. Ich kann nicht mal mehr grad schaun. Sorry, passt so schon.
Titel: Re: Meldung "Could not create field %1
Beitrag von: dirk_2909 am 21.11.08 - 07:23:24
Zitat
Dirk, die "for x" Schleife wirds aufhauen, wenn Du bei 1 anfangst, bis coll.Count (==y) zählst, das Array aber nur bis y-1 (also coll.Count-1) definiert ist.

Ich habe mich mehr auf das eigentliche  Problem des Fragenstellers bezogen, und habe nicht den gesamten Code analysiert.
Ich habe lediglich die betroffenen Zeilen angepasst.

Hab ja auch was anderes zu tun....
Titel: Re: Meldung "Could not create field %1
Beitrag von: Lancelot am 21.11.08 - 07:31:31
Danke an alle jetzt klappt es prima.

Das Script von Dirk hat mir die Augen geöffnet und so habe ich das Problem in den Griff bekommen.

@Dirk: Ich habe gesehen das Du nur die Zeilen angepasst hast.  ;)
Ich erwarte hier auch nicht das jemand den gesamten Code für einen ausprogrammiert.

In meine Augen sollte es nur immer ein kleiner Schubs in die richtige Richtung sein, den Rest soll man ruhig selber erarbeiten.

Also nochmals Danke für den Schubs und ein schöne We an alle.  :)