![]() |
|
Программно добавить группировку в табличный документ | ☑ | ||
---|---|---|---|---|
0
rt2000
26.11.16
✎
14:01
|
Как в табличный документ, добавить группировку, подскажите. Не могу понять, чего не хватает
ТабДок2 = новый ТабличныйДокумент; //создаем ТабДок Макет = ПолучитьМакет("Макет"); //Получаем макет ОблМакета = Макет.ПолучитьОбласть("Шапка"); //получаем область ОблМакета.Параметры.ДнейВМесяц = ДнейВМесяц; ТабДок2.НачатьАвтогруппировкуСтрок(); //начало группировки должно ТабДок2.Вывести(ОблМакета,0); ПерваяСтрока = 6; ОблМакета = Макет.ПолучитьОбласть("СтрокаОбласти"); Пока ВыборкаГрупп.Следующий() цикл ПерваяСтрока = ПерваяСтрока + 1; ОблМакета.Параметры.Период = ВыборкаГрупп.Период; //Период ТабДок2.Вывести(ОблМакета); КонецЦикла; ТабДок2.ЗакончитьАвтогруппировкуСтрок(); //закончится группировка должна ТабДок2.Вывести(ОблМакета); ТабДок2.Показать(); |
|||
1
jsmith
26.11.16
✎
14:13
|
|
|||
2
mehfk
26.11.16
✎
14:14
|
ТабличныйДокумент (SpreadsheetDocument)
Вывести (Put) Синтаксис: Вывести(<Таблица>, <Уровень>, <ИмяГруппы>, <Открыта>) Параметры: <Таблица> (обязательный) Тип: ТабличныйДокумент; ПолеТабличногоДокумента. Выводимая таблица. <Уровень> (необязательный) Тип: Число. Уровень используется для автоматической группировки строк табличного документа. Соседние строки с одинаковым уровнем будут отнесены к одной группе. Строки с минимальным уровнем в группу не объединяются. <ИмяГруппы> (необязательный) Тип: Строка. Название группы, к которой относятся выводимые строки. Значение по умолчанию: Пустая строка. <Открыта> (необязательный) Тип: Булево. Истина - выведенная группа будет открыта; Ложь - группа будет выведена в свернутом виде. Значение по умолчанию: Истина. Возвращаемое значение: Тип: ОбластьЯчеекТабличногоДокумента. Область, в которую был осуществлен вывод. Описание: Выводит табличный документ в результирующий табличный документ, добавляя его со следующей строки вслед за самой нижней выведенной строкой, начиная с первой колонки. Табличные документы, которые выводятся при помощи данного метода, не рекомендуется передавать между клиентом и сервером и обратно. Доступность: Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер). Примечание: Свойство Формат ячейки табличного документа не используется для форматирования значений, выводимых в при помощи шаблона. Пример: ТабДок = Новый ТабличныйДокумент; Секция = ТабДок.ПолучитьОбласть("R1"); Секция.Область("R1C1").Текст = "Численность сотрудников"; ТабДок.НачатьАвтогруппировкуСтрок(); ТабДок.Вывести(Секция,1,"Группа",Истина); Итого = 0; Для Н=1 По 3 Цикл Значение = Н; Итог = 0; Секция.Область("R1C1").Текст = "Отдел "+Н; Секция.Область("R1C2").Текст = ""; ТабДок.Вывести(Секция,2,"Группа 1",Истина); Секция.Область("R1C1").Текст = "Группа"; Секция.Область("R1C2").Текст = "Численность"; ТабДок.Вывести(Секция,2,"Группа 1",Истина); Для К=1 По 10 Цикл Секция.Область("R1C1").Текст = "А"+Н+К; Секция.Область("R1C2").Текст = Значение; ТабДок.Вывести(Секция,3,"Группа 2",Истина); Итог = Итог + Значение; Значение = Значение + 10; КонецЦикла; Секция.Область("R1C1").Текст = "Итого"+Н; Секция.Область("R1C2").Текст = Итог; ТабДок.Вывести(Секция,2,"Группа 1",Истина); Секция.Область("R1C1:R1C2").Текст = ""; ТабДок.Вывести(Секция); Итого = Итого + Итог; КонецЦикла; Секция.Область("R1C1").Текст = "Всего:"; Секция.Область("R1C2").Текст = Итого; ТабДок.Вывести(Секция,1,"Группа",Истина); ТабДок.ЗакончитьАвтогруппировкуСтрок(); ТабДок.ИтогиСнизу = Истина; ТабДок.ОтображатьСетку = Ложь; ТабДок.Защита = Ложь; ТабДок.ТолькоПросмотр = Истина; ТабДок.Показать("Пример использования верт. автогруппировки"); См. также: ТабличныйДокумент, метод Присоединить |
|||
3
jsmith
26.11.16
✎
14:18
|
У тебя, дружок, по ходу в одну группу строки попадают. Задавай уровни явно.
|
|||
4
rt2000
26.11.16
✎
14:48
|
Ничего не понимаю.
Попробовал разбить выборку, но не получается Сч = 0; Пока Выборка.Следующий() и Сч < 10 цикл Сч = Сч + 1; ПерваяСтрока = ПерваяСтрока + 1; ОблМакета.Параметры.Период = Выборка.Период; //Период ТабДок2.Вывести(ОблМакета, 0); КонецЦикла; Пока Выборка.Следующий() и Сч >= 10 цикл Сч = Сч + 1; ПерваяСтрока = ПерваяСтрока + 1; ОблМакета.Параметры.Период = Выборка.Период; //Период ТабДок2.Вывести(ОблМакета, 1); КонецЦикла; Макет.ЗакончитьАвтогруппировкуСтрок(); |
|||
5
jsmith
26.11.16
✎
15:19
|
Афигеть ты группируешь
|
|||
6
jsmith
26.11.16
✎
15:22
|
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |