[gelöst] mit Basic unter Linux ein Template aufrufen

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: [gelöst] mit Basic unter Linux ein Template aufrufen

Re: [gelöst] mit Basic unter Linux ein Template aufrufen

von komma4 » Sa, 12.09.2009 07:03

anonym hat geschrieben:Also doch!
Jetzt hab' ich's verstanden: Dir ging es um die Begriffsverwendung.

Mir ging es um das "es hat etwas mit dem Betriebssystem zu tun"

PEACE: habe nur den Begriff aus der Dokumentation verwendet.
Semantisch hast Du recht.

Re: [gelöst] mit Basic unter Linux ein Template aufrufen

von komma4 » Sa, 12.09.2009 00:45

anonym hat geschrieben:Und es hat etwas mit dem Betriebssystem zu tun.
nein.
anonym hat geschrieben:Deswegen verwendet OOo auf Win und nix URIs.
nein.
Die API-Funktion verwendet URLs. Auch unter Mac

Re: mit Basic unter Linux ein Template aufrufen

von komma4 » Fr, 11.09.2009 17:16

wega hat geschrieben:Das letztere war mir unbekannt, da es auch ohne funktioniert
In allen OOo-Versionen, in denen ich bisher testete: nein!
Sonst erfolgt die Fehlermeldung: URL seems to be an unsupported one
[vielleicht gibt es andere, fehlertolerante Kompilationen von OOo - kenne ich nicht]

anonym hat geschrieben:um Betriebssystemunabhängig zu
sein, im URL Format angegeben werden müssen:

file://Pfad_mit_wurzel_Slash
Die Dokumentation verlangt eine URL-Notation, das hat nichts mit dem Betriebssystem zu tun.

Es müssen drei slahes sein.
file:// plus die root-Angabe /home/wega/usw...

Auch bei Windows wird ein drittes / verlangt
file:///c:/windows/usw...

Re: [gelöst] mit Basic unter Linux ein Template aufrufen

von komma4 » Fr, 11.09.2009 11:02

Du überschreibst mit der zweiten Setzung die TEMPLATE-Angabe (wenn Du zweimal den Index 0 nimmst), deshalb hatte ich

Code: Alles auswählen

Dim myFileProp(1) As New com.sun.star.beans.PropertyValue
geschrieben.

Re: mit Basic unter Linux ein Template aufrufen

von wega » Fr, 11.09.2009 10:16

Danke an Karolus und Winfried.

@ Hallo Karolus, die Anmerkung war richtig, der Pfad war nicht vollständig >> Asche auf mein Haupt <<
und converttourl fehlte auch. Das letztere war mir unbekannt, da es auch ohne funktioniert.
Wahrscheilich habe ich das etwas zu schlampig gehandhabt.

@ Hallo Winfried, die von dir genannte fehlende Eigenschaft hat das Ganze abgerundet. War mir garnicht bekannt.
Jetzt wird das anhängende Makro auch richtig ausgeführt.
Anmerkung:

Code: Alles auswählen

	myFileProp(0).Name = "AsTemplate"
	myFileProp(0).Value = false
	myFileProp(0).Name = "MacroExecutionMode"
    myFileProp(0).Value = com.sun.star.document.MacroExecMode.ALWAYS_EXECUTE_NO_WARN
Der Index bei myFileProp(n) muss auch auf "0" stehen, sonst kommt die Meldung "out of Range".

nochmals Dank an euch beide.

Gruß Werner

Re: mit Basic unter Linux ein Template aufrufen

von komma4 » Fr, 11.09.2009 09:51

Anmerkungen:

Möchtest Du ein neues Dokument aus der Vorlage [A: "normal [...] geht dies mit <Datei neu> < aus Vorlagen>"] erstellen oder [B:] die Vorlage bearbeiten?
A: "false loads the template document for editing", Link: OpenProperties
B: TRUE - oder weglassen, "Loading a component of type "template" creates a new untitled document by default"


wega hat geschrieben:die Makros aktiviert
Dafür benötigst Du eine weitere Eigenschaft:

Code: Alles auswählen

Dim myFileProp(1) As New com.sun.star.beans.PropertyValue
   oDesktop =   createUnoService("com.sun.star.frame.Desktop")
   sSourceFile = ConvertToURL( "/home/wega/.openoffice.org2/user/template/Quittung-Ferienwohnung.ots" )
   myFileProp(0).Name = "AsTemplate"
   myFileProp(0).Value = TRUE
   myFileProp(1).Name = "MacroExecutionMode"
   myFileProp(1).Value = com.sun.star.document.MacroExecMode.ALWAYS_EXECUTE_NO_WARN
' oder: wie über die MAKROSICHERHEIT-Einstellungen festgelegt
' com.sun.star.document.MacroExecMode.USE_CONFIG	
wega hat geschrieben:"_blank", 0,myFileProp()

siehe: FrameSearchFlag
Using of this flag will do nothing. Use right combination of other flags instead of this one.

Re: mit Basic unter Linux ein Template aufrufen

von Karolus » Fr, 11.09.2009 09:23

Hallo
Da fehlt 'converttourl' und der Pfad ist offensichtlich unvollständig.
sSourceFile = converttourl("/home/wega/.openoffice.org2/user/template/Quittung-Ferienwohnung.ots")
Pfad anpassen !

Gruß Karo

[gelöst] mit Basic unter Linux ein Template aufrufen

von wega » Fr, 11.09.2009 09:10

Hallo zusammen,

ich möchte unter Linux mit Office-Basic ein Template aufrufen, an dem selbst wieder Makros angebunden sind.

Ganz normal unter Opfenoffice geht dies mit <Datei neu> < aus Vorlagen>. Damit wird aus dem Template ein Blankoabbild geschaffen, die Makros aktiviert und los gehts.

In meinem Fall habe ich mir ein Kontrollbutton eingebaut, das ich anklicke und damit die oben beschriebene Aktion auslöse.
Im nachfolgenden der von mir benutze Code:

Code: Alles auswählen

sub quittung
	Dim myFileProp(0) As New com.sun.star.beans.PropertyValue
	oDesktop =   createUnoService("com.sun.star.frame.Desktop")
	sSourceFile = "/.openoffice.org2/user/template/Quittung-Ferienwohnung.ots"
	myFileProp(0).Name = "AsTemplate"
	myFileProp(0).Value = False
	oDocument = oDesktop.loadComponentFromURL( sSourceFile, "_blank", 0,myFileProp() )
end sub
Dieser Code erzeugt dann bei mir den folgenden Fehler:

"BASIC Laufzeitfehler
Es ist eine Exception aufgetreten
Type:com.sun.star.lang.illegalArgumentException
Message: URL seemsto bean unsupported one..

Wie geht es richtig?

mit Gruß
Werner

Nach oben