Reporting services 带两行的SSRS if语句处于false状态

Reporting services 带两行的SSRS if语句处于false状态,reporting-services,ssrs-2008,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_ReceiptStatu

我正在将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) 

但是我怎么能在错误的条件下放置多个语句呢

您是否正在尝试用此创建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})
你会得到两个条形码,一个在另一个上面。您必须处理字体大小,甚至可能是控件的高度

顺便说一句,我在你陈述的“then”部分的第二部分将“BarcodeC128B”改为“StringToBarcode”

BTW2-我感觉到了你的痛苦,从CR到SSRS的转换。我们自己进行转换,完成了大部分简单的(计划和“按需”)工作,我们只需要转换几百个基于应用程序的报告