Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Wiesel am 23.05.07 - 09:08:41

Titel: Feldwert erneuern per LS
Beitrag von: Wiesel am 23.05.07 - 09:08:41
Irgendwie stehe ich gerade voll auf dem Schlauch.

Möchte einen Feldwert durch einen weiteren Eintrag erweitern.

Dazu hole ich mir erst den aktuellen Wert (funzt auch) und bastle dann den aktuellen Wert mit dem neuen Wert zusammen.

Hier mein Script:

Dim altKenntnis as string
Dim picklist as variant
picklist = workspace.PickListStrings( PICKLIST_NAMES, True )
altKenntnis = doc.txtKenntnis(0)
doc.txtKenntnis =  altKenntnis + ", " + Cstr(picklist)

Aber in der letzten Zeile kommt ein "Type mismatch".

Was ist falsch?
Titel: Re: Feldwert erneuern per LS
Beitrag von: koehlerbv am 23.05.07 - 09:15:42
PickListStrings gibt ein Array zurück - siehe DesignerHelp.

Weiterhin: Gar nicht erstangewöhnen, Strings mit "+" zu verketten - das ist falsch. Der Concatenator ist "&".

Bernhard
Titel: Re: Feldwert erneuern per LS
Beitrag von: Wiesel am 23.05.07 - 09:26:02
Und wie behandle ich dann einen Arry damit ich die Werte in das Feld mit einbeziehen kann?
Titel: Re: Feldwert erneuern per LS
Beitrag von: MadMetzger am 23.05.07 - 09:30:56
Du musst die beiden Arrays (die alten Feldwerte und die aus der Picklist) zu einem neuen Array zusammensetzen. Das neue Array kannst du dann in das Feld packen. Etwa so:
Code
neuesArray = split(join(doc.txtKenntnis,"~~")&"~~"&join(picklist,"~~"),"~~")
Titel: Habs raus
Beitrag von: Wiesel am 23.05.07 - 09:31:23
Frage per Schleife erst den Arry ab und setze die Werte aneinander.

Danke für den Denkanstoß!
Titel: Re: Feldwert erneuern per LS
Beitrag von: MadMetzger am 23.05.07 - 10:43:23
Das mit der Schleife habe ich in deinem Quellcode nicht sehen können. Mit meinem Vorschlag brauchst du keine Schleife mehr, da join aus einem Array einen String macht und du mit split daraus wieder ein Array machen kannst.

EDIT: Danke Anton...
Titel: Re: Feldwert erneuern per LS
Beitrag von: ata am 23.05.07 - 10:47:07
Zitat
und du mit Split daraus wieder einen String machen kannst.

... mit Split erzeugst du ein Array, keinen einzelnen String...  ;)

Toni
Titel: Re: Feldwert erneuern per LS
Beitrag von: sloe am 23.05.07 - 16:20:28
<klugscheissmodus>
Was sprach nochmal gegen ArrayAppend?  >:D
</klugscheissmodus>
Titel: Re: Feldwert erneuern per LS
Beitrag von: koehlerbv am 23.05.07 - 19:05:55
In diesem Falle nichts - solange man leere Listenelemente (zum Beispiel und vor allem aus dem bereits bestehenden Item) ausfiltert. Sonst hat man fix sowas wie
""
"CN=Harry Hirsch/O=Otto/C=NF"
""
"CN=Brian/O=MontyPython/C=UK"

Bernhard
Titel: Re: Feldwert erneuern per LS
Beitrag von: sloe am 25.05.07 - 12:33:19
Fulltrim(Arrayappend(Array1,Array2))
Immer noch eine Funktion weniger und übersichtlicher, oder?

Titel: Re: Feldwert erneuern per LS
Beitrag von: koehlerbv am 25.05.07 - 13:05:18
Das ist bekanntermassen schön kurz und knackig.
Im Allgemeinen: Man kann das nur verwenden, wenn sichergestellt ist, dass Array1 als auch Array2 wirklich Arrays sind (und vom gleichen Typ).
Im Speziellen: Hier ist das eben nicht sichergestellt (lt. Code vom Wiesel).

Bernhard
Titel: Re: Feldwert erneuern per LS
Beitrag von: ata am 01.06.07 - 18:32:26
... zudem kürzt Fulltrim auch doppelte Leerzeichen innerhalb eines Strings - damit habe ich schon diverse Überraschungen erlebt...

Toni