我的SSRS报告其中一个字段正在使用此表达式,其中字段是数字字段 . 我想看空白字段的值是 0 .
0
=IIf(Fields!PERIOD02_VALUE.Value <> 0,Fields!PERIOD02_VALUE.Value ,"")
Excel导出的版本将此字段视为文本而非数字 .
从SSRS方面有没有其他方法可以做到这一点?
我有这个问题 . 一些单元格是文本和其他数字 - 都具有相同的格式字符串 . 分辨率是将您的单元格表达式乘以1.000(1不起作用!) - 这会强制SSRS将单元格格式化为数字 . 例如; (你的表达方式)* 1.000
Excel将此字段识别为文本,因为只要字段为0,您就输出一个空字符串 .
你可以尝试这个,输出一个空值而不是一个空字符串:
=IIf(Fields!PERIOD02_VALUE.Value <> 0,Fields!PERIOD02_VALUE.Value, Nothing)
但是,这并不能保证工作,因为我似乎记得Excel假定该字段是第一个数据行中的任何类型 .
我在excel导出中遇到了这个问题,用整数的CLng和小数的CDbl函数解决了它 .
= CLng函数(领域!Qty.Value)
这可以保证excel单元格是数字的,比Fields更清晰!Qty.Value * 1.000
问题是你的IIF语句以空 string ,“”结尾 . 如果将其更改为零,它将按预期工作:
=IIf(Fields!PERIOD02_VALUE.Value <> 0,Fields!PERIOD02_VALUE.Value, 0)
代替...
=IIf(Fields!PERIOD02_VALUE.Value <> 0,Fields!PERIOD02_VALUE.Value, "")
以下是针对3种不同毛刺的3种不同解决方案:Value 1
1234空白单元格1234
解决方案2
=IIF(IsNumeric(Fields!TEST.Value.ToString()), CDBL(IIF(IsNumeric(Fields!TEST.Value.ToString()), Fields!TEST.Value.ToString(), "0")), " ")
Value 2
1234 Null 345 null
=IIF(IsNumeric(Fields!TEST.Value.ToString()), CDBL(IIF(IsNumeric(Fields!TEST.Value.ToString()), Fields!TEST.Value.ToString(), "0")), "NULL")
Value 3
1234 Null 345 N / A 550 TBA 440 599不适用
解决方案3
=IIF(IsNumeric(Fields!TEST.Value.ToString()), CDBL(IIF(IsNumeric(Fields!TEST.Value.ToString()), Fields!TEST.Value.ToString(), "0")), Fields!TEST.Value.ToString()),
5 回答
我有这个问题 . 一些单元格是文本和其他数字 - 都具有相同的格式字符串 . 分辨率是将您的单元格表达式乘以1.000(1不起作用!) - 这会强制SSRS将单元格格式化为数字 . 例如; (你的表达方式)* 1.000
Excel将此字段识别为文本,因为只要字段为0,您就输出一个空字符串 .
你可以尝试这个,输出一个空值而不是一个空字符串:
但是,这并不能保证工作,因为我似乎记得Excel假定该字段是第一个数据行中的任何类型 .
我在excel导出中遇到了这个问题,用整数的CLng和小数的CDbl函数解决了它 .
= CLng函数(领域!Qty.Value)
这可以保证excel单元格是数字的,比Fields更清晰!Qty.Value * 1.000
问题是你的IIF语句以空 string ,“”结尾 . 如果将其更改为零,它将按预期工作:
代替...
以下是针对3种不同毛刺的3种不同解决方案:
Value 1
解决方案2
Value 2
解决方案2
Value 3
解决方案3