Локальный режим SSRS Отчет нулевой отображается пустым - PullRequest
1 голос
/ 10 ноября 2009

У меня есть SSD (службы отчетов SQL Server) RDLC в локальном режиме, который заполняется источником данных объекта. Однако данные из базы данных возвращаются как 0, а отчет отображается пустым.

Мой источник данных - это список <> типа "ReportData", который заполняется из запроса SQL Server.

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» и что они превращаются в объекты десятичных чисел (исходное поле SQL Server имеет тип money).

Затем я привязываю его к элементу управления ReportViewer с помощью:

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

И просто используйте его как обычно внутри отчета (я добавил источник данных и с помощью панели «Источник данных веб-сайта» перетащите значения в таблицу), так как указано, что он не отображает «0», а просто пуст.

Я использую Visual Studio 2008 с предполагаемым элементом управления ReportViewer 2005 (Microsoft не предоставляет tablix в локальном режиме :() и запрашиваю экземпляр SQL Server 2008 x64 Standard.

Кто-нибудь получил хоть какую-то подсказку, почему на нуле нет нуля?

Phil

Ответы [ 2 ]

1 голос
/ 11 ноября 2009

Появляется, если у вас есть выражение формата скажем "###, ###, ###. ##" для нулевого значения, оно делает его пустым Просто удалено выражение формата для определенных случаев, когда могут возникнуть нулевые значения, и его исправление.

0 голосов
/ 22 августа 2013

Если вы хотите сохранить формат, вы можете изменить выражение FORMAT для проверки на ноль.

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

Вышесказанное сработало для меня.

...