не могу построить график

Автор BORIS, 23 августа 2018, 12:46

0 Пользователи и 1 гость просматривают эту тему.

BORIS

Добрый день!
не могу построить график прошу помощи!


' в диапазоне "А2:А5"- наименование товара
' в диапазоне "B2:M5" - цена товара
' планирую построить график, по оси У - цена товара, по оси Х -  месяца с январь по декабрь
' не отображается: линейная диаграмма, месяца по оси Х
' вопросы: как исправить код и как добавить значения цены товара в точках на графике

файл прикрепил

Добрый день, поменять местами строки и столбцы мне понятно, необходимо внести изменения в коде, заранее спасибо

rami

Чтобы получить график как вы хотите, нужно в исходных данных поменять местами строки и столбцы. Или делать это в коде?

Хотите получить такой результат? :

bigor

При "ручном" построении, можно выбрать где данные в столбцах или строках.
Неужели нельзя его программно установить?
Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут

BORIS

Добрый день, поменять местами строки и столбцы мне понятно, необходимо внести изменения в коде,
не могу программно выбрать данные в строках
заранее спасибо

rami

Bigor, можно программно установить, так я и спрашиваю у BORIS как будем делать?

Диаграмма — сложный объект, при создании очень много параметров устанавливаются по умолчанию в расчёте, что пользователь будет формировать исходные данные "как надо" (даты-время в заголовках строк, а категории в заголовках столбцов), но если нужно иначе, то прийдётся изменить параметр по умолчанию ("данные в столбцах") на "данные в строках".
Sub Example
Dim oSheet, oCharts, oChart, cTitle$
Dim oRect As New com.sun.star.awt.Rectangle
Dim oRangeAddress(0) As New com.sun.star.table.CellRangeAddress

Doc = ThisComponent
oSheet = Doc.Sheets(0)
oCharts = oSheet.Charts
cTitle = "график"
'Диапазон данных
oRangeAddress(0).Sheet = 0
oRangeAddress(0).StartColumn = 0
oRangeAddress(0).EndColumn = 12
oRangeAddress(0).StartRow = 0
oRangeAddress(0).EndRow = 4

oCharts.addNewByName(cTitle, oRect, oRangeAddress(), TRUE, TRUE)
oChart = oCharts.getByName(cTitle).embeddedObject
oChart.Diagram = oChart.createInstance("com.sun.star.chart.LineDiagram")
oChart.Diagram.DataRowSource=com.sun.star.chart.ChartDataRowSource.ROWS  'устанавливает данные в строках
oChart.HasMainTitle = True
oChart.Title.String = cTitle
End Sub

BORIS

Доброе день,

rami, большое спасибо за помощь, все сразу пошло прекрасно!

oChart.Diagram.DataRowSource=com.sun.star.chart.ChartDataRowSource.ROWS  - просто волшебная строка...

BORIS

#6
' устанавливаем значения в точках на графике

Props = oChart.Diagram.getDataRowProperties(0)
Props.DataCaption = com.sun.star.chart.ChartDataCaption.VALUE
Dim oLocale As New com.sun.star.lang.Locale
Props.PercentageNumberFormat = ThisComponent.getNumberFormats().queryKey("##,##0.00", oLocale, True)