Domino 9 und frühere Versionen > ND6: Entwicklung

Attachments lösen und einfügen

(1/2) > >>

Alexis:
Hallo Forum,

mit diesem Script kann ich prima Attachments in das Parent-Dokument übernehmen. Leider werden dabei alte Werte im rtitem-Feld überschrieben. Gibt es da einen "easy way round"?

Hier mein Code auszugsweise:

 Set Db = Session.CurrentDatabase
   Set workspace = New notesuiworkspace
   Set uidoc = workspace.currentdocument 
   Set doc = uidoc.Document
   vFileName = Evaluate("@AttachmentNames", doc)
   If vFileName(0) = "" Then Goto Leer
   For i = 0 To Ubound(vFileName)
      Set Object = Doc.GetAttachment( vFileName(i) )
      Call Object.ExtractFile( "c:\Temp\" & vFileName(i) )
      Call rtitem.AddNewLine( 1 )
      Call rtitem.EmbedObject ( EMBED_ATTACHMENT, "", "c:\temp\" & vFileName(i))
      Kill "c:\temp\" & vfilename(i)
   Next
Leer:

TMC:
Leider hast Du entscheidende Code-Stellen weggelassen (z.B. wie kommst Du zu Deinem rtitem).

Sowas wie hier sollte in jedem Fall gehen:

--- Code: --- Const RTITEM_NAME$ = "RTFeld"
Const FULL_PATH$ = "c:\Doks\abc.pdf"

Dim session As New NotesSession
Dim uiws As New NotesUIWorkspace
Dim db As NotesDatabase
Dim rtitem As Variant
Dim doc As NotesDocument

Set db = Session.CurrentDatabase
Set uiws = New NotesUIWorkspace
Set doc = uiws.Currentdocument.Document

Set rtitem = doc.GetFirstItem(RTITEM_NAME)
If Not rtitem.Type = RICHTEXT Then
Msgbox "Das Feld <" & RTITEM_NAME & "> ist kein Richtextfeld !", 48, "Fehler !"
Exit Sub
End If

Call rtitem.AddNewLine( 1 )
Call rtitem.EmbedObject ( EMBED_ATTACHMENT, "", FULL_PATH)
Call doc.Save(True, True)
--- Ende Code ---

Man beachte da insbesondere das

--- Code: ---Set rtitem = doc.GetFirstItem(RTITEM_NAME)
--- Ende Code ---

TMC:

--- Zitat von: Alexis am 16.12.04 - 15:29:43 ---   vFileName = Evaluate("@AttachmentNames", doc)

--- Ende Zitat ---

Das kann übrigens unschöne Ergebnisse liefern, wenn im Quelldok 2 Attachments mit dem selben Namen sind. Dann vergibt Notes intern andere Namen. Diese sind zwar eindeutig, aber es fehlen die Extensions.
Besser wäre wohl
a) in solchen Fällen die ursprüngliche Dateiendung dranzuhängen oder
b) doppelte Attachments abfangen und entsprechend eine fortlaufende Zahl dranzuhängen oder
c) Ein Attachment nach dem anderen abarbeiten ohne @AttachmentNames.

Alexis:
Hallo Matthias,

Danke für Deine Hinweise.

@1: Der Code war mir zu lang fürs Forum. Die Funktion klappt schon, mein Problem ist, dass beim zweiten Durchlaufen des Codes das rtItem-Feld überschrieben wird mit samt seinem Inhalt und die Attachments nicht wie gewünscht angehängt werden.

@2: Der Hinweis ist prima. In der Praxis dürfte der Fall eigentlich nicht vorkommen, aber wer weiss. Vorsorge ist besser als Nachsorge.

Alexis

DatenDuck:
Hallo Leute,

eine kleine Nachfrage zu diesem Thema.
Mir ist nur bekannt, dass man Anhänge ausschließlich an RTItems tackern kann.
Der erste Satz lautet jedoch
--- Zitat ---mit diesem Script kann ich prima Attachments in das Parent-Dokument übernehmen
--- Ende Zitat ---
Gibt es denn überhaupt eine Möglichkeit einen Anhang an ein Dokument zu hängen, ausserhalb eines RTItems? Ich finde dazu in der Designerhilfe nix und dass Attachments ausserhalb von RTItems hängen scheint ja auch eher 'ne Ausnahme bzw sogar ein Fehler zu sein oder!?

Vielen Dank schonmal für die Antwort!
Bis dann,
-Moritz

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln