首页 > 解决方案 > 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) 

但是我怎样才能将多个语句置于错误条件下呢?

标签: reporting-servicesssrs-2008

解决方案


你想用这个创建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 的转换感到痛苦。我们自己进行转换,并完成了大部分简单的(计划和“按需”)工作,我们只有几百个基于应用程序的报告要转换。


推荐阅读