Zdravím,
vytvořit graf už se mi podařilo, dokonce i popisky ke "sloupcům" jsem k nim vložil, ale potřeboval bych je ještě makrem naformátovat, a nemůžu se dopátrat ničeho nic.
Moje makro:
Sub grafy
Dim Doc As Object
Dim Charts As Object
Dim Chart as Object
Dim Rect As New com.sun.star.awt.Rectangle
Dim RangeAddress(0) As New com.sun.star.table.CellRangeAddress
Doc = ThisComponent
Dim list_vystupni As Object
list_vystupni = Doc.sheets.getByName("stat_likvidace")
Dim jmeno(10) as String
Dim title(10) as string
Dim subtitle(10) as string
jmeno(0)= "graf0"
jmeno(1)= "graf1"
jmeno(2)= "graf2"
jmeno(3)= "graf3"
jmeno(4)= "graf4"
title(0)= "graf0"
title(1)= "graf1"
title(2)= "graf2"
title(3)= "graf3"
title(4)= "graf4"
subtitle(0)= "ggraf0"
subtitle(1)= "ggraf1"
subtitle(2)= "ggraf2"
subtitle(3)= "ggraf3"
subtitle(4)= "ggraf4"
Rect.X = 8000
Rect.Y = 1000
Rect.Width = 15000
Rect.Height = 15000
RangeAddress(0).Sheet = 4 rem TODO: nastavit byname
RangeAddress(0).StartColumn = 0
RangeAddress(0).StartRow = 79
RangeAddress(0).EndColumn = 1
RangeAddress(0).EndRow = 85
dify = 20000
offset = 50
for i=0 to list_vystupni.getcellbyposition(3, 29).value -1 rem v buňce je počet grafů
Charts = Doc.Sheets(4).Charts rem TODO: nastavit byname
if Charts.HasByName(jmeno(i)) Then
Charts.RemoveByname(jmeno(i))
end if
Charts.addNewByName(jmeno(i), Rect, RangeAddress(), True, True)
Chart = Charts.getByName(jmeno(i)).EmbeddedObject
Chart.Diagram = Chart.createInstance("com.sun.star.chart.PieDiagram") rem nastavení typu grafu
Chart.HasMainTitle = True
Chart.Title.String = title(i)
Chart.HasSubTitle = True
Chart.Subtitle.String = subtitle(i)
Chart.HasLegend = True
Chart.Legend.Alignment = com.sun.star.chart.ChartLegendPosition.BOTTOM
Chart.Legend.FillStyle = com.sun.star.drawing.FillStyle.SOLID
Chart.Legend.FillColor = RGB(210, 210, 210)
Chart.Legend.CharHeight = 12
Chart.diagram.xaxis.DisplayLabels = true
Chart.diagram.yaxis.DisplayLabels = true
rem chart.diagram.setPropertyValue("DataCaption",7) rem pokus
chart.diagram.datacaption = com.sun.star.chart.ChartDataCaption.VALUE rem ekvivalent předchozího řádku
chart.diagram.datacaption = chart.diagram.datacaption +
com.sun.star.chart.ChartDataCaption.PERCENT
rem chart.diagram.Datacaption("separator",0) rem pokus
chart.diagram.xaxis.charheight = 20
rem chart.diagram.datacaption.setPropertyvalue("charheight",12) rem pokus
rem chart.diagram.DataCaption.setPropertyValue("charheight", 12) rem pokus
RangeAddress(0).StartRow = RangeAddress(0).StartRow +offset
RangeAddress(0).EndRow = RangeAddress(0).EndRow +offset
Rect.Y = Rect.Y + dify
next i
End Sub
Problém tkví, že se mi sice podařilo přidat popisky dat nastavením:
chart.diagram.setPropertyValue("DataCaption",7)
ale po vytvoření jsou tak malé, že je potřebuji makrem naformátovat.
Ručně to je: Dvojklik na graf, pravým ->Format Data labels, karta Data labels ->nastavit separator na "new line"
karta Font -> nastavit size na 12
Nejsem stavu dohledat to v dokumentaci zde: http://wiki.services.openoffice.org/wik … _of_Charts
ani zde: http://api.openoffice.org/docs/common/r … le-ix.html
Díky za každou radu.