Конечно, это возможно. Есть несколько способов сделать это, и вам нужно будет выбрать, сколько из этого будет сделано в вашем запросе набора данных / сохраненном pro c и сколько будет сделано с помощью выражений SSRS.
Есть несколько вещей, которые нужно подумайте о том, какой маршрут вы выберете.
- Ваш запрос набора данных или сохраненный pro c всегда должен возвращать набор данных с одинаковыми именами столбцов с одинаковыми типами данных и в том же порядке
- Избегайте скрытия столбцов в дизайнере отчетов, так как это плохо работает
- Если набор данных возвращает много строк, вы можете захотеть выполнить часть работы в запросе
Метод SSRS:
Если вы хотите сделать это полностью в дизайнере отчетов, все затронутые столбцы и группы должны быть заданы как выражения. Например, в упрощенной версии вашего отчета выражение столбца секунда будет выглядеть примерно так.
=SWITCH(
Parameters!myParam.Value = "CBA", Fields!CBAName.Value,
Parameters!myParam.Value = "CRA", Fields!CRAName.Value,
Parameters!myParam.Value = "Client", Fields!ClientName.Value
)
Заголовок столбцов также должен быть аналогичным выражением.
=SWITCH(
Parameters!myParam.Value = "CBA", "CBA Name",
Parameters!myParam.Value = "CRA", "CRA Name",
Parameters!myParam.Value = "Client", "Client Name"
)
Итоговая сумма группы строк (выделенная серым цветом в вашем примере) также должна быть аналогичным выражением.
Вам придется повторить это для всех затронутых столбцов.
Далее
Вам также потребуется изменить RowGroups аналогичным образом. Таким образом, вы должны добавить группу строк, а затем выражения «Группировать по» и «Сортировать по» к одному и тому же.
=SWITCH(
Parameters!myParam.Value = "CBA", Fields!CBAName.Value,
Parameters!myParam.Value = "CRA", Fields!CRAName.Value,
Parameters!myParam.Value = "Client", Fields!ClientName.Value
)
Это довольно долгий процесс, но на самом деле это не так уж плохо 1037 *
Метод SQL
Идея в основном та же, на основе параметра, который мы передаем, мы меняем местами столбцы в результатах, но мы их псевдоним, чтобы они выглядели одинаково в наборе данных SSRS. Мы также должны предоставить текст для заголовков столбцов в результатах, чтобы нам не приходилось работать с ним в дизайнере отчетов.
Вот очень простой пример.
SELECT
CASE @myParam
WHEN 'CBA' THEN CBAName
WHEN 'CRA' THEN CRAName
WHEN 'Client' THEN ClientName
END AS ColumnAValue
CASE @myParam
WHEN 'CBA' THEN 'CBA Name'
WHEN 'CRA' THEN 'CRA Name '
WHEN 'Client' THEN 'Client Name'
END AS ColumnACaption
, *
FROM myTable
Здесь мы меняем местами содержимое ColumnAValue и ColumnACaption. В дизайнере отчетов мы бы отобразили ColumnAValue и установили выражение заголовка столбца на
=FIRST(Fields!ColumnAHeader.Value)
Группы строк будут просто сортировать по ColumnAValue
Этот метод означает намного меньше работы в отчете. дизайнер.
Существуют и другие варианты, но эти два метода я обычно использую go, поскольку они самые простые. Метод SQL легче понять другим разработчикам, потому что в свойствах сортировки и группировки групп строк не так много «скрытых».
В конце концов, решать вам, что вы чувствуете себя комфортно, но, надеюсь, этого у вас будет достаточно для начала.