Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Christian97 am 04.06.03 - 10:39:39

Titel: mit Aktionsbutton Dokument schließen und wieder öffnen
Beitrag von: Christian97 am 04.06.03 - 10:39:39
Hallo,

ich möchte gern über einen Aktionbutton das gerade geöffnete Dokument schließen und wieder öffnen. Mir fällt aber keine Idee ein, wie ich den Link des Dokumentes wieder öffnen kann?

Danke
Christian
Titel: Re:mit Aktionsbutton Dokument schließen und wieder öffnen
Beitrag von: Axel am 04.06.03 - 10:52:29
Hi,

versuch mal folgendes:

Erstelle dir einen Agenten mit folgendem Code:

Dim workspace As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim doc As NotesDocument

Set uidoc = workspace.CurrentDocument
Set doc = uidoc.Document

Call uidoc.Close

Set uidoc = workspace.Editdocument(true, doc)

Diesen Agent läßt du über den Aktions-Button ausführen.

Ich weiß allerdings nicht ob's funktioniert, hab' nicht probiert.


Axel
Titel: Re:mit Aktionsbutton Dokument schließen und wieder öffnen
Beitrag von: Till_21 am 04.06.03 - 10:52:37
sorry, aber mit welcher intention ?

gruss
Titel: Re:mit Aktionsbutton Dokument schließen und wieder öffnen
Beitrag von: Christian97 am 04.06.03 - 11:06:22
@Axel:
Hab's so eingefügt, aber es kommt die Fehlermeldung: "Reference appears before declaration: UIDOC"
Was muß ich da noch machen?

@Till_21:
Das soll ein Workaround zu meiner Frage von letzter Woche werden.
http://www.atnotes.de/index.php?board=7;action=display;threadid=8559 (http://www.atnotes.de/index.php?board=7;action=display;threadid=8559)
Titel: Re:mit Aktionsbutton Dokument schließen und wieder öffnen
Beitrag von: Axel am 04.06.03 - 11:27:55
Hi,

ich hab's mal probiert. Bei mir kommt keine Fehlermeldung.

Überprüfe deinen Code nochmal.

Axel
Titel: Re:mit Aktionsbutton Dokument schließen und wieder öffnen
Beitrag von: Christian97 am 04.06.03 - 11:33:39
hmm, will immer noch nicht. Ich hab den Agenten erstellt:
- Gemeinsam nutzen
- Option: Manuell aus dem Menü "Aktionen"
- Einmal ausführen
dann das LotusScript eingefügt. Die zwei Dim uidoc und Dim doc Zeilen tut er in die (Declarations), den Rest bei (Options) rein. Und dann kommen die Fehlermeldungen...
Wie hast Du's gemacht, daß es funktioniert?
Titel: Re:mit Aktionsbutton Dokument schließen und wieder öffnen
Beitrag von: Axel am 04.06.03 - 11:36:00
Hi,

ich hab den gesamten Code in den Initialize-Teil eingefügt.



Axel

Titel: Re:mit Aktionsbutton Dokument schließen und wieder öffnen
Beitrag von: klaussal am 04.06.03 - 11:36:05
... alles ins "initialize" rein.. :o
Titel: Re:mit Aktionsbutton Dokument schließen und wieder öffnen
Beitrag von: klaussal am 04.06.03 - 11:37:05
@axel,

du warst um 5 sec schneller   :'(
Titel: Re:mit Aktionsbutton Dokument schließen und wieder öffnen
Beitrag von: Christian97 am 04.06.03 - 11:41:59
Danke, der Agent funktioniert, aber nun kommt die Fehlermeldung bei der Ausführung: "Document Command is not available"  :-[
Titel: Re:mit Aktionsbutton Dokument schließen und wieder öffnen
Beitrag von: Axel am 04.06.03 - 11:43:47
@klaussal

Schneller tippen, oder schnellerer Internetzugang  ;)  ;D

Mach dir nix draus, beim nächsten Mal bist du schneller  ;D

Axel
Titel: Re:mit Aktionsbutton Dokument schließen und wieder öffnen
Beitrag von: Axel am 04.06.03 - 11:45:35
Hi,

lass mal den Debugger drüber laufen, wo er aussteigt. Ich befürchte hier:

Set uidoc = workspace.Editdocument(true, doc)


Axel
Titel: Re:mit Aktionsbutton Dokument schließen und wieder öffnen
Beitrag von: Christian97 am 04.06.03 - 15:41:44
Ja, Du hast recht. Ich hab auch mal die Zeile weggelassen, dann geht's. Gibt's evtl. ne Möglichkeit, daß das geht?
Titel: Re:mit Aktionsbutton Dokument schließen und wieder öffnen
Beitrag von: Axel am 04.06.03 - 15:50:12
Hi,

ins Blaue hinein gedacht, hab ich noch folgende Idee.

Der Agent schreibt zuerst die ID des Dokuments in die Ini-Datei und schließt das Dokument dann. Anschließend wird die ID ausgelesen, das zugehörige Dokument in der Datenbank gesucht und dann geöffnet.

Code dafür hab ich im Moment leider nicht parat, aber ich denke du solltest anhand der Beschreibung den Agenten erstellen können.

Axel
 
Titel: Re:mit Aktionsbutton Dokument schließen und wieder öffnen
Beitrag von: Axel_Janssen am 04.06.03 - 15:56:37
tun den code nicht in den Agenten, sondern direkt hinter die Aktionsschaltfläche.

Im Agenten hast du -falls mich meine Erinnerung nicht in Stich lässt - keinen Zugriff auf die UI-Klassen.

Titel: Re:mit Aktionsbutton Dokument schließen und wieder öffnen
Beitrag von: Christian97 am 04.06.03 - 15:58:13
danke für die Beschreibung. Die Idee mit der notes.ini und der ID dadrin hatte ich mir auch überlegt, aber hab von LotusScript absolut keine Ahnung.  :-[ Falls Du also doch noch eine Lösung zaubern könntest, würde ich mich sehr freuen. Ich versuch aber auch mal ne Formellösung.

Danke
Christian
Titel: Re:mit Aktionsbutton Dokument schließen und wieder öffnen
Beitrag von: Axel am 04.06.03 - 16:13:25
Im Agenten hast du -falls mich meine Erinnerung nicht in Stich lässt - keinen Zugriff auf die UI-Klassen.

In den Agenten hast du sehr wohl Zugriff auf die UI-Klassen, allerdings nur, wenn es sich nicht um getriggerte Agenten handelt.

@Christian
Gib mir einen Moment Zeit.

Axel

Titel: Re:mit Aktionsbutton Dokument schließen und wieder öffnen
Beitrag von: Christian97 am 04.06.03 - 16:19:55
@Axel_Janssen:
Die Idee mit dem Agenten muß aber auch sein, denn in dem Button steht bestimmt schon ne halbe Seite Formel-Code drin. Der Action Button nur mit dem Auf-Zu-Script hätte ja sonst gar keinen Sinn.  ;)
Titel: Re:mit Aktionsbutton Dokument schließen und wieder öffnen
Beitrag von: Axel am 04.06.03 - 16:24:50
Hi,

versuch's mal damit. Hab ich eben mit heisser Nadel gestrickt.

Zitat
   Dim session As New NotesSession
   Dim workspace As New NotesUIWorkspace
   Dim db As NotesDatabase
   Dim uidoc As NotesUIDocument   
   Dim doc As NotesDocument
   Dim strDocID
   
   Set db = session.CurrentDatabase
   Set uidoc = workspace.CurrentDocument
   Set doc = uidoc.Document
   
   'Document-ID in ini-Datei schreiben
   Call session.SetEnvironmentVar( "DokID",  doc.UniversalID)
   
   'Dokument schließen
   Call uidoc.Close
      
   'Auslesen der ID aus der ini-Datei
   strDocID = session.GetEnvironmentString( "DokID" )
   'Suchen des Dokuments in der Datenbank   
   Set doc = db.GetDocumentByUNID(strDocID )
   'Öffnen des Dokuments
   Set uidoc = workspace.Editdocument(True, doc1)

Kopier den Code in den Initialize-Abschnitt des Agenten.


Axel
Titel: Re:mit Aktionsbutton Dokument schließen und wieder öffnen
Beitrag von: Christian97 am 04.06.03 - 16:38:04
Es stoppt leider immer noch an der selben Stelle mit der selben Fehlermeldung "Document command is not available"
Allerdings hatte ich auch einen Fehler in deinem Script in der letzten Zeile bemerkt, da die Variable nicht "doc1", sondern nur "doc" heißt. Da kam erst eine andere Fehlermeldung, dann die obige.
Titel: Re:mit Aktionsbutton Dokument schließen und wieder öffnen
Beitrag von: Axel am 04.06.03 - 16:46:47
Hi,

sorry, war ein Tippfehler.

Bei mir kommt kein Fehler.

Du hast geschrieben, dass in dem Button schon eine halbe Seite Formel drinsteht. Ich vermute mal das die Formelbefehle nicht in genau der Reihenfolge abgearbeitet werden, in der sie da stehen.

Versuch doch mal deinen Agenten mit dem @PostedCommand auszuführen. Damit wird der Agent als letztes ausgeführt.

Axel

 
Titel: Re:mit Aktionsbutton Dokument schließen und wieder öffnen
Beitrag von: Christian97 am 04.06.03 - 16:55:13
Mit dem @PostedCommand klappts leider auch nicht. Allerdings bemerke ich im Debugger, daß das Dokument bei    Call uidoc.Close nicht geschlossen wird, sondern auf bleibt. Dann kommt beim Wiederöffnen der Fehler. Kann es daran liegen?
Titel: Re:mit Aktionsbutton Dokument schließen und wieder öffnen
Beitrag von: Axel am 04.06.03 - 17:11:18
Hi,

ist durchaus möglich. Ich bin aber jetzt mit meinem Latein am Ende.

Im Moment habe ich keine Ideen mehr, wie man das Problem noch lösen könnte.  :-\


Axel
Titel: Re:mit Aktionsbutton Dokument schließen und wieder öffnen
Beitrag von: Rob Green am 04.06.03 - 17:12:54
ergänzt bitte beim "call uidoc.close" das Teil um "call uidoc.close(true)" bitte. Das schließt auf alle Fälle das Uidoc aus dem Frontend und dazu auch die Referenzierung. Dann das editdocu...
Titel: Re:mit Aktionsbutton Dokument schließen und wieder öffnen
Beitrag von: Christian97 am 04.06.03 - 17:14:29
aber ich hab's raus. Ich hatte den Agenten mal in einer anderen Maske ganz alleine in einem Button ausgeführt. Dort waren, wie bei Dir, keine Fehlermeldungen aufgetreten. Allerdings wollte ich nach der Aktion wieder in den Lesemodus. Ich hab das dann geändert (mittlerweile das Script auch verstanden ;)) und nun geht es mit dem Lesemodus.

Vielen, vielen Dank Alex!

Ciao,
Christian