|
присоединение в печатной форме | ☑ | ||
|---|---|---|---|---|
|
0
x-a-d
23.12.10
✎
14:30
|
Добрый день! На работе один из отчетов формирует 4 листа формата А4. Листы состоят из нескольких областей, которые формируются по некоторуму алгоритму. Например, Лист1
Область1 Область2 Область3 Стала задача разместить эти листы на формат А3. Т.е. должно получиться: Лист4 Лист1 Лист2 Лист3 Я попробовал каждый из листов поместить в табличный документ, а потом их собрать вышеуказанным способом. Я попробовал это сделать так: Лист1 = Новый ТабличныйДокумент; Лист2 = Новый ТабличныйДокумент; Лист3 = Новый ТабличныйДокумент; Лист4 = Новый ТабличныйДокумент; Далее заполняю эти 4 листа и пробую в один документ объединить все: Полный = Новый ТабличныйДокумент; Полный.Вывести(Лист4); Полный.Присоединить(Лист1); Полный.Вывести(Лист2); Полный.Присоединить(Лист3); Но в итоге получаю вывод листов по-порядку: Лист4 Лист1 Лист2 Лист3 Что я делаю не так? Как можно сформировать 4 листа, чтобы потом их вывести на А3? Переделывать макеты и алгоритм хотелось бы только в крайнем случае. |
|||
|
1
x-a-d
23.12.10
✎
15:17
|
ап
|
|||
|
2
PVV65
23.12.10
✎
15:18
|
ТабДок = Новый ТабличныйДокумент;
Макет = ПолучитьМакет("Макет"); Макет1 = ПолучитьМакет("Макет1"); Обл = Макет.ПолучитьОбласть("Область1"); ТабДок.Вывести(Обл); ТабДок.ВывестиГоризонтальныйРазделительСтраниц(); Обл1 = Макет1.ПолучитьОбласть("Область1"); ТабДок.ВставитьОбласть(Обл1.Область("R1C1"),ТабДок.Область("R1C10")); ТабДок.Показать(); |
|||
|
3
SalavatUlaev
23.12.10
✎
15:20
|
Параметры страницы поменял на A3 ?
|
|||
|
4
Темный
23.12.10
✎
15:26
|
Кстати, сейчас как раз делаю похожую штуку. Вывожу отчет сверху-вниз слева-направо (ну, типа шахматки). "присоединить" работает нормально, но не знаю, как "перевести каретку" обратно вверх страницы. Присединяет снизу, после последней строки. Как можно вывести область в первой строке печ. формы, но в следующем стобце?
|
|||
|
5
PVV65
23.12.10
✎
15:27
|
(4) см. (2)
|
|||
|
6
Темный
23.12.10
✎
15:34
|
(5) Немного не допонял. Я могу вывести область в ячейку R1C1, но в следующей итерации это уже должно быть R1C2...
|
|||
|
7
PVV65
23.12.10
✎
15:41
|
(6) ТабДок - это итоговый табличный документ. В любой момент в любую область этого документа можно вставить другую область.
В примере область "Обл1.Область("R1C1")" вставляется в первую строку десятую колонку итогового ТД, когда вывод уже осуществлялся. Кроме того в примере показано, что вставлять можно любые области (в т.ч. из других макетов (это к (0)). |
|||
|
8
Темный
23.12.10
✎
15:51
|
То есть, нужно динамически формировать новый адрес ячейки (число преобразовывать в строку), и потом выводить в начале цикла в этот адрес? Более простого способа нет?
|
|||
|
9
PVV65
23.12.10
✎
15:54
|
(8) Обычно хватает стандартных методов работы ТД. Применение методов работы с областями подразумевает расчеты.
|
|||
|
10
KirWas
23.12.10
✎
16:04
|
Примерно так:
ТД.Очистить(); ТДН13 = Новый ТабличныйДокумент ; ТДН13.Вывести(ТДН); ТДН13.Вывести(ТДН2); ТДН24 = Новый ТабличныйДокумент ; ТДН24.Вывести(ТДН1); ТДН24.Вывести(ТДН3); ТД.Присоединить(ТДН13); // ТД.ВывестиВертикальныйРазделительСтраниц(); ТД.Присоединить(ТДН24); Где ТДНх: ТДНх = Новый ТабличныйДокумент ; ТДНх.Вывести(ТД.ПолучитьОбласть(2,мПеременная[2]+1,Ни1+1 ,мПеременная[3]+4)); |
|||
|
11
x-a-d
23.12.10
✎
16:22
|
(3) параметры страницы на А3 в 8.1 не знаю как поменять. нашел только как сделать Ландшафт
(7) а когда я выведу Лист2, то я не знаю с какой строки он начинается. как быть тогда? (10) я не понял последнюю строчку ТДНх.Вывести(ТД.ПолучитьОбласть(2,мПеременная[2]+1,Ни1+1 ,мПеременная[3]+4)); что за мПеременная, что за Ни1 |
|||
|
12
PVV65
23.12.10
✎
16:34
|
(11) Лист2 начинается со строки ТабДок.ВысотаТаблицы+1.
|
|||
|
13
x-a-d
24.12.10
✎
08:41
|
(2) (10) (11) спасибо!
|
|||
|
14
x-a-d
24.12.10
✎
08:42
|
предыдущее (11) ==> (12) спасибо!
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |