Seite 1 von 1

[gelöst] Vorlage über Button ändern

Verfasst: Fr, 15.09.2006 23:44
von Schwedenbitter
Ich arbeite viel mit verschiedenen Vorlagen und möchte das gern vereinfachen. Bislang wähle ich die Vorlagen immer so aus, dass ich im Menü "Datei" auf "Neu" und dann auf "Vorlagen und Dokumente" klicke. Anschließend wähle ich meine Vorlage aus. Immerhin merkt sich der Writer schon, in welchem Vorlagenverzeichnis ich beim letzten Mal war. Trotzdem hätte ich es gern noch komfortabler. Hierzu meine Frage:

Gibt es eine Möglichkeit, das Laden einer neuen Vorlage über ein Button in das Menü aufzunehmen?

Ich habe schon darüber nachgedacht, es mit der Methode zum Öffnen zu versuchen, die in der OpenOffice.org Basic FAQ vorgeschlagen wird. Allerdings habe ich es nicht ausprobiert und weiß nicht, ob man das auch auf Vorlagen anwenden kann. Außerdem wüsste ich gern, ob es für Basic auch eine Variable gibt, mit der man gleich das Standardverzeichnis für Vorlagen in OpenOffice anspringen kann. Schließlich hätte ich gern, dass sich meine dann gerade verwendete Vorlage in Luft auflöst, weil ich diese nicht mehr brauche.

Ich weiß das sind gleich drei Wünsche auf einmal. Aber früher gabe es für sowas Kinderüber******** :D

Verfasst: Sa, 16.09.2006 00:15
von komma4
ich arbeite mit einer Schaltfläche, die -mit dem richtigen Makro verknüpft- mir ein neues Dokument nach meiner Vorlage erstellt:

Code: Alles auswählen

Sub newCalc

Dim FileProperties(0) As New com.sun.star.beans.PropertyValue
FileProperties(0).Name = "AsTemplate"
FileProperties(0).Value = true

url = ConvertToURL("/zentrale/firma/vorlagen/webvorlage/newCalc.stc")
oNewCalc = StarDesktop.loadComponentFromURL(url,"_blank", 0, FileProperties())

oDocInfo = oNewCalc.DocumentInfo

oDocInfo.Title = "Calc Vorlage"

' oDocInfo.Theme = "?"

sString = "OpenOffice.org Calc Vorlage"
oDocInfo.Keywords = sString

' common part
SUB_setDesc(oDocInfo)


' erlaubt das Schliessen ohne Speichern
oNewCalc.Modified = FALSE 

End Sub


Sub SUB_setDesc(oDocInfo as Object)
sString = "(c) 2006 Winfried Rohr " & CHR(10) & _
	"Erstellt für XXXX" & CHR(10) & _
	"OpenOffice.org 2.0" & CHR(10)
oDocInfo.Description = sString

End Sub
Hilft Dir das weiter?

Verfasst: Do, 21.09.2006 22:58
von Schwedenbitter
Recht herzlichen Dank komma4! Ich habe den Quelltext gekürzt und es funktioniert:

Code: Alles auswählen

Sub New_Protokoll
   Dim FileProperties(0) As New com.sun.star.beans.PropertyValue 
   FileProperties(0).Name = "AsTemplate" 
   FileProperties(0).Value = true 
   url = ConvertToURL("C:\Dokumente und Einstellungen\Administrator\Anwendungsdaten\OpenOffice.org2\user\template\Test.ott") 
   oNewDoc = StarDesktop.loadComponentFromURL(url,"_blank", 0, FileProperties()) 
   oNewDoc.Modified = FALSE 
End Sub
Allerdings suche ich noch immer nach einer Möglichkeit, das Verzeichnis für das jeweilige Benutzerprofil als Variable zu übergeben. Unter Windows selbst geht das mit %USERPROFILE% und im Hilfetext habe ich den Ausdruck {user} entdeckt. Ich habe auch schon alles möglich ausprobiert. Bis jetzt muss ich nämlich für jede einzelne Vorlage auf den Rechnern mit jeweils anderen Benutzern die Vorlagen von Hand anpassen. Das ist sehr mühsehlig und wenn eine Änderung der Vorlage nötig wird, muss ich wieder alles anpassen.
Ich habe schon im Forum gesucht aber ich habe nichts gefunden :(

Hat jemand eine Idee?

Verfasst: Do, 21.09.2006 23:30
von Stephan
im Hilfetext habe ich den Ausdruck {user} entdeckt.
meinst Du sowas:

Code: Alles auswählen

Sub Main
x = CreateUnoService("com.sun.star.util.PathSubstitution") 
msgbox x.substituteVariables("$(user)", true) 
End Sub


Gruß
Stephan

Verfasst: Fr, 22.09.2006 23:02
von Schwedenbitter
meinst Du sowas:
Genau.

Ich habe aber wieder ein Problem entdeckt! Leider funktionieren in dem mittels Makro erstellten Dokument keine Makros mehr :(

Verfasst: Fr, 22.09.2006 23:22
von Stephan
Ich habe aber wieder ein Problem entdeckt! Leider funktionieren in dem mittels Makro erstellten Dokument keine Makros mehr
ein Problem das schon mehrfach Tjema hier im Forum war, beispielsweise Hier:
viewtopic.php?t=8290&highlight=macroexecmode



Gruß
Stephan