CallDialog ("Startmakro") in Vorlage nicht möglich?

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Benutzeravatar
red2sign
**
Beiträge: 47
Registriert: Mo, 28.07.2008 13:53

CallDialog ("Startmakro") in Vorlage nicht möglich?

Beitrag von red2sign »

Guten Morgen

Ich habe eine writer-Datei, in der das Makro "CallDialog" beim starten den Dialog aufruft.
Wenn ich die Datei aber als Vorlage speichere, muss ich den Dialog manuell starten.
Ist das normal?

Code: Alles auswählen

 
Public MyDlg as Object
Sub CallDialog
  
  DialogLibraries.LoadLibrary( "Standard" )
  MyDlg = CreateUnoDialog( DialogLibraries.Standard.Dialog1 )
  MyDlg.Model.Step=1  
  MyDlg.Execute()
  MyDlg.Dispose()

End Sub
red2sign verwendet WinXP Prof. und OO3 [Developers Snapshot (BEB300m3) Build: 9328]
Benutzeravatar
red2sign
**
Beiträge: 47
Registriert: Mo, 28.07.2008 13:53

Re: CallDialog ("Startmakro") in Vorlage nicht möglich?

Beitrag von red2sign »

Hi

Habs mal ausprobiert, aber ohne Effekt...

Wie regelt ihr das bei euch?
red2sign verwendet WinXP Prof. und OO3 [Developers Snapshot (BEB300m3) Build: 9328]
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Re: CallDialog ("Startmakro") in Vorlage nicht möglich?

Beitrag von turtle47 »

Hi red2sign,

folgendes funktioniert bei mir:

Das Makro auf "Dokument erzeugen" gelegt.

Dann das *.ott Dokument als Vorlage abgelegt.
Aufruf über Menue > Datei > Neu > Vorlagen und Dokumente > Dialog öffnet sich. :lol:

Oder aber das *.ott Dokument als Standardvorlage definiert > Dialog öffnet sich beim Starten von Writer. :lol:


Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!

Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Benutzeravatar
red2sign
**
Beiträge: 47
Registriert: Mo, 28.07.2008 13:53

Re: CallDialog ("Startmakro") in Vorlage nicht möglich?

Beitrag von red2sign »

Es scheint mir ein anderes Problem zu sein, denn wenn ich in der Vorlagedatei das Startmakro manuell anstarte (durch eine Symbolverknüpfung), erscheint der Dialog auch nicht.

Muss man Dialoge in Vorlagen anders ansprechen / anders erzeugen?

:?
red2sign verwendet WinXP Prof. und OO3 [Developers Snapshot (BEB300m3) Build: 9328]
Benutzeravatar
red2sign
**
Beiträge: 47
Registriert: Mo, 28.07.2008 13:53

Re: CallDialog ("Startmakro") in Vorlage nicht möglich?

Beitrag von red2sign »

Hi!
Du mußt bei der LoadComponentFromURL-Methode einen der Parameter:
http://api.openoffice.org/docs/common/r ... cMode.html

übergeben.
Also meinethalben:

.Name = "MacroExecutionMode"
.Value = "com.sun.star.document.MacroExecMode.ALWAYS_EXECUTE_NO_WARN [/[uote]
Was wird mit "LoadComponentFromURL-Methode" gemeint?
Einen solchen habe ich nicht... ??? :(
red2sign verwendet WinXP Prof. und OO3 [Developers Snapshot (BEB300m3) Build: 9328]
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Re: CallDialog ("Startmakro") in Vorlage nicht möglich?

Beitrag von turtle47 »

Hallo,
red2sign hat geschrieben:.Name = "MacroExecutionMode"
.Value = "com.sun.star.document.MacroExecMode.ALWAYS_EXECUTE_NO_WARN
hat damals bei mir auch nicht funktioniert.

In meiner Extension "LastSession" habe ich das dann wie folgt gelöst:

Code: Alles auswählen

Dim mArgs(3) as New com.sun.star.beans.PropertyValue
	mArgs(0).Name = "ReadOnly"
	mArgs(0).Value = False
	mArgs(1).Name = "MacroExecutionMode"
	mArgs(1).Value = 4
	mArgs(2).Name = "AsTemplate"
	mArgs(2).Value = false
	mArgs(3).Name = "Wait"
	mArgs(3).Value = true
	oDocument = ThisComponent.getCurrentController.GetFrame.loadComponentFromURL(sURL,"_blank",0, mArgs())
Viel Erfolg.

Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!

Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Benutzeravatar
red2sign
**
Beiträge: 47
Registriert: Mo, 28.07.2008 13:53

Re: CallDialog ("Startmakro") in Vorlage nicht möglich?

Beitrag von red2sign »

Hi Jürgen,

deinen Code dann also in mein Startmakro zusätzlich eintragen?

Thx :)
red2sign verwendet WinXP Prof. und OO3 [Developers Snapshot (BEB300m3) Build: 9328]
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Re: CallDialog ("Startmakro") in Vorlage nicht möglich?

Beitrag von turtle47 »

Hi,

ich habe mich heute Morgen auf die Schnelle dazu hinreissen lassen Dir obigen Code zu posten.
Dieser Code ist aber nur dann einzusetzen, wenn man aus einem Makro ein anderes Dokument mit Makroinhalt aufruft.
red2sign hat geschrieben:Was wird mit "LoadComponentFromURL-Methode" gemeint?
Einen solchen habe ich nicht... ??? :(
Eben drumm.

Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!

Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Benutzeravatar
red2sign
**
Beiträge: 47
Registriert: Mo, 28.07.2008 13:53

Re: CallDialog ("Startmakro") in Vorlage nicht möglich?

Beitrag von red2sign »

Achso, trotzdem Danke mal.

Wo füge ich dann den folgenden Code ein?

Code: Alles auswählen

.Name = "MacroExecutionMode" 
.Value = "com.sun.star.document.MacroExecMode.ALWAYS_EXECUTE_NO_WARN [/[uote]
Vor allem sind vorne ja zwei Punkte, da muss ja sicher was bestimmtes davor stehen?

Grüße! :)
red2sign verwendet WinXP Prof. und OO3 [Developers Snapshot (BEB300m3) Build: 9328]
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: CallDialog ("Startmakro") in Vorlage nicht möglich?

Beitrag von Stephan »

Was wird mit "LoadComponentFromURL-Methode" gemeint?
die gleichnamige Methode:
http://api.openoffice.org/docs/common/r ... entFromURL
Vor allem sind vorne ja zwei Punkte, da muss ja sicher was bestimmtes davor stehen?
die entsprechende Variable des Parameterarrays, meinethalben:
viewtopic.php?t=3023

oder schreibe es halt mit With:

Code: Alles auswählen

With Arg(0)
	.Name = "MacroExecutionMode"
	.Value = com.sun.star.document.MacroExecMode.ALWAYS_EXECUTE_NO_WARN
End With

(Ob das alles Dein Poblem löst weiß ich hingegen nicht, meine Frage beantwortest Du nicht zu meiner Vermutung antwortest Du mit 2 Gegenfragen, so das ich nicht weiß wo das Problem konkret liegt, mutmaßlich jedoch nicht da wo ich es annahm, also im Laden der DAtei mittels Makro und späterem Ausführen von makros aus der geladenen Datei.)



Gruß
Stephan
Antworten