2010-02-18 2 views
2

Мы рассматриваем возможность создания пользовательского расширения обработки данных для служб Microsoft Reporting Services, чтобы мы могли напрямую сообщать о наших объектах данных.Microsoft Reporting and Complex Objects

Мой вопрос: Предположим, у меня есть объект, представляющий строку, но у него есть элемент, который представляет собой сложный объект:

 

public class TheRowObject 
{ 
    // a "normal" field 
    public string Name {get; set;} 

    // a complex field object 
    public Address BillingAddress { get; set;} 
} 

public class Address 
{ 
    public string City {get; set;} 
    public string State {get; set;} 
    public string Zip {get; set} 
} 
 

У меня нет никаких проблем положить TheRow.Name на доклад, но что если я хочу поставить TheRow.BillingAddress.City?

Дизайнер отчетов позволяет перетаскивать BillingAddress на поверхность отчета, но во время выполнения он отображает текст «Ошибка» в поле.

Есть ли способ отображения элементов сложных объектов?

EDIT То, что я на самом деле после того, как, если это возможно, для конечного пользователя, чтобы иметь возможность перетаскивать свойства сложного объекта из окна инструмента ReportData прямо на поверхность отчета. Я надеялся, что в средстве просмотра отчетов есть встроенная способность сделать это.

Если нет встроенного способа его обработки, я предполагаю, что мне нужно будет либо предоставить пользовательские формулы в отчете, либо предоставить расширение данных, которое «сглаживает» свойства сложного объекта, поэтому что они выглядят как обычные поля.

ответ

2

Похоже, что короткий ответ на этот вопрос был «нет». Я ценю ответы, но кажется, что службы отчетов ожидают простых типов данных в виде столбцов. Если кто-то узнает что-то другое, я бы хотел услышать об этом.

0

Что делать, если вы редактируете RDL или формулу в свободном тексте. Например, измените TheRow.BillingAddress на TheRow.BillingAddress.City.

+0

Это не работает. Когда я редактирую текст формулы, он показывает выражение: = First (Fields! Name.Value, «ProviderCollection») (обратите внимание, что поле «Значение» не принадлежит мне, должно быть частью обертки для отчетов). Если я попытаюсь изменить его, чтобы использовать address.City, я получаю ошибку времени сборки. Я пробовал различные комбинации Address.Value.City, Address.City.Value, Address.Value.City.Value все безрезультатно. – JMarsch

+0

У меня есть отчеты для перехода с SSRS2005 на SSRS2008. В версии 2005 года выражение «Address.Value.City» использовалось для работы, но во время миграции мне пришлось менять объекты, чтобы не было обнаружено сложных типов. Я не знаю, почему это изменилось в Reporting Services ... – Fabio