|
Добавить в начало табличного документа |
☑ |
0
CAPITALIST
10.09.14
✎
09:20
|
Задачка. Пользователь хочет отчет ВедомостьТоварыНаСкладах. Не устраивает его в этом отчёте шапка. Как можно свою шапку поставить?
Если попробовать что-то вывести перед вызовом процедуры СформироватьОтчет(ТабличныйДокумент) модуля отчёта, то результат затрёт все ранее выведенное.
Если сделать кнопочку наподобие стандартной "Заголовок отчета" и там уже взять текущий сформированный макет и в начало его неким методом вставить необходимую шапку.
Как возможно это сделать?
|
|
1
Добрый хачик
10.09.14
✎
09:30
|
СформироватьОтчет(ТабличныйДокумент)
ТабличныйДокументШапка = ПолучитьТабДокШапка();
ТабличныйДокументОтчета = ПолучитьТабДокДляОтчета();
ТабличныйДокумент.Вывести(ТабличныйДокументШапка);
ТабличныйДокумент.Вывести(ТабличныйДокументОтчета);
|
|
2
CAPITALIST
10.09.14
✎
09:49
|
Если бы в этой процедуре сначала можно было получить сформированный макет отчета, то такое можно было бы сделать. а так там сразу вызывается процедура, которая и формирует и выводит отчет:
Процедура СформироватьОтчет(ТабличныйДокумент) Экспорт
// Перед формирование отчета можно установить необходимые параметры универсального отчета.
УниверсальныйОтчет.СформироватьОтчет(ТабличныйДокумент,,, ЭтотОбъект);
КонецПроцедуры // СформироватьОтчет()
|
|
3
Ёпрст
гуру
10.09.14
✎
09:51
|
(0) через ВставитьОбласть можешь вставить что угодно
|
|
4
Ёпрст
гуру
10.09.14
✎
09:52
|
ну и через УдалитьОбласть - удалишь исходную выведенную шапку
|
|
5
CAPITALIST
10.09.14
✎
10:00
|
(3) Спасибо! То что надо!
Теперь как вывести параметр?
ТабДок = ЭлементыФормы.ПолеТабличногоДокументаРезультат;
Макет = ПолучитьМакет("Макет");
Область = Макет.Область("R1:R4");
Область.Параметры.Склад = Склад;
СуществующаяОбласть = ТабДок.Область("R1:R4");
ТабДок.ВставитьОбласть(Область, СуществующаяОбласть, ТипСмещенияТабличногоДокумента.ПоВертикали);
Ошибку выдает при попытке задания параметра. Там нет поля "Параметры" как же вывести тогда?
|
|
6
Ёпрст
гуру
10.09.14
✎
10:30
|
(5) тупо через текст
|
|
7
CAPITALIST
10.09.14
✎
11:06
|
(6)Это как?
|
|
8
Wobland
10.09.14
✎
11:18
|
(7) область.текст
|
|
9
CAPITALIST
10.09.14
✎
11:20
|
Поле не доступно для записи. В любом случае, нужен метод, в котором указывается в какую именно ячейку нужно записать текст
|
|
10
Ёпрст
гуру
10.09.14
✎
11:27
|
(9) больше кода
|
|
11
Ёпрст
гуру
10.09.14
✎
11:28
|
и зачем так писать ?
Макет.Область("R1:R4"); ? Не проще ли в макете задать нормальную секцию, с параметрами и не выеживаться ?
|
|
12
CAPITALIST
10.09.14
✎
13:47
|
(11) так не получится. При вызове ТабДок.ВставитьОбласть будет ругаться что исходная область отличается.
Все! нашел!
Надо в макете каждой такой ячейке задать имя как области затем
Макет.Области.Склад.Текст = Склад;
затем только
Область = Макет.Область("R1:R4");
СуществующаяОбласть = ТабДок.Область("R1:R4");
ТабДок.ВставитьОбласть(Область, СуществующаяОбласть, ТипСмещенияТабличногоДокумента.ПоВертикали);
Всем спасибо за подсказки!
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший