Переменная отчета Microsoft SSRS 2016 для группировки данных: значения переменных нельзя использовать в групповых выражениях

Строю отчет в Microsoft SSRS 2016; В моем отчете есть несколько групп, все эти группы выполняются с помощью (одного и того же) набора параметров. Вы можете увидеть снимок экрана ниже:

1) У меня есть 3 группы в дизайнере отчетов SSRS 2016.

введите здесь описание изображения

2) Все 3 группы используют одно и то же выражение (с использованием параметров) для группировки отчета.

введите здесь описание изображения

Вкратце, если значение параметра — X, оно сгруппировано по X; если значение этого параметра — Y, оно сгруппировано по Y; Я делаю это для многих групп, создавая множество параметров.

В будущем у меня будет намного больше групп и, следовательно, больше вариантов параметров по мере роста отчета. Я пытаюсь найти способ оптимизировать этот отчет SSRS 2016, написав этот код ТОЛЬКО ОДИН РАЗ.

Я попытался добавить переменную отчета, как показано ниже:

введите здесь описание изображения

Теперь у меня есть новая переменная отчета (GV2), в которой этот код хранится с оператором Switch.

Теперь я пытаюсь использовать эту переменную отчета во многих различных группах.

введите здесь описание изображения

Я получаю такую ​​ошибку:

Значения переменных нельзя использовать в групповых выражениях

Есть ли другой способ сделать это? Мне нужно оптимизировать такую ​​параметризованную группировку.

Может писать какие-то кастомные коды в SSRS; если да, можете ли вы предоставить код (мои знания о .Net равны нулю!)

Спасибо

Это может упростить ваш отчет, если вы сделаете это в своем наборе данных. Передайте параметр в свой SQL-запрос, если вы еще этого не сделали, и добавьте столбец groupby. Затем вы можете изменить то, что отображается в этом столбце, на основе параметров, переданных в вашем отчете, и только тогда нужно будет сгруппировать по фиксированному столбцу.   —  person user3812887    schedule 20.03.2017

См. также:  Объявление переменной: использование var, let и const.

Проблема здесь в том, что данные исправлены; это не проблема агрегации (GROUP BY в T-SQL); это больше связано с представлением в SSRS (группы строк); наш клиент хочет объединить множество существующих отчетов в один; поэтому мы пишем одну хранимую процедуру / запрос, а затем добавляем группы строк в SSRS и параметризуем эти группы строк.   —  person user3812887    schedule 20.03.2017

@AlanSchofield В некотором смысле я не могу ничего изменить в наборе данных!   —  person user3812887    schedule 20.03.2017

Я не предлагал вам группировать данные в SQL. Я предлагал вам добавить дополнительный столбец к данным, возвращаемым из SQL, который вы могли бы заполнить на основе параметров. Это тот же процесс, который вы пытаетесь выполнить в своем операторе SWITCH, но только что выполняемый в SQL с помощью оператора case. Извините, я только что видел ваш дополнительный комментарий.   —  person user3812887    schedule 20.03.2017

Понравилась статья? Поделиться с друзьями:
IT Шеф
Комментарии: 1
  1. user3812887

    Для этого вы можете использовать параметр.

    • Настройте параметр для вашей группы по опциям
    • В Доступные значения добавьте то, что вы хотите сгруппировать по
    • В разделе значений введите имя поля, по которому вы хотите сгруппировать. Например — если вы хотите группировать по полям! Имя_региона.Значение, вы устанавливаете свой параметр с именем_региона в поле значения. Параметр
    • В выражении группы в табликсе используйте =Fields(Parameter!GroupBy.Value).Value

    Теперь, когда вы выбираете значение из параметра, оно будет сгруппировано по нему. Вам просто нужно будет добавить новые значения в параметр GroupBy в будущем, чтобы добавить дополнительные параметры.

    Вернусь к этому. Дай мне время person user3812887; 22.03.2017

Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: