Draw и таблица

Автор kinnder, 23 марта 2017, 10:15

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

kinnder

Добрый день!
В Draw нужно нарисовать таблицу. Для отрисовки таблицы использую макрос из книги Питоньяка. И есть вот какой вопрос.
После выполнения данного макроса на листе появляется таблица. С заливкой. Как изменить цвет заливки у данного объекта?Можно ли это сделать
для объекта TableShape?


Sub DrawTableShape
Dim oSize as New com.sun.star.awt.Size
Dim oPos as New com.sun.star.awt.Point
Dim oPage
Dim oTable
Dim oCell
Dim oDrawDoc ' Temporary draw document.
oDrawDoc = ThisComponent
' Set a size and table position.
oSize.Width = 6000 : oSize.Height = 6100
oPos.X = 6000 : oPos.Y = 5000
' Get the first draw page
oPage = oDrawDoc.DrawPages.getByIndex(0)
oTable = oDrawDoc.createInstance("com.sun.star.drawing.TableShape")
oPage.add(oTable)
oTable.Model.Rows.InsertByIndex(1,4)
oTable.Model.Columns.InsertByIndex(1,4)
oTable.setSize(oSize)
oTable.setPosition(oPos)
'получаем стиль объекта
oStyle=oTable.Style
'пытаемся изменить цвет заливки
oStyle.FillColor = 16711680
oCell = oTable.Model.getCellByPosition(0,1)
oCell.getText().setString("X")

End Sub


При этом если использовать OCell.FillColor = 16711680 то цвет конкретной ячейки изменится.
Или для формирования таблицы в Draw лучше использовать другой объект?Если да, то какой?

economist

Я тоже как-то хотел рисовать в Draw всё макросами (точнее в Impress, но это одно и то же приложение).

Оказалось это геморрой размером с кулак и в десятки(!) раз быстрее нарисовать готовую табличку в Calc/Excel, затем вставить её в Draw/Impress как OLE-связь или экспортировать в граф. файл и вставить (со связью/без), чем вырисоваться километрами кода все хотелки прекрасненького. Короче, геморрой...  Даже просто из Calc экспортировать готовый рисунок макросом проще, чем "рисовать"  макросом в Draw. Подумайте хорошо.   
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...

kinnder

Да на самом деле все еще веселее. Проект пишется на С# . Часть кода удалось по крупицам собрать из интернета и примеров в SDK. А часть сначала приходится делать методом изучения макросов в самом Draw. Но даже с макросами проблемы возникают.

Yakov

#3
Посмотрите эту тему:
http://forumooo.ru/index.php/topic,2981.15.html

Проблема в том, что API по таблицам в Draw/Impress был не документирован (по крайней мере на момент написания предыдущего поста).