|
СКД ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений | ☑ | ||
---|---|---|---|---|
0
Advais4
16.04.15
✎
10:02
|
Подскажите, можно ли, получив таблицу значений программно для того чтобы изменить некоторые значения, потом вывести данные из таблицы в табличный документ средствами СКД, чтобы не рисовать таблицу и не выводить вручную?
ТаблицаДанных = Новый ТаблицаЗначений; ОтчетОбъект = РеквизитФормыВЗначение("Отчет"); СхемаКомпоновкиДанных = ОтчетОбъект.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных"); КомпоновщикНастроекДанных = Новый КомпоновщикНастроекКомпоновкиДанных; КомпоновщикНастроекДанных.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных)); КомпоновщикНастроекДанных.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию); КомпоновщикНастроекДанных.ЗагрузитьПользовательскиеНастройки(ОтчетОбъект.КомпоновщикНастроек.ПользовательскиеНастройки); КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроекДанных.ПолучитьНастройки(), ДанныеРасшифровки,, Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений")); ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений; ПроцессорВывода.УстановитьОбъект(ТаблицаДанных); ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); |
|||
1
fisher
16.04.15
✎
10:04
|
Можно. Но для этого придется рисовать отдельную схему с источником данных вида "Объект".
|
|||
2
Advais4
16.04.15
✎
10:11
|
Спасибо, попробую!
|
|||
3
fisher
16.04.15
✎
10:26
|
ТЗ для источника данных передается в ПроцессорКомпоновкиДанных.Инициализировать()
|
|||
4
Advais4
16.04.15
✎
11:28
|
(3) это уже для новой схемы?
добавила схему ОсновнаяСхемаКомпоновкиДанных1, указала источник данных объект,"имя объекта, содержащего данные"- ТаблицаДанных. Компоновщик настроек и компоновщик макета, получается, не нужен? А как тогда указать новую схему? СхемаКомпоновкиДанных = ОтчетОбъект.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных1"); КомпоновщикНастроекДанных = Новый КомпоновщикНастроекКомпоновкиДанных; КомпоновщикНастроекДанных.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных)); КомпоновщикНастроекДанных.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию); КомпоновщикНастроекДанных.ЗагрузитьПользовательскиеНастройки(ОтчетОбъект.КомпоновщикНастроек.ПользовательскиеНастройки); КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроекДанных.ПолучитьНастройки(), ДанныеРасшифровки,, Тип("ГенераторМакетаКомпоновкиДанных")); ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки); Результат.Очистить(); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(Результат); ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных, Истина); |
|||
5
fisher
16.04.15
✎
11:54
|
(4) Да, для новой. Две разные схемы, две разные компоновки. Это должно быть очевидно.
Компоновщик настроек не нужен, если достаточно дефолтных настроек схемы и не используются пользовательские настройки. А вот как ты собираешься обойтись без компоновщика макета - мне непонятно. Новую схему ты уже указала, вопрос непонятен. Как передать таблицу значений - я написал. Читай СП. |
|||
6
Advais4
16.04.15
✎
12:44
|
все получилось, спасибо
ВнешниеНаборыДанных = Новый Структура; ВнешниеНаборыДанных.Вставить("ТаблицаДанных",Таб); СхемаКомпоновкиДанных = ОтчетОбъект.ПолучитьМакет("МакетНовый"); КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, СхемаКомпоновкиДанных.НастройкиПоУмолчанию, ДанныеРасшифровки,, Тип("ГенераторМакетаКомпоновкиДанных")); ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,ВнешниеНаборыДанных); Результат.Очистить(); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(Результат); ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных, Истина); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |