SSRS 报告数字格式

SSRS Report Numerical Formatting

我有两列 table:TYPE 和 VALUE,两列的值都是 INT 类型。

我必须在 SSRS 分页报告中格式化 Value.value 使用“+”和“-”来表示值的符号,并使用括号,即“(value)”或不使用括号,具体取决于列类型。如果 TYPE 的值 > x,则括号;否则,没有括号。

我经常看到带括号的负值,即 (1,000),但在这种情况下我不能使用该标准。

这是我寻求的四种解决方案的示例,以值 -1,000 或 1,000 为例,分别具有 TYPE > 或 < x:

(-1,000)
-1,000
(+1,000)
+1,000

SSRS 报告的用户界面似乎允许对 VALUE 和 FORMAT 进行自定义表达式。在这种情况下,我正在创建一个自定义 VALUE 表达式,而不是 FORMAT 的自定义表达式(解决方案可能会结合使用两者的自定义表达式)。

这是我的尝试,但没有用(对象错误)。

=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 等)并且出于某种原因您在其中有一个 * .

无论如何,有更简单的方法来做到这一点。

不改变数值表达式,只改变文本框的格式表达式。

在数字格式字符串中,您可以指定正数和负数的显示方式,因此您真正需要确定的是 Value > X

我使用以下数据集查询创建了一些示例数据

DECLARE @t TABLE (X int, Value int)

INSERT INTO @t VALUES
(1,2),
(3,2),
(-10, -11),
(-2234, -1234)

SELECT * FROM @t

然后我添加了一个table。前两列显示没有格式的实际数字。

第三列显示格式化输出。

报表设计如下所示(请注意第 3 列显示 [Value],因为我没有对值表达式进行任何更改

在第 3 个单元格的 Format 属性 中,我使用了以下表达式

=IIF(
Fields!Value.Value > Fields!X.Value,
"(+#,0);-#,0",
"+#,0;(-#,0)"
)

这就是

"If Value > X then format +ve numbers in parentheses with a + sign, and -ve numbers with no parentheses and a minus sign, ELSE, format +ve numbers with a plus sign and -ve numbers in parentheses with a -sign"

给出以下输出。