Autor Thema: Feldwert erneuern per LS  (Gelesen 2314 mal)

Offline Wiesel

  • Aktives Mitglied
  • ***
  • Beiträge: 188
  • Geschlecht: Weiblich
Feldwert erneuern per LS
« 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?

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Feldwert erneuern per LS
« Antwort #1 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

Offline Wiesel

  • Aktives Mitglied
  • ***
  • Beiträge: 188
  • Geschlecht: Weiblich
Re: Feldwert erneuern per LS
« Antwort #2 am: 23.05.07 - 09:26:02 »
Und wie behandle ich dann einen Arry damit ich die Werte in das Feld mit einbeziehen kann?

Offline MadMetzger

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.052
  • Geschlecht: Männlich
  • f.k.a. Alexis Pyromanis
Re: Feldwert erneuern per LS
« Antwort #3 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,"~~"),"~~")

Offline Wiesel

  • Aktives Mitglied
  • ***
  • Beiträge: 188
  • Geschlecht: Weiblich
Habs raus
« Antwort #4 am: 23.05.07 - 09:31:23 »
Frage per Schleife erst den Arry ab und setze die Werte aneinander.

Danke für den Denkanstoß!

Offline MadMetzger

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.052
  • Geschlecht: Männlich
  • f.k.a. Alexis Pyromanis
Re: Feldwert erneuern per LS
« Antwort #5 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...
« Letzte Änderung: 23.05.07 - 11:09:25 von MadMetzger »

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re: Feldwert erneuern per LS
« Antwort #6 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
Grüßle Toni :)

Offline sloe

  • Aktives Mitglied
  • ***
  • Beiträge: 175
  • Geschlecht: Männlich
  • Never stop a running admin...
Re: Feldwert erneuern per LS
« Antwort #7 am: 23.05.07 - 16:20:28 »
<klugscheissmodus>
Was sprach nochmal gegen ArrayAppend?  >:D
</klugscheissmodus>
Gruß
sloe

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Feldwert erneuern per LS
« Antwort #8 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

Offline sloe

  • Aktives Mitglied
  • ***
  • Beiträge: 175
  • Geschlecht: Männlich
  • Never stop a running admin...
Re: Feldwert erneuern per LS
« Antwort #9 am: 25.05.07 - 12:33:19 »
Fulltrim(Arrayappend(Array1,Array2))
Immer noch eine Funktion weniger und übersichtlicher, oder?

Gruß
sloe

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Feldwert erneuern per LS
« Antwort #10 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

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re: Feldwert erneuern per LS
« Antwort #11 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
Grüßle Toni :)

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz