reporting-services - 在 SSRS 中对 Double 值执行 IIF
问题描述
我的报告中目前有一列正在计算平均值:
=FORMAT(Avg(Fields!intGradeTransposeValue.Value),"#.#")
我目前正在尝试使用该计算的结果来执行 IIF 语句,但出现错误:
textrun 'Textbox20.Paragraphs[0].TextRuns[0]' 的值表达式包含错误:[BC30311] 类型 'Microsoft.ReportingServices.ReportProcessing.ReportObjectModel.ReportItem' 的值无法转换为 'Double'
我的表达是:
=CDbl(IIF(ReportItems!Textbox6 <= 1.4, "A*",
IIF(ReportItems!Textbox6 <= 2.4 AND >= 1.5, "A",
IIF(ReportItems!Textbox6 <= 3.4 AND >= 2.5, "B",
IIF(ReportItems!Textbox6 <= 4.4 AND >= 3.5, "C",
IIF(ReportItems!Textbox6 <= 5.4 AND >= 4.5, "D"
IIF(ReportItems!Textbox6 <= 6.4 AND >= 5.5, "E"
IIF(ReportItems!Textbox6 <= 7.4 AND >= 6.5, "U", "Error"))))))))
如何进行我需要的计算?
额外的
我在下面添加了错误发生的地方——这让我很困惑,因为它似乎接受了 1.4 的第一个双精度。我正在使用下面建议的答案,但这也不起作用。
解决方案
根据您收到的错误,问题是您试图将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")))))))
根据对原始帖子的编辑,我错过了表达式的另一个问题。你不能像那样比较这些值。您需要在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")))))))
推荐阅读
- javascript - 比较JavaScript中的两个字符串而不考虑顺序?
- .net - .NET 5 (NET Core 5) 使用针对 .NET Framework 4 构建的库 - 兼容性垫片?
- java - 如何验证 selenium + java 中的排序?
- python - 如何按流派或标题按字母顺序对文本文件中的列表进行排序?
- xml - 修改xml节点使用powershell的值
- javascript - 异步函数 - Firebase,文档事件监听器
- python - Python:如何将面板数据与几个相应的时间合并
- bash - 如何包含第二个 awk 以避免 awk | awk
- python - python coinbase pro沙盒认证请求错误
- vue.js - 在循环中使用 pug 和 Vue 读取数据