Reportviewer VB.NET关于Switch表达式

问题描述 投票:-1回答:1

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

我有1个表,在那个表上有一个Field!ans1计算列的平均值(IMAGE中的RED CIRCLE)然后我希望该平均值过滤到if语句以确定该平均值是否同意,不同意或Stronglyagree(图像中的黑色圆圈)

这是我的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))
vb.net asp.net-mvc-4 rdlc reportviewer
1个回答
0
投票

请记住,自上而下评估任何类型的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范围内的任何值。

© www.soinside.com 2019 - 2024. All rights reserved.