Autor Thema: nochmal attachments (sorry ich hänge aber fest)  (Gelesen 1184 mal)

Offline Pavel

  • Senior Mitglied
  • ****
  • Beiträge: 260
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
nochmal attachments (sorry ich hänge aber fest)
« am: 26.09.03 - 22:45:00 »
Hallo,

leider muß ich noch mal das leidige Thema Attachments ansprechen. Irgendwie komme ich nicht weiter.
Ich habe für die Notes5 Mailschablone --> Memo-Maske --> Queryclose folgendes versucht.

Sub Queryclose(Source As Notesuidocument, Continue As Variant)
   Call cMemoObject.QueryClose(Continue)
   Call zippen(Source)
End Sub


Sub zippen ( Source As Notesuidocument)
   
   Dim s As New notessession
   Dim doc As NotesDocument
   Dim object As notesembeddedobject
   Dim datei,tempdir As String   
   Dim counter As Integer
   
   
   Dim files() As String
   Dim filesname() As String
   
   Set doc=source.document
   If Not doc Is Nothing Then
      If doc.hasembedded Then
         counter=0
         TempDir = Environ("Temp")      'aus der systemumgebung den temp-pfad holen
         
         Forall rtitem In doc.items
            If (rtItem.type=RICHTEXT) Then
               If Not Isempty(rtitem.embeddedobjects) Then
                  Forall obj In rtItem.embeddedobjects
                     If obj.type=embed_attachment Then
                        
                        
                        datei=tempdir+"\"+obj.name
                        counter=counter+1                     
                        Redim Preserve files(counter) As String
                        files(counter)=datei                     
                        Redim Preserve filesname(counter) As String
                        filesname(counter)=obj.name
                        obj.extractfile datei
                        Call obj.remove
                        Call doc.save(True,True,True)
                     End If
                  End Forall
                  
                  If counter>0 Then
                     rc=zCreateNewZip(tempdir+"\attachment.zip")
                     For i=1 To counter
                        rc=zOrderFile(files(i),filesname(i),0)
                     Next               
                     rc=zCompressFiles(tempdir,"",3,False,0,"compressed",Nothing)
                     rc=zCloseZipFile
                     For i=1 To counter
                        Setfileattr files(i),ATTR_NORMAL
                        Kill files(i)
                     Next
                     
                     Set object=rtItem.embedobject(EMBED_ATTACHMENT, "",tempdir+"\attachment.zip")                  
                     Setfileattr tempdir+"\attachment.zip",ATTR_NORMAL
                     Kill tempdir+"\attachment.zip"
                     Call doc.save(True,True,True)
                     
                  End If
               End If
            End If      
         End Forall
         
      End If
   End If   
End Sub

Das Zippen funktioniert, aber es tritt folgender Effekt auf.
Wenn ich eine neue Mail schreibe und ein Attachment reinhänge und auf senden klicke, wird meine Sub komplett abgearbeitet, aber das Attachment wird nicht ausgetauscht.
Mache ich eine Mail mit einem Attachment normal auf und schließe es anschließen, wird das Attachment korrekt ausgetauscht gegen die gezippte Datei. Mache ich dies jedoch mehrmals wächst das Maildocument jeweils um ein paar Bytes.

Kann mir jemand helfen?


Man möge mir den Spaghetti-Code verzeihen

(Achso, ich habe für das Queryopen eine sub geschrieben, welche jedes zip-Attachment entpackt und die entpackten dateien wieder reinhängt bevor das document angezeigt wird. Das funktioniert scheinbar auch fehlerfrei.)

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re:nochmal attachments (sorry ich hänge aber fest)
« Antwort #1 am: 27.09.03 - 00:01:40 »
Dass das Dokument nach jedem Bearbeiten um ein paar Bytes wächst, ist normal, da Notes das $UpdatedBy und andere interne Zähler (Sequence-Nummern der Items zum Beispiel) nachführt und teilweise protokolliert.
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz