Autor Thema: Neues Dokument über Button erstellen  (Gelesen 4332 mal)

Offline chock

  • Senior Mitglied
  • ****
  • Beiträge: 337
  • Geschlecht: Männlich
Neues Dokument über Button erstellen
« am: 22.07.15 - 13:42:46 »
Hallo Forum,

wir haben die ganze Zeit ein neues Dokument über die Formel @Command([Compose]; "Maske") erstellt. In dieser Maske werden bestimmte Postopen Events ausgeführt. Funktioniert auch alles ohne Probleme.
Nun soll zusätzlich ein Word-Dokument wärend des erstellens eines neuen Dokumentes in Maske eingebunden werden.
Eine entsprechende Formel habe ich in den Button eingefügt, die auch die gewünschte Funktion erfüllt.
Das Problem ist nun, das neu erstellte Dokument führt die PostopenEvents nicht mehr aus. Woran könnte das liegen?
Danke.

Formel Butten für neues Dokument.

Sub Click(Source As Button)
   Dim s As New NotesSession
   Dim ws As New NotesUIWorkspace
   Dim db As NotesDatabase
   Dim uidoc As NotesUIDocument
   Dim doc As NotesDocument
   Set db = s.CurrentDatabase
   Set doc = New NotesDocument(db)
   doc.Form = "Maske"
   Set uidoc = ws.CurrentDocument
   Set rtitem = New NotesRichTextItem( doc, "RT_Feld" )
   Set object = rtitem.EmbedObject( EMBED_ATTACHMENT, "", "c:\test.dotx")
   Set uidoc = ws.EditDocument(True, doc)   \\K
   Call uidoc.GotoField( "Description" )
   'Call uidoc.Refresh
End Sub

Offline Klafu

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.944
  • Geschlecht: Männlich
  • Remember the Cookies!
Re: Neues Dokument über Button erstellen
« Antwort #1 am: 22.07.15 - 14:17:29 »
Hast du mal geguckt, was der Debugger dazu sagt?

Chris
„Der einzige Mensch, der sich vernünftig benimmt, ist mein Schneider. Er nimmt jedesmal neu Maß, wenn er mich trifft, während alle anderen immer die alten Maßstäbe anlegen in der Meinung, sie paßten auch heute noch...“

Offline chock

  • Senior Mitglied
  • ****
  • Beiträge: 337
  • Geschlecht: Männlich
Re: Neues Dokument über Button erstellen
« Antwort #2 am: 22.07.15 - 14:33:35 »
Hast du mal geguckt, was der Debugger dazu sagt?

Chris

Hallo,

der Debugger sagt nichts, man sieht nur das Script von dem Button. Dannach ist sofort die Maske da.

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Neues Dokument über Button erstellen
« Antwort #3 am: 22.07.15 - 14:41:05 »
Sub Click(Source As Button)
   Dim s As New NotesSession
   Dim ws As New NotesUIWorkspace
   Dim db As NotesDatabase
   Dim uidoc As NotesUIDocument
   Dim doc As NotesDocument
   Set db = s.CurrentDatabase
   Set doc = New NotesDocument(db)
   doc.Form = "Maske"
   Set uidoc = ws.CurrentDocument
   Set rtitem = New NotesRichTextItem( doc, "RT_Feld" )
   Set object = rtitem.EmbedObject( EMBED_ATTACHMENT, "", "c:\test.dotx")
   Set uidoc = ws.EditDocument(True, doc)   \\K
   Call uidoc.GotoField( "Description" )
   'Call uidoc.Refresh
End Sub

Wie sehen die PostOpen-Scripte aus, werden dort die Aktionen nur durchgeführt, wenn das Dokument neu ist?

Ein Compose erstellt ein neues Dokument, ein ws.EditDocument öffnet ein bereits bestehendes, das für Notes nicht mehr als neues Dokument erkannt wird (auch, wenn es einen Bruchteil einer Sekunde vorher erzeugt wurde)

Offline chock

  • Senior Mitglied
  • ****
  • Beiträge: 337
  • Geschlecht: Männlich
Re: Neues Dokument über Button erstellen
« Antwort #4 am: 22.07.15 - 15:01:27 »
Sub Click(Source As Button)
   Dim s As New NotesSession
   Dim ws As New NotesUIWorkspace
   Dim db As NotesDatabase
   Dim uidoc As NotesUIDocument
   Dim doc As NotesDocument
   Set db = s.CurrentDatabase
   Set doc = New NotesDocument(db)
   doc.Form = "Maske"
   Set uidoc = ws.CurrentDocument
   Set rtitem = New NotesRichTextItem( doc, "RT_Feld" )
   Set object = rtitem.EmbedObject( EMBED_ATTACHMENT, "", "c:\test.dotx")
   Set uidoc = ws.EditDocument(True, doc)   \\K
   Call uidoc.GotoField( "Description" )
   'Call uidoc.Refresh
End Sub

Wie sehen die PostOpen-Scripte aus, werden dort die Aktionen nur durchgeführt, wenn das Dokument neu ist?

Ein Compose erstellt ein neues Dokument, ein ws.EditDocument öffnet ein bereits bestehendes, das für Notes nicht mehr als neues Dokument erkannt wird (auch, wenn es einen Bruchteil einer Sekunde vorher erzeugt wurde)

Hallo,

ja, es sind viele Aktionen die nur bei einem neuen Dokument ausgeführt werden.
Dann ist genau dort das Problem, gibt es eine alternative zu ws.EditDocument?

Gruß


Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Neues Dokument über Button erstellen
« Antwort #5 am: 22.07.15 - 15:23:18 »
Eine saubere Alternative gibt es m.E. nicht. Du könntest mit Compose das Dokument erstellen, musst dann aber den Dateianhang in das geöffnete Dokument anhängen, was immer hampelig ist. Besser ist da auf jeden Fall die von Dir gewählte Methode.

Ich würde ein Feld in die Maske aufnehmen, das z.B. "IstNeuesDokument" heißt, berechnet beim Anlegen, Wert "1". Im QuerySave setzt Du den Wert auf "" oder "0".

Im PostOpen fragst Du dann nicht die Original-Notes-Eigenschaft ab, sondern stattdessen das neue Feld.

If doc.IstNeuesDokument (0) = "1" Then

Wenn Du das so umsetzt, darfst Du nicht vergessen, in sämtliche bestehende Dokumente den Wert für ein altes Dokument zu setzen (also "" oder "0").

Offline chock

  • Senior Mitglied
  • ****
  • Beiträge: 337
  • Geschlecht: Männlich
Re: Neues Dokument über Button erstellen
« Antwort #6 am: 23.07.15 - 14:51:32 »
Eine saubere Alternative gibt es m.E. nicht. Du könntest mit Compose das Dokument erstellen, musst dann aber den Dateianhang in das geöffnete Dokument anhängen, was immer hampelig ist. Besser ist da auf jeden Fall die von Dir gewählte Methode.

Ich würde ein Feld in die Maske aufnehmen, das z.B. "IstNeuesDokument" heißt, berechnet beim Anlegen, Wert "1". Im QuerySave setzt Du den Wert auf "" oder "0".

Im PostOpen fragst Du dann nicht die Original-Notes-Eigenschaft ab, sondern stattdessen das neue Feld.

If doc.IstNeuesDokument (0) = "1" Then

Wenn Du das so umsetzt, darfst Du nicht vergessen, in sämtliche bestehende Dokumente den Wert für ein altes Dokument zu setzen (also "" oder "0").

Hallo,

danke für den Tipp, ich habe die Maske entsprechend umgebaut und die vorhandenen Dokumente angepasst.

Gruß
Chris

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz