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********

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