Фильтровать строки на основе параметра, который выбирает столбец? - PullRequest
0 голосов
/ 11 октября 2019

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

Однако для определенных столбцов существуют пустые строки для определенных групп. Например, строка 10 может иметь контент для учета, но не контент для соответствия. Я хотел бы скрыть эту строку, если я выберу Соответствие в качестве параметра моего отдела. Кажется, это работает нормально в SQL Server, когда я запускаю запрос с @Department в качестве входной переменной. Однако когда я передаю эту логику в Visual Studio, это не нравится. Если я выберу параметр «Соответствие», из таблицы вообще ничего не появится, кроме заголовков соответствующих столбцов.

Есть ли лучший способ подойти к этому? Я создал столбцы, которые = 1 или 0 для каждого отдела. Поэтому у меня есть столбец с именами «Соответствие», «Юридический» и т. Д., И каждой строке, если есть связанный контент для группы, будет присвоено «1» для «да» или «0» для «нет».

Имена столбцов (пример):

mt.[Customer Name]
mt.[Address]
mt.[Order #]
mt.[CC Info]
mt.[Confirmation #]
mt.[Misc# Notification]
mt.[Confidentiality]
br.Legal
br.Accounting
br.IR
br.Operations
br.Compliance

Тип параметра установлен в TEXT

DECLARE @Department VARCHAR(255)

SELECT * 
FROM   maintable mt
       LEFT OUTER JOIN @BooleanRows br 
                    ON (mt.ID = br.ID2) 
WHERE '1' = (CASE WHEN @Department = 'Legal'
            THEN br.Legal
            WHEN @Department = 'Compliance'
            THEN br.Compliance 
            WHEN @Department = 'Accounting'
            THEN br.Accounting 
            WHEN @Department = 'Operations'
            THEN br.Operations 
            WHEN @Department = 'IR'
            THEN br.IR 
        END)

Как я уже сказал, запрос работает в SQL Server, если яset @Department = 'Legal' или 'Compliance' и т. д., но, похоже, не работает в построителе отчетов Visual Studio. Кроме того, выпадающий список для параметров пишется с прописной буквы точно так же, как в запросе.

Вот пример изображения результата в представлении отчета SSRS при фильтрации по параметру = Отдел 1: Представление отфильтровано по параметру = "Отдел 1"

Вы видите, что существует 2 типа столбцов - белый BG - это столбцы, которые фильтруются на основе параметра. Голубой фоновый столб - это статичные столбцы. В белых столбцах BG появляются 3 строки. Только 2 строки содержат данные. Я хочу скрыть / отфильтровать строку, которая не содержит данных для этих белых столбцов.

1 Ответ

0 голосов
/ 11 октября 2019

Дейл Баррелл прав, не ясно, где вы выдаете ложь. Что я скажу, так это то, что (исходя из того, что я понимаю о вашей проблеме), вам лучше использовать видимость строк точно так же, как вы используете видимость столбцов, чтобы скрыть информацию.

...