SSRS if 语句在 false 条件下有两行

SSRS if Statement with two lines in the false condition

我正在将 crystal 报告转换为 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) 

但是如何将多个语句置于 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 转换的痛苦。我们自己进行转换并完成了大部分简单的(预定和 "on demand")工作,我们只有几百个基于应用程序的报告需要转换。