SSRS本地模式报告零显示为空白

时间:2009-11-10 10:52:29

标签: c# sql-server reporting-services

我有一个SSRS(SQL Server Reporting Services)RDLC本地模式报告,该报告由对象数据源填充。但是,数据库中的数据返回为0,但报告显示为空白。

我的数据源是List<>从SQL Server查询填充的“ReportData”类型。

public class ReportData
{
    public object column1 { get; set; }
    public object column2 { get; set; }
    public object column3 { get; set; }

    public ReportData(object column1, object column2, object column3)
    {
        this.column1 = column1;
        this.column2 = column2;
        this.column3 = column3;
    }
}

像这样:

List<ReportData> results = new List<ReportData> {};

while (dr.Read())
{
    results.Add(new ReportData(dr[0], dr[1], dr[2], dr[3]));
}

通过调试我确认列表中填充了值“0”并且它们被转换为Decimals对象(原始SQL Server字段是货币类型)。

然后我通过以下方法将其绑定到ReportViewer控件:

ReportViewerControl.LocalReport.DataSources["ObjectDataSource"].Value = results;

只需在报告中正常使用它(我添加了数据源并使用“网站数据源”面板将值拖到表格上),如上所述它不显示“0”但只是空白。

我正在使用Visual Studio 2008,我假定ReportViewer 2005控件(Microsoft不提供本地模式tablix :()并查询SQL Server 2008 x64标准实例。

任何人都知道为什么它没有显示零?

菲尔

2 个答案:

答案 0 :(得分:1)

如果您的格式表达式为“###,###,###。##”,则在零值上显示为空白。刚删除了可能发生零值及其修复的特定情况的格式表达式。

答案 1 :(得分:0)

如果要保留格式,可以更改FORMAT表达式以测试零。

= IIF(Fields!MyField.Value <> 0,"###,###,###.##","")

以上对我有用。