Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: suse am 07.04.08 - 16:35:38

Titel: Signatur in Mailmaske "Antwort mit Protokoll"
Beitrag von: suse am 07.04.08 - 16:35:38
Hi,

habe in unserer Notes 6.5.1 Mail-DB die Möglichkeit geschaffen, dass bestimmte Mitarbeiter unterschiedliche Signaturen über einen Schalter auswählen können.
Das klappt soweit auch super!
Aber...  in "Antwort mit Protokoll" habe ich folgendes Problem:
Da in dieser Maske im "Body" das Originaldokument übernommen wird, wird auch die Mitarbeiter-Signatur unter dem Originaldokument angezeigt.
Ich möchte aber die Signatur unter dem Antworttext einfügen!
Habe heute viel Zeit mit diesem Problem zugebracht. Wer kann mir helfen?

Grüße Suse

Hier noch der Script:

Sub Click(Source As Button)
   
   Dim ...
   
   Set uidoc = ws.CurrentDocument
   Call uidoc.Refresh
   Set doc = uidoc.Document
   
   Set db = session.CurrentDatabase
   Server = db.Server
   Set newdb = session.GetDatabase(Server, "test.nsf")
   Set view = newdb.GetView( "(KeyMailSignatur)" )
   Set dc = view.GetAllDocumentsByKey(doc.FullName, True)
   If dc.Count = 0 Then Exit Sub
   Set doc = dc.GetFirstDocument
   i = 0
   While Not (doc Is Nothing)
      Set doc = dc.GetNextDocument(doc)
      i=i+1
   Wend
   If i > 0 Then
      elemente = i
      Redim liste(elemente)
      Redim docids(elemente)
      Set doc = dc.GetFirstDocument
      i = 0
      While Not (doc Is Nothing)
         docids(i) = doc.UniversalID
         liste(i) =  doc.Signatur(0)
         Set doc = dc.GetNextDocument(doc)
         i=i+1
      Wend
      Wert = ws.Prompt(PROMPT_OKCANCELLIST, "Wählen Sie eine Signatur", "Signaturen:", liste(0), liste)
      If ( Isempty( Wert ) ) Then
         Exit Sub
      End If
   End If
   
   ' es wurde ein element ausgewählt
   For i = 0 To elemente-1
      If liste(i) = Wert Then
         ' element gefunden
         docid = docids(i)
         i = elemente
      End If
   Next
   
   ' Zeiger auf das aktuelle Dokument (uiDocument) holen und Dokument sichern
   Set uidoc = ws.CurrentDocument
   uidoc.Save
     ' das aktuelle Dokument ist das Zieldokument
   Set ZielDoc = uidoc.Document
   
     ' Quelldokument mit der DocID holen
   Set QuellDoc = newdb.GetDocumentByUNID(docid)
      
     ' Inhalt aus dem Quelldok. (Feld Signatur1) in das Zieldokument (Feld Body) kopieren
   'ZielDoc.Betreff = QuellDoc.Betreff(0)         
   Set rtQuellitem = QuellDoc.GetFirstItem("Signatur1")   
   Set rtZielitem = ZielDoc.GetFirstItem("Body")   
   Call rtZielitem.AppendrtItem(rtQuellitem)   
   ZielDoc.SignOK = "ja"
   ' Zieldokument sichern
   Call ZielDoc.Save(True,False)
   ZielDoc.MailOptions = "0"
   Call uidoc.Close()
     ' Zieldokument erneut laden und als geändert markieren
   Call ws.EditDocument(True, ZielDoc)
   Set uidoc = ws.CurrentDocument
   uidoc.Refresh
End Sub
Titel: Re: Signatur in Mailmaske "Antwort mit Protokoll"
Beitrag von: m3 am 07.04.08 - 18:21:41
Ich möchte aber die Signatur unter dem Antworttext einfügen!
Habe heute viel Zeit mit diesem Problem zugebracht. Wer kann mir helfen?
Ja, wenn du eine konkrete Frage stellst.

BTW - Threads zu eröffnen und dann nie mehr darin zu antworten ist nicht die feine atnotes-Art.
Titel: Re: Signatur in Mailmaske "Antwort mit Protokoll"
Beitrag von: koehlerbv am 07.04.08 - 22:40:01
Das mit den ausbleibenden Rückmeldungen ist mir auch schon aufgefallen. Daher erstmal nur Fragen meinerseits:
- Muss die Signatur(-vorlage) wirklich rich text sein? Wenn ja: Warum?
- So, wie ich den Code lese, wird die Signatur an der aktuellen Cursorposition eingefügt. Wenn es denn rich text sein muss: Warum erfolgt dies dann nicht über die Zwischenablage (kopiert aus dem gewählten Signatur-Setup-Dokument)?

Bernhard
Titel: Re: Signatur in Mailmaske "Antwort mit Protokoll"
Beitrag von: suse am 08.04.08 - 10:30:25
Ja, die Signaturvorlage muss richtext sein!
Also die Signatur selbst ist kein Problem, wird nur in der einen Maske "Antwort mit Protokoll" an die falsche Stelle - nämlich ganz unten - angehängt.
Habe folgendes mit richtextnavigator versucht, bekomme aber Fehlermeldung:
"Element or navigator is invalid"

Dim rtnav As NotesRichTextNavigator
   
' Inhalt aus dem Quelldok. (Feld Signatur1) in das Zieldokument (Feld Body) kopieren
   'ZielDoc.Betreff = QuellDoc.Betreff(0)         
   Set rtQuellitem = QuellDoc.GetFirstItem("Signatur1")   
   Set rtZielitem = ZielDoc.GetFirstItem("Body")   
   Set rtnav = rtZielitem.CreateNavigator
   Call rtnav.SetPosition(rtQuellitem)

Muss ich denn mit einem Platzhalter arbeiten? Weiß aber nicht wie!

grüße suse
Titel: Re: Signatur in Mailmaske "Antwort mit Protokoll"
Beitrag von: suse am 08.04.08 - 14:16:34
die Fehlermeldung:
Zitat
"Element or navigator is invalid"

kommt, weil NotesRichtextNavigator nicht gesetzt wird, aber warum ???
Ich steh völlig aufm Schlauch.
 ???

Grüße
Suse
Titel: Re: Signatur in Mailmaske "Antwort mit Protokoll"
Beitrag von: koehlerbv am 08.04.08 - 14:17:57
Warum machst Du es so kompliziert? Hol Dir doch die ausgewählte Signatur via Zwischenablage aus dem Konfigurationsdokument.

Bernhard
Titel: Re: Signatur in Mailmaske "Antwort mit Protokoll"
Beitrag von: suse am 08.04.08 - 14:22:38
@Bernhard
kannst du mir das näher erklären? Was soll dann andres sein? Wie bekomme ich die Signatur an die gewünschte Stelle? :-:

Suse
Titel: Re: Signatur in Mailmaske "Antwort mit Protokoll"
Beitrag von: koehlerbv am 08.04.08 - 14:25:03
Du willst sie doch - wie im Original - dort haben, wo der Cursor gerade steht?

Wegen Zwischenablage: Siehe hierzu die entspr. Methoden der NotesUIDocument class.

Bernhard
Titel: Re: Signatur in Mailmaske "Antwort mit Protokoll"
Beitrag von: suse am 08.04.08 - 15:36:13
so da bin ich wieder.
@Bernhard
Mit der Zwischenablage das ist ja ok, aber wie bekomme ich aus meinem Quelldoc ein uidoc ?

Suse
Titel: Re: Signatur in Mailmaske "Antwort mit Protokoll"
Beitrag von: koehlerbv am 08.04.08 - 15:37:18
Im EditMode öffnen. Ist alles in der DesignerHelp beschrieben und mit Beispielen belegt.

Bernhard
Titel: Re: Signatur in Mailmaske "Antwort mit Protokoll"
Beitrag von: suse am 08.04.08 - 16:41:45
@Bernhard
Danke für die Tipps!
Bin sehr froh, dass ich dieses Problem mit Deiner Hilfe lösen konnte.

Code
	'-----------------------------------------------------------------------------------------
	Dim uiwsQuelle As New NotesUIWorkspace
	Dim uidocQuelle As NotesUIDocument
	Set uidocQuelle = uiwsQuelle.EditDocument(True, QuellDoc)
	
	Call uiDocQuelle.GotoField("Signatur1")
	Call uidocQuelle.SelectAll()
	Call uidocQuelle.Copy()
	Call uidocQuelle.Close()
	Call uidoc.Paste()
	Call uidoc.Save()
	'-----------------------------------------------------------------------------------------
	

Bis zum nächsten Mal

Grüße
Suse
Titel: Re: Signatur in Mailmaske "Antwort mit Protokoll"
Beitrag von: koehlerbv am 08.04.08 - 16:52:53
Das freut mich sehr, Sus(ann?)e!
Und: Danke für die Rückmeldung  ;)

Bernhard