我正在将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)
但是如何将多个语句置于错误状态?
答案 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的转换让您感到痛苦。我们自己进行转换,并完成了大多数简单的(计划的和“按需”操作)工作,我们只有几百个基于应用程序的报告可以转换。