Autor Thema: Datei aus einem RTF Feld in eine anderes Dokument / RTF kopieren  (Gelesen 5587 mal)

Offline masterste2000

  • Aktives Mitglied
  • ***
  • Beiträge: 128
Hallo Zusammen,

ich hoffe Ihr könnt mit helfen.

Alles bezieht sich auf eine und die selbe Datenbank.

Ich habe ein Dokument und in diesem ist ein RTF mit einem PDF-Dokument.

Dieses PDF-Dokument möchte ich jetzt beim öffnen eines neuen Dokuments in ein RTF in dem neuen Dokument kopieren.

Wenn ich mit dem Debugger das Script kontrolliere kann ich das PDF-Dokument im Item greifen, aber ich bekomme es nicht in das neue Dokument / RTF kopiert!

Hier mal der Code:

        Dim session As New NotesSession
   Dim db As NotesDatabase
   Set db = session.CurrentDatabase
   Dim view As NotesView
   Dim doc As NotesDocument
   Set view = db.GetView( "(PDF_Dokumente)" )
   Set doc = view.GetFirstDocument
   'Bis jetzt hat es das Dokument mit dem PDF-Dokument an doc übergeben.
      
   Dim rtitem As Variant
   Set rtitem = doc.GetFirstItem( "Dienstreisepdf" )
   'Hier wird rtitem das Item vom RTF übergeben
   
   ---> Und hier hänge ich wie bekomme ich das Item mit dem PDF in das des RTF Feld des neuen Dokuments kopiert??????

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Nee, Martin, das ist ein bisschen was anderes, obwohl die Antwort (NotesUIDocument.ImportItem) die selbe sein KANN.

Wenn man das nicht über die Zwischenablage machen will, dann MUSS man
- über rtitem.EmbeddedObjects iterieren
- prüfen, ob es sich um ein Object vom Type ATTACHMENT handelt
- wenn ja: Extrahieren in einen Temp- Pfad (am besten über Environ( "Temp" ) ermitteln)
- Attachment wieder attachen
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline masterste2000

  • Aktives Mitglied
  • ***
  • Beiträge: 128
Hallo danke für die schnellen Antworten, aber
NotesUIDocument.ImportItem
gibt es noch nicht in LoNo 7 oder doch?


Hi Martin wie bzw. mit welcher Klasse kann ich in das UIDOC das Attachment anhängen.



Offline Axel

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
... wie bzw. mit welcher Klasse kann ich in das UIDOC das Attachment anhängen.

Über Frontend-Klassen geht da garnichts. Schau dir mal die Methode NotesDocument.CopyItem an. Damit sollte es gehen.

Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Wobei ImportItem ja undokumentiert ist ...
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Über Frontend-Klassen geht da garnichts.

Doch - via Copy & Paste, was durchaus auch in der Praxis eingesetzt wird.

Bernhard

Offline Axel

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Du hast recht Bernhard.

Da ich vieles über's Backend mache, sind mir diese Methoden noch nicht untergekommen. 

Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Wenn es sauberer geht, versucht man natürlich auch, einen solchen Stunt zu vermeiden. Aber wenn beispielsweise ein RTF vorbelegt werden soll, jedoch ein Speichern allein dem User überlassen bleiben soll, dann bleibt einem nichts anderes (versionsunabhängiges).

Bernhard

Offline masterste2000

  • Aktives Mitglied
  • ***
  • Beiträge: 128
Guten Morgen,

mit soviel Antworten hätte ich jetzt nicht gerechnet.

Bernhard @all könnt ihr mir mal ein Beispiel Skript hier einstellen.

Danke!


Offline pram

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.170
  • Geschlecht: Männlich
    • Foconis Object Framework
fertigen Code gibts hier selten...  ::)

wenn du aber an deinen bestehenden Code noch folgende 5 Zeilen anhängst, sollte das Feld im Backend kopiert werden und das neue Dok. aufgehen.

dim newDoc as new NotesDocument(db)
dim newRti as new NotesRichtextItem(newDoc, "body")
call newRti.appendRtItem( rtItem)
call newRti.update()
call workspace.editDocument(true, newDoc)

das Ganze musst du aber in einen "Neu"-Button/Agent auslagern und kannst nicht im QueryOpen machen, da du hier noch kein Doc zur Verfügung hast (und im postOpen ist es zu spät um den Richtext zu ändern, außer du verwendest das undokumentierte uiDoc.importItem() dann wärs sogar nur noch eine Zeile die dir in deinem Code aus dem ersten Post fehlt)
oder du machst noch einen Reopen

Gruß
Roland
« Letzte Änderung: 09.02.12 - 23:38:44 von pram »
Roland Praml

IBM Certified Application Developer - Lotus Notes and Domino 8
Ich verwende das Foconis Object Framework

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz