我试图通过SSRS中的表达式将两个单独的日期/时间字段组合到一个文本框中。
我的表达是:
=Format(Fields!EarlyShiftStart.Value,"hh:mm tt") & "-" & Format(Fields!LateShiftEnd.Value,"hh:mm tt")
报告中看起来是正确的:
但是我在预览报告时收到警告:
警告1 [rsRuntimeErrorInExpression]的值表达式 textrun'Textbox49.Paragraphs [0] .TextRuns [0]'包含错误:输入 字符串格式不正确
不确定为什么会出现此警告,因为它看起来是正确的。想法?
答案 0 :(得分:0)
我不确定,但似乎从数据库中获取了错误的输入字符串。我最好的猜测是,你的情况有2个原因发生了这种情况
1)数据中的某些位置可能会显示null
值。
如果你想避免警告,我会建议你使用表达式,
=Format(IIF(IsNothing(Fields!EarlyShiftStart.Value),"00:00",Fields!EarlyShiftStart.Value),"hh:mm tt") & "-" & Format(IIF(IsNothing(Fields!LateShiftEnd.Value),"00:00",Fields!LateShiftEnd.Value),"hh:mm tt")
这将过滤掉传入的NULL
值。
2)您正在将这两个值与-
连接起来,这可能是您将值格式化为Time
然后与string
值连接的原因。因此,请尝试将表达式更改为
=CStr(Format(Fields!EarlyShiftStart.Value,"hh:mm tt")) & "-" & CStr(Format(Fields!LateShiftEnd.Value,"hh:mm tt"))
这会强制将时间值转换为字符串,然后对其进行控制。
如果所有值格式正确,我还建议您查看传入值。因此,您可以相应地更改表达式。