如何解决SSRS报告数字格式
我有两列表:TYPE和VALUE,两列的值均为INT类型。
我必须在SSRS分页的报告中使用“ +”和“-”表示值的符号,并在括号中(即“(值)”或不包含括号,由TYPE列确定格式)“ Value.value”。如果TYPE的值> x,则用括号括起来;否则,没有括号。
我通常会看到带有括号的负值格式,即(1,000),但是在这种情况下,我不能使用该标准。
下面是我寻求的四个解决方案的示例,以值-1,000或1,000为例,分别具有TYPE>或 SSRS报告的用户界面似乎允许VALUE和FORMAT的自定义表达式。在这种情况下,我将创建一个自定义的VALUE表达式,而不是FORMAT的一个自定义表达式(解决方案可能会同时使用这两者来组合自定义表达式)。 这是我的尝试,不起作用(对象错误)。 欢迎任何指导。谢谢!
(-1,000)
-1,000
(+1,000)
+1,000
=iif(TYPE.value > x AND VALUE.value > 0,"(+"&VALUE.value&")"),iif(TYPE.value > x AND VALUE.value < 0,"(-"&*VALUE.value&")"),iif(TYPE.value < x AND VALUE.value < 0,"-"&VALUE.value,"+"&VALUE.value)
解决方法
表达式中有一些错字,例如,您需要引用Fields
集合(Fields!Value.Value
等),并且出于某种原因,其中还有一个*
。 / p>
无论如何,有更简单的方法可以做到这一点。
不要更改值表达式,只需更改文本框的格式表达式即可。
在数字格式字符串中,您可以指定正数和负数的显示方式,因此您真正需要确定的只是Value> X
我通过以下数据集查询创建了一些示例数据
DECLARE @t TABLE (X int,Value int)
INSERT INTO @t VALUES
(1,2),(3,(-10,-11),(-2234,-1234)
SELECT * FROM @t
然后我添加了一张桌子。前两列显示不带格式的实际数字。
第三列显示格式化的输出。
报表设计如下所示(请注意,第三列显示[Value],因为我尚未对值表达式进行任何更改
在第三个单元格的Format
属性中,使用以下表达式
=IIF(
Fields!Value.Value > Fields!X.Value,"(+#,0);-#,0","+#,0;(-#,0)"
)
这简直就是
“如果“值”> X,则将括号中的+ ve数字格式化为+号, -ve无括号和负号的数字,ELSE,格式为+ ve 带加号的数字和带-符号的带括号的-ve数字”
哪个给出以下输出。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。