|
|
|
Вывод динамических колонок в табличный документ | ☑ | ||
|---|---|---|---|---|
|
0
DimMar
27.08.07
✎
16:53
|
Задача: Надо вывести в табличный документ таблицу значений
Номенклатура | Недостаток | Склад1 | ... | Склад n , то есть колонка склад динамическая, а первые две статические. Пытаюсь вывести, выводится че попало. Как только не пробовал, и через Присоединить и просто выводил области через "|", ни че не выходит. Может что-то неправильно делаю. В 7.7 было просто: ВывестиСекцию и ПрисоединитьСекцию - любой отчет по секциям склеить очень просто, а тут не выходит. Уже все мануалы перечитал, ни че не нашел нужного. Если кто знает, как это сделать, напишите, пожалуйста, код вывода например Шапки и одной строки. Заранее спасибо |
|||
|
1
Flipper
27.08.07
✎
17:00
|
покажи, что ужо сделал...
|
|||
|
2
IronDemon
27.08.07
✎
17:05
|
Выводи таблицу через построитель
|
|||
|
3
АСанСаныч
27.08.07
✎
17:09
|
Набирай во вспомогательный табдок строчку присоединением, а затем выводи его(табдок) в основной документ
|
|||
|
4
DimMar
27.08.07
✎
17:10
|
ТабДок=Новый ТабличныйДокумент;
Макет = ПолучитьМакет("Отчет"); //Область=Макет.ПолучитьОбласть("Шапка"); ИмяКолонки="Номенклатура"; Обл=Макет.ПолучитьОбласть("Шапка|"+ИмяКолонки); ТабДок.Вывести(Обл); Для каждого Кол Из ТЗПечать.Колонки Цикл Если Кол.Имя="Недостаток" Тогда ИмяКолонки=Кол.Имя; Обл=Макет.ПолучитьОбласть("Шапка|"+ИмяКолонки); Область=ТабДок.Присоединить(Обл); ТабДок.Вывести(Область); Иначе Если Кол.Имя<>"Номенклатура" Тогда ИмяКолонки="Шапка|Склад"; Обл=Макет.ПолучитьОбласть(ИмяКолонки); Обл.Параметры.Склады=Кол.Имя; Область=ТабДок.Присоединить(Обл); ТабДок.Вывести(Область); КонецЕсли; КОнецЕсли; КонецЦикла; //Для каждого Стр Из ТЗПечать Цикл // Если Кол.Имя="Номенклатура" ИЛИ Кол.Имя="Недостаток" Тогда // ИмяКолонки=Кол.Имя; // Обл=Макет.Область("Строка|"+ИмяКолонки); // Иначе // ИмяКолонки="Склад"; // Обл=Макет.ПолучитьОбласть(ИмяКолонки); // Обл.Параметры.КОличество=Стр[ПолучитьИмяТекСклада(Кол.Имя)]; // КОнецЕсли; // ТабДок.Вывести(Обл); //КонецЦикла; ТабДок.Показать(); Это уже наверно 20-й вариант, так что, если честно, я уже немного в них запутался. В этом варианте похоже присоединяется каждый раз весь табличный документ в релультате получается че попало. Вывод строки я закоментировал, и без него фигня получилась |
|||
|
5
hhhh
27.08.07
✎
17:13
|
Выбрось
ТабДок.Вывести(Область); это совершенно лишнее. |
|||
|
6
hhhh
27.08.07
✎
17:16
|
Область - это у тебя получившийся табличный документ и ты его выводишь второй раз.
|
|||
|
7
DimMar
27.08.07
✎
17:16
|
Набирай во вспомогательный табдок строчку присоединением, а затем выводи его(табдок) в основной документ
Я определил в макете три секции вертикальных - Номенлатура,Недостаток,Склад и две горизонтальных Шапка и СТрока. Если получать пересечение областей "ВертикальнаяСекция|Гориз-яСекция" то выводиться секции Номенклатура и Недостаток нормально а Склад выводиться один раз, хотя я его в цикле вывожу два раза. |
|||
|
8
Flipper
27.08.07
✎
17:22
|
(5) +1
|
|||
|
9
DimMar
27.08.07
✎
17:36
|
(5) и (6) Большое спасибо, все получилось, действительно
ТабДок.Вывести(Область); нужна только при выводе первой секции в строке. |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |