Aktuellen PageStyle herausfinden

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

Moderator: Moderatoren

BluescreenX
Beiträge: 8
Registriert: Mo, 12.01.2009 19:01

Aktuellen PageStyle herausfinden

Beitrag von BluescreenX »

Hallo,

ich hab ein Dokument mit insgesammt 5 Pagestyles. Ich hab einen kleinen Druckdialog geschrieben der automatisch die Layouts zuweißt und auf 2 verschiedenen Druckern ausdruckt. Allerdings funktioniert das ganze nicht so wie ich mir das vorstelle da ich den akteullen Pagestyle nicht herausbekomme sondern immer den ersten verwendeten. Der ist allerdings im Querformat. Ich brauche aber einen automatischen Druck im Hochformat.

Code: Alles auswählen

Sub setPaperOrientation(mode as String,optional sheet as Object)
	Dim template as Object
	
	' Vorlage Pagestyle auslesen
	template = getCurrentPageStyle()

	' Hochformat
	if mode = "LANDSCAPE" then
		template.isLandscape = true
		
	'QuerFormat
	elseif mode = "PORTRAIT" then
		template.isLandscape = false
	
	' Automatisch
	elseif mode = "AUTO" then
		if getLastRow(sheet) > 20 then
			template.isLandscape = false
		else
			template.isLandscape = true
		endif
	end if
end sub

Function getCurrentPageStyle()
	oPageStyles = oDoc.getStyleFamilies().getByName( "PageStyles" )
	for i = 0 to oPageStyles.Count - 1
	   oStyle = oPageStyles.getByIndex( i )
	   if oStyle.isInUse() then
	     getCurrentPageStyle = oStyle
	     exit function
	   end if
	next
end function
Hat da einer eine Idee?

Gruß
Bluescreen
Charly
*****
Beiträge: 450
Registriert: Di, 20.01.2004 13:14
Wohnort: München

Re: Aktuellen PageStyle herausfinden

Beitrag von Charly »

Hallo!

Vielleicht hilft folgender Link.
http://www.dannenhoefer.de/faqstarbasic ... rmitt.html

Gruß
Charly
BluescreenX
Beiträge: 8
Registriert: Mo, 12.01.2009 19:01

Re: Aktuellen PageStyle herausfinden

Beitrag von BluescreenX »

Code: Alles auswählen

Dim cursor,mySeitenformat as Object
	
cursor = oDoc.GetCurrentController.ViewCursor
mySeitenformat=cursor.PageDescName
Basic Laufzeitfehler
Eigenschaft oder Methode nicht gefunden

Ich habs auch mit getter probiert. Es liegt vermutlich daran das ich unter Calc drucken möchte.
Im Objekt CurrentController konnte ich den Style namen nicht finden. Wenn ich den habe, hab ich gewonnen. :)
Charly
*****
Beiträge: 450
Registriert: Di, 20.01.2004 13:14
Wohnort: München

Re: Aktuellen PageStyle herausfinden

Beitrag von Charly »

Hallo Bluescreen!

Der Link trifft nur auf Writer zu. Calc hat keinen Viewcursor.

Für Calc musst du für jedes Tabellenblatt die Seitenvorlage wie folgt ermitteln:

Code: Alles auswählen

Sub SeitenvorlageCalc
Doc = ThisComponent
Blatt = Doc.sheets(0)
Vorlage = Blatt.pagestyle
MSGBOX(Vorlage)
End Sub
Gruß
Charly
BluescreenX
Beiträge: 8
Registriert: Mo, 12.01.2009 19:01

Re: Aktuellen PageStyle herausfinden

Beitrag von BluescreenX »

Vielen Dank Charly du hast mir den Tag gerettet ;)
Hier meine Lösung für alle die auf dasselbe Problem stoßen.

Code: Alles auswählen

oPageStyles = oDoc.getStyleFamilies().getByName( "PageStyles" )
template = oPageStyles.getByName(sheet.PageStyle+"")
Gruß
Bluescreen
Antworten