Autor Thema: Verlagerung eines Lotus Scripts von postopen zu einem Button  (Gelesen 1337 mal)

Offline MiPa

  • Frischling
  • *
  • Beiträge: 15
Hallo,

ich möchte ein Lotus Script von Postopen zu einem Button verlegen. Das Script selber funktioniert für sich im Postopen Bereich. Als Ergebnis soll ein Word Template als OLE Objekt in den Body eingebunden werden und Werte aus felder in das Word Dokument einbinden. Ich möchte erst in meiner Maske die Werrte eintragen und das Dokument bearbeiten.
Wie muss mein Script angepasst werden, da es hier ein fehler im Source Bereich beim speichern gibt und auch das so mit dem isnewdoc ja so auch nicht mehr passen kann... Hilfe...
Dazu habe ich folgendes Script:



Sub Postopen(Source As Notesuidocument)
   
   Dim session As New NotesSession   
   Dim db As NotesDatabase
   Dim doc As NotesDocument
   Dim view As NotesView
   Dim object As NotesEmbeddedObject
   Dim handle As Variant
   Dim WordObj As Variant
   
   Dim rtitem As NotesRichTextItem
   'Check if new document, if yes create new word doc, if not open from document
   If Source.IsNewDoc Then
      'Copy Letter from template to c:\temp\temp.doc and then attach to new document
      Set db = session.CurrentDatabase
      Set view =  db.getView("h. Administration\OLE Vorlagen")
      Set doc = view.GetDocumentByKey("Microsoft Word Vorlage",True)
      Set object = doc.GetAttachment( "CQM.doc" )
      Call object.ExtractFile( "c:\temp\temp.doc" )
      Call Source.GotoField( "Body" )
      
      Call Source.CreateObject("Letter","","c:\temp\temp.doc")
      Set WordObj = Source.GetObject( "Letter" )   
      
      'Populate variables with info to pass to word and update the variables in Word document
      qm_gb = Source.fieldgettext("qm_gb")
      qm_fb = Source.fieldgettext("qm_fb")
      
      WordObj.variables("qm_gb").value = qm_gb
      WordObj.variables("qm_fb").value = qm_fb
      
      'Activate Word, add a window for the new document and show the application
      WordObj.activate
      WordObj.Fields.Update
      WordObj.Application.Visible=True
      WordObj.Application.WindowState = 1
      WordObj.Windows.Add
      WordObj.Application.Activate
   Elseif Source.Inpreviewpane = False Then
          'Get object and activate Word      
      Set WordObj = Source.GetObject( "Letter" )   
      WordObj.activate
      WordObj.Application.Visible=True
      WordObj.Application.WindowState = 1
      WordObj.Windows.Add
      WordObj.Application.Activate
   End If
End Sub

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Du solltest Dich mit LotusScript beschäftigen, bevor Du Dich an solche Stunts wagst!

Source repräsentiert das aktuell im FrontEnd geöffnete Dokument (NotesUIDocument). Dies kannst Du von NotesUIWorkspace ableiten - siehe unter dieser Klasse in der DesignerHelp nach, das sind genau drei Zeilen Code, dann arbeitet der Code wie gehabt weiter.

Bernhard

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz