|
Итоги в Макете | ☑ | ||
---|---|---|---|---|
0
Kamich
21.03.13
✎
20:26
|
Добрый день. Ситуация такая.
При выводе макета происходит следующая процедура: Стр=ЭлементыФормы.Инфо.ТекущаяСтрока; ТабДок = Новый ТабличныйДокумент; Макет = Обработки.РабочийСтол.ПолучитьМакет("Отчет"); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | РасчетыОстаткиИОбороты.Заявка, | ПРЕДСТАВЛЕНИЕ(РасчетыОстаткиИОбороты.Заявка), | РасчетыОстаткиИОбороты.Клиент, | ПРЕДСТАВЛЕНИЕ(РасчетыОстаткиИОбороты.Клиент), | РасчетыОстаткиИОбороты.Программа, | ПРЕДСТАВЛЕНИЕ(РасчетыОстаткиИОбороты.Программа), | РасчетыОстаткиИОбороты.СуммаUSDОборотДт, | РасчетыОстаткиИОбороты.СуммаUSDОборотКт, | РасчетыОстаткиИОбороты.СуммаUSDКонечныйОстаток, | РасчетыОстаткиИОбороты.ИтогоПрограммаСоставляетОборотДт |ИЗ | РегистрБухгалтерии.Расчеты.ОстаткиИОбороты КАК РасчетыОстаткиИОбороты |ГДЕ | РасчетыОстаткиИОбороты.Заявка = &Заявка"; Запрос.УстановитьПараметр("Заявка", Стр.Заявка); Результат = Запрос.Выполнить(); ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок"); ОбластьПодвал = Макет.ПолучитьОбласть("Подвал"); ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы"); ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы"); ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали"); ТабДок.Очистить(); ТабДок.Вывести(ОбластьЗаголовок); Рез=Результат.Выбрать(); Пока Рез.Следующий() Цикл ОбластьШапкаТаблицы.Параметры.Заявка=Рез.ЗаявкаПредставление; ОбластьШапкаТаблицы.Параметры.Программа=Рез.ПрограммаПредставление; ОбластьШапкаТаблицы.Параметры.ИтогоПрограммаСоставляет=Рез.ИтогоПрограммаСоставляетОборотДт; КонецЦикла; ТабДок.Вывести(ОбластьШапкаТаблицы); ТабДок.НачатьАвтогруппировкуСтрок(); ВыборкаДетали = Результат.Выбрать(); Пока ВыборкаДетали.Следующий() Цикл ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетали); ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетали.Уровень()); КонецЦикла; ТабДок.ЗакончитьАвтогруппировкуСтрок(); ТабДок.Вывести(ОбластьПодвалТаблицы); ТабДок.Вывести(ОбластьПодвал); ТабДок.Показать(); Как мне вывести ОбщийИтог в область ОбластьШапкаТаблицы получив из области ОбластьДетальныхЗаписей? |
|||
1
Kamich
21.03.13
✎
20:40
|
У кого какие предложения?
|
|||
2
Max Street
21.03.13
✎
20:43
|
Добавь ИТОГИ ПО в запрос, затем в цикле по итоговым записям что-нибудь вроде:
ОбластьШапкаТаблицы.Параметры.<Имя_Параметра> = ВыборкаИтог.<реквизит> |
|||
3
Kamich
21.03.13
✎
20:47
|
Что-то типа :
|ИТОГИ ПО | СуммаUSDОборотКт ? |
|||
4
Max Street
21.03.13
✎
20:52
|
скорее так:
|ИТОГИ |Сумма(СуммаUSDОборотКт) |ПО |//поле, по которому требуется подсчитать итоги |
|||
5
Kamich
21.03.13
✎
21:03
|
(4) Другой способ есть, ну чтобы было без "вкладок", и получалось буд-то бы берется из реквизита?
|
|||
6
Max Street
21.03.13
✎
21:14
|
Ну если не хочешь ИТОГИ, то можно, в принципе, накапливать значение в цикле. Но итоги в запросе по-моему проще
|
|||
7
Kamich
21.03.13
✎
21:19
|
Сделал следующее:
|ИТОГИ |Сумма(СуммаUSDОборотКт) ПО СуммаUSDОборотКт и добавил : ОбластьШапкаТаблицы.Параметры.ИтогоПрограммаСоставляет=Рез.СуммаUSDОборотКт; Выводит только последнюю позицию итога |
|||
8
Kamich
21.03.13
✎
21:30
|
Что не так?
|
|||
9
Max Street
21.03.13
✎
21:30
|
неправильно сделал.
после ключевого слова ПО указывается поле, по которому будут подсчитываться итоги |
|||
10
Kamich
21.03.13
✎
21:32
|
(9) Значит ПО Клиент?
|
|||
11
Max Street
21.03.13
✎
21:33
|
Да, если надо подсчитаь итоги по каждому клиенту
|
|||
12
Max Street
21.03.13
✎
21:35
|
ну а если по всем клиентам тогда:
|ИТОГИ |Сумма(Сумма) |ПО |Общие как-то так |
|||
13
Kamich
21.03.13
✎
21:36
|
А то что касается вывода общего итога:
ОбластьШапкаТаблицы.Параметры.Сумма=Рез.СуммаUSDОборотКт; |
|||
14
Kamich
21.03.13
✎
21:37
|
Выводит только последний итог, последнего клиента в списке
|
|||
15
Max Street
21.03.13
✎
21:46
|
По-моему должно быть так:
|ИТОГИ |Сумма(Сумма) |ПО |Клиент"; Результат = Запрос.Выполнить(); ВыборкаИтог = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока ВыборкаИтог.Следующий() Цикл ОбластьШапкаТаблицы.Параметры.Сумма = ВыборкаИтог.Сумма; ... |
|||
16
Kamich
21.03.13
✎
21:55
|
(15) Спасибо!)))
Работает), Чуток только под корректировать и то что надо!) Я ни когда не встречался с этим: ВыборкаИтог = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Что это означает("Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам)")? |
|||
17
Max Street
21.03.13
✎
21:59
|
Не за что))
Итоги перебирают записи, добавляя результирующую строку перед ДетальнымиЗаписями. А ОбходРезультатаЗапроса.ПоГруппировкам означает, что выбираться будут только эти результирующие строки |
|||
18
Kamich
21.03.13
✎
22:02
|
(17) Отлично) Спасибо Вам за выделенное время!)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |