Aktuellen PageStyle herausfinden

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Aktuellen PageStyle herausfinden

Re: Aktuellen PageStyle herausfinden

von BluescreenX » Mo, 27.07.2009 16:03

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

Re: Aktuellen PageStyle herausfinden

von Charly » Mo, 27.07.2009 15:49

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

Re: Aktuellen PageStyle herausfinden

von BluescreenX » Mo, 27.07.2009 15:27

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. :)

Re: Aktuellen PageStyle herausfinden

von Charly » Mo, 27.07.2009 15:14

Hallo!

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

Gruß
Charly

Aktuellen PageStyle herausfinden

von BluescreenX » Mo, 27.07.2009 14:44

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

Nach oben