Autor Thema: Attachments lösen und einfügen  (Gelesen 2449 mal)

Offline Alexis

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 534
  • Geschlecht: Männlich
  • LotusNotes macht süchtig!
Attachments lösen und einfügen
« am: 16.12.04 - 15:29:43 »
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:
wenn ich kein Problem hätte, wär' ich nicht hier ---
wenn ich im Forum eine Lösung gefunden hätte, wär' ich nicht hier ---
wenn ich nicht wüsste, dass mir hier fast immer geholfen wird, wär' ich AUCH nicht hier ---

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re: Attachments lösen und einfügen
« Antwort #1 am: 16.12.04 - 20:16:40 »
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)

Man beachte da insbesondere das
Code
Set rtitem = doc.GetFirstItem(RTITEM_NAME)
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re: Attachments lösen und einfügen
« Antwort #2 am: 16.12.04 - 20:25:03 »
   vFileName = Evaluate("@AttachmentNames", doc)

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.
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline Alexis

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 534
  • Geschlecht: Männlich
  • LotusNotes macht süchtig!
Re: Attachments lösen und einfügen
« Antwort #3 am: 17.12.04 - 12:47:35 »
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
« Letzte Änderung: 17.12.04 - 14:04:21 von Alexis »
wenn ich kein Problem hätte, wär' ich nicht hier ---
wenn ich im Forum eine Lösung gefunden hätte, wär' ich nicht hier ---
wenn ich nicht wüsste, dass mir hier fast immer geholfen wird, wär' ich AUCH nicht hier ---

DatenDuck

  • Gast
Re: Attachments lösen und einfügen
« Antwort #4 am: 05.01.06 - 11:30:24 »
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
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

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Attachments lösen und einfügen
« Antwort #5 am: 05.01.06 - 11:34:46 »
Attachments können tatsächlich nur in RichTextItems aufgenommen werden. Dies ist aber eine reine Backend-Geschichte und bedeutet nicht, dass es zum RTI auch im Frontend ein Gegenstück - sprich eine Maske - geben muss.
Betrachtet man ein Dokument mit RTI (incl. Attachment) mit einer Maske, die kein entsprechendes Feld enthält, dann wird das Attachment am Ende des Dokuments dargestellt.

HTH,
Bernhard

DatenDuck

  • Gast
Re: Attachments lösen und einfügen
« Antwort #6 am: 05.01.06 - 11:50:37 »
Hallo Bernhard,

dass passt ja dann einigermaßen zu diesem Thema hier http://atnotes.de/index.php?topic=27777.0

Resumé:
Auch wenn ein Anhang unter dieser schwarzen Linie angezeigt wird, ist er programatisch in einem RTItem. Sprich, wenn man diesen "aussenstehenden" Anhang löst und man sich den Namen des RTItems merkt, kann man ihn auch wieder genau wie zuvor anhängen. Nach der Wiederherstellung ist alles wieder so wie zufor.

Wenn das so richtig ist, dann bin ich schlauer geworden ;)

Vielen Dank!
-Moritz

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz