【问题标题】:SSRS - Number format expression not workingSSRS - 数字格式表达式不起作用
【发布时间】:2026-02-14 23:50:01
【问题描述】:

我的数据库中有一个名为 systemconfig 的表,其中包含一些我将在报告中使用的配置。这个想法是,我没有直接在报表的文本框属性中调整“数字格式”,而是更改此表中的一个值,然后通过格式属性中的自定义表达式,从该表中获取值

数据集'ds_DecimalValues'的查询是这样的:

DECLARE @DecimalValue Nvarchar(500)
SELECT @DecimalValue = 
 ( SELECT Value as 'DecimalValue' FROM SystemConfig WHERE Key = Decimal_Value )

SELECT
    DecimalValue = @DecimalValue

好的,这个查询的结果是##

在文本框属性的格式行中有这个表达式:

=First(Fields!DecimalValue.Value, "ds_DecimalValue")

但报告显示 2 个十进制值而不是无。我不确定 systemconfig 表上的十进制值是否正确,我假设 '##' 是正确的,不显示十进制值,但我不确定。有什么想法吗??

问候。

【问题讨论】:

    标签: sql reporting-services ssrs-2008-r2


    【解决方案1】:

    这样的东西对你有用吗?应该四舍五入到最接近的整数

    =Floor(First(Fields!DecimalValue.Value, "ds_DecimalValue"))
    

    【讨论】:

    • 不幸的是它不起作用:(实际上这个想法是如果表 systemconfig 上的十进制值是'##',它应该不显示十进制值,但是如果它是'##.##',它应该显示 2 个十进制值等等。但它们都不起作用。
    【解决方案2】:

    当我过去这样做时,我通常会使用像 f0n0 这样的格式代码。

    试着用这个代替##

    如果这不起作用,那么需要调试一些东西。

    1. 添加一个文本框,其中包含您在格式属性表达式中使用的相同表达式,确保它返回您期望的内容
    2. 直接输入格式代码并确保其格式符合您的预期。

    请记住,使用f0 等代码时不需要使用引号。

    【讨论】: