我正在Visual Studio中构建报表,并且希望有一个参数,该参数可以让我从预定列表中选择部门。每个部门在表中分配了许多列。选择部门后,将仅显示与他们的组相关的列。我通过在每个列中添加一个列可见性表达式来进行设置。
但是,对于某些列,某些组有空行。例如,第10行可能包含“会计”内容,但没有“合规性”内容。如果我选择“合规性”作为部门参数,我想隐藏此行。当我使用@Department作为输入变量运行查询时,这在SQL Server中似乎可以正常工作。但是,当我将此逻辑转移到Visual Studio时,它不喜欢它。如果我选择“合规性”参数,则除了相关的列标题外,表中什么都没有显示。
有没有更好的方法来解决这个问题?我要做的是为每个部门创建= 1或0的列。因此,我有一列名为“ Compliance”,“ Legal”等的列,如果该组有相关内容,则将为每行分配“ 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)
正如我所说,如果我设置@Department ='Legal'或'Compliance'等,查询将在SQL Server中工作,但在Visual Studio报表生成器中似乎不起作用。另外,“参数”下拉列表的大写/拼写方式与查询中的方式完全相同。
下面是当您在Parameter = Department 1上进行过滤时在SSRS Report视图中结果的示例图像: View filtered on Parameter = "Department 1"
您看到有2种列类型-白色BG是根据“参数”过滤的列。浅蓝色BG是静态的列。在白色BG列中,出现3行。只有2行包含数据。我想隐藏/过滤出不包含那些白色列数据的行。
答案 0 :(得分:0)
戴尔·伯瑞尔(Dale Burrell)是正确的,不清楚问题出在哪里。我要说的是(根据我对您问题的理解),最好使用行可见性,就像使用列可见性来隐藏信息一样。