![]() |
![]() |
|
Построитель отчёта и таблица значений | ☑ | ||
---|---|---|---|---|
0
Hazer79
15.11.08
✎
12:47
|
Здравствуйте !
Никто не в курсе, если построителю отчёта скармливаешь в качестве источника данных ТЗ, то он его обрабатывает локально (на компе клиента) или как ? |
|||
1
Hadgehogs
15.11.08
✎
12:48
|
Скорее всего локально, пользуй Временную таблицы - она на сервере (если надо)
|
|||
2
luns
15.11.08
✎
12:54
|
(0) К сказанному в (1).. если юзать временную таблицу, то можно итоги по иерархии получить, а если источник данных для построителя, то нет...
|
|||
3
Hazer79
15.11.08
✎
12:56
|
Вот в том-то и дело.
У меня изначально алгоритм был такой : 1.Выполнение запроса 2.Выгрузка результата запроса в ТЗ. 3.Обработка ТЗ. 4.Выгрузка в ВТ 5.Извлечение из ВТ с группировками и подсчётом итогов 6.Вывод в табличный документ Озадачившись тем, что большие обьёмы данных выгружаютзя в ВТ и загружаются из неё достаточно долго, решил пойти другим путём - создал построитель, сунул ему ТЗ и вывел всё это в табличнй документ. И вот не знаю теперь - что реально быстрее. (2) Неправда, у меня всё получилось. ;-) |
|||
4
PR
15.11.08
✎
13:01
|
(0) Эээ..., а что, можно локальную ТЗ на сервер для обработки кидать? А зачем собсно?
И непонятно, что такое обработка? Настройка пользователем или уже выполнение запроса построителем? |
|||
5
luns
15.11.08
✎
13:13
|
(3) Серьезно? Я что то упустил и построитель отчета может иерархические итоги строить по "плоской" ТЗ в качестве источника данных? Это не "стеб", действительно в доках писали что так нельзя...
|
|||
6
Hadgehogs
15.11.08
✎
14:02
|
код приведи
|
|||
7
Hazer79
17.11.08
✎
09:39
|
(4) Эээ... Уважаемый PR, учитывая информацию в вашем профиле, очень сомневаюсь, что вы не в курсе про это :
МВТ = Новый МенеджерВременныхТаблиц; Запрос = Новый Запрос; Запрос.МенеджерВременныхТаблиц = МВТ; Запрос.Текст = "ВЫБРАТЬ * ПОМЕСТИТЬ ВременнаяТаблица ИЗ &ТабЗнач КАК ТабЗнач"; Запрос.УстановитьПараметр("ТабЗнач", ТЗ); Запрос.Выполнить(); И всё это для того, потом, при выборке из ВТ, сгруппировать, посчитать хитро итоги и вывести в табличный документ. Под "обработкой ТЗ" подразумевается прогон ТЗ в цикле и выполнение определённых действий над данными, которые там уже есть (в запросе этих действий не выполнишь :-( ) (3),(6) Вот рабочий код : ПостроительОтчета = Новый ПостроительОтчета; ПостроительОтчета.Макет = ПолучитьМакет("ПросроченнаяЗадолженность"); ДанныеИсточника = Новый ОписаниеИсточникаДанных(ТЗНеоплаченные); ДанныеИсточника.Колонки.Контрагент.Измерение = Истина; ДанныеИсточника.Колонки.Договор.Измерение = Истина; ДанныеИсточника.Колонки.СрокОтсрочки.Измерение = Истина; ДанныеИсточника.Колонки.Задолженность.Итог = "СУММА(Задолженность)"; ДанныеИсточника.Колонки.ПросроченнаяЗадолженность.Итог = "СУММА(ПросроченнаяЗадолженность) + СУММА(Переплаты) + СУММА(Возвраты)"; ПостроительОтчета.ИсточникДанных = ДанныеИсточника; ПостроительОтчета.Выполнить(); Результат = ПостроительОтчета.Результат; Ну и затем Результат, как результат обычного запроса, выводится в Табличный документ. Вот, собственно, и всё... |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |