Formulardokument schreibgeschützt öffnen
Verfasst: Fr, 22.09.2006 17:29
Hallo zusammen,
bin schon wieder mit dem nächsten Problem da: ich habe zu meiner Basedatei ein externes Formulardokument als odt-Datei erstellt. Darin sind verschiedenen Schaltflächen, mit denen ich dann die Basedatei selbst öffnen und verschiedene Dinge darin machen möchte. Grundsätzlich geht das schon ganz gut. Leider gibt es noch einen Haken.
Das Formulardokument wird immer nicht schreibgeschützt geöffnet, wenn ich es - so macht man das beim Start einer Datenbankanwendung ja wohl meist - aus dem Dateimanager oder mit einer Desktopverknüpfung öffne. Die Option "nur lesen" steht dann ja nicht zur Verfügung.
Also habe ich versucht, mit dem Makrorekorder den Vorgang aufzuzeichnen, dass das Symbol "Datei bearbeiten" ausgeschaltet wird und mit dem Dateiöffnenvorgang verknüpft. Das Makro läuft anstandslos durch; - nur leider ohne Erfolg. Zwar wird zunächst das Symbol geändert, schaltet sich dann jedoch wieder in den Urspungszustand zurück.
Der nächste Schritt war das Schreiben des Makros DateiLadenReadOnly_Entwurf (siehe Code):
Das Ergebnis ist die folgende Fehlermeldung:
Warum kann OOo nicht so wie ich möchte?
Ach ja, das Makro soll in einem extra Writerdokument beim Dateiöffnen ausgeführt werden, dann also das Formulardokument Test.odt schreibgeschützt öffnen und sich anschließend selbst schließen (die Close-Routine habe ich hier bewußt weggelassen - funktioniert aber). Ein anderer Weg geht m.E. nicht, da ja zunächst überhaupt ein Dokument geöffnet sein muss, um das Makro ausführen zu können. Oder geht es auch anders?
Ich arbeite mit OOo 2.0.3 auf Suse Linux 10.0.
Grüße und Dank an alle Helfer
Norbert
bin schon wieder mit dem nächsten Problem da: ich habe zu meiner Basedatei ein externes Formulardokument als odt-Datei erstellt. Darin sind verschiedenen Schaltflächen, mit denen ich dann die Basedatei selbst öffnen und verschiedene Dinge darin machen möchte. Grundsätzlich geht das schon ganz gut. Leider gibt es noch einen Haken.
Das Formulardokument wird immer nicht schreibgeschützt geöffnet, wenn ich es - so macht man das beim Start einer Datenbankanwendung ja wohl meist - aus dem Dateimanager oder mit einer Desktopverknüpfung öffne. Die Option "nur lesen" steht dann ja nicht zur Verfügung.
Also habe ich versucht, mit dem Makrorekorder den Vorgang aufzuzeichnen, dass das Symbol "Datei bearbeiten" ausgeschaltet wird und mit dem Dateiöffnenvorgang verknüpft. Das Makro läuft anstandslos durch; - nur leider ohne Erfolg. Zwar wird zunächst das Symbol geändert, schaltet sich dann jedoch wieder in den Urspungszustand zurück.
Der nächste Schritt war das Schreiben des Makros DateiLadenReadOnly_Entwurf (siehe Code):
Code: Alles auswählen
Sub DateiLadenReadOnly_Entwurf
Dim vDoc 'die geladene Komponente
Dim Arg(0) as new com.sun.star.beans.PropertyValue
Dim sURL as string 'URL der zu ladenden Datei
Arg(0).Name = "ReadOnly"
Arg(0).Value = "True"
sURL = ConvertToURL("/pfad/zur/datei/test.odt")
vDoc = StarDesktop.loadComponentFromURL(sURL, "_blank", 0, Arg(0))
End Sub
Code: Alles auswählen
BASIC-Laufzeitfehler
Es ist eine Exception aufgetreten.
Type: com.sun.star.lang.IllegalArgumentException
Message: Cannot not coerge argument type during corereflection call!
Ach ja, das Makro soll in einem extra Writerdokument beim Dateiöffnen ausgeführt werden, dann also das Formulardokument Test.odt schreibgeschützt öffnen und sich anschließend selbst schließen (die Close-Routine habe ich hier bewußt weggelassen - funktioniert aber). Ein anderer Weg geht m.E. nicht, da ja zunächst überhaupt ein Dokument geöffnet sein muss, um das Makro ausführen zu können. Oder geht es auch anders?
Ich arbeite mit OOo 2.0.3 auf Suse Linux 10.0.
Grüße und Dank an alle Helfer
Norbert