Выполнение IIF по двойному значению в SSRS

В некоторых случаях вы можете использовать e.message или e.messages. Но это не работает во всех случаях. В любом случае более безопасным является использование str (e)

try:
  ...
except Exception as e:
  print(e.message)
0
задан MIS_Gem 18 January 2019 в 13:51
поделиться

2 ответа

Исходя из получаемой вами ошибки, проблема заключается в том, что вы пытаетесь преобразовать само значение ReportItems!Textbox6 в удвоенное значение, а не в его значение. Чтобы ссылаться на значение текстового поля, вам нужно ссылаться на него как ReportItems!Textbox6.Value. Поэтому я полагаю, что ответ, который вам понадобится, объединит ответ Арахмана с этим изменением:

=IIF(CDbl(ReportItems!Textbox6.Value) <= 1.4, "A*", 
    IIF(CDbl(ReportItems!Textbox6.Value) <= 2.4 AND >= 1.5, "A",
        IIF(CDbl(ReportItems!Textbox6.Value) <= 3.4 AND >= 2.5, "B",
            IIF(CDbl(ReportItems!Textbox6.Value) <= 4.4 AND >= 3.5, "C",
                IIF(CDbl(ReportItems!Textbox6.Value) <= 5.4 AND >= 4.5, "D"
                    IIF(CDbl(ReportItems!Textbox6.Value) <= 6.4 AND >= 5.5, "E"
                        IIF(CDbl(ReportItems!Textbox6.Value) <= 7.4 AND >= 6.5, "U", "Error")))))))

Источник

Основываясь на редактировании исходного поста, я пропустил другая проблема с выражением. Вы не можете сравнивать такие значения. Вам нужно будет добавить дополнительные ссылки на значение Textbox после AND.

=IIF(CDbl(ReportItems!Textbox6.Value) <= 1.4, "A*", 
    IIF(CDbl(ReportItems!Textbox6.Value) <= 2.4 AND CDbl(ReportItems!Textbox6.Value) >= 1.5, "A",
        IIF(CDbl(ReportItems!Textbox6.Value) <= 3.4 AND CDbl(ReportItems!Textbox6.Value) >= 2.5, "B",
            IIF(CDbl(ReportItems!Textbox6.Value) <= 4.4 AND CDbl(ReportItems!Textbox6.Value) >= 3.5, "C",
                IIF(CDbl(ReportItems!Textbox6.Value) <= 5.4 AND CDbl(ReportItems!Textbox6.Value) >= 4.5, "D",
                    IIF(CDbl(ReportItems!Textbox6.Value) <= 6.4 AND CDbl(ReportItems!Textbox6.Value) >= 5.5, "E",
                        IIF(CDbl(ReportItems!Textbox6.Value) <= 7.4 AND CDbl(ReportItems!Textbox6.Value) >= 6.5, "U", "Error")))))))
0
ответ дан Steve-o169 18 January 2019 в 13:51
поделиться

Я почти уверен, что вы говорите, приведите результат, который будет строковым значением A * или B и т. Д. Как удвоенный. Что дает ошибку, нельзя привести к удвоению.

Возможно, вы захотите обернуть разделы reportItems в CDbl (), чтобы привести это число, а затем сравнить его со статическими двойными значениями.

Вы могли бы разыграть поле таким образом, только если его действительно нужно было заменить на двойное для сравнения.

=IIF(CDbl(ReportItems!Textbox6) <= 1.4, "A*", 
    IIF(CDbl(ReportItems!Textbox6) <= 2.4 AND >= 1.5, "A",
        IIF(CDbl(ReportItems!Textbox6) <= 3.4 AND >= 2.5, "B",
            IIF(CDbl(ReportItems!Textbox6) <= 4.4 AND >= 3.5, "C",
                IIF(CDbl(ReportItems!Textbox6) <= 5.4 AND >= 4.5, "D"
                    IIF(CDbl(ReportItems!Textbox6) <= 6.4 AND >= 5.5, "E"
                        IIF(CDbl(ReportItems!Textbox6) <= 7.4 AND >= 6.5, "U", "Error")))))))
0
ответ дан arahman 18 January 2019 в 13:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: