SSRS表达式 - 当字段不包含数据时删除换行符

时间:2016-12-14 11:51:03

标签: ssrs-2008

我有一份日历的SSRS报告,它显示每个人每天的不同活动。我目前通过.vbcrlf执行此操作以创建换行符。

我想要做的只是在特定值中存在数据时返回换行符。

我目前的表达是:

=Fields!DayOfMonth.Value 
        & Constants.vbcrlf 
        & Constants.vbcrlf 
        & Fields!Shift.Value 
        & Constants.vbcrlf 
        & Fields!OT.Value 
        & Constants.vbcrlf 
        & Fields!Holiday.Value 
        & Constants.vbcrlf 
        & Fields!AbsenceType.Value 
        & Constants.vbcrlf 
        & Fields!ClockIn.Value

因此,如果没有Holiday,我想删除该行,并且中断AbsenceIn/Out将向上移动文本框。我尝试使用isNothing,但无法正确使用语法。

enter image description here

2 个答案:

答案 0 :(得分:2)

它将数据视为NULL值,这可能会改变它处理文本的方式。

您可以在每个周围使用iif(isnothing(Field!Thing.Value), "", Constants.vbcrlf & Field!Thing.Value)将空值替换为空值。

可能有更优雅的解决方案。

答案 1 :(得分:0)

在VS 2017中使用SQL Server数据工具为我工作的语法:

=IIf(Fields!Holiday.Value Is "", "", Fields!Holiday.Value + Environment.NewLine)
+ IIf(Fields!AbsenceType.Value Is "", "", Fields!AbsenceType.Value + Environment.NewLine)

代码几乎可以自我解释-如果“假日”没有值,则结果为空字符串,否则,如果有值,则显示值和换行符。有关任何函数的最新语法,请参考“表达式”窗口中给出的示例。