Domino 9 und frühere Versionen > ND6: Entwicklung

Werte in einem Listenfeld ändern

(1/1)

Sleigon:
Hallo

Ich habe ein Notes Dokument, welches mehrere Felder vom Typ "Text" mit der Option "Allow multiple values" enthält. Nun wollte ich die Daten in den Feldern ändern, was leider nicht
so richtig funktionieren will.

z.B.
Namen
Müller(0)
Meier(1)
Schulze(2)
Scholze(3)

das ganze soll per Script erfolgen

Zugreifen kann ich wunderbar auf die einzelnen Daten in den Feldern aber das Ändern bereitet noch Probleme.

Hatte es mit "ReplaceItemValue" versucht, da wurde dann aber immer nur der erste Wert geändert.

Call doc.ReplaceItemValue(Felder(xy), Neuerwert(6))

Ist es irgendwie möglich noch einen zweiten Wert bei "Felder(xy)" hinzuzufügen, welcher dann die Position im Feld enthält ?

"xy" steht für ein vorher festgelegtes Feld


mfg Sleigon

dirk_2909:
hallo

wenn  Du in LS einen oder mehrer einzelne Werte eines Feldes ändern willst,
kannst Du die Methode "Replace" verwenden:

call doc.ReplaceItemValue( "FELDNAME" , Replace(doc.GetItemValue( "FELDNAME" ) , varOldVal , varNewVal ) )

Sleigon:
Danke für den Tip :)

Funktioniert wunderbar

Fineas:
Das Vorgehen mit Replace ist aber nicht frei von Risiken und Nebenwirkungen. Gerade bei Namen kann da schnell was schief gehen.

z.B.

Müller(0)
Heinze(1)
Heinzelmann(2)
Scholze(3)

Replace Heinze mit Schneider hätte zum Ergebnis:

Müller(0)
Schneider(1)
Schneiderlmann(2)
Scholze(3)

Wenn nicht gerade das beabsichtigt ist, wäre es besser das Feld in einen Variant packen, mit ArrayGetIndex die passende Stelle suchen, ersetzen, dann das Ganze wieder zurück. Fertig.

Gruß, Fineas!

Navigation

[0] Themen-Index

Zur normalen Ansicht wechseln