Das Notes Forum
Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: pur_berger am 02.07.08 - 12:51:26
-
Kann mir bitte jemand erklären warum diese Funktion
Call workspace.EditDocument( True )
in einem Button eingebaut im Notes 8 plötzlich den Fehler "Notes Error - Specified commend not availible from the workspace" bringt?!
Ach ja - Im Eclipse Client - Im Basic geht's ohne Probleme ...
Was ich machen möchte ist in der Preview ein Document in den Edit-Mode bringen damit der User direkt eine Button drücken kann. (Also ohne Doppelcklick). Beim 7er Client geht das auch wunderbar - da liegt dieser Befehl am Button und danach werden (über den selben Button) einige Schritte ausgeführt. Und jetzt mit dem 8er gibt es plötzlich Fehler ...
Genauso - wenn in den Formproporties "Automatically enable Edit Modus" aktiviert ist dann geht dieses in einem eigenen Fenster auf wo dann nichts mehr geht ...
Also - im Grunde die Frage:
- wie bringe ich in der Preview ein Document in den Edit-Mode ...?
-
gib ihm doch noch das Document mit:
ws.editDocument true, doc
oder mach es über die UI-Klasse
ws.currentdocument.editmode = true
bubble
-
Sorry - aber was hilft mir das? Wenn ich den Fehler richtig verstehe dann steht in der Mailpreview kein UI zur Verfügung. Warum auch immer. UNd warum auch immer nur beim Eclipse Client. Sprich - geb ich Ihm das Dokument mit bekomm ich als Fehler das es dieses nicht gibt. Ich bin ja nach wie vor in der Preview.
Sprich - im Lotusscript - wie bringe ich die Preview dazu ein Dokument im Editmode anzuzeigen ...
-
Eränzung:
Wenn ich "Automatically enable Edit Modus" aktiviere dann klappt das Script
If Not uidoc.EditMode Then
uidoc.EditMode = True
End If
(aus der Hilfe kopiert) - aber dann macht der EclipseClient wieder ein extra Fenster auf in dem garnichts geht (kein Rahmen, kein garnichts ...) - Ich weiß jetzt echt nicht mehr weiter ...
-
So - und hier die Lösung für (mein) Problem:
Aufgabe:
In einem Mail sind Buttons welche der User drücken muß. Diese sollen in der Vorschau verfügbar sein sowie sollen unnötige Doppelklicks (um ein Document in den Editmode zu bringen) vermieden werden ...
Klingt einfach - und würde es Eclipse nicht geben wäre es das wohl auch ...
Fakt ist allerdings das bestimmte Befehle (wie eben zum Beispiel Call workspace.EditDocument( True ) unter Eclipse in der Previewpane NICHT funktionieren ...
Also:
QueryOpen:
@Command( [ShowHidePreviewPane] ; 0)
Damit wird das Previewpane geschlossen. Macht man dies nicht bekommt der User beim Ausführen der Aktion eine Saveconflict bei geöffneter Previewpane - diese scheint ja dankenswerter Weise einiges zu cachen ...
Sub Postopen(Source As Notesuidocument)
If source.inpreviewPane Then
Dim ws As New NotesUIWorkspace
If Source.EditMode = False Then
Continue = False
Call ws.SetTargetFrame("")
Call ws.EditDocument(True,,,,False, False)
End If
End If
End Sub
Hier prüfe ich ob das Document in der Previewpane geöffnet wurde - wenn ja - wird es in einem neuen Window göffnet ... (und die Previewpane eben geschlossen)
So - nur ist das Document jetzt noch immer nicht im Editmode ... (keine Ahnug warum ...) - daher - im Buttonscript:
Dim uiwork As New notesuiworkspace
Dim uidoc As notesuidocument
Set uidoc = uiwork.currentdocument
uidoc.Editmode = True
Damit geht das Document endgültig in den Editmode ...
Keine Ahnung ob das einfacher auch geht, eleganter, besser - mit sicherhiet ist die Lösung nicht sauber - aber es funktioniert - und für mich als nicht Scripter - well - it's working :)
Ach ja - um der Frage vorzubeugen "warum nicht einfach in den Proporties das Hackerl bei "open Document in Editmode" setzen ... im Eclipseclient führt dies dazu das das Document in einem neuen Fenstern (wohlgemerkt - ganz neuem Fenster - nicht nur im Client sonder separat) geöffnet wird - wo dann garnichts mehr geht ...)
-
Nachtrag ...
Nachdem Chefe sich beschwert das er die PP wieder offen haben will - so geht es auch:
In den Buttons die
Dim uiwork As New notesuiworkspace
Set uidoc = workspace.CurrentDocument
Call uidoc.Save
gegen
Set doc = uidoc.Document
Call doc.Save( True, True )
getauscht - damit wird der Fehler unterdrückt und man erspart sich im Gegenzug das Schließen der PP ...