|
СКД, макет | ☑ | ||
|---|---|---|---|---|
|
0
Maxus43
07.08.08
✎
11:16
|
Доброго дня.
Возник вопрос, туплю чтото... Есть свой макет в СКД, требуется одну область, например Шапка, вывести отдельно на странице, т.е. чтобы все остальные данные выводились со 2-й страницы. Типовые покопал, Белоусова посмотрел - не разобрался пока... Пните в нужном направлении плиз. |
|||
|
1
Maxus43
07.08.08
✎
11:36
|
ХэлП ((
|
|||
|
2
Maxus43
07.08.08
✎
12:07
|
Апстену перед обедом
|
|||
|
3
Maxus43
07.08.08
✎
13:07
|
АПстену после обеда... ХэлП
|
|||
|
4
IronDemon
07.08.08
✎
13:11
|
Может тебе просто новую страницу после вывода некоторых данных надо?
|
|||
|
5
Maxus43
07.08.08
✎
13:20
|
(4) можно сказать и так, после вывода шапки - начать новую страницу...
|
|||
|
6
Maxus43
07.08.08
✎
13:49
|
чот нифига не получается разрыв страницы сделать... ни ЕДИНОГО РАЗРЫВА! кашмар!
|
|||
|
7
ooki
07.08.08
✎
13:55
|
ВывестиГоризонтальныйРазделительСтраниц()
|
|||
|
8
Maxus43
07.08.08
✎
13:57
|
(7) в СКД не получается так... куда этот разрыв там вставлять то?
|
|||
|
9
Aprobator
07.08.08
✎
13:58
|
По всей видимости придется руками ковырять процесс изнутри. Т.е.
Что-нить типа: ТабДок = Новый ТабличныйДокумент; // выводим шапку и делаем разрыв - подробно описывать лениво. Затем ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ТабДок); Ну и т.д. (см Белоусова). |
|||
|
10
ooki
07.08.08
✎
13:59
|
ДокументРезультат.ВывестиГоризонтальныйРазделительСтраниц()
|
|||
|
11
Maxus43
07.08.08
✎
14:00
|
(9) так и ковыряю, не могу отловить когда он область нужную выводит чтобы после этого разрыв вставить...
|
|||
|
12
Aprobator
07.08.08
✎
14:09
|
Какие-нить признаки нужной области есть, после которой надо вставить разрыв? Типа текста или еще чего-нибудь?
|
|||
|
13
Maxus43
07.08.08
✎
14:13
|
(12)
ПроцессорВывода.ВывестиЭлемент(ЭлементРезультата); По ЭлементРезультата могу определить что это то, т.е. нужная область... Не получается после этого вставить РазрывСтраницы |
|||
|
14
Maxus43
07.08.08
✎
14:16
|
// Создадим и инициализируем процессор вывода результата
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ТабличныйДокумент); // Обозначим начало вывода ПроцессорВывода.НачатьВывод(); Состояние(НСТР("ru='Если Вы хотите прервать вывод отчета, нажмите Ctrl+Break'")); // Основной цикл вывода отчета Счетчик = 0; Пока Истина Цикл // Получим следующий элемент результата компоновки ЭлементРезультата = ПроцессорКомпоновкиДанных.Следующий(); // Получим следующий элемент результата компоновки Если ЭлементРезультата = Неопределено Тогда // Следующий элемент не получен - заканчиваем цикл вывода Прервать; Иначе // Элемент получен - выведем его при помощи процессора вывода ПроцессорВывода.ВывестиЭлемент(ЭлементРезультата); КонецЕсли; ОбработкаПрерыванияПользователя(); КонецЦикла; ПроцессорВывода.ЗакончитьВывод(); |
|||
|
15
IronDemon
07.08.08
✎
14:26
|
Таб = ЭлементыФормы.Результат;
Таб.ОриентацияСтраницы=ОриентацияСтраницы.Ландшафт; Таб.АвтоМасштаб=Истина; Таб.Очистить(); Макет = ПолучитьМакет("Макет"); ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок"); ОбластьПеревод = Макет.ПолучитьОбласть("Перевод"); //цикл КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,Настройки, ); ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , ); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ЭлементыФормы.Результат); ПроцессорВывода.НачатьВывод(); ЭлементРезультата = ПроцессорКомпоновки.Следующий(); Пока ЭлементРезультата <> Неопределено Цикл ПроцессорВывода.ВывестиЭлемент(ЭлементРезультата); ЭлементРезультата = ПроцессорКомпоновки.Следующий(); КонецЦикла; Таб = ПроцессорВывода.ЗакончитьВывод(); Таб.Вывести(ОбластьПеревод); |
|||
|
16
Maxus43
07.08.08
✎
14:34
|
Всем спасибо, вкурил...) всё оказалось как всегда легче чем мудрил :)
|
|||
|
17
Aprobator
07.08.08
✎
14:34
|
(14) Ну а где проверка, что пора делать разрыв страницы? Если ПроцессорВывода сам определяет разрывы, то можно попробовать его в нужный момент рубануть, а потом снова запустить.
Что - то типа Если НужныйЭлемент Тогда // тормозим процессор вывода ПроцессорВывода.ЗакончитьВывод(); ТабДок.ВывестиГоризонтальныйРазделительСтраниц() ; // возвращаем управление ПроцессорВывода.НачатьВывод(); КонецЕсли; |
|||
|
18
Maxus43
07.08.08
✎
14:40
|
(17) так и сделал, кстати без торможения процессора прокатило. Лучше всё таки тормозить его?
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |