Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: ReinerB am 14.05.07 - 16:40:34

Titel: call uiworkspace.EditDokument(false) ??
Beitrag 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
Titel: Re: call uiworkspace.EditDokument(false) ??
Beitrag von: koehlerbv am 14.05.07 - 16:42:47
NotesUIWorkspace.EditDocument öffnet ein (Backend-)Dokument im Frontend.
Wenn Du in den Lesemodus wechseln willst, solltest Du
Call NotesUIDocument.EditMode = False
verwenden.

Bernhard
Titel: Re: call uiworkspace.EditDokument(false) ??
Beitrag von: ReinerB am 14.05.07 - 17:08:30
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
Titel: Re: call uiworkspace.EditDokument(false) ??
Beitrag von: MadMetzger am 14.05.07 - 17:13:33
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.
Titel: Re: call uiworkspace.EditDokument(false) ??
Beitrag von: koehlerbv am 14.05.07 - 17:26:08
Ich habe Blödsinn geschrieben (wider besseren Wissens):

NotesUIDocument.EditMode = False (ist ja eine Property).

Sorry.
Bernhard
Titel: Re: call uiworkspace.EditDokument(false) ??
Beitrag von: MadMetzger am 14.05.07 - 17:27:37
*argh* Sowohl call als auch set waren an den Stellen falsch verwendet, habe ich eben auch noch übersehen...
Titel: Re: call uiworkspace.EditDokument(false) ??
Beitrag von: ata am 14.05.07 - 18:07:48
... EditMode = True geht über die Backend-Klasse...

Toni
Titel: Re: call uiworkspace.EditDokument(false) ??
Beitrag von: koehlerbv am 14.05.07 - 18:16:03
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
Titel: Re: call uiworkspace.EditDokument(false) ??
Beitrag von: Axel am 14.05.07 - 19:18:07
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
Titel: Re: call uiworkspace.EditDokument(false) ??
Beitrag von: ata am 14.05.07 - 22:12:31
Zitat
Read-write. Indicates whether a document is in Edit mode.

genau so...

Toni
Titel: Re: call uiworkspace.EditDokument(false) ??
Beitrag von: koehlerbv am 14.05.07 - 22:29:54
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
Titel: Re: call uiworkspace.EditDokument(false) ??
Beitrag von: ata am 15.05.07 - 07:51:30
... sorry - Frontend war gemeint (Asche über mein Haupt) , ich habe wohl zu flüchtig gelesen und geschrieben - sorry... :-X :-\

Toni
Titel: Re: call uiworkspace.EditDokument(false) ??
Beitrag von: ReinerB am 15.05.07 - 09:24:13
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
Titel: Re: call uiworkspace.EditDokument(false) ??
Beitrag von: klaussal am 15.05.07 - 09:28:40
Ist das Dokument evtl. schon im Edit-Mode ?
Titel: Re: call uiworkspace.EditDokument(false) ??
Beitrag von: ReinerB am 15.05.07 - 09:31:57
Ja das Dokument ist im Edit-Mode. Ich möchte die Maske per Button in den Lesemodus versetzen. Geht das nicht so einfach?

Reiner
 
Titel: Re: call uiworkspace.EditDokument(false) ??
Beitrag von: Axel am 15.05.07 - 09:53:20
Das geht so einfach, aber...

... wenn es sich um ein neues Dokument handelt, muss es zuerst einmal gespeichert werden.


Axel
Titel: Re: call uiworkspace.EditDokument(false) ??
Beitrag von: ReinerB am 15.05.07 - 10:15:08
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