Reportviewer VB.NET о Switch Expression - PullRequest
       27

Reportviewer VB.NET о Switch Expression

0 голосов
/ 02 сентября 2018

Здравствуйте, каждый может кто-нибудь исправить мои коды в таблицах rdlc

У меня есть 1 таблица, и в этой таблице было поле! Ans1, которое вычисляло среднее значение для столбца (КРАСНЫЙ КРУГ в ИЗОБРАЖЕНИИ), а затем я хочу, чтобы это среднее значение было отфильтровано к оператору if, чтобы определить, является ли это среднее значение Согласным. , не согласен или полностью не согласен (ЧЕРНЫЙ КРУГ НА ИЗОБРАЖЕНИИ)

Вот изображение моей таблицы RDLC черный круг - это заявление «если», в котором будет указано, находится ли среднее значение ниже красного круга, если «Согласен», «Не согласен» или «Совершенно согласен» но у меня есть проблема, потому что заявление всегда есть на Disagree, даже если его значение составляет 3

enter image description here

// 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 Ответ

0 голосов
/ 17 сентября 2018

Помните, что оператор 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.

...