Das Notes Forum

Domino 9 und frühere Versionen => ND7: Entwicklung => Thema gestartet von: Schorschi353 am 19.02.08 - 11:39:16

Titel: ForAll Schleife gibt nur letzten Wert aus
Beitrag von: Schorschi353 am 19.02.08 - 11:39:16
Hey Leute,

ich bin am verzweifeln, bitte helft mir!

Ich habe in einem Dokument (currdoc) das Textfeld "phasen" mit verschiedenen Werten.
Nun will ich jeden Wert auslesen und in einem anderen Dokument (phasedoc) jeden Wert einzeln in dem Feld "elementname" speichern.

Mein Codeausschnitt:

Forall bereiche In currdoc.phasen
          Set phasedoc = db.createdocument
     phasedoc.form="Layer"
          phasedoc.elementname = bereiche
          Call phasedoc.save(True,False,True)
End Forall

Das läuft auch alles ganz prima, aber es tritt ein Fehler auf und ich weiß nicht wieso.
Im Feld phasen stehen beispielsweise Einkauf und Konstruktion, nun wird immer nur der letzte Wert gespeichert. Aber wieso??

Ich hoffe meine Infos reichen aus!

Danke für eure Hilfe!!

Viele Grüße,
Marius
Titel: Re: ForAll Schleife gibt nur letzten Wert aus
Beitrag von: dirk_2909 am 19.02.08 - 11:42:07
Hallo

Weil Du dein Feld immer nur mit einem Wert befüllst:

  phasedoc.elementname = bereiche


Schau Dir mal in der Hilfe die Methode "AppendItemValue" (o.ä.) an.
Titel: Re: ForAll Schleife gibt nur letzten Wert aus
Beitrag von: Schorschi353 am 19.02.08 - 13:18:39
Danke schonmal für den Tipp, aber irgendwie klappt es immer noch nicht.

Hab appendtotextlist folgendermaßen eingebaut:

statt            phasedoc.elementname = bereiche

hab ich        Call bereiche.appendtotextlist( phasedoc.elementname )

verwendet.

Trotzdem bekomme ich immer nur den letzten Wert des Feldes "phasen" angezeigt.  :'(
Titel: Re: ForAll Schleife gibt nur letzten Wert aus
Beitrag von: dirk_2909 am 19.02.08 - 13:47:09
Hast Du die Designer-Hilfe auch gelesen ?!

Auf was für Objekte kann man "AppendToTextList" anwenden?
Was für ein "Objekt" ist "bereiche" ?

Ich könnte natürlich den fertigen Code posten, aber.....

Benutze die Hilfe. Vor allem die Beispiele sind gut ;-)


Wenn Du danach nicht weiterkommst. helfen wir natürlich ein wenig mehr.
Titel: Re: ForAll Schleife gibt nur letzten Wert aus
Beitrag von: thomson666 am 19.02.08 - 14:17:57
wenn du alle Werte aus currdoc.phasen in das Feld reinschreiben willst, frage ich mich Wieso du es nicht
 so machst...
Set phasedoc = db.createdocument
call doc.ReplaceItemValue("Elementname",currdoc.phasen )
call doc.Save(true,false,true)

aber es geht auch so glaub ich...
    Set phasedoc = db.createdocument
    phasedoc.form="Layer"
    phasedoc.elementname = currdoc.phasen
    Call phasedoc.save(True,False,True)

das wäre der ganze Code, die forall schleife ist meiner Meinung nach um sonst...
ich Persönlich mache immer call doc.ReplaceItemValue... aber das ist Geschmackssache...

Anmerkung: die Forall Schleife brauchst du nur wenn du schauen willst ob bestimmte Werte drinnen stehen die du Filtern möchtest und das Ergebnisse(welches du in ein Array schreibst) erst dann ins Mehrfachwertefeld schreibst.
Titel: Re: ForAll Schleife gibt nur letzten Wert aus
Beitrag von: Schorschi353 am 19.02.08 - 15:31:58
Also..

Letztendlich hat es doch so wie am Anfang geklappt:

          Forall bereiche In currdoc.phasen
                    Set phasedoc = db.createdocument
                    phasedoc.form="Layer"
                    phasedoc.elementname = bereiche
                    Call phasedoc.save(True,False,True)
     End Forall

Ich nehme an es lag an dem Feld "phasen", weil ich dort am Anfang die Werte nicht durch einen Doppelpunkt getrennt habe.
Das habe ich nun gemacht und siehe da, es funktioniert!

Vielen Dank für eure Antworten, wie immer konnte ich mich auf schnelle und kompetente Hilfe von euch verlassen!!!

PS:
Hast Du die Designer-Hilfe auch gelesen ?!

Natürlich schaue ich vorher in die Hilfe, ist doch wohl selbstverständlich  ;)

Danke, Marius