Autor Thema: Listenfeld Werte auslesen und übergeben  (Gelesen 2905 mal)

Offline seerow

  • Aktives Mitglied
  • ***
  • Beiträge: 180
  • Geschlecht: Männlich
  • alles wird gut........
Listenfeld Werte auslesen und übergeben
« am: 24.11.05 - 08:51:32 »
Guten Morgen Notes Gemeinde,

folgendes Problem, ich habe in einer Maske ein Listenfeld (Allow multiple values). Jetzt möchte ich, wenn das Dokument gespeichert wird, die markierten Werte aus dem Feld auslesen, und in Komma - separierter Form in ein Textfeld des gleichen Dokumentes schreiben. Um die Werte aus den Feld auszulesen, habe ich eine "Forall" Schleife benutzt, die mir ein Array zurück liefert:

Code
Set item = doc.GetFirstItem( "fd_select_alternate" )
i=0
Forall v In item.Values
	Redim Preserve eintrag(i)
	eintrag(i) = v
	i = i+1
End Forall

Set item = doc.ReplaceItemValue("fd_lookup_alt_contact_email",????) (Hier ist das Problem)
Call doc.ComputeWithForm( False, True) 
Call doc.Save(False, False)


Problem: Wie bekomme ich die einzlenen Werte des Arrays nun in das Textfeld des Dokumentes?

Ich bin mir nicht sicher, ob der oben gezeigte Lösungsansatz stimmt, für Verbesserungen wäre ich Dankbar.
« Letzte Änderung: 24.11.05 - 10:09:41 von seerow »
MFG Antonio

-----------------------------------------------------------------------

Ordentliche Menschen sind selten genial,
geniale selten Ordentlich............

klaussal

  • Gast
Re: Listenfeld Werte auslesen und übergeben
« Antwort #1 am: 24.11.05 - 09:07:05 »
Dim Feldstr as string

i=0
Feldstr = ""

Forall v In item.Values
   Redim Preserve eintrag(i)
   ' eintrag(i) = v
   i = i+1
                Feldstr = Feldstr + eintrag(i) + ","
End Forall

doc.deinFeld = Feldstr

klaussal

  • Gast
Re: Listenfeld Werte auslesen und übergeben
« Antwort #2 am: 24.11.05 - 09:07:55 »
Dim Feldstr as string

i=0
Feldstr = ""

Forall v In item.Values
   Redim Preserve eintrag(i)
   ' eintrag(i) = v
   i = i+1
                Feldstr = Feldstr + eintrag(i) + ","
End Forall

doc.deinFeld = Feldstr

Könnte so gehen ....

Offline seerow

  • Aktives Mitglied
  • ***
  • Beiträge: 180
  • Geschlecht: Männlich
  • alles wird gut........
Re: Listenfeld Werte auslesen und übergeben
« Antwort #3 am: 24.11.05 - 10:09:17 »
ja, danke

das ist natürlich auch eine Idee. Problem ist nur bei deiner Lösung, dass immer nach dem letzten Eintrag ein "," steht was natürlich da nicht  gebraucht wird. Das komma kann man aber auch noch "wech" kürzen.

Code
i=0
			Feldstr = ""
			
			Forall v In item.Values
				Redim Preserve eintrag(i)
				i = i+1
				Feldstr = Feldstr + v + ", "
			End Forall
			
			l = Len(feldstr)
			Feldstr =  Left(feldstr, l-2)
MFG Antonio

-----------------------------------------------------------------------

Ordentliche Menschen sind selten genial,
geniale selten Ordentlich............

Offline root

  • Frischling
  • *
  • Beiträge: 3
  • Geschlecht: Männlich
Re: Listenfeld Werte auslesen und übergeben
« Antwort #4 am: 24.11.05 - 11:27:42 »
gibt es auch eine moeglichkeit, alle werte auszulesen, auch die die nicht markiert sind?

vielen dank
thomas

Offline seerow

  • Aktives Mitglied
  • ***
  • Beiträge: 180
  • Geschlecht: Männlich
  • alles wird gut........
Re: Listenfeld Werte auslesen und übergeben
« Antwort #5 am: 24.11.05 - 13:18:28 »
Hi Thomas,

wenn du alle Werte auslesen möchtest kannst du das ganz einfach über

Dim subj As Variant
subj = doc.GetItemValue( "Subject" )
Messagebox( subj( 0 ) )

erledigen.

In diesem Fall ist es ein Bsp. aus der Designer Hilfe. Aber du kannt auch selber mal in der Klasse "NotesDocument" schauen.
MFG Antonio

-----------------------------------------------------------------------

Ordentliche Menschen sind selten genial,
geniale selten Ordentlich............

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: Listenfeld Werte auslesen und übergeben
« Antwort #6 am: 24.11.05 - 13:23:03 »
Ganz falscher Ansatz.
Berechnetes Feld anlegen und als Formel
@implode(Auswahlfeld;", ")
angeben. ist viel einfache braucht kein Script und funktioniert sowohl im Notes als auch im Web.
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.885
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: Listenfeld Werte auslesen und übergeben
« Antwort #7 am: 24.11.05 - 16:57:53 »
@Thomas: ich gebe Dir vollkommen Recht. Wiedermal ein Fall für fehlende absolute Basics.

(mal ganz abgesehen davon, dass es implode auch in Script gibt, und man die komische Schleife in eine einzige Zeile packen kann: imploded = implode( doc.GetItemValue( "NameDesItems" ) , ",")

Gruß
Tode

P.S.: Die "nicht selektierten Werte" bekommt man weder über Script noch über Formelsprache. Hierzu muss man einen kleinen Umweg in Kauf nehmen:

Feld erstellen, Mehrfachwerte, Werte: "Wert1" : "Wert2" : "Wert3" (alle auswahlmöglichkeiten für das auswahlfeld).

und dann im eigentlichen Auswahlfeld umstellen auf Formel und den Namen des anderen Feldes angeben.

Dann kommt man über das "ursprungsfeld" an alle Werte, und über das eigentliche Feld an die selektierten.
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline seerow

  • Aktives Mitglied
  • ***
  • Beiträge: 180
  • Geschlecht: Männlich
  • alles wird gut........
Re: Listenfeld Werte auslesen und übergeben
« Antwort #8 am: 24.11.05 - 17:21:24 »
Zitat
Wiedermal ein Fall für fehlende absolute Basics

ohhh, ich bitte vielmals um Entschulding, Großmeister der Notes Programierung!

(Mann sollte mal nicht vergessen, dass jeder einmal bei NULL anfängt!!!)
MFG Antonio

-----------------------------------------------------------------------

Ordentliche Menschen sind selten genial,
geniale selten Ordentlich............

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz