【问题标题】:Reportviewer VB.NET about Switch ExpressionReportviewer VB.NET 关于开关表达式
【发布时间】:2018-09-17 14:54:25
【问题描述】:

大家好,任何人都可以更正我在 rdlc 表中的代码

我有 1 个表,并且在该表上有一个字段!ans1 正在计算列的平均值(图像中的红色圆圈)然后我希望该平均值过滤到 if 语句以确定该平均值是否同意,不同意或强烈同意(图像中的黑色圆圈)

这是我的 RDLC 表的图片 黑圈是 If 语句,它将确定红圈下方的平均值是同意、不同意还是非常同意 但我遇到了一个问题,因为即使它的值是 3,该声明也总是不同意。

// Here is my Code in the Black Circle in the IMAGE
=Switch(Fields!ans1.Value < 1, "Strongly Disagree ",
Fields!ans1.Value > 2, " Disagree",
Fields!ans1.Value > 3, "Agree",
Fields!ans1.Value > 4, "Strongly Agree"
)

//Here is the Code in the RedCircle 
=Avg(CDbl(Fields!ans1.Value))

【问题讨论】:

  • 那么从 1.6 到 2.4 被忽略了?
  • 我刚刚在搜索引擎中输入了“rdlc vb.net 中的条件语句”,20 秒后我读到您可以使用 IIf 函数,就像在常规 VB 中一样。如果我能在不到 30 秒的时间内找到您问题的答案,而无需自己创建 RDLC 报告,您为什么不能?本网站不能替代搜索引擎。当您首先为自己尝试了所有可能的事情时,您会在这里提出问题。网络搜索是您应该为自己做的事情,甚至不需要考虑它。当然,不要搜索“如何编织猫毛衣”。
  • 其实我试过这样的方法 =iif(Avg(CDbl(Fields!ans1.Value >= 3.6, Iif(Fields!ans1.Value >= 2.4, "Strongly Agree", "Agree") ) 但它不工作
  • 我一定错过了你在问题中所说的地方。请提供所有相关信息。您尝试过的不起作用的代码总是相关的。请更新您的问题并提供您认为正确的代码以及尝试时会发生什么,即错误消息和/或意外行为。
  • 问题更新先生 :) 抱歉

标签: vb.net asp.net-mvc-4 rdlc reportviewer


【解决方案1】:

请记住,任何类型的 switch 语句都是自上而下评估的。 3.00 是否大于 2?是的,所以结果是“不同意”(为什么你没有注意到并删除了那个流氓空间,我不知道)。如果要使用“大于”运算符进行比较,则需要先比较最大值:

=Switch(Fields!ans1.Value < 1, "Strongly Disagree",
Fields!ans1.Value > 4, "Strongly Agree",
Fields!ans1.Value > 3, "Agree",
Fields!ans1.Value > 2, "Disagree"
)

应该可以。这只是你应该在数学课上学到的基本逻辑。请注意,我也删除了该流氓空间。

顺便说一句,这仍然会忽略 1.0 - 2.0 范围内的任何值。

【讨论】:

  • 但是它是如何工作的我试过这个但是正如你所说的 1.0 - 2.0 不起作用 =Switch(Fields!ans1.Value > 4 , "Strongly Agree", Fields!ans1.Value > 3.5 , "同意", Fields!ans1.Value > 2.6, "不同意", Fields!ans1.Value
  • 嗯,你要做的第一件事就是决定你想要实现的实际条件是什么。然后,如果您希望我们帮助您实施它们,告诉我们这些规则是什么可能会有所帮助。也就是说,我已经向您展示了如何实现这种类型的规则,因此您已经知道该怎么做。你只需要动动脑筋并去做。
猜你喜欢
  • 1970-01-01
  • 2020-12-16
  • 2011-04-04
  • 2017-02-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-08
  • 2015-02-06
相关资源
最近更新 更多