Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: OliverII am 13.08.13 - 17:16:50

Titel: Mail erstellen mit Vorlage
Beitrag von: OliverII am 13.08.13 - 17:16:50
Hallo zusammen,
habe ein Problem bei dem ich leider nicht weiter komme - deshalb brauche ich hilfe  :-:

Muss über die Mailschablone eine interne Mailvorlage zur Verfügung stellen.
Habe aus diesem Grund unten aufgeführten Befehlt getestet und funktioniert auch.
Problem ist jetzt, dass bei manchen Kollegen, die eine Signatur einfügen diese oben eingefügt und erst zum Schluss
die Vorlage angehängt wird.
Habe schon einiges Versucht - komme aber nicht weiter.........
Kann mir jemand evtl. hier eine Hilfestelleung geben - wollte es erst über die CoreEmailClasses_de-DE machen - jedoch fehtl mir hierzu das Wissen.
Zudem bekomme ich es in der CoreEmailClasses mit dem Befehl "RenderToItem" nicht bebacken bzw. zum Laufen.

Anbei der bisherige Script - wäre echt dankbar über jede Hilfe!!!
Grüße Olvier



Sub Click(Source As Button)
                 Dim ws As New NotesUIWorkspace
   Dim ses As New NotesSession
   Dim db As NotesDatabase
   Dim doc As NotesDocument
   Dim memo As NotesDocument
   Dim body As NotesRichtextItem
   Set db = ses.CurrentDatabase
   If Messagebox ("Wollen Sie die interne Mail-Vorlage verwenden?", 4 + 64, "Mit Vorlage?") = 6 Then
      Set doc = New NotesDocument( db )
      doc.Form = "xyzMailvorlage"
      Set memo = New NotesDocument( db )
      memo.Form = "Memo"
      Set body = New NotesRichtextItem( memo , "Body" )
      
      Call doc.RenderToRTItem( body )
            Call ws.EditDocument( True, memo )
   Else
      
   
   Dim workspace As New NotesUIWorkspace
   Call workspace.ComposeDocument( "", "", "memo" )
end if
Titel: Re: Mail erstellen mit Voralge
Beitrag von: m3 am 13.08.13 - 17:43:33
Ich wuerde mit "CopyAllItems" das Notes Stationary ins neue Mail kopieren und dann mit
Code
RemoveItem ("IsMailStationery")
das eine stoerende Flag entfernen.

Wobei ich nicht ganz erkenne, wo Du in Deinem Code mit den Mailvorlagen/Stationary von Notes arbeitest.

Wo kommt denn z.B. die Form "xyzMailvorlage" her? Ist das eine Form, die ihr in die Standard-Mailschablone eingefuegt habt? Dann hat das nichts mehr mit den Mailvorlagen von Notes zu tun.

Eine etwas genauere/detaillierte Beschreibung inkl. Beschreibung des von Dir gewaehlten Loesungsansatzes und was bei euch unter "Mailvorlage" verstanden wird. waere hilfreich (ev. nicht unter Zeitdruck geschrieben, sodass ganze deutsche Saetze dabei rauskommen),
Titel: Re: Mail erstellen mit Voralge
Beitrag von: OliverII am 14.08.13 - 06:24:56
Hallo M3,

danke für die schnelle Rückantwort!

Ich habe mir in das MailTemplate eine neues Maske mit dem Namen "xyzMailvorlage" erstellt. In dieser Maske sind meine Vorlagendaten enthalten (Tabelle).
Über den bestehenden Button - Neue Nachricht - habe ich das oben genannte script rein gehängt welches mir die "xyzMailvorlage" Vorlage in ein neues Mail einfügt.

Habe festgestellt, dass wenn ich in den Vorgaben die Option "Meine ausgehenden Mailnachrichten autom. mit Signatur versehen" aktiv habe, die Signatur immer vor meine Tabelle (Vorlage) eingefügt wird. Somit kommt erst die Signatur und erst dann die Tabelle (Vorlage). Würde jedoch gerne erst die Tabelle und erst dann die Vorlage haben wollen......

Grüße Oliver
Titel: Re: Mail erstellen mit Voralge
Beitrag von: Keydins am 14.08.13 - 08:20:26
Hallo Oliver,

das lieg vermutlich daran, dass unter anderem das Einfügen der Signatur im Queryopen Event des Memos angesteuert wird (Set cMemoObject = New UIMemoDocument). In der Scriptbibiliothek CoreEmailClasses sind die entsprechenden Einträge zu finden.

Das IBM-Script wechselt per Me.m_noteUIMemo.Gotofield("Body") in das Feld "Body" und fügt dann die Signatur ein. Die Hilfe sagt zwar nichts Näheres hinsichtlich der Positionierung beim GotoField-Befehl, aber ich würde vermuten, dass das Sprungziel immer der Anfang des Feldes ist und somit die Signatur vor deinem Mustertext landet.

Gruß
Dirk
Titel: Re: Mail erstellen mit Voralge
Beitrag von: OliverII am 14.08.13 - 09:11:07
Hallo zusammen,

habe mir nochmals Gedanken gemacht und den Hinweis von m3 verfolgt - stationary.

Würde jetzt in jedes Mailfile eine neue Vorlage erstellen mit dem Namen (Mailvorlage) - hierfür habe ich bereits eine Funktion.
Würde eine neue Ansicht im Template erstellen - erste Spalte sortiert - mit allen Stationary dokumenten.

Anschließend würde ich über den Button "neu" (Neue Mail) folgende Funktion hinzufügen:
If Messagebox ("Wollen Sie interne Mail vorlage verwenden?", 4 + 64, "Mit Vorlage?") = 6 Then
      Dim session As New NotesSession
      Dim db As NotesDatabase
      Dim view As NotesView   
      Dim doc As NotesDocument
      Set db = session.CurrentDatabase
      Set view = db.GetView( "Vorlage" )
      Set doc = view.GetDocumentByKey("MailVorlage", True )   
      Set ws = CreateObject("Notes.NotesUIWorkspace")
      Call ws.EDITDOCUMENT(True, doc)
   Else
      Dim workspace As New NotesUIWorkspace
      Call workspace.ComposeDocument( "", "", "memo" )
      
   End If

Ist die Funktionsweise ok - oder würdet Ihr dieses so nie machen? Problem besteht halt, dass mir ggf. jemand die Vorlage ändert - evtl. könnte ich diese auch aus der Vorlagenansicht löschen......?
Titel: Re: Mail erstellen mit Vorlage
Beitrag von: Keydins am 14.08.13 - 09:55:01
Es gibt bereits eine Ansicht mit Namen (Vorlage) | Stationery, auf diese Ansicht greift der Code im Standardschalter 'Neue Nachricht mit Vorlage' zu.

Vom Prinzip kannst du das Script vom Standard übernehmen und lediglich die Dokumentenauswahl über eine Collection mit Hilfe von 'Picklist' durch den direkten Aufruf deiner Vorlage ersetzen.

Die Verwendung des Standardverfahrens hat natürlich den Nachteil, dass die Benutzer die Vorlage grundsätzlich ändern und/oder löschen könnten. Die Frage ist dabei: Haben die User ein Interesse daran dies zu tun?

Grundsätzlich gilt: Wenn den Usern der Aufbau der Vorlage nicht gefällt, können sie die Änderungen ja in jedem Fall in der gerade geöffneten Mail vornehmen bzw. sie nutzen die Vorlage erst gar nicht.

Möglichkeiten

Gruß
Dirk