Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: ReinerB am 14.05.07 - 16:40:34
-
Hallo,
habe eine Maske mit einigen Feldern und den Aktionsschaltflächen "Bearbeiten" und "Speichern". Zusätzlich das Feld SaveOptions mit Vorgabewert=0.
Beim Drücken auf Speichern werden im Backend mehrere Dokumente per Lotusscript erstellt. Danach möchte ich die Maske aber nicht schliessen, sondern in den Lesemodus wechseln. Ich dachte, ich könnte in die Speicher-Aktionsschaltfläche den Befehl "Call uiworkspace.EditDocument( False )" einbauen. Da bekomme ich die Meldung "Notes Fehler - Der angegebene Befehl ist vom Arbeitsbereich aus nicht verfügbar". Was muß ich denn tun, um mein Ziel zu erreichen?
In einer anderen Maske habe ich das so gemacht:
@Command([FileSave]);
@Command([EditDocument]; 0)
Und die Maske bleibt offen und das Dokument ist im Lesemodus.
Vielen Dank für Eure Unterstützung.
Grüße
Reiner Beimdiek
-
NotesUIWorkspace.EditDocument öffnet ein (Backend-)Dokument im Frontend.
Wenn Du in den Lesemodus wechseln willst, solltest Du
Call NotesUIDocument.EditMode = False
verwenden.
Bernhard
-
Hallo Bernhard,
danke für die schnelle Antwort.
Muß das nicht
Set NotesUIDocument.EditMode = False
heißen?
Aber dann kommt während des Laufs "Type Mismatch"??
Wenn ich im Debugger nachsehe, ist die Eigenschaft EDITMODE vom Type Variant.
Jetzt verstehe ich garnichts mehr.
Reiner
-
Arbeitest du mit Option Declare?
Weil bei NotesUIDocument.EditMode hast du garantiert nicht das NotesUIDocument als solches initialisiert und deklariert. Wenn du diese Option eingeschaltet hättest, hättest du das gemerkt, da der Compiler meckern würde.
-
Ich habe Blödsinn geschrieben (wider besseren Wissens):
NotesUIDocument.EditMode = False (ist ja eine Property).
Sorry.
Bernhard
-
*argh* Sowohl call als auch set waren an den Stellen falsch verwendet, habe ich eben auch noch übersehen...
-
... EditMode = True geht über die Backend-Klasse...
Toni
-
Wie meinst Du das, Toni? EditMode ist ein reines Frontend-Feature und widerspricht per se dem Backend. Aber ich habe sicherlich nicht verstanden, was Du sagen willst.
Bernhard
-
So kann das aussehen:
...
Dim workspace As New NotesUIWorkspace
Dim uidoc as NotesUIDocument
Set uidoc = workspace.CurrentDocument
uidoc.EditMode = False
...
... EditMode = True geht über die Backend-Klasse...
Toni
Bist du dir da sicher?
Axel
-
Read-write. Indicates whether a document is in Edit mode.
genau so...
Toni
-
Tony, sorry: Ich verstehe es immer noch nicht, was Du mit "Backend" in diesem Zusammenhang sagen wolltest. EditMode ist FrontEnd pur. Vom FrontEnd kommt man natürlich auch auf das Backend, aber wo ist jetzt hier der Zusammenhang? Hilfst Du mir auf die Sprünge?
Bernhard
-
... sorry - Frontend war gemeint (Asche über mein Haupt) , ich habe wohl zu flüchtig gelesen und geschrieben - sorry... :-X :-\
Toni
-
Guten Morgen,
trotz der schönen Diskussion ;) ist das Problem leider noch nicht behoben.
Ich habe es jetzt ganz einfach gemacht. Eine neue Maske, ein Feld, ein Button mit dem Code
Sub Click(Source As Button)
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Set uidoc = ws.CurrentDocument
uidoc.EditMode = False
End Sub
Ich starte die Maske vom Designer in Vorschau in Notes und drücke den Button.
In der Zeile uidoc.EditMode = False bekomme ich die Fehlermeldung "Dokumentbefehl ist nicht verfügbar".
Ich möchte einfach nur in den Lesemodus wechseln.
Wie geht das jetzt in Lotusscript?? :-:
Bitte nicht aufgeben.
Reiner
-
Ist das Dokument evtl. schon im Edit-Mode ?
-
Ja das Dokument ist im Edit-Mode. Ich möchte die Maske per Button in den Lesemodus versetzen. Geht das nicht so einfach?
Reiner
-
Das geht so einfach, aber...
... wenn es sich um ein neues Dokument handelt, muss es zuerst einmal gespeichert werden.
Axel
-
Danke Axel.
Habe gerade mit einem Kollegen darüber gesprochen und wir kamen einige Minuten vorher auch zu dem Schluss, daß die Maske vorher wohl gespeichert werden muß.
Eigentlich soll es nur eine Pseudo-Maske sein. Im Backend werden andere Dokumente erstellt. Aber wenn ich diesen Effekt haben möchte, dann muß ich auch das Pseudo-Dokument speichern und später in der Routine Terminate wieder löschen.
Problem gelöst.
Schönen Tag noch
Reiner