我是SSRS的新手,我正在处理我正在创建的报告的问题。也许我只是不了解如何从DataSet中检索数据,但结果设置如下:
Count ColA ColB ColC
1 Business Start Regular
4 Global Middle Regular
5 Online Middle Regular
8 Online End Regular
13 Online Start Regular
我的假设是我应该可以使用像这样的表达式
=iif(Fields!ColA.Value = "Online" AND Fields!ColB.Value = "Start" AND Fields!ColC.Value = "Regular", Fields!Count.Value, 0)
在文本框中,它应该返回13.而不是它返回零的错误条件。
您可以提供任何帮助,我们将不胜感激。我确信答案已经存在,但我对SSRS的了解有限可能会妨碍我的搜索标准技能。
答案 0 :(得分:0)
答案是如此嵌套你的IIfs:
=IIf(Fields!ColA.Value = "Online", IIf(Fields!ColB.Value = "Start", IIf(Fields!ColC.Value = "Regular", Fields!Count.Value, 0), 0), 0)
答案 1 :(得分:0)
我发现了我的问题。
当我创建Tablix时,我手动添加了一堆行和列来显示数据,并且这样做会删除链接到DataSet的行和列(不知道我是怎么做的)。
我担心无法显示所有可能的输出(即需要显示计数为零的行)。我重新设计了我的查询以包含零条目并使用新查询重新创建报告,所有事情都解决了。
我知道作为一个菜鸟我不应该感到难过,但是说真的,呃 - 呃。
答案 2 :(得分:-1)
我没有有效的SSRS安装试试这个,但是如果你在每个子句周围加上括号会怎样?
=iif((Fields!ColA.Value = "Online") AND (Fields!ColB.Value = "Start") AND (Fields!ColC.Value = "Regular"), Fields!Count.Value, 0)
仅供参考,方便的文档:https://msdn.microsoft.com/en-us/library/ms157328.aspx。
我现在回想一下,我通常将这种逻辑移到SQL查询中,这可以使调试更容易,甚至可以促进单元测试。例如,您可以在select语句中添加一个字段,例如:
SELECT CASE WHEN ColA == 'Online' AND
ColB == 'Start' AND
ColC == 'Regular'
THEN [Count]
ELSE 0 END as ColD,
现在你可以简单地参考SSRS中的ColD。