Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: sculer am 04.10.05 - 02:54:25

Titel: ich kann in einem Feld (Mehrfachwerte) nichts abspeichern
Beitrag von: sculer am 04.10.05 - 02:54:25
Hallo,

ich bin neu in diesem Forum, und hoffe Ihr könnt mir evtl. irgendwie weiterhelfen!!

Ich hab folgendes Problem:
Ich hab in einer Maske ein Feld, welches Mehrfachwerte zulässt. Nun hab ich mir ein Script geschrieben, welches Wörter alphabetisch sortiert und in ein Array (dynamisch) schreibt.
Nun will ich eigentlich diese Array in das Feld hineinschreiben und Notes sagt mir
"Variant does not Countain an object"
mit diesem Befehl:
doc.[Feldname]=Array1

Kann mir irgendjemand sagen woran dies liegt?

Ich sollte vielleicht dazu sagen, dass ich nicht so sehr bewandert mit dem Umgang von Arrays bin.

Danke für evtl. Antworten
mfg
Sculer
Titel: Re: ich kann in einem Feld (Mehrfachwerte) nichts abspeichern
Beitrag von: Axel am 04.10.05 - 08:26:24
mit diesem Befehl:
doc.[Feldname]=Array1

Hi,

erstmal herzlich willkommen im Forum.

Aber nun mal zu deinem Problem. Steht diese Zeile so in deinem Code drin? Für den Feldnamen sind keine eckigen Klammern zulässig.

Hast du deinen Code schon mal mit dem Debugger untersucht?


Axel
Titel: Re: ich kann in einem Feld (Mehrfachwerte) nichts abspeichern
Beitrag von: umi am 04.10.05 - 10:23:16
Meine trübe Kristallkugel verrät mir, das "doc" nicht gesetzt ist....
Titel: Re: ich kann in einem Feld (Mehrfachwerte) nichts abspeichern
Beitrag von: sculer am 04.10.05 - 10:25:40
Nein, dies steht nicht mit eckigen Klammer drin.
Ja, im debugger hab ich dies auch durchlaufen lassen. Das Array sieht auch so aus, wie ich es haben will. Jedoch kann ich es halt eben nicht im Dokument speichern.
(siehe Fehlermeldung oben)

doc. ist gesetzt. Schließlich verwende ich das Doc schon wesentlich eher, um die Werte aus dem Dokument zu holen.

mfg
sculer
Titel: Re: ich kann in einem Feld (Mehrfachwerte) nichts abspeichern
Beitrag von: koehlerbv am 04.10.05 - 10:35:01
Die Fehlermeldung deutet eigentlich auf etwas hin, was nicht dem geposteten Code entspricht. Etwas mehr Originalcode wäre also angebracht.
Ist für das LS-Modul Option Declare gesetzt ?

Bernhard
Titel: Re: ich kann in einem Feld (Mehrfachwerte) nichts abspeichern
Beitrag von: sculer am 04.10.05 - 17:17:29
Zitat
Ist für das LS-Modul Option Declare gesetzt ?
dies sagt mir nichts!

nun zum Code:
Code
	Dim uidoc As notesuidocument
	Dim doc As Notesdocument
	Dim s As NotesSession
	Dim ws As NotesUiWorkspace
	Set ws=New NotesUiWorkspace
	Set uidoc = ws.CurrentDocument
	Set doc = uidoc.Document
	Dim neu As String, vorhandene As String, links As String, rechts As String, letztesWortLinks As String, erstesWortRechts As String
	Dim neuerString As String
	Dim Array1() As String
	Dim Arraystelle As Integer
	Arraystelle=0
	
	Set item = doc.getfirstitem("hinzufuegen")
	Set item2 = doc.getfirstitem("mitbewerber")
	neu=item.text
	vorhandene=item2.text
	If neu =""Then
		Msgbox "Sie haben nichts eingetragen"
		Exit Sub
	End If
	If vorhandene="" Then
		doc.mitbewerber=neu
		doc.hinzufuegen=""
	Else
		links=""
		rechts=vorhandene
		Call Sortieren(links,rechts, neu,arraystelle,array1())
		
	End If
	
	
	Call doc.Save(True,False)


hier der Code von dem Sortieren:
Code
Sub Sortieren (links As String, rechts As String, neu As String,arraystelle As Integer,Array1 () As String)
	If rechts="" Then
		Goto neuerEintrag
	End If
	vergleich$=Strleftback(rechts,";")
	If vergleich$=""Then
		vergleich$=rechts
	End If
	
	
	If vergleich$=neu Then
		Msgbox "Der Mitbewerber existiert bereits!"
		Exit Sub
	End If
	
	If vergleich$>neu Then
		If neu="" Then
			Goto RestArrayErstellen
		Else
			Goto neuerEintrag
		End If
		
	Else
RestArrayErstellen:		
		'weiter Suchen
		Redim Preserve Array1(arraystelle) As String
		Array1(arraystelle)=vergleich$
		If links="" Then
			links=vergleich$
		Else
			links=links+", "+vergleich$
		End If
		
		rechts=Strrightback(rechts,";")
		If rechts="" Then
			Goto ArrayKomplett
		End If
		arraystelle=arraystelle+1
		Call Sortieren (links,rechts,neu,arraystelle,array1())
		Exit Sub
	End If
	
	Exit Sub
neuerEintrag:
	
	Redim Preserve Array1(arraystelle) As String
	Array1(arraystelle)=neu
	neu=""
	arraystelle=arraystelle+1
	Goto RestArrayErstellen
ArrayKomplett:
	doc.mitbewerber=Array1()
	doc.hinzufuegen=""
	
End Sub

Für Verbesserung bin ich auch offen!!

mfg
sculer
Titel: Re: ich kann in einem Feld (Mehrfachwerte) nichts abspeichern
Beitrag von: koehlerbv am 04.10.05 - 17:30:27
Deiner Sub ist doc nicht bekannt - Du deklarierst es nirgends ! Entweder deklarierst Du doc global, oder Du übergibst der Sub Sortieren das NotesDocument durch einen weiteren Parameter.

Bernhard
Titel: Re: ich kann in einem Feld (Mehrfachwerte) nichts abspeichern
Beitrag von: sculer am 04.10.05 - 17:43:35
stimmt, guter Hinweis!!
Titel: Re: ich kann in einem Feld (Mehrfachwerte) nichts abspeichern
Beitrag von: umi am 05.10.05 - 07:34:09
Kristallkugeln funktionieren doch manchmal....    ;D
Titel: Re: ich kann in einem Feld (Mehrfachwerte) nichts abspeichern
Beitrag von: Gandhi am 05.10.05 - 10:48:11
Noch zu option declare:
Sehr nützlich und erspart einem oft viel Ärger, weshalb es in allen meinen Scripten steht.
Diese Option verhindert, dass Variablen verwendet werden, die vorher nicht deklariert wurden (gibt dann eine Fehlermeldung). Auf die Weise wird man zeitig auf Tippfehler in Variablennamen aufmerksam gemacht und sucht sich keinen Wolf.