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"
给出以下输出。
我有两列 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"
给出以下输出。