Исследуем модель объекта "Chart" вместе со знатоками...

Автор eeigor, 18 марта 2020, 11:39

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

eeigor

Тип диаграммы: XY (разброс)  'XY (Scatter)
Дано: числа в диапазоне от 1 до 10 (один ряд для примера).
Надо: получить доступ к точкам ряда для установки цвета при выделении некоторых данных в источнике (т. е. пользователь щелкает по значениям в источнике данных ряда, а соответствующие точки на диаграмме подсвечиваются заданным цветом насовсем; точек много и выискивать их на диаграмме весьма напряжно).

Знатоки, с помощью Xray дошёл до точки (:o) и её свойства "FillColor":

oDataPoint = ThisComponent.CurrentController.ActiveSheet.Charts(0).getEmbeddedObject() _
.getFirstDiagram().getCoordinateSystems()(0).getChartTypes(0)(0).DataSeries(0).getDataPointByIndex(3)
oDataPoint.FillColor = RGB(0, 0, 255)

Два раза споткнулся:
1) метод getCoordinateSystems() возвращает обычный массив (As com.sun.star.chart2.XCoordinateSystem)
2) метод getChartTypes(0) возвращает тоже массив (As com.sun.star.chart2.XChartType)
У массивов нет ни свойств, ни методов. Зачем они вообще нужны на пути?! Привык, как в MS Excel: коллекции и объекты внутри коллекций. У объектов - свойства, методы и события. Интуитивно понятная иерархия... Но здесь посложнее...

Может есть другой путь?
Коллекции типа "DataPoints" не нашёл (и свойства "Count", соответственно, тоже). А ведь "точки" перебирать надо!..

Кто-то может рассказать мне больше про модель объекта "Chart" ?
Заранее премного...
Ubuntu 18.04 LTS • LibreOffice 7.5.1.2 Community