Имя: Пароль:
1C
 
Построитель отчета. Как свернуть все выводимы группировки?
0 Смит
 
15.09.06
13:25
2. Как изменить названия колонок в шапке?
1 asady
 
15.09.06
13:32
(0)
может ты про это?

ТабличныйДокумент (SpreadsheetDocument)
ПоказатьУровеньГруппировокСтрок (ShowRowGroupsLevel)
Синтаксис:
ПоказатьУровеньГруппировокСтрок(<Уровень>)
Параметры:
<Уровень> (обязательный)
Тип: Число. Уровень, до которого необходимо раскрыть группировки строк.
Описание:
Показывает уровень группировки строк до заданного уровня.
Пример:
// ПолеТД - поле табличного документа для показа результатов отчета
// В имени кнопки содержится уровень
Процедура ОткрытьУровень(Кнопка)
   Уровень = Число(Сред(Кнопка.Имя, 2)) - 1;
   У = ЭлементыФормы.ПолеТД.КоличествоУровнейГруппировокСтрок() - 1;
   Пока У > Уровень Цикл
       ЭлементыФормы.ПолеТД.ПоказатьУровеньГруппировокСтрок(У);
       У = У - 1;
   КонецЦикла;
   ЭлементыФормы.ПолеТД.ПоказатьУровеньГруппировокСтрок(Уровень);
КонецПроцедуры
2 Рассада
 
15.09.06
13:32
ТабДок.ПоказатьУровеньГруппировокСтрок(1)
3 Рассада
 
15.09.06
13:33
(1) опередил). А названия можно менять как в стандартных отчетах это делается (я уж не помню как, смотреть надо)
4 Смит
 
15.09.06
13:36
(2) Нету ТабДок. Заполняю макет сформированый построителем по умолчанию.
5 Смит
 
15.09.06
13:41
Народ к чему обращатся если нету ТабДок?
6 Рассада
 
15.09.06
13:43
(5) а куда макет выводится?
7 Смит
 
15.09.06
13:46
Вот весь текст, без запроса.
   Построитель.Макет = Неопределено;
   Построитель.Макет = МакетПостроителя;
   
   // Оформить макет.
   Построитель.МакетОформления = ПолучитьМакетОформления(СтандартноеОформление.Лед);
   Построитель.ОформитьМакет();
   Построитель.МакетОформления = Неопределено;
   
   
   // Выполнить запрос и вывести отчет.    
   Построитель.Выполнить();
   Построитель.Вывести();
8 Смит
 
15.09.06
13:48
Это лишнее
Построитель.Макет = МакетПостроителя;
9 НатальяК
 
15.09.06
13:48
генерирушь конструктором?
10 Смит
 
15.09.06
13:50
(9) Нет.
11 НатальяК
 
15.09.06
13:52
гм. а почему?
открой для себя конструктор выходной формы.
12 Рассада
 
15.09.06
13:55
А если
Построитель.Выполнить();
Построитель.Вывести();
Построитель.Макет.ПоказатьУровеньГруппировокСтрок(1);?
13 Смит
 
15.09.06
13:59
(12) Не помогает.
14 НатальяК
 
15.09.06
14:01
В кострукторе указываешь "использовать фиксированный макет" он его генерит. а ты потом ручками шапочку и меняешь
15 megalodon
 
15.09.06
14:01
ТабДок = Новый ТабличныйДокумент;
Построитель.Выполнить();
Построитель.Вывести(ТабДок);
ТабДок.ПоказатьУровеньГруппировокСтрок(1);
16 Смит
 
15.09.06
14:01
(11) Чем он хорош?
ЗЫ Зачем что-то рисовать, если построитель сам все делает. Только немного не так. :((
17 НатальяК
 
15.09.06
14:02
(16) вот это "немного" и подровняешь
18 Смит
 
15.09.06
14:05
(15) Так не работает.
19 Смит
 
15.09.06
14:10
(17) Наташа, я конечно могу это сделать, но мне-то казалось сбылась мечта - программист пишет запрос, программа транслирует у удобоваримы вид.
ЗЫ Т.е. мне кажется, рисовать или править печатные формы не есть работа программиста.
20 MikleV
 
15.09.06
14:13
(15) +1
21 MikleV
 
15.09.06
14:13
+20 к (18) руки кривые
22 НатальяК
 
15.09.06
14:14
Но этоже не эстетично! - Зато дёшево, надёжно и практично!" (с)
23 Смит
 
15.09.06
14:19
(21) Где именно? Я заменил свой текст:
  // Выполнить запрос и вывести отчет.    

   Построитель.Выполнить();
   Построитель.Вывести();
На
ТабДок = Новый ТабличныйДокумент;
Построитель.Выполнить();
Построитель.Вывести(ТабДок);
ТабДок.ПоказатьУровеньГруппировокСтрок(1);
18
20
24 Смит
 
15.09.06
14:20
Где я мог криво сделать?
ЗЫ Конечно добавил ТабДок.Показать();
25 asady
 
15.09.06
15:14
(24) а там вообще группировки есть? Вручную сворачивать дает?
26 Смит
 
18.09.06
09:39
(25) Да, есть.
ЗЫ Вопрос еще открыт.
27 Смит
 
18.09.06
09:50
Ап.
28 asady
 
18.09.06
11:15
(26) ответь на второй вопрос (25)
29 Смит
 
18.09.06
11:16
(28) Да.
30 asady
 
18.09.06
11:21
(29)
ТабличныйДокумент (SpreadsheetDocument)
Вывести (Put)
Синтаксис:
Вывести(<Таблица>, <Уровень>, <Имя группы>, <Открыта>)
Параметры:
<Таблица> (обязательный)
Тип: ТабличныйДокумент, ПолеТабличногоДокумента. Выводимая таблица.
<Уровень> (необязательный)
Тип: Число. Уровень используется для автоматической группировки строк табличного документа. Соседние строки с одинаковым уровнем будут отнесены к одной группе. Строки с минимальным уровнем в группу не объединяются.
<Имя группы> (необязательный)
Тип: Строка. Название группы, к которой относятся выводимые строки.
Значение по умолчанию: Пустая строка
<Открыта> (необязательный)
Тип: Булево. Истина - выведенная группа будет открыта, Ложь - группа будет выведена в свернутом виде.
Значение по умолчанию: Истина
Возвращаемое значение:
Тип: ОбластьЯчеекТабличногоДокумента. Область, в которую был осуществлен вывод.
Описание:
Выводит табличный документ в результирующий табличный документ, добавляя его со следующей строки вслед за самой нижней выведенной строкой, начиная с первой колонки.

обрати внимание на параметр номер 2 "уровень".
31 Смит
 
18.09.06
11:28
Для построителя немного подругому:

ПостроительОтчета (ReportBuilder)
Вывести (Put)
Вариант синтаксиса: Вывод в табличный документ
Синтаксис:
Вывести(<Табличный документ>)
Параметры:
<Табличный документ> (необязательный)
Тип: ТабличныйДокумент, ПолеТабличногоДокумента. Имя элемента управления "Табличный документ", в который будет осуществляться вывод. В случае, если параметр не указан, будет создан новый табличный документ.
Описание:
Выполняет и выводит отчет. Выводит отчет в табличный документ.
Вариант синтаксиса: Вывод в диаграмму
Синтаксис:
Вывести(<Диаграмма>, <Ресурс>)
Параметры:
<Диаграмма> (обязательный)
Тип: Диаграмма. Имя элемента управления "Диаграмма", в который будет осуществляться вывод.
<Ресурс> (необязательный)
Тип: Строка. Имя ресурса, который будет выдаваться в диаграмму.
Описание:
Выполняет и выводит отчет. Выводит отчет в диаграмму.
Примечание:
Вывод отчета происходит только в случае, если отчет еще не выводился или если были изменены настройки (см. НастройкиПостроителяОтчета) или вызван метод Выполнить().
Пример:
// Вывод в табличный документ
ПостроительОтчета.Вывести(ДокументРезультат);
// Вывод в диаграмму
Диаграмма.Очистить();
ПостроительОтчета.Вывести(Диаграмма, ИмяВыводимогоПоказателя);
32 asady
 
18.09.06
11:29
(31) чудак! после вывода построителем, у тебя существует табличный документ, у котрого есть метод Вывести с параметром "уровень" подумай в этом направлении или мозги вскипели?
33 Смит
 
18.09.06
11:34
(32) Есть-то он есть. А как к нему обратиться?
34 log
 
18.09.06
11:38
Процедура ОтформатироватьОбласть(Макет,Текст,Ширина,НовыйТекст,ФорматнаяСтрока=Неопределено);

Область=Макет.НайтиТекст(Текст,,Макет.Область("ШапкаТаблицы"));
Если Область<>Неопределено тогда
Область.Текст=СтрЗаменить(Область.Текст,Текст,НовыйТекст);
Область.ШиринаКолонки=Ширина;
Если ФорматнаяСтрока<>Неопределено тогда
Макет.Область("R"+Область.Верх+"C"+Область.Лево+
":R"+Макет.ВысотаТаблицы+"C"+Область.Лево).Формат=ФорматнаяСтрока;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
35 log
 
18.09.06
11:40
ОтформатироватьОбласть(Макет,"СрокСделкиПоПродажам",11,"Срок сделки по продажам (дней)","ЧЦ=10; ЧДЦ=2");
36 Смит
 
18.09.06
11:42
(34) О! Спасибо!
37 asady
 
18.09.06
11:48
(36) Автор просил свернуть группировки ТД, а успокоился на форматировании колонок!
38 Смит
 
18.09.06
11:51
(37) См. (0), пункт (2).
ЗЫ По группировкам вопрос открыт.
39 asady
 
18.09.06
11:53
(38) а сам-то ты хоть что-нибудь в этом направлении подумал? Или ждешь готовое решение?
40 Смит
 
18.09.06
11:55
(39) Подумал. Идей пока нет. Жду.
41 asady
 
18.09.06
12:17
Процедура КнопкаВыполнитьНажатие(Кнопка)
   // Вставить содержимое обработчика.
   ТекстЗапроса="ВЫБРАТЬ
                |    УчетРабочегоВремениСотрудниковОбороты.Период,
                |    УчетРабочегоВремениСотрудниковОбороты.Регистратор,
                |    УчетРабочегоВремениСотрудниковОбороты.Организация КАК Организация,
                |    УчетРабочегоВремениСотрудниковОбороты.Проект КАК Проект,
                |    УчетРабочегоВремениСотрудниковОбороты.Сотрудник КАК Сотрудник,
                |    УчетРабочегоВремениСотрудниковОбороты.КоличествоОборот КАК КоличествоОборот
                |ИЗ
                |    РегистрНакопления.УчетРабочегоВремениСотрудников.Обороты(, , Регистратор, ) КАК УчетРабочегоВремениСотрудниковОбороты
                |ИТОГИ
                |    СУММА(КоличествоОборот)
                |ПО
                |    Организация,
                |    Проект,
                |    Сотрудник";
   Построитель=Новый ПостроительОтчета(ТекстЗапроса);            
   Построитель.Выполнить();
   Построитель.Вывести(ЭлементыФормы.ТД);
   ЭлементыФормы.ТД.ПоказатьУровеньГруппировокСтрок(1);

КонецПроцедуры

У меня все работает!
42 Kir1
 
18.09.06
12:40
(35) А у меня такое вот форматирование что-то не хочет работать... Его нужно вставить до Отчет.Выполнить() ? Как-то влияет Отчет.ЗаполнитьНастройки() и Отчет.УстановитьНастройки()?
43 Смит
 
18.09.06
13:31
(41) Молодец, почни хорошо. Еще бы поле на форме не заводить...
(42) А ты хочешь увидеть результат для шапки или для таблицы?
44 asady
 
18.09.06
13:35
(43) Успехов вам! Пишите еще.
45 Kir1
 
18.09.06
13:37
(43) для шапки... Название колонки шапки изменить
46 Kir1
 
18.09.06
13:39
(+43) получается - изменить наименование шапки таблицы