【问题标题】:different dataset in switch in ssrsssrs中switch中的不同数据集
【发布时间】:2016-05-31 12:18:26
【问题描述】:

我在一个报表中有 2 个数据集,在 5 个列中,2 个来自 dataset1,3 个来自 dataset2(数据集 2 是主要数据集)。现在,当我尝试使用下面的 switch 命令时,它没有给我任何错误,但没有显示任何结果。 dataset1 是一个共享点列表。

=SWITCH(First(Fields!xyz.Value, "dataset1")="Platinum",25,First(Fields!xyz.Value, "dataset1")="",0,First(Fields!xyz.Value, "dataset1")="Gold",15)

tablix 中的所有其他列都来自 dataset2,报告运行良好,只是此列中没有数据

【问题讨论】:

  • 我能够为返回数字的列执行此操作 =SWITCH(First(Fields!abc.Value, "dataset1")=1,"Platinum",First(Fields!abc.值,“数据集 1”)=3,“黄金”)。这很完美,我不明白为什么当它是一个字符串时它不起作用,我用另一个带有字符串值的列尝试了它,但它没有显示任何结果。我错过了什么?

标签: reporting-services ssrs-2008-r2 ssrs-tablix


【解决方案1】:

First() 表达式可能是问题所在,也是您更改 IIF 条件时它起作用的原因。 First() 只是从目标数据集中获取命名字段中的第一个值,因此如果它不是“Platinum”、空字符串或“Gold”,它将什么也不返回。另一方面,如果 abc 的第一个值为 1 或 3,它将始终返回“Platinum”或“Gold”

重要的是要意识到这将在表的每一行返回完全相同的数据,因为您只查看数据集 1 的第一行。

我认为您可能正在使用 LookUp() 函数,该函数将使用主键来匹配数据集并根据 dataset2 当前行中的数据从 dataset1 中获取不同的数据。

希望那是有道理的?

编辑回复评论:

那么您可以通过两种方式做到这一点。例如,您可以使用用于填充 switch 语句中的列的相同 LookUp() 公式来获取分数;

=Switch(LookUp(Fields!application_name.Value, Fields!application_name.Value, Fields!service_level.Value, "dataset1") = "Platinum", 25, LookUp(Fields!application_name.Value, Fields!application_name.Value, Fields!service_level.Value, "dataset1") = "Gold", 15)

其次,您可以直接引用已经获取“Gold”或“Platinum”的列。例如,如果该文本框名为 Textbox10(检查属性面板的右上角以查看名称),那么您可以使用:

=Switch(ReportItems!Textbox10.Value = "Platinum", 25, ReportItems!Textbox10.Value = "Gold", 15)

任何一种方法都可以正常工作。基本上,您在那里所做的是确保您始终检查该应用程序的正确服务级别,而不仅仅是 dataset1 中的第一个服务级别

【讨论】:

  • 谢谢丹,现在确实有道理,我现在明白了 First() 表达式的作用。我想做的是,我有 2 个数据集,一个包含应用程序名称及其服务级别(sharepoint 数据集),另一个包含服务台票证信息,以及应用程序名称(sql server 数据集),我使用了查找用应用程序名称匹配的服务级别填充列。现在我想使用该列值来为该列分配点值,例如当它的铂金 = 25,黄金 = 15 时。这是 m 卡住的地方。有什么想法吗?我尝试删除 first(),不起作用
  • 我在这条评论中用完了字符,所以我编辑了我原来的回复来回答这条评论:)
  • 非常感谢,谢谢。当我在开关内使用查找时它起作用了,不知何故使用reportitems.texbox29.value 没有获取任何结果。 (古玩?)但另一个声明成功了。
  • 很高兴你把它整理好了!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-29
  • 1970-01-01
  • 1970-01-01
  • 2010-10-03
  • 2015-01-18
相关资源
最近更新 更多