Domino 9 und frühere Versionen > Entwicklung

Excel-Datei in Notesdokument öffnen

<< < (2/2)

animate:
wie schon erwähnt wurde, musst du deine Parameter in LS anders übergeben, als in dem Code, der vom Makrorekorder erzeugt wird, nämlich in Klammern nach dem Funktionsnamen.
Syntax aus der Excel-Hilfe:


--- Zitat ---
Ausdruck.Add(Before, After, Count, Type)

Ausdruck   Erforderlich. Ein Ausdruck, der eines der oben aufgeführten Objekte zurückgibt.

Before   Optionaler Variant-Wert. Ein Objekt, das das Blatt festlegt, vor dem das neue Blatt eingefügt werden soll.

After   Optionaler Variant-Wert. Ein Objekt, das das Blatt festlegt, nach dem das neue Blatt eingefügt werden soll.

Count   Optionaler Variant-Wert. Die Anzahl der hinzuzufügenden Blätter. Der Standardwert ist Eins.

Type   Optionaler Variant-Wert. Legt den Blattyp fest. Kann eine der folgenden XlSheetType-Konstanten sein: xlWorksheet, xlChart, xlExcel4MacroSheet oder xlExcel4IntlMacroSheet. Der Standardwert ist xlWorksheet.

Hinweise
Wenn Before und After nicht angegeben werden, wird das neue Blatt vor dem aktiven Blatt eingefügt.


--- Ende Zitat ---

qp:
Hi,

danke für die Hilfe!

Hat aber alles nicht funktioniert. Letztlich habe ich es doch noch geschafft, aber über Umwege.

Für alle, die es interessiert - hier eine kurze Beschreibung:

Ich lasse das Exceldokument über eine Aktion öffnen. In dieser Aktion lasse ich im Backend ein Dokument öffnen, dem ich zwei RT-Felder einfüge. In einem erzeuge ich ein embedded object

  Set varObj = rtitem.EmbedObject (EMBED_OBJECT, "", "PfadMitDatei, "OLEObject")

Anschliessend weise ich dem Backenddokument Formname und Fenstergrösse zu, lasse es neu berechnen und öffne es im Frontend.

  ' Embedded Object auf Fenstergrösse maximieren
  object.FitToWindow = True
  ' Berechnete Felder in der Maske neu berechnen
  Call docExcel.ComputeWithForm(False, False)
  ' Dokument im Edit-Modus im Frontend öffnen
  Call ws.EditDocument (True, docExcel)

Das FrontendDok besitzt die zwei RT-Felder. Weiterhin ist in den Eigenschaften unter "Auto-Start" eingestellt, dass das erste OLE-Objekt automatisch gestartet wird.

Im Postopen-Bereich ist folgendes eingetragen:

  Sub Postopen(Source As Notesuidocument)
   
    ' NotesVariablen
    Dim ws As New NotesUIWorkspace
    Dim uidoc As NotesUIDocument
   
    ' Allgem. Variablen
    Dim varObj As Variant
   
    ' Frontend-Dokument holen
    Set uidoc = ws.CurrentDocument
   
    ' Cursor in erstes RT-Feld setzen
    Call uidoc.GotoField("Body")
   
    ' OLE-Objekt erzeugen und Handle an Variant-Variable übergeben
    Set varObj = uidoc.CreateObject("OLEObject", "Excel.Sheet")
   
  End Sub

Damit lassen sich neben Exceldokumenten auch Worddokumente öffnen.

ciao und gute Nacht
qp

Navigation

[0] Themen-Index

[*] Vorherige Sete

Zur normalen Ansicht wechseln