Domino 9 und frühere Versionen > ND6: Entwicklung

Speichern und dann neue Maske öffnen mit Script

(1/5) > >>

headshrinker:
Hallo,

irgendwie steh ich aber so was von aufn Schlauch!
Habe ein Aktion mit folgenden Script drinne


--- Code: ---Sub Click(Source As Button)

If Not uidoc.editmode Then uidoc.editmode = True
uidoc.document.Number = GenerateSequentialNumber( profileNumberForm_Main$ )
Call uidoc.save

End Sub
--- Ende Code ---

Ich möchte gerne das nach dem Speichern, sich eine bestimmte Maske öffnet.
Mittlerweile habe ich schon so eingies ausprobiert und seh wohl vor lauter Wald den Baum nicht mehr. Wäre super wenn Ihr mir helfen könntet.

Johnson:
Willst du ein neues/anderes Dokument oder das aktuell geöffnete Dokument, in dem sich die Action befindet, mit einer bestimmten Maske öffnen?

headshrinker:
Man befindet sich bereits in einer Maske, in der man einige Felder etc. ausgefüllt hat. Mit der Aktion soll eine Nummer generiert werden, diese gespeichert und danach soll sich halt eine neue Maske öffnen, die im Grunde nur eine Art Druckversion der vorherigen darstellt.

Johnson:
Also...
du kannst natürlich über das NotesUIWorkspace Objekt eine Maske öffnen.
Aber nur um das ganze etwas genauer zu sagen:
Einer "geöffneten" Maske liegt immer ein Dokument zu grunde.
Im Prinzip sagt das im Dokument enthaltene Feld "Form" welche Maske zum Anzeigen des Dokuments verwendet werden soll:

! Ich hab den Code direkt hier eingegeben, also noch nicht laufen gelassen !


--- Code: ---Dim db as NotesDatabase
Dim doc as NotesDocument
Dim s as NotesSession
Dim uidoc as NotesUIDocument
Dim uiws as NotesUIWorkspace

Set s = New NotesSession
Set db = s.CurrentDatabase
Set doc = db.CreateDocument
doc.Form = "Preview"

Set uiws = New NotesUIWorkspace
Set uidoc = uiws.EditDocument(True, doc, False)
--- Ende Code ---

Um das aktuelle Dokument in einer neuen Maske zu öffnen:


--- Code: ---Dim doc as NotesDocument
Dim uidoc as NotesUIDocument
Dim uidoc_preview as NotesUIDocument
Dim uiws as NotesUIWorkspace

Set uiws = New NotesUIWorkspace
Set uidoc = uiws.CurrentDocument
Set doc = uidoc.Document

Set s = New NotesSession
Set db = s.CurrentDatabase
Set doc_preview = doc.CopyToDatabase(doc.ParentDatabase)
doc_preview.Form = "Preview"

Set uidoc_preview = uiws.EditDocument(True, doc_preview, False)
--- Ende Code ---

!! Das aktuelle Dokument (uidoc) wird, wenn es gespeichert wird, zukünftig auch mit der Maske "Maskenname" geöffnet.

Um das zu umgehen kann man ein temporäres Dokument für die Vorschau erstellen:


--- Code: ---Dim db as NotesDatabase
Dim doc as NotesDocument
Dim doc_preview as NotesDocument
Dim s as NotesSession
Dim uidoc as NotesUIDocument
Dim uidoc_preview as NotesUIDocument
Dim uiws as NotesUIWorkspace

Set uiws = New NotesUIWorkspace
Set uidoc = uiws.CurrentDocument
Set doc = uidoc.Document
doc.Form = "Preview"

Set uidoc_printpreview = uiws.EditDocument(True, doc, False)
--- Ende Code ---


headshrinker:
Habe den letzten Teil in die Aktion eingebaut und es funzt einwandfrei.

Sieht jetzt so aus


--- Code: ---Sub Click(Source As Button)

Dim db As NotesDatabase
Dim doc As NotesDocument
Dim doc_preview As NotesDocument
Dim s As NotesSession
Dim uidoc As NotesUIDocument
Dim uidoc_preview As NotesUIDocument
Dim uiws As NotesUIWorkspace

Set uiws = New NotesUIWorkspace
Set uidoc = uiws.CurrentDocument
Set doc = uidoc.Document
doc.Form = "BerichtDeutsch"
Set uidoc_printpreview = uiws.EditDocument(True, doc, False)

If Not uidoc.editmode Then uidoc.editmode = True
uidoc.document.Number = GenerateSequentialNumber( profileNumberForm_Main$ )
Call uidoc.save
Call uidoc.Close

End Sub
--- Ende Code ---

Danke für die Hilfe.

Gruß Bernd

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln