|
Вывод в две колонки в табличный документ (ВставитьОбласть) | ☑ | ||
---|---|---|---|---|
0
perpleks
06.05.13
✎
14:30
|
«Выделение не соответствует вставляемому блоку» при выполнении следующего кода, никак не могу понять почему:
Для Каждого Стр Из Результат Цикл ОбластьМакета = Макет.ПолучитьОбласть("Строка|Колонка"); ОбластьМакета.Параметры.Ном = Стр.Ссылка; Если ТабДок.ПроверитьВывод(ОбластьМакета) Тогда ТабДок.Вывести(ОбластьМакета); СтрокВСтолбце = СтрокВСтолбце + 1; Иначе ОбластьИсточник = ОбластьМакета.Область(1, 1, 1, ОбластьМакета.ШиринаТаблицы); ОбластьПриемник = ТабДок.Область(ТабДок.ВысотаСтраницы-СтрокВСтолбце, 4, ТабДок.ВысотаСтраницы-СтрокВСтолбце, 4+ОбластьМакета.ШиринаТаблицы); ТабДок.ВставитьОбласть(ОбластьИсточник,ОбластьПриемник); СтрокВСтолбце = СтрокВСтолбце - 1; КонецЕсли; |
|||
1
Wobland
06.05.13
✎
14:39
|
это хорошо или плохо?
|
|||
2
qeos
06.05.13
✎
14:40
|
вопрос: почему!
|
|||
3
kosts
06.05.13
✎
14:44
|
Пример. Выводится несколько блоков в колонки, пока влезает.
С учетом того, что бы блоки не разрывались на разные страницы
|
|||
4
perpleks
06.05.13
✎
15:00
|
(1) это печально :(
Не могу понять, как выделение может не соответствовать, если правая граница выделения = левой границе + ширине вставляемой области, а высота равна одной строке. (2) Да, вы правильно меня поняли, я хочу узнать, почему так и в чём моя ошибка. Код этот не рабочий, поскольку написан исключительно для экспериментирования и выработки алгоритма, так что выглядит достаточно бестолково, конечно. (3) Большое спасибо за ответ, но, насколько я понимаю, у вас выводит блоки в такой последовательности: 1 2 3 4 5 6 А у меня задача вывести: 1 4 2 5 3 6 Пробовал делать вторую колонку отдельным табличным документом, и к первому его присоединять, но в таком случае получается следующее: 1 2 3 4 5 6 |
|||
5
kosts
06.05.13
✎
15:05
|
(4) >А у меня задача вывести:
1 4 2 5 3 6 Можно сперва сохранить блоки в массив, а потом вывести как нужно. Либо выбирать данные сразу в нужном порядке. Вставлять в середину я бы не стал, не нравится мне такой способ. |
|||
6
qeos
06.05.13
✎
15:08
|
запихни каждую строку в горизонтальную группу
|
|||
7
hhhh
06.05.13
✎
15:14
|
(4) бред ведь у тебя. Попробуй тогда уж
ОбластьИсточник = ОбластьМакета.Область(1, 1, 1, 1 + ОбластьМакета.ШиринаТаблицы); |
|||
8
hhhh
06.05.13
✎
15:16
|
(7) ну то есть сделай всё-таки, чтобы
"Выделение соответствовало вставляемому блоку" |
|||
9
perpleks
06.05.13
✎
15:25
|
(8) я тупица
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |