|
Как в СКД сделать программно 2 группировки в одной | ☑ | ||
---|---|---|---|---|
0
dfaa
16.08.11
✎
16:08
|
должно получиться вот так
группировка 1 |- группировка 2 |- группировка 3 |
|||
1
dfaa
16.08.11
✎
16:09
|
а у меня получается всё время вот так
группировка 1 |- (группировка 2,группировка 3) |
|||
2
I_Stranger
16.08.11
✎
16:13
|
Вроде так: в выбранных полях - Новая группа - Расположение "вертикально".
|
|||
3
Luhtas
16.08.11
✎
16:17
|
(0) Идешь в настройки, добавляешь группировку, далее выбираешь поле группировочное, потом в эту группировку добавляешь вторую и потом также поле группировочное, ну и далее уже "Детальные записи". Так не?
|
|||
4
Axel2009
16.08.11
✎
16:27
|
ну и где у тебя получается "вот так"?
|
|||
5
dfaa
16.08.11
✎
16:43
|
(4) вот так
эл = КомпоновщикНастроек.Настройки.Порядок.Элементы; эл.Очистить(); эл.Добавить(Тип("АвтоЭлементПорядкаКомпоновкиДанных")); ст = КомпоновщикНастроек.Настройки.Структура; ст.Очистить(); Если Группировки.Строки[0].Строки.Найти(Истина, "ПоложениеВКолонке") = Неопределено Тогда бЕстьТаблица = Ложь; Иначе бЕстьТаблица = Истина; эс = ст.Добавить(Тип("ТаблицаКомпоновкиДанных")); эс.Использование = Истина; ст = эс.Строки; стКол = эс.Колонки; КонецЕсли; скдОтбор = КомпоновщикНастроек.Настройки.Отбор; скдОтбор.Элементы.Очистить(); Для каждого сдз Из Группировки.Строки[0].Строки Цикл Если сдз.Флажок Тогда Если сдз.ПоложениеВКолонке Тогда эс = стКол.Добавить(); Иначе Если бЕстьТаблица Тогда эс = ст.Добавить(); Иначе эс = ст.Добавить(Тип("ГруппировкаКомпоновкиДанных")); КонецЕсли; КонецЕсли; эс.Использование = Истина; эс.Выбор.Элементы.Добавить(Тип("АвтоВыбранноеПолеКомпоновкиДанных")); эс.Порядок.Элементы.Добавить(Тип("АвтоЭлементПорядкаКомпоновкиДанных")); Если сдз.ПутьКДанным = "Регистратор" Тогда пгкд = эс.Родитель.ПоляГруппировки.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных")); пгкд.Использование = Истина; пгкд.Поле = Новый ПолеКомпоновкиДанных(сдз.ПутьКДанным); Иначе пгкд = эс.ПоляГруппировки.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных")); пгкд.Использование = Истина; пгкд.Поле = Новый ПолеКомпоновкиДанных(сдз.ПутьКДанным); КонецЕсли; Если сдз.ПоложениеВКолонке Тогда стКол = эс.Структура; Иначе ст = эс.Структура; КонецЕсли; КонецЕсли; |
|||
6
dfaa
16.08.11
✎
16:45
|
Для каждого сдз Из Группировки.Строки[0].Строки Цикл перебирает из дерева значений, то что там выбранно
|
|||
7
Axel2009
16.08.11
✎
16:54
|
(6) ну наверна это ст = эс.Структура; присваивать не надо, ага?
|
|||
8
dfaa
16.08.11
✎
17:06
|
(7) ты имеешь ввиду если попадает на условие Если сдз.ПутьКДанным = "Регистратор" Тогда
ст = эс.Структура; присваивать не надо |
|||
9
Axel2009
16.08.11
✎
17:07
|
(8) я имею ввиду когда надо
группировка 1 |- группировка 2 |- группировка 3 то ст = эс.Структура; присваивать не надо. а уж по какому условию, решай сам. |
|||
10
dfaa
16.08.11
✎
17:08
|
(9) ок спасибо буду пробовать
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |