2012-12-17 107 views
0

我有一个报告,显示区域,该区域的诊断列表,每个诊断的诊断数量以及百分比。这工作正常,但是我想要选择并显示多个区域的数据。Reporting Services - 列表清单

目前,我有一个选择该区域,它显示了表中所选区域的所有诊断。本质上,我想列出这些表格,因此可以根据需要为多个区域重复。

我认为这可以通过将在一个列表框的表,设置表矩阵的每个区域进行过滤来进行,但如果我尝试,我得到:

Error 1 [rsInvalidDetailDataGrouping] The tablix ‘Tablix1’ has a detail member 
with inner members. Detail members can only contain static inner members. 

很难准确解释我需要的。目前,所有的诊断都显示出来,但它们都列在同一区域。我需要一个来自区域1的诊断清单,然后是来自区域2,然后是区域3等的清单。百分比需要来自该区域的百分比,目前它们是所有区域的百分比。

这样做的最好方法是什么?

回答

1

不要将表格放在列表中 - 只需在表格上使用分组。

假设您现在想要一个名为@Areas的多vaue参数来选择区域,然后全部打印出来,用分页符分隔。我假设你有一张诊断表格和一张表DiagnosisItems用于诊断中执行的项目。所以,你的SQL看起来是这样的:你的桌子上

SELECT Diagnoses.Area, Diagnoses.DiagnosisDate, Diagnoses.Description, 
    COUNT(*) AS TotalDiagnoses 
FROM Diagnoses 
INNER JOIN DiagnosisItems ON Diagnoses.DiagnosisId = DiagnosisItems.DiagnosisId 
WHERE Diagnoses.Area IN @Areas 
GROUP BY Diagnoses.Area, Diagnoses.DiagnosisDate, Diagnoses.Description 
ORDER BY Diagnoses.Area, Diagnoses.DiagnosisDate, Diagnoses.Description 

点击,然后用鼠标右键单击在详细信息行的左侧显示的灰色手柄。选择Add GroupArea。添加组页眉和组页脚。在该表中,把Area在组页眉和组页脚把Area总诊断该区域:

=SUM(Fields!TotalDiagnoses.Value) 

现在您详细一行,你会使用表达式这样的比例:该组手柄

=Fields!TotalDiagnoses.Value/SUM(Fields!TotalDiagnoses.Value, "table1_Group1") 

单击鼠标右键,选择Row Group-Group Properties-Page Breaks和检查组的每个实例之间的分页符。

+0

你是先生,是男性中的上帝。页脚还允许我为每个区域设置总数。谢谢! –

0

我不认为你需要在tablix上放置一个过滤器。只需在列表上设置分组并添加tablix即可。

+0

我什至不能把表中列表,但它给了我上面的错误。制作表格列表甚至是一个有效的方法吗? –