SSRS格式数字未在Excel

时间:2016-08-26 21:10:00

标签: sql-server excel reporting-services ssrs-2012 excel-2013

当列" KPI"时,我需要为列设置格式。具有'%'的值我需要该值具有百分比格式,否则为货币格式,所以我有这样的东西:

=IIF(InStr(Fields!KPI.Value,"%")>0,Format(Fields!DIA.Value, "P"),Format(Fields!DIA.Value, "C"))

该表达式正常工作,但当我尝试将该报告导出到Excel时,当我选择多个列时,该列不会汇总,如下图所示:

enter image description here

正如您所看到的,excel正在重新计算但未进行总结,我尝试使用以下公式格式化SQL Server中的每个字段:

=IIF(InStr(Fields!KPI.Value,"%")>0,Format(Fields!DIA.Value, "###.#%"),Format(Fields!DIA.Value, "###,###,###,###.##"))

但是当我将该报告导出到excel时,同样的情况发生了,还有另一种处理方法吗?

1 个答案:

答案 0 :(得分:0)

为了确保Excel将值解释为数字,您可以使用RenderFormat全局变量来检测何时为Excel呈现报表而不包括有问题的格式字符:

=IIF(InStr(Fields!KPI.Value,"%")>0,Format(Fields!DIA.Value, "###.#%"),IIF(OR(Globals!RenderFormat.Name="EXCELOPENXML",Gl‌​obals!RenderFormat.N‌​ame="EXCEL"),Fields!‌​DIA.Value,Format(Fie‌​lds!DIA.Value, "###,###,###,###.##")))

如果在生成的输出中显示千位分隔符至关重要,则可以使用Language全局变量来检测用户的区域并使用适当的字符。该检查将采用一般形式Globals.Lanuage="en-US",具体取决于所涉及的特定区域。

以下是使用RenderFormat.Name变量检查VS2013中渲染器的示例:

RenderFormat Layout

在预览报告时,格式将显示渲染类型为RPL:

RenderFormat Preview