当列" KPI"时,我需要为列设置格式。具有'%'的值我需要该值具有百分比格式,否则为货币格式,所以我有这样的东西:
=IIF(InStr(Fields!KPI.Value,"%")>0,Format(Fields!DIA.Value, "P"),Format(Fields!DIA.Value, "C"))
该表达式正常工作,但当我尝试将该报告导出到Excel时,当我选择多个列时,该列不会汇总,如下图所示:
正如您所看到的,excel正在重新计算但未进行总结,我尝试使用以下公式格式化SQL Server中的每个字段:
=IIF(InStr(Fields!KPI.Value,"%")>0,Format(Fields!DIA.Value, "###.#%"),Format(Fields!DIA.Value, "###,###,###,###.##"))
但是当我将该报告导出到excel时,同样的情况发生了,还有另一种处理方法吗?
答案 0 :(得分:0)
为了确保Excel将值解释为数字,您可以使用RenderFormat全局变量来检测何时为Excel呈现报表而不包括有问题的格式字符:
=IIF(InStr(Fields!KPI.Value,"%")>0,Format(Fields!DIA.Value, "###.#%"),IIF(OR(Globals!RenderFormat.Name="EXCELOPENXML",Globals!RenderFormat.Name="EXCEL"),Fields!DIA.Value,Format(Fields!DIA.Value, "###,###,###,###.##")))
如果在生成的输出中显示千位分隔符至关重要,则可以使用Language全局变量来检测用户的区域并使用适当的字符。该检查将采用一般形式Globals.Lanuage="en-US"
,具体取决于所涉及的特定区域。
以下是使用RenderFormat.Name变量检查VS2013中渲染器的示例:
在预览报告时,格式将显示渲染类型为RPL: