|
Изменение ширины колонки не всегда работает |
☑ |
0
supervk
04.12.12
✎
13:10
|
Пытаюсь задать ширину колонки с помощью ТекущаяОбласть.ШиринаКолонки
Работает (ширина меняется), если делаю вот так:
ТабДокумент = Новый ТабличныйДокумент;
ОбластьИзображение = Макет.ПолучитьОбласть("Итого|КолонкаДляШирины");
ОбластьИзображение.ТекущаяОбласть.ШиринаКолонки = 200;
ТабДокумент.Присоединить(ОбластьИзображение);
А если перед этим пытаюсь вывести ещё какие-нибудь колонки, то ширина остаётся такой, какая она была в макете.
Т.е. не работает (ширина не меняется), если делаю вот так:
ТабДокумент = Новый ТабличныйДокумент;
ОбластьНомера = Макет.ПолучитьОбласть("Итого|НомерСтроки");
ТабДокумент.Вывести(ОбластьНомера);
ОбластьИзображение = Макет.ПолучитьОбласть("Итого|КолонкаДляШирины");
ОбластьИзображение.ТекущаяОбласть.ШиринаКолонки = 200;
ТабДокумент.Присоединить(ОбластьИзображение);
Что я делаю не так? Как сделать, чтобы и во втором случае ширина колонки менялась?
|
|
1
kosts
04.12.12
✎
13:11
|
(0) Изменить ширину непосредственно в ТабДокумент
|
|
2
supervk
04.12.12
✎
13:19
|
(1) Это упрощённый пример, в оригинале программно добавляются колонки разной ширины, поэтому желательно менять их через изменение колонки в области. Это же должно работать?
|
|
3
kosts
04.12.12
✎
13:27
|
Задавай ширины не в конце когда итог выводишь, а в начале, когда шапку выводишь.
|
|
4
kosts
04.12.12
✎
13:28
|
И тут проверь что это за текущая область ОбластьИзображение.ТекущаяОбласть
попробуй использовать ОбластьИзображение.Область(<адрес>)
|
|
5
supervk
04.12.12
✎
13:31
|
Помогла очистка области изображения перед установкой ширины:
ОбластьИзображение.Очистить();
Т.е. вот так работает:
ТабДокумент = Новый ТабличныйДокумент;
ОбластьНомера = Макет.ПолучитьОбласть("Итого|НомерСтроки");
ТабДокумент.Вывести(ОбластьНомера);
ОбластьИзображение = Макет.ПолучитьОбласть("Итого|КолонкаДляШирины");
ОбластьИзображение.Очистить();
ОбластьИзображение.ТекущаяОбласть.ШиринаКолонки = 200;
ТабДокумент.Присоединить(ОбластьИзображение);
:-\
|
|
6
kosts
04.12.12
✎
13:36
|
(5)
ТабличныйДокумент (SpreadsheetDocument)
ТекущаяОбласть (CurrentArea)
Описание:
Тип: ОбластьЯчеекТабличногоДокумента. Содержит текущую активную область
Неправильно используешь ТекущаяОбласть, но видимо костыль помог.
|
|
7
supervk
05.12.12
✎
04:52
|
Сделал
ОбластьКолонкаИзображение = Макет.Область("КолонкаДляШирины");
ОбластьКолонкаИзображение.ШиринаКолонки = 200;
Так, наверное, правильно. И работает без очистки области.
|
|