Несколько подотчетов с использованием одних и тех же данных для разных расчетов - PullRequest
0 голосов
/ 27 октября 2011

tl; dr: возможно ли иметь уровни группировки в подотчете, который полностью получает данные из основного отчета? Мне нужно создать один отчет, который будет содержать один набор данных и отображать четыре или более различных сводок / вычислений на данных.

=============================================== ==================================

Было бы достаточно легко сделать отдельный вызов хранимой процедуры в каждом подотчете. Но поскольку большая часть данных будет общей для всех вложенных отчетов, я бы хотел избежать снижения производительности при повторном получении одних и тех же данных из SQL Server.

Я хотел бы получить все необработанные данные один раз из одной хранимой процедуры и связать эти данные с различными подотчетами в одном файле .RPT. До сих пор кажется, что я не могу использовать Group Expert в подотчете, который не вызывает хранимую процедуру - нет отображаемых полей отчета для выбора для группировки.

Подотчеты можно описать как сводки затрат, рассчитанные следующим образом: сводка по всем месяцам, разбивка только за текущий месяц, рассчитанные средние значения на человека / месяц и множественные разбивки затрат по плану на текущий месяц.

Для первого подотчета я могу получить нужные данные в качестве параметров, связав нужные поля и параметры из основного отчета. Мне нужно сгруппировать это, чтобы сгруппировать эти данные по месяцу столбца конкретной даты, с одной строкой в ​​месяц и итоговой суммой в конце. Но если я нажму на Группового эксперта в этом подотчете, я не смогу сгруппировать поля отчета.

Поскольку все вычисления включают в себя один набор данных, я хотел бы просто получить этот набор из одного хранимого вызова proc, и чтобы Crystal выполнял различные вычисления.

Можно ли это сделать в Crystal Reports XI с подотчетами или без них, без нескольких обращений к базе данных, которые возвращают одни и те же данные более одного раза?

1 Ответ

0 голосов
/ 18 ноября 2011

В конце концов я отказался от первоначального запроса.Здесь то, что я реализовал как План B. Вместо этого.

Я создал новую таблицу в SQL Server для хранения всех данных уровня детализации, необходимых для этого отчета.Основная хранимая процедура, связанная с отчетом 1) удаляет старые данные из таблицы на основе заданных параметров, 2) вставляет все необходимые данные и 3) возвращает только данные, необходимые для первого и самого внешнего сводного отчета.

У меня есть Crystal, использующий верхние и нижние колонтитулы группы, объединенные с итогами и промежуточными итогами, для вычисления итогов, которые я хочу получить двумя различными способами.Затем я добавил два подотчета для более сложной группировки, суммирования и фильтрации, которые я хочу сделать.

Каждый из этих подотчетов вызывает собственную хранимую процедуру, которая запрашивает новую таблицу, созданную мной только длянеобходимые столбцы данных для этого конкретного подотчета.Опять же, я использую верхние и нижние колонтитулы группы и подавляю раздел Сведения, чтобы получить сводки по группам, которые мне нужны в каждом из подотчетов.

Это не такое элегантное решение, как я изначально предполагал, но в конечном итогеотвечает нашим потребностям.

...