SSRS if语句在错误条件下有两行

时间:2018-12-31 19:52:19

标签: reporting-services ssrs-2008

我正在将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的语法是...。

=IIF(Fields!LineTotal.Value > 100, True, False) 

但是如何将多个语句置于错误状态?

1 个答案:

答案 0 :(得分:2)

您是否要以此创建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条条形码,它们彼此相对。您将必须处理字体大小,甚至可能要处理控件的高度。

顺便说一句-我在语句的“然后”部分的第二部分中将“ BarcodeC128B”更改为“ StringToBarcode”。

BTW2-CR和SSRS的转换让您感到痛苦。我们自己进行转换,并完成了大多数简单的(计划的和“按需”操作)工作,我们只有几百个基于应用程序的报告可以转换。