RDL 2016 Report Builder 为可选参数跳过一行
RDL 2016 Report Builder skip a line for an optional parameter
我有一个包含多个参数的 RDL 模板。它们都是可选的并标记为:
- 允许空值
- 允许空白值 ("")
重要的是它们是可选的,因为有时地址不包含 AddressLine3(或者实际上不包含 AddressLine1 或 AddressLine2,甚至 PostCode):
它们都放在一个文本框区域中,并且一切正常,但问题是如果我不传递可选参数之一(下例中的 AddressLIne2)- 中保留了一个空行报告:
关于如何使空行消失的任何想法?
最简单的方法是用一个表达式替换 5 个参数的列表。像这样。
=
Parameters!FullName.Value & IIF(IsNothing(Parameters!FullName.Value), Nothing, vbcrlf) &
Parameters!AddressLine1.Value & IIF(IsNothing(Parameters!AddressLine1.Value), Nothing, vbcrlf) &
Parameters!AddressLine2.Value & IIF(IsNothing(Parameters!AddressLine2.Value), Nothing, vbcrlf) &
Parameters!AddressLine3.Value & IIF(IsNothing(Parameters!AddressLine3.Value), Nothing, vbcrlf) &
Parameters!PostCode.Value
仅当参数不为空时,才将每个参数值与添加的新行连接起来。
演示数据
下面显示了应用于 AdventureWorks 示例数据库中的一些地址数据的相同原理
报告显示所有地址字段以供说明
给出以下输出
我有一个包含多个参数的 RDL 模板。它们都是可选的并标记为:
- 允许空值
- 允许空白值 ("")
重要的是它们是可选的,因为有时地址不包含 AddressLine3(或者实际上不包含 AddressLine1 或 AddressLine2,甚至 PostCode):
它们都放在一个文本框区域中,并且一切正常,但问题是如果我不传递可选参数之一(下例中的 AddressLIne2)- 中保留了一个空行报告:
关于如何使空行消失的任何想法?
最简单的方法是用一个表达式替换 5 个参数的列表。像这样。
=
Parameters!FullName.Value & IIF(IsNothing(Parameters!FullName.Value), Nothing, vbcrlf) &
Parameters!AddressLine1.Value & IIF(IsNothing(Parameters!AddressLine1.Value), Nothing, vbcrlf) &
Parameters!AddressLine2.Value & IIF(IsNothing(Parameters!AddressLine2.Value), Nothing, vbcrlf) &
Parameters!AddressLine3.Value & IIF(IsNothing(Parameters!AddressLine3.Value), Nothing, vbcrlf) &
Parameters!PostCode.Value
仅当参数不为空时,才将每个参数值与添加的新行连接起来。
演示数据
下面显示了应用于 AdventureWorks 示例数据库中的一些地址数据的相同原理
报告显示所有地址字段以供说明
给出以下输出