Reportviewer VB.NET 关于 Switch Expression

Reportviewer VB.NET about Switch Expression

大家好,谁能纠正我在 rdlc tables

中的代码

我有 1 tables 并且在那个 table 上有一个 Field!ans1 正在计算列的平均值(图像中的红色圆圈)然后我希望该平均值过滤到 if 语句以确定该平均值是 Agree , disagree 还是 Stronglyagree(图像中的黑色圆圈)

这是我的 RDLC 图片 Table 黑色圆圈是 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))

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

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

应该可以。这只是你应该在数学中学到的基本逻辑class。请注意,我也删除了那个流氓 space。

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