|
Как объединить в группу область табличного документа программно? | ☑ | ||
---|---|---|---|---|
0
al_zzz
08.01.22
✎
15:07
|
Отчет строится и выводится с помощью построителя(выводится в таблицу одной командой). Далее хочу, чтоб для каждого склада ресурсы в колонках объединялись как на скриншоте:
http://snap.ashampoo.com/IRpaQhxPtsO1Q05h8iaDSorg8DmButS7gd8xkVH8jWYZwVcU8CYRQKypOFrezfCa Группировки как на скриншоте сделал в режиме предприятия выделив области ресурсов после первых двух и выбрав "Таблица"+"Группы"+"Объединить в группу" после чего выбрав "Вертикальная". Пытаюсь сделать то же самое программно для области: ЭлементыФормы.ПолеТабличногоДокументаРезультат.Область(СтрокаШапки2,к,Высота,(к+КолонокКСвёртке)).Сгруппировать(); Если задаю строки свёртки, то получаю ошибку: "Неприемлемая для операции область." Если не задаю строки: ЭлементыФормы.ПолеТабличногоДокументаРезультат.Область(,к,,(к+КолонокКСвёртке)).Сгруппировать(); то сворачиваются колонки где-то вне той таблицы, что я вывел: http://snap.ashampoo.com/vyrpaoJZPGG48R5fupNDNIXwVw7d3tDrmvbMelhusoQrANwv6fzlNRCejbHfuLWB Как мне свернуть область программно, как на первом скриншоте? ЧЯДНТ? |
|||
1
Ёпрст
08.01.22
✎
15:31
|
(0) не верно указываешь группируемую область вестимо.
Если интерактивно можешь - то смотри интерактивно параметры выделенной области - а именно, границы этой области. Эти же параметры пихай программно |
|||
2
al_zzz
08.01.22
✎
15:53
|
(1) А может быть проблема в том, что в области состоит из конкретных строк и столбцов, а не только из строк или столбцов?
Я так понимаю, в функции Сгруппировать() нельзя указать какая именно это группировка - вертикальная или горизонтальная. |
|||
3
al_zzz
08.01.22
✎
16:31
|
Появилась мысль попробовать из текущего поля табличного документа вывести пошагово содержимое в пустой табличный документ и при выводе колонок использовать "НачатьАвтогруппировкуКолонок"/"ЗакончитьАвтогруппировкуКолонок".
Пробую: ТабДок = Новый ТабличныйДокумент; ИсходнаяОбласть = ЭлементыФормы.ПолеТабличногоДокументаРезультат.Область("R1C1:"+"R"+СтрокаШапки2+"C"+ЭлементыФормы.ПолеТабличногоДокументаРезультат.ШиринаТаблицы); ТабДок.Вывести(ИсходнаяОбласть); Ругается на параметр "ИсходнаяОбласть". ИсходнаяОбласть у меня имеет тип "ОбластьЯчеекТабличногоДокумента", а требуется параметр типа "ТабличныйДокумент" или "ПолеТабличногоДокумента". Как мне из области получить параметр такого типа? |
|||
4
al_zzz
08.01.22
✎
17:14
|
Так. С этим разобрался. Надо было получать область не методом "Область", а методом "ПолучитьОбласть". Но теперь проблема в том, что открываемый табличный документ пустой. Только сетка совпадает с исходным документом:http://snap.ashampoo.com/JPo7larr3Ls5Pvk5x9WqjAlHHN5fJuytfhRqhDCdPvAALK7DkUTtv026NXdXn3Ls
|
|||
5
al_zzz
09.01.22
✎
14:42
|
Ап!
|
|||
6
runoff_runoff
09.01.22
✎
14:43
|
не надо никакого "Ап".. видно.. что уже сам сможешь разобраться..
|
|||
7
al_zzz
09.01.22
✎
15:56
|
(6) Да в том-то и дело, что не получается.
1. Функция "Сгруппировать" не работает на область, заданную не исключительно строками/колонками; 2. При попытке вывести последовательно секции в другом табличном документе из текущего переносятся пустые блоки. |
|||
8
al_zzz
09.01.22
✎
16:53
|
(1) Даже если явно указываю: http://snap.ashampoo.com/VdNGo0E65t8LidxO14jDmzpyTjdHhcp6f7et7Ir15Phft0To36RIxcBmlfTsheqM
Получаю: "Неприемлемая для операции область." |
|||
9
al_zzz
09.01.22
✎
17:12
|
Всё, ребятки, я победил!
Помогла вот эта тема: v8: Программная группировка Области ячеек ТД Суть в том, что для того, чтобы сворачивать область, состоящую из конкретных строк и колонок(не только из строк, или только из колонок) не нужно указывать номер начальной строки. Т.е., в моём случае это выглядит: ЭлементыФормы.ПолеТабличногоДокументаРезультат.Область(,к,Высота,(к+КолонокКСвёртке-1)).Сгруппировать(); И ещё был нюанс: надо было перед группировкой областей удалить пустые строки в табличном документе, которые шли до вывода таблицы: Область = ЭлементыФормы.ПолеТабличногоДокументаРезультат.Область(1,1,3,ЭлементыФормы.ПолеТабличногоДокументаРезультат.ШиринаТаблицы); ЭлементыФормы.ПолеТабличногоДокументаРезультат.УдалитьОбласть(Область,ТипСмещенияТабличногоДокумента.ПоВертикали); После этого всё заработало как надо. Всем спасибо за помощь! (6) Спасибо, что верил в меня! |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |