Ширина диаграммы по ширине таблицы Ключевые слова: СКД, диаграмма, табличный документ, ширина, растянуть по ширине таблицы
Выкладываю решение по одному старому вопросу. Собрано из разрозненного опыта мистян и собственного. Работает!
Нужно было вывести таблицу переменной ширины (месяцы в колонках за произвольный период). А под ней диаграмму, чтобы её ширина была равна табличной. Работает такой алгоритм:
Вручную сформировать отчет, а перед выводом вставить следующий код
//Раздвигаем диаграмму по ширине отчета
ШиринаОтчета = 0;
НайденнаяОбласть = ДокументРезультат.НайтиТекст("Итого");
Если НайденнаяОбласть <> Неопределено Тогда
ТекущаяСтрока = НайденнаяОбласть.Верх - 1; //В итого могут быть объединенные ячейки, поэтому берем предыдущую
ОбластьИзмерения = ДокументРезультат.Область(ТекущаяСтрока, 1, ТекущаяСтрока, ДокументРезультат.ШиринаТаблицы);
Надпись = ДокументРезультат.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Текст);
//измерим ширину в миллиметрах
Надпись.Расположить(ОбластьИзмерения);
//Сообщить(Надпись.Ширина);
ШиринаОтчета = Надпись.Ширина;
ДокументРезультат.Рисунки.Удалить(Надпись);
Для каждого Рисунок из ДокументРезультат.Рисунки Цикл
Рисунок.Ширина = ШиринаОтчета - Рисунок.Лево;
КонецЦикла;
КонецЕсли;
ДокументРезультат.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
ДокументРезультат.АвтоМасштаб = Истина;
ДокументРезультат.Показать();
Пояснение к строчкам
НайденнаяОбласть = ДокументРезультат.НайтиТекст("Итого");
Если НайденнаяОбласть <> Неопределено Тогда
ТекущаяСтрока = НайденнаяОбласть.Верх - 1; //В итого могут быть объединенные ячейки, поэтому берем предыдущую
Поскольку, как правило, в отчетах есть строка итогов и, как правило, количество колонок в строке над итогами соответствует атрибуту табличного документа ШиринаТаблицы, то берем для расчета ширины строку над итогами.
Этот вопрос поднимался в следующих темах:
v8: Как изменить ширину диаграммы
v8: СКД: Как растянуть в ширину диаграмму в отчете?
v8: Отчет-диаграмма формируется через компоновкуданных.Как увеличить область диаграммы?
v8: Установка размера диаграммы
Но прорывом была тема
v8: Табличный документ. Разная высота строк в разных колонках.
Спасибо, Mitriy (http://forum.mista.ru/users.php?id=33170), за идею! |