![]() |
![]() |
|
УдалитьФорматСтрок в макете программно. Как? | ☑ | ||
---|---|---|---|---|
0
asady
07.12.07
✎
16:20
|
Други.
нужно удалить формат строк в макете (табличном документе) интерактивно делается на раз-два: выделяем строки + ПКМ + удалить формат строк. А как это делается программно? |
|||
1
yalex
07.12.07
✎
16:25
|
(0) В самом макете не получится наверное.
А вот при формировании ТабличногоДокумента, получаешь Область как ОбластьЯчеекТабличногоДокумента и сней пробуй |
|||
2
asady
07.12.07
✎
16:27
|
(1) что пробовать с ней?
уже все кажется поюзал получаю ТД, хожу по областьям, по ячейкам, меняю ширину, делаю новый формат строк (СоздатьФорматСтрок()), но сбросить не могу. Может кто знает? |
|||
3
yalex
07.12.07
✎
16:34
|
(2) Создавай новый. Делов то)
|
|||
4
asady
07.12.07
✎
16:36
|
(3) Тут такое дело.
макет создается построителем автоматом. в нем уже стоит особый формат строк. и вот его-то я и хочу сбросить. |
|||
5
Mitriy
07.12.07
✎
16:56
|
ОбластьЯчеекТабличногоДокумента (SpreadsheetDocumentRange)
Очистить (Clear) Синтаксис: Очистить(<Очищать текст>, <Очищать форматирование>, <Очищать рамки>) Параметры: <Очищать текст> (необязательный) Тип: Булево. Определяет необходимость очищения текста ячеек табличного документа. Истина - очищать текст, Ложь - не очищать текст. Значение по умолчанию: Истина <Очищать форматирование> (необязательный) Тип: Булево. Определяет необходимость очищения формата ячеек табличного документа. Истина - очищать формат, Ложь - не очищать формат. Значение по умолчанию: Ложь <Очищать рамки> (необязательный) Тип: Булево. Определяет необходимость удаления рамок ячеек области табличного документа. Истина - удалять рамки; Ложь - не удалять рамки. Значение по умолчанию: Ложь Описание: Очищает содержимое области. Пример: Область.Очистить(); // очищает текст области Область |
|||
6
asady
07.12.07
✎
16:59
|
(5) пробовал это - очищаеются форматы: шрифты и т.д.
но формат строк стоит - не сбрасывается. |
|||
7
asady
07.12.07
✎
17:01
|
(6)
именно Макет=ПостроительОтчета.Макет; ШапкаТаблицы=Макет.Области.Найти("ШапкаТаблицы"); Если ШапкаТаблицы<>неопределено Тогда ШапкаТаблицы.Очистить(Ложь,Истина,Ложь); // не то!!!!???? КонецЕсли; |
|||
8
Mitriy
07.12.07
✎
17:11
|
Макет=ПостроительОтчета.Макет;
ШапкаТаблицы=Макет.Области.Найти("ШапкаТаблицы"); Если ШапкаТаблицы<>неопределено Тогда ШапкаТаблицы.Очистить(Ложь,Истина,Ложь); // не то!!!!???? КонецЕсли; ПостроительОтчета.Макет = Макет; Пробовал добавить? |
|||
9
asady
07.12.07
✎
17:14
|
(8)
пишу Макет.показать() и вижу ТД с форматом строк :(((( |
|||
10
Mitriy
07.12.07
✎
17:41
|
Если работаешь с построителем, то там еще есть такое понятие, как макет оформления...
|
|||
11
Mitriy
07.12.07
✎
17:46
|
Вообще-то, у меня работает (на первую строчку обрати внимание):
ПостроительОтчета.Макет = Неопределено; Макет=ПостроительОтчета.Макет; ШапкаТаблицы=Макет.Области.Найти("ШапкаТаблицы"); Если ШапкаТаблицы<>неопределено Тогда ШапкаТаблицы.Очистить(Ложь,Истина,Ложь); // не то!!!!???? КонецЕсли; ПостроительОтчета.Макет = Макет; |
|||
12
Mitriy
07.12.07
✎
17:52
|
ПостроительОтчетаОтчет.Макет = Неопределено;
Макет = ПостроительОтчетаОтчет.Макет; ШапкаТаблицы=Макет.Области.Найти("ШапкаТаблицы"); ШапкаТаблицы.Очистить(0,1,0); ПостроительОтчетаОтчет.Макет = Макет; ПостроительОтчетаОтчет.Макет.Показать(); |
|||
13
asady
07.12.07
✎
18:05
|
(12) ну и что?
у меня тоже работает, но формат строк таким убразом сбросить не удается. ты видно сабж не понял.... есть форматы ячеек и формат строк (это когда ширина колонок в зависимости от области разная по документу) |
|||
14
Mitriy
07.12.07
✎
18:18
|
Если нужна ширина колонок, тогда еще проще:
Отдельная область: ШапкаТаблицы.ШиринаКолонки = 10; Весь табдок: Макет.Область().ШиринаКолонки = 10; Остальное все то же самое... |
|||
15
Mitriy
07.12.07
✎
18:25
|
и вообще, какие вопросы, такие и ответы 9)
|
|||
16
PR
07.12.07
✎
18:33
|
Мое мнение по сабжу, в 1С просто прозевали этот метод и не включили его в платформу.
|
|||
17
asady
07.12.07
✎
19:01
|
(14)
Пробовал и так... ты просто невнимательно сабж читал. при установке одинаковой ширины на весь док - формат строк не сбрасывается! потом пытаемся менять ширину колонок и убеждаемся в том, что колокни ведут себя по разному для различных областей (строк) |
|||
18
Mitriy
07.12.07
✎
19:12
|
Попробую подвести итоги того, что получилось у меня 9)
В принципе все это разруливается следующим: Задать ширину колонок: Область.ШиринаКолонки = Сколько-то; Если нужно вернуться к ширине колонок, которая была задана изначально, тогда: Область.СоздатьФорматСтрок(); (при работе с макетом бесполезна, потому что там ширина колонок уже изначальная) Очистить форматы: Область.Очистить(0,1,0); Автоматически установить высоту строк (после очистки формата): Область.АвтоВысотаСтроки = Истина; Итого получается (если с макетом): ПостроительОтчета.Макет = Неопределено; Макет = ПостроительОтчета.Макет; Область = Макет.Область(); Область.Очистить(0,1,0); Область.ШиринаКолонки = 10; Область.АвтоВысотаСтроки = Истина; ПостроительОтчетаОтчет.Макет = Макет; ПостроительОтчетаОтчет.Макет.Показать(); //вижу макет безо всяких форматов и переносов строк ПостроительОтчета.Вывести(ЭлементыФормы.ПолеТабличногоДокумента); //вижу сам отчет тоже без форматов и переносов Далее попробовал менять ширину колонок, все работает нормально, но, после того, как поигрался с шириной сделал следующее: ЭлементыФормы.ПолеТабличногоДокумента.Область().СоздатьФорматСтрок(); Все вернулось к первоначальному результату... Я подозреваю, что ты зацикливаешься на макете (выводишь его и в нем меняешь ширину колонок). Лучше испытывать результат, оно как-то надежнее 9) |
|||
19
PR
07.12.07
✎
19:36
|
(18) Ты сказал чушь, читай (17)
|
|||
20
asady
07.12.07
✎
20:01
|
(18) еще раз повторю (для тех кто в танке) -
ПостроительОтчета.Макет = Неопределено; Макет = ПостроительОтчета.Макет; Область = Макет.Область(); Область.Очистить(0,1,0); Область.ШиринаКолонки = 10; Область.АвтоВысотаСтроки = Истина; ПостроительОтчета.Макет = Макет; ПостроительОтчета.Макет.Показать(); ПостроительОтчета.Вывести(ЭлементыФормы.ПолеТабличногоДокумента); не работает!!!!! формат строк остается!!!! при одинаковой ширине колонок формат строк сохраняется. у тебя наверное построитель другой :)))) ВЫБРАТЬ ВложенныйЗапрос.ИмяПоказателя , ВложенныйЗапрос.Показатель1, ВложенныйЗапрос.Показатель2 ИЗ (ВЫБРАТЬ &Ссылка00011 КАК ИмяПоказателя, 0 КАК Показатель1, Остатки.СуммаОстатокДт КАК Показатель2 ИЗ РегистрБухгалтерии.Хозрасчетный.Остатки(&КонПериода, Счет В ИЕРАРХИИ (&Счет00011N1), ,Организация=&Организация) КАК Остатки ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ &Ссылка00006, Остатки.СуммаОстатокДт, 0 ИЗ РегистрБухгалтерии.Хозрасчетный.Остатки(&НачПериода, Счет В ИЕРАРХИИ (&Счет00006N1), ,Организация=&Организация) КАК Остатки ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ &Ссылка00006, 0, Остатки.СуммаОстатокДт ИЗ РегистрБухгалтерии.Хозрасчетный.Остатки(&КонПериода, Счет В ИЕРАРХИИ (&Счет00006N2), ,Организация=&Организация) КАК Остатки ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ &Ссылка00009, 0, 0)КАК ВложенныйЗапрос ИТОГИ СУММА(Показатель1), СУММА(Показатель2) ПО ИмяПоказателя ИЕРАРХИЯ Такой Запрос через построитель (Одно измерение, два показателя) выводит всегда с форматом строк в областях ШапкаТаблицы ИмяПоказателя ИмяПоказателяИерархия Детали ПодвалТаблицы и сбросить программно этот формат строк не удалось. :(((( |
|||
21
PR
07.12.07
✎
20:19
|
Программно сбросить формат строк получится только через копирование макета.
То есть берем новый макет и в него по очереди копируем из старого все области с разными форматами строк и меняем ширину колонок. |
|||
22
asady
07.12.07
✎
20:24
|
(21) пробую и так.
но вот в чем проблема (новые грабли!) при копировании области слетают параметры области макета. вот пример: ПостроительОтчета.Макет = Неопределено; Макет=ПолучитьМакет("Макет"); колстрок=Макет.ВысотаТаблицы; тКол=Макет.Область("C"+тОбласть.Лево); Для каждого пок из тОтчет.Показатели Цикл Если пок.НомерСтроки=1 Тогда Продолжить; КонецЕсли; тПр=Макет.Область("C"+(тОбласть.Лево+пок.НомерСтроки-1)); Макет.ВставитьОбласть(тКол,тПр); КонецЦикла; в ТД копируются нужные мне колонки, но параметры в них заменяются текстом. то бишь был параметр "Показатель1" стал текст Показатель1. Тьфу блин зараза! |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |