mit Makro den Namen der Absatzvorlage auslesen

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

Moderator: Moderatoren

kvogelsa
***
Beiträge: 55
Registriert: Do, 25.11.2004 18:20

mit Makro den Namen der Absatzvorlage auslesen

Beitrag von kvogelsa »

Moin,

ich habe noch ein kleines Problem, ich habe mich auch schon totgegoogelt (unter anderem diese Seite gefunden:
http://www.dannenhoefer.de/faqstarbasic ... l#Zweig248)

Ich möchte für eine if-Abfrage den Namen der Formatvorlage desjenigen Absatzes herausfinden, in dem der Cursor gerade ist:

Code: Alles auswählen

if
Name_der_aktuellen_Vorlage = "Frist"
then
trink.noch.ein.bier
else
geh.nach.hause
endif
Was muss statt Name_der_Vorlage da stehen? Versuche, die Hilfe nach GetParaStyle oä zu durchforsten, waren erfolglos.

Danke für Eure Hilfe
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: mit Makro den Namen der Absatzvorlage auslesen

Beitrag von komma4 »

Code: Alles auswählen

oVC = ThisComponent.getCurrentController.getViewCursor()
print oVC.ParaStyleName
Google mal nach X-Ray Tool und installiere es.
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
kvogelsa
***
Beiträge: 55
Registriert: Do, 25.11.2004 18:20

Re: mit Makro den Namen der Absatzvorlage auslesen

Beitrag von kvogelsa »

Danke, das war es :lol:
kvogelsa
***
Beiträge: 55
Registriert: Do, 25.11.2004 18:20

Re: mit Makro den Namen der Absatzvorlage auslesen

Beitrag von kvogelsa »

So, das fertige Makro möchte ich Euch natürlich nicht vorenthalten:

Code: Alles auswählen

sub Fristsetzen
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

oVC = ThisComponent.getCurrentController.getViewCursor()
If oVC.ParaStyleName = "Frist"  then

rem Datum ändern
rem altes Datum entfernen ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:WordLeftSel", "", 0, Array())
dispatcher.executeDispatch(document, ".uno:WordLeftSel", "", 0, Array())
dispatcher.executeDispatch(document, ".uno:WordLeftSel", "", 0, Array())
dispatcher.executeDispatch(document, ".uno:WordLeftSel", "", 0, Array())
dispatcher.executeDispatch(document, ".uno:WordLeftSel", "", 0, Array())
rem neues setzen----------------------------------------------------------------------
Dim oFristDate as String
Dim oWD as String
Dim oformerFristDate as String
oformerFristDate = oVC.string
'oFristDate = DateAdd("d", 7, oformerFristDate)
'oWD = WeekDay(oformerFristDate)

oFristDate = DateAdd("ww", 1, oformerFristDate)
'If oWD = 6 then oFristDate = DateAdd("d", 5, oformerFristDate)
'If oWD = 2 then oFristDate = DateAdd("d", 2, oformerFristDate)

dim args7(0) as new com.sun.star.beans.PropertyValue
args7(0).Name = "Text"
args7(0).Value = oFristDate

dispatcher.executeDispatch(document, ".uno:InsertText", "", 0, args7())




rem außerhalb der Absatzvorlage Frist
else
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:InsertPara", "", 0, Array())

rem ----------------------------------------------------------------------
dim args2(1) as new com.sun.star.beans.PropertyValue
args2(0).Name = "Template"
args2(0).Value = "Frist"
args2(1).Name = "Family"
args2(1).Value = 2

dispatcher.executeDispatch(document, ".uno:StyleApply", "", 0, args2())

rem ----------------------------------------------------------------------

oFristDate = DateAdd("ww", 1, Date)
'oWD = WeekDay(oFristDate)
'If oWD = 7 then oFristDate = DateAdd("d", -1, oFristDate)
'If oWD = 1 then oFristDate = DateAdd("d", 1, oFristDate)
dim args3(0) as new com.sun.star.beans.PropertyValue
args3(0).Name = "Text"
args3(0).Value = oFristDate

dispatcher.executeDispatch(document, ".uno:InsertText", "", 0, args3())

endif

end sub

Antworten