Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
94
Добавлен:
11.05.2015
Размер:
616.76 Кб
Скачать
    1. Данные диаграммы (Chart data)

Не беспокойтесь об этой теме... Я бы не упоминал об этом, если бы не хотел что-то сделать с диаграммами.??

ARRAY getColumnDescriptions ( void )

ARRAY getRowDescriptions ( void )

VOID setColumnDescriptions ( ARRAY )

VOID setRowDescriptions ( ARRAY )

    1. Ширина столбцов

Разделитель столбца (column separator) указывает, где заканчивается столбец в процентах от ширины таблицы. Позиция конца столбца 5000 означает ширину 50% от ширины таблицы. Макрос в 8.7.1 устанавливает, что первый столбец заканчивается на 50% ширины текущей таблицы, а второй столбец на 70% от общей ширины таблицы.

Таблица поддерживает это свойство, только если все строки имеют одинаковую структуру. Другими словами, нельзя установить ширину столбца для всей таблицы, если таблица сложная. Замечу еще, что если данный разделитель столбца имеет значение флага IsVisible ("видимый") равный false, то он невидим. Невидимые разделители нельзя переместить, и они не могут быть перекрыты видимыми разделителями.

Листинг 8.7.1:Установить ширину столбца для первых двух столбцов.

Sub SetTwoColsWidths

Dim oTblColSeps 'Массив разделителей столбцов таблицы.

Dim oTable 'Первая текстовая таблица в документе.

'Печатаем

oTable = ThisComponent.getTextTables().getByIndex(0)

oTblColSeps = oTable.TableColumnSeparators

Rem Меняем позицию этих двух разделителей.

oTblColSeps(0).Position = 5000

oTblColSeps(1).Position = 7000

REM Нужно вернуть этот массив обратно в таблицу

oTable.TableColumnSeparators = oTblColSeps

End Sub

    1. Установка оптимальной ширины столбца

В документе OOo Calc можно установить свойство столбца OptimalWidth равным True. Это не так просто для текстовой таблицы с использованием API.

GUI поддерживает метод, который может установить ширину столбца на основе положения текстового курсора, или выделенной части текстовой таблицы. Этот метод доступен через диспетчер (dispatch). В моей книге объяснено, как выделять области в текстовой таблице, поэтому я не буду повторять это обсуждение здесь. Макрос в 8.8.1 выделяет текстовую таблицу целиком и затем устанавливает ширину столбца для всей текстовой таблицы.

Листинг 8.8.1:Установить для всей таблицы оптимальную ширину столбцов.

Sub SetTableOptimumWidth

Dim oDispHelper 'Dispatch helper

Dim oFrame 'Текущций фрейм окна (window frame)

Dim oTable 'Первая таблица в документе

Dim oVCursor 'Видмый курсор

Dim s$

oTable = ThisComponent.getTextTables().getByIndex(0)

ThisComponent.getCurrentController().select(oTable)

oVCursor = ThisComponent.getCurrentController().getViewCursor()

oVCursor.gotoEnd(True)

oVCursor.gotoEnd(True)

oFrame = ThisComponent.CurrentController.Frame

oDispHelper = createUnoService("com.sun.star.frame.DispatchHelper")

s$ = ".uno:SetOptimalColumnWidth"

oDispHelper.executeDispatch(oFrame, s, "", 0, Array())

End Sub

    1. Насколько широка текстовая таблица?

На первый взгляд, очень просто определить ширину текстовой таблицы; используем свойство Width. К сожалению, этого недостаточно. Чтобы определить реальную ширину текстовой таблицы,нужно исследовать свойства, показанные в 15.

Таблица 15:Свойства текстовой таблицы, связанные с шириной текстовой таблицы.

Свойство

Описание

LeftMargin

Левое поле таблицы

RightMargin

Правое поле таблицы

HoriOrient

Содержит горизонтальную ориентацию из группы констант com.sun.star.text.HoriOrientation

RelativeWidth

Определяет ширину таблицы относительно ее окружения.

IsWidthRelative

Определяет, действует ли относительная ширина.

Width

Иногда содержит абсолютную ширину таблицы

В моей книге (стр. 307) я упоминаю HoriOrient как управляющее значение для всех остальных свойств. Если свойство HoriOrient содержит значение по умолчанию FULL, то остальные свойства, по существу, бесполезны, включая свойство Width. В этом случае нужно определять ширину столбца, который содержит текстовую таблицу. У меня недостаточно времени объяснить это подробнее.

Соседние файлы в папке ooo