с помощью Visual Studio 2010 и SQL Server 2012SSRS subtotalling столбцов с выражениями
Я сделал отчет SSRS, который требует специального метода промежуточных итогов и прийти к итогу для процентов активов и других расчетов, полученного от Процента Активы. Я не могу просто использовать функцию «Добавить общую функцию», потому что она выделена серым цветом, что характерно для суммирования выражений. Я не могу вручную подсчитать промежуточные итоги, потому что получаю вложенную совокупную ошибку.
Программное обеспечение, которое я использую, чтобы сделать этот отчет SSRS, предоставляет различные хранимые процедуры и функции для создания отчетов с использованием производных вычислений. Хранимая процедура содержит столбец «Процент активов», но поскольку отчет фильтруется, чтобы отображать только обычные акции, процентная доля функции «Активы» по-прежнему не учитывает нефильтрованные активы при ее вычислении. Рассматриваемые активы составляют 59,7% от общего объема холдингов, но мне нужен отчет, чтобы вести себя так, как если бы они составляли 100% акций.
Чтобы понять часть математики в этом отчете, посмотрите следующий отчет. Обратите внимание, что отчет, который я хочу, включает только обычные акции, которые составляют 59,7 Процент от общих активов, как указано.
Данный отчет представляет собой желаемый результат, который в настоящее время рассчитывается в другой программе отчетности. Отчет состоит из двух таблиц
% Компания продаж является жёстком значения, которое представляет собой процент от продаж, которые являются либо внутренними или международными. Вы видите это и% портфельных активов как на международных, так и на внутренних столах.
% Портфель Активы рассчитываются путем умножения процента активов данного холдинга на стоимость продажи жестко закодированной компании. В первом примере портфельные активы McDonald's 2.1% составляют 6,6% * 32%.
6,6% является процент активов Макдоналдса представляет в портфеле, если вы только подсчитать общий запас (исключая наличные)
McDonald's Value Total Portfolio Value %
4,950.00 / 73,919.50 = 6.6000%
учета национального пробоя/International в процентах
Total % Sales %Split Region
6.60% 32% 2.1% Domestic
6.60% 68% 4.5% International
Теперь вот мой выход отчета. Он немного отличается от дизайна, который я покажу, потому что я добавил столбцы и изменил заголовки в пояснительных целях в этом примере предварительного просмотра. Пока я просто пытаюсь заставить рабочий стол работать. Как только это будет работать, я буду строить международную таблицу. У меня есть несколько дополнительных колонок, которые я использую для устранения неполадок.
Я попробовал несколько методов для расчета портфеля активов. Я могу получить правильные значения отдельных строк, но я не могу получить правильное значение промежуточного итога, используя разные методы из-за вложенной совокупной ошибки (суммирование и уже суммированное выражение при использовании области данных). Общая сумма также важна, но для теперь я просто пытаюсь получить промежуточную работу.
Вот один из способов получения значения детализации строки для Процентных активов. Это используется в расчетной колонке процента. Этот столбец является тем, который не позволит мне делать промежуточную оценку без вложенной совокупной ошибки.
Когда я пытаюсь использовать следующее выражение, чтобы получить подытог я получаю вложенную суммарную ошибку
= SUM (Fields! MarketValue.Value/Сумма (Fields! MarketValue. Значение, «DataSet1»))
ERROR Error 2 [rsInvalidNestedDataSetAggregate] The Value expression for the text box ‘Textbox39’ has a nested aggregate that specifies a dataset scope. Inner aggregates cannot specify a dataset scope.
Если использовать поле PercentAssets, который включен в хранимой процедуре я могу итог и получить общую сумму без ошибок, но значение - это отфильтрованное значение, которое суммируется только до 59.7, если умножить этот отфильтрованный процент на продажи компании, это значение неверно.
Последнее, что я пытался использовать пользовательский код VBA, чтобы получить мои промежуточные и итоговые. Однако это обеспечивает текущую сумму рассчитанных процентов, а не промежуточные итоги, которые мне нужны для групп SectorName.
Вот VBA код я использовал, который я нашел в Интернете здесь: http://social.msdn.microsoft.com/Forums/sqlserver/en-US/1d3c5ec1-89cb-4108-8637-ff434027b1ec/sum-an-expression-value-ssrs
Dim public nettotal as Double
Public Function Getvalue (ByVal subtotal AS Double) AS Double
nettotal = nettotal+ subtotal
return subtotal
End Function
Public Function Totalvalue()
return nettotal
End Function
Код развернутого
В итоге мне нужно умножить значения Рассчитанного Percent столбца Компании продажи. Мне нужно подсчитать результат этих вычислений.
Если вы посмотрите в разделе «Сектор информационных технологий», вы можете увидеть, что исходный отчет правильно достигает 32.8 в качестве промежуточного итога.
Мой отчет неправильно достигает 100%, потому что это текущая итоговая сумма Рассчитанных процентов.
Вот ссылка на оригинальный RDL
https://dl.dropboxusercontent.com/u/87501202/InternationalDomestic.rdl
Не пытаясь воспроизвести полную информацию (и, следовательно, просто опубликовать в качестве комментария на данный момент), что произойдет, когда вы попробуете '= SUM (Fields! MarketValue.Value)/Sum (Fields! MarketValue.Value, DataSet1) вместо '= SUM (Fields! MarketValue.Value/Sum (Fields! MarketValue.Value, DataSet1))), который выглядит у него плохой синтаксис - первый должен работать нормально, я думаю. –
Это работает сейчас, мне просто нужно получить общую работу. Спасибо за вашу помощь по другому вопросу, касающемуся этого отчета. –
Код VBA, который я опубликовал, работает для Grand Total. Теперь отчет работает;) –