reporting-services - SSRS if 语句在错误条件下有两行
问题描述
我正在将水晶报告转换为 SSRS,并且需要将此 if 语句的等效项放在表达式中。
if({RPT_ReceiptStatusHeader.receipt_id_type} = "Trailer ID") then
BarcodeC128B({RPT_ReceiptStatusHeader.trailer_id})
else
BarcodeC128B({RPT_ReceiptStatusHeader.receipt_id_type})
BarcodeC128B({RPT_ReceiptStatusDetails.item})
这是我想出的,但这是不正确的。
=IIf(RPT_ReceiptStatusHeader.receipt_id_type = "Trailer ID", StringToBarcode({RPT_ReceiptStatusHeader.trailer_id}), StringToBarcode({RPT_ReceiptStatusHeader.receipt_id_type}), BarcodeC128B({RPT_ReceiptStatusDetails.item})
SSRS if else 的语法是例如....
=IIF(Fields!LineTotal.Value > 100, True, False)
但是我怎样才能将多个语句置于错误条件下呢?
解决方案
你想用这个创建2个条形码吗?对于条形码,我假设您希望它们垂直分开(这样它们就在另一个之上,因为将它们放在一起会使准确的扫描非常成问题)。如果是这种情况,那么我会尝试以下方式:
=IIf(RPT_ReceiptStatusHeader.receipt_id_type = "Trailer ID",
StringToBarcode({RPT_ReceiptStatusHeader.trailer_id}),
StringToBarcode({RPT_ReceiptStatusHeader.receipt_id_type}) & chr(10) &
StringToBarcode({RPT_ReceiptStatusDetails.item})
你最终会得到 2 个条码,一个在另一个之上。您将不得不处理字体大小,甚至可能是控件的高度。
顺便说一句 - 我在您声明的“then”部分的第二部分将“BarcodeC128B”更改为“StringToBarcode”。
BTW2 - 我对 CR 到 SSRS 的转换感到痛苦。我们自己进行转换,并完成了大部分简单的(计划和“按需”)工作,我们只有几百个基于应用程序的报告要转换。
推荐阅读
- database - $elemMatch 适用于数组内的普通字段?
- flutter - pageView.builder 中的容器大小没有变化
- html - 向左添加填充以流动 html:文本不移动
- javascript - 根据源对象属性有条件地分配类名
- kubernetes - StatefulSet breaking Kafka on worker reboot (unordered start)
- css - 无样式的内容出现在 Chrome 上
- rest - Rust + Rocket:我如何从请求中读取 POST 正文作为字符串?
- orientdb3.0 - 如何在 3.1.1 MultiModel API 中创建具有强制值的顶点
- npm - yarn 工作区的私有 npm 注册表有问题
- reactjs - Jest 无法解析 React 项目中 SASS 文件中使用的别名