![]() |
|
СКД: Отображение данных в виде таблицы программным путём | ☑ | ||
---|---|---|---|---|
0
Stolz
22.04.13
✎
11:27
|
Доброго времени суток всем!
Нужно бы вывести данные в таблицу при помощи системы компоновки данных. Требуемый вид таблицы очень простой: в крайнем левой колонке по вертикали расположены организации, в первой строке располагаются заголовки периодов, а в теле таблицы - суммы. То есть, нечто вроде этого: Организация 01.04.2013 02.04.2013 03.04.2013 АО МММ 2300 3400 3500 Русский дом Селенга 4300 2100 8700 Хопёр-Инвест 7800 2600 9800 Однако отчего-то заголовки периодов не выводятся, а вместо них отображается текст «Сумма»: Организация Сумма Сумма Сумма АО МММ 2300 3400 3500 Русский дом Селенга 4300 2100 8700 Хопёр-Инвест 7800 2600 9800 Код, реализующий вывод, расположен ниже. Сразу подчеркну, что приведённый пример является, так сказать, учебным и написан лишь для иллюстрации проблемы. Поэтому вопросами в духе «а зачем выбирать данные запросом, а потом передавать их в СКД» лучше не заморачиваться. :-) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Период, | Организация, | СуммаОборот КАК Сумма |ИЗ | РегистрНакопления.ДенежныеСредства.Обороты(, , РЕГИСТРАТОР)"; ТабСведения = Запрос.Выполнить().Выгрузить(); ТекСхемаКомпоновкиДанных = Новый СхемаКомпоновкиДанных; ИсточникДанных = ТекСхемаКомпоновкиДанных.ИсточникиДанных.Добавить(); ИсточникДанных.Имя = "ИсточникДанных"; ИсточникДанных.ТипИсточникаДанных = "Local"; НаборДанныхОбъект = ТекСхемаКомпоновкиДанных.НаборыДанных.Добавить(Тип("НаборДанныхОбъектСхемыКомпоновкиДанных")); НаборДанныхОбъект.Имя = "НаборДанныхОбъект"; НаборДанныхОбъект.ИмяОбъекта = "ДвиженияПоОрганизациям"; НаборДанныхОбъект.ИсточникДанных = "ИсточникДанных"; ПолеНабораДанных = НаборДанныхОбъект.Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных")); ПолеНабораДанных.Поле = "Период"; ПолеНабораДанных.ПутьКДанным = "Период"; ПолеНабораДанных.ТипЗначения = Новый ОписаниеТипов("Дата", , , Новый КвалификаторыДаты(ЧастиДаты.ДатаВремя)); ПолеНабораДанных = НаборДанныхОбъект.Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных")); ПолеНабораДанных.Поле = "Организация"; ПолеНабораДанных.ПутьКДанным = "Организация"; ПолеНабораДанных.ТипЗначения = Новый ОписаниеТипов("СправочникСсылка.Организации"); ПолеНабораДанных = НаборДанныхОбъект.Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных")); ПолеНабораДанных.Поле = "Сумма"; ПолеНабораДанных.ПутьКДанным = "Сумма"; ПолеНабораДанных.ТипЗначения = Новый ОписаниеТипов("Число"); ТекРесурс = ТекСхемаКомпоновкиДанных.ПоляИтога.Добавить(); ТекРесурс.Выражение = "Сумма(Сумма)"; ТекРесурс.ПутьКДанным = "Сумма"; ТекКомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных; ТекКомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(ТекСхемаКомпоновкиДанных)); ТекНастройки = ТекКомпоновщикНастроек.Настройки; ТекТаблица = ТекНастройки.Структура.Добавить(Тип("ТаблицаКомпоновкиДанных")); ТекТаблица.Использование = Истина; ТекСтрокаГруппировки = ТекТаблица.Строки.Добавить(); ТекСтрокаГруппировки.Имя = "Строка"; ТекСтрокаГруппировки.Использование = Истина; ПолеГруппировки = ТекСтрокаГруппировки.ПоляГруппировки.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных")); ПолеГруппировки.Использование = Истина; ПолеГруппировки.Поле = Новый ПолеКомпоновкиДанных("Организация"); ТекКолонкаГруппировки = ТекТаблица.Колонки.Добавить(); ТекКолонкаГруппировки.Имя = "Колонка"; ТекКолонкаГруппировки.Использование = Истина; ПолеГруппировки = ТекКолонкаГруппировки.ПоляГруппировки.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных")); ПолеГруппировки.Использование = Истина; ПолеГруппировки.Поле = Новый ПолеКомпоновкиДанных("Период"); ВыбранныеПоля = ТекСтрокаГруппировки.Выбор.Элементы.Добавить(Тип("АвтоВыбранноеПолеКомпоновкиДанных")); ВыбранныеПоля.Использование = Истина; ВыбранноеПоле = ТекНастройки.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных")); ВыбранноеПоле.Поле = Новый ПолеКомпоновкиДанных("Период"); ВыбранноеПоле.Использование = Истина; ВыбранноеПоле = ТекНастройки.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных")); ВыбранноеПоле.Поле = Новый ПолеКомпоновкиДанных("Организация"); ВыбранноеПоле.Использование = Истина; ВыбранноеПоле = ТекНастройки.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных")); ВыбранноеПоле.Поле = Новый ПолеКомпоновкиДанных("Сумма"); ВыбранноеПоле.Использование = Истина; ЭлементСортировки = ТекСтрокаГруппировки.Порядок.Элементы.Добавить(Тип("ЭлементПорядкаКомпоновкиДанных")); ЭлементСортировки.Поле = Новый ПолеКомпоновкиДанных("Период"); ЭлементСортировки.ТипУпорядочивания = НаправлениеСортировкиКомпоновкиДанных.Возр; ЭлементСортировки.Использование = Истина; ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных; ТекКомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; ТекПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; ТекПроцессорКомпоновкиДанных.Инициализировать(ТекКомпоновщикМакета.Выполнить(ТекСхемаКомпоновкиДанных, ТекНастройки, ДанныеРасшифровки), Новый Структура("ДвиженияПоОрганизациям", ТабСведения), ДанныеРасшифровки); ТекПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ТабДокумент = Новый ТабличныйДокумент; ТекПроцессорВывода.ОтображатьПроцентВывода = Ложь; ТекПроцессорВывода.УстановитьДокумент(ТабДокумент); ТекПроцессорВывода.Вывести(ТекПроцессорКомпоновкиДанных); ТабДокумент.Показать(); Вот, многоуважаемые гуру СКД, укажите, пожалуйста, в чём я неправ. |
|||
1
mistеr
22.04.13
✎
11:38
|
Вызови стандартную форму настроек, и сразу увидишь, в чём неправ.
|
|||
2
Stolz
22.04.13
✎
11:42
|
(1)
Уже вызывал, до того как вопрос задавать. Не увидел, увы, - потому и спрашиваю. |
|||
3
Stolz
22.04.13
✎
12:00
|
Что ж, отвечу сам себе.
После строк: ВыбранныеПоля = ТекСтрокаГруппировки.Выбор.Элементы.Добавить(Тип("АвтоВыбранноеПолеКомпоновкиДанных")); ВыбранныеПоля.Использование = Истина; Надо добавить: ВыбранныеПоля = ТекКолонкаГруппировки.Выбор.Элементы.Добавить(Тип("АвтоВыбранноеПолеКомпоновкиДанных")); ВыбранныеПоля.Использование = Истина; Всего-то. :-) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |