Domino 9 und frühere Versionen > Entwicklung

%Include "xyz" in der Script-Bibliothek

<< < (2/6) > >>

-Michael-:
Hi,

ich habe übrigens festgestellt, dass man bei verschlüsselten Mails aufpassen muss, da ansonsten nicht jeder Zugriff hat, dies ist auch bei RenderToRTItem der Fall.

Bei RenderToRTItem habe ich mal folgenden Code getestet, der auch funktioniert (in ND6):

Script-Auszug (DocThis ist aktuelles Dokument, in das ein Mail, also docMail, reingerendert werden soll)

   Call docThis.RemoveItem(strRTName)
   Set rtitem = New NotesRichTextItem( docThis, strRTName )
   Call docMail.RenderToRTItem(rtitem)
   Call docThis.Save(False,False)   
   If docMail.IsEncrypted Then
      Forall itm In docThis.Items
         If itm.Name = "PublicEncryptionKeys" Then
            Call itm.Remove
         End If
      End Forall
   End If


Michael

Axel:
Hi,

danke für den Hinweis. Ich werde das bei der weiteren entwickluing berücksichtigen.


Axel

adminnaddel:
Hallo liebe Gemeinde,
vielleicht mal in der ruhigen Minute, komme nicht weiter! Das u.a. Script macht an der roten Stelle im debugger ein Meldefenster auf und haut mir auf die Finger!
Danke

Sub Click(Source As Button)
   Dim session As New NotesSession
   Dim ws As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
   Dim rtitem As NotesRichtextItem
   Dim currdoc As NotesDocument   
   Dim doc As NotesDocument
   Dim docNew As NotesDocument
   Dim db As NotesDatabase
   Dim col As NotesDocumentCollection
   
   Set dbCurrent = session.CurrentDatabase
   
'Zugriff auf Mail-DB des Users
   Set dbMail = New NotesDatabase("","")
   dbMail.OpenMail
   If Not dbMail.IsOpen Then
      Messagebox "Die Mail-Datenbank kann nicht geöffnet werden." + Chr$(10) + "Es können keine Mails importiert werden.", 16, "Vorgänge - Fehler"
      Exit Sub
   End If  'If Not dbMail.IsOpen Then
   
'Dialog zur Auswahl
   Set col = ws.PickListCollection(1, False, dbMail.Server, dbMail.FilePath, "($Inbox)","Eingangsbox", "Markieren Sie die gewünschten Mails.")
   If col.Count = 0 Then Exit Sub
   
'Abfrage ob Anhänge mit übernommen werden sollen
   If Messagebox("Sollen eventuell vorhandene Dateianhänge mit übernommen werden?", 36, "Vorgänge") = 6 Then
      intAttachment = 1  'Anhänge werden übernommen
   Else
      intAttachment = 0 'Anhäge werden nicht übernommen
   End If  'If Messagebox("Sollen eventuell vorhandene Dateianhänge...
   
'Einfügen in Datenbank
   Set docNew = docMail.CopyToDatabase(dbCurrent) ----> Meldung = Variant does not contain an object
   
   Call docNew.ComputeWithForm(False, False)
   
   If intAttachment = 0 Then  'Wenn Dateianhänge nicht übernommen werden sollen, werden sie hier gelöscht
      If docNew.HasEmbedded Then
         Set rtitem = docNew.GetFirstItem("Body")   
         If rtitem.Type = RICHTEXT Then
            Forall objects In rtitem.EmbeddedObjects
               If objects.Type = EMBED_ATTACHMENT Then
                  Call objects.Remove
               End If  'If objects.Type = EMBED_ATTACHMENT
            End Forall  'Forall objects In rtitem.EmbeddedObjects
         End If  'If rtitem.Type = RICHTEXT
      End If   'If refdoc.HasEmbedded
   End If  'If intAttachment = 0 Then
   
   Call docNew.Save(True,False)
   
End Sub

Axel:
Hi,

hier dir fehlt die Initialisierung der Variable docMail. Füge mal die beider fettgedruckten Zeilen an den jeweiligen Stellen ein. Dann sollte das funktionieren.


Sub Click(Source As Button)
   Dim session As New NotesSession
   Dim ws As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
   Dim rtitem As NotesRichtextItem
   Dim currdoc As NotesDocument   
   Dim doc As NotesDocument
   Dim docNew As NotesDocument
   Dim docMail As NotesDocument
   Dim db As NotesDatabase
   Dim col As NotesDocumentCollection
   
   Set dbCurrent = session.CurrentDatabase
   
'Zugriff auf Mail-DB des Users
   Set dbMail = New NotesDatabase("","")
   dbMail.OpenMail
   If Not dbMail.IsOpen Then
      Messagebox "Die Mail-Datenbank kann nicht geöffnet werden." + Chr$(10) + "Es können keine Mails importiert werden.", 16, "Vorgänge - Fehler"
      Exit Sub
   End If  'If Not dbMail.IsOpen Then
   
'Dialog zur Auswahl
   Set col = ws.PickListCollection(1, False, dbMail.Server, dbMail.FilePath, "($Inbox)","Eingangsbox", "Markieren Sie die gewünschten Mails.")
   If col.Count = 0 Then Exit Sub
   
   Set docMail = col.GetFirstDocument  'Maildokument

'Abfrage ob Anhänge mit übernommen werden sollen
   If Messagebox("Sollen eventuell vorhandene Dateianhänge mit übernommen werden?", 36, "Vorgänge") = 6 Then
      intAttachment = 1  'Anhänge werden übernommen
   Else
      intAttachment = 0 'Anhäge werden nicht übernommen
   End If  'If Messagebox("Sollen eventuell vorhandene Dateianhänge...
   
'Einfügen in Datenbank
   Set docNew = docMail.CopyToDatabase(dbCurrent) ----> Meldung = Variant does not contain an object
   
   Call docNew.ComputeWithForm(False, False)
   
   If intAttachment = 0 Then  'Wenn Dateianhänge nicht übernommen werden sollen, werden sie hier gelöscht
      If docNew.HasEmbedded Then
         Set rtitem = docNew.GetFirstItem("Body")   
         If rtitem.Type = RICHTEXT Then
            Forall objects In rtitem.EmbeddedObjects
               If objects.Type = EMBED_ATTACHMENT Then
                  Call objects.Remove
               End If  'If objects.Type = EMBED_ATTACHMENT
            End Forall  'Forall objects In rtitem.EmbeddedObjects
         End If  'If rtitem.Type = RICHTEXT
      End If   'If refdoc.HasEmbedded
   End If  'If intAttachment = 0 Then
   
   Call docNew.Save(True,False)
   
End Sub

Axel

animate:
Tipp: Option Declare einschalten

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln