Domino 9 und frühere Versionen > ND9: Entwicklung

Variable zu Array machen für Mailempfänger

(1/1)

cg-home:
Hallo Entwickler,

ich hänge gerade bei vermutlich einer Anfänger frage, die mich schon öfter
aufgehalten hat und ich noch keine gute Lösung habe.
Es funktioniert derzeit aber ich glaube dass es miserable gelöst ist.

Für den Hintergrund.
Ich habe ein Hauptdokument und dazu ein oder mehrere Antwortdokumente.
Wenn das Hauptdokument abgeschlossen wird, soll nun an die Bearbeiter
der Antwortdokumente eine Mail gesendet werden.
Da ich eh die Antworten prüfe, ob sie auch abgeschlossen sind,
lasse ich hier gleich eine Variable mit laufen in der ich die Namen speichere.
Die Variable habe ich als Variant deklariert und wollte es mit ArrayAppend
hinzufügen. Das geht aber nicht, da es kein Array ist, wenn der erste Name
eingetragen wurde. Und über ReDIM wird der erste Wert wieder entfernt.
Jetzt merke ich mir den Wert über eine DummyVariable aber das kann es
ja auch nicht sein.

Hier ein Auszug aus dem Code:


--- Code: ---…..
Dim vCopyTo As Variant
Dim vCopyToDummy As String
….

Do Until (docdc Is Nothing)
……
……
If IsArray(vCopyTo) Then
  vCopyTo = ArrayUnique(ArrayAppend(vCopyTo,docDC.kvpSN_Name(0)))
Else
  If Not vCopyTo = "" Then ‘Wenn vCopyTo gefüllt und kein Array zu Array machen
vCopyToDummy = vCopyTo
  ReDim vCopyTo(0)
  vCopyTo(0) = vCopyToDummy
  vCopyTo = ArrayUnique(ArrayAppend(vCopyTo,docDC.kvpSN_Name(0))) '???
Else
  vCopyTo = docDC.kvpSN_Name(0) 'Wenn vCopyTo leer ist mit Namen füllen
End If 'If Not vCopyTo = "" Then
End If 'If IsArray(vCopyTo) Then

Set docdc = dc.GetNextDocument(docdc)
Loop 'Do Until (docdc Is Nothing)


Call SendMail(doc.NotesName, vCopyTo, vMailSubject, vMailText, "VV")

--- Ende Code ---

Wäre Klasse wenn Ihr mir hier einen Tipp geben könntet.

Gruß Christian

koehlerbv:
Ein Redim Preserve zersört Dir das bestehende (dynamische) Array nicht.

Der primitive Weg, aber wirksam: Verbinde Deine Treffen mit einem besonderen Zeichen (strName & ~~" & strName & "~~" & strName) und bringe das mit Split am Ende in ein Array.

HTH,
Bernhard

cg-home:
Hi Bernhard,

"~~" habe ich schon so oft genutzt, es aber hier anzuwenden, darauf bin ich nicht gekommen.


--- Code: ---…..
Dim vCopyTo As Variant
….

Do Until (docdc Is Nothing)
……
……
vCopyTo = vCopyTo & "~~" & docDC.kvpSN_Name(0)

Set docdc = dc.GetNextDocument(docdc)
Loop 'Do Until (docdc Is Nothing)

vCopyTo = Split(vCopyTo,"~~")

Call SendMail(doc.NotesName, vCopyTo, vMailSubject, vMailText, "VV")


--- Ende Code ---

So klappt es, das Leben könnte so einfach sein ;-)
- Danke Dir Bernhard!

Gruß Christian

Navigation

[0] Themen-Index

Zur normalen Ansicht wechseln