大変ですよね。まず、ViewState が必要なので、通常の WebForms ページでレポートをホストする必要があります。ただし、これはそれほど悪くはありません。WebForms と MVC は並行して正常に動作します。
難しい部分は、実際の IEnumerable オブジェクトにバインドすることであり、これらのばかげた ObjectDataSource にはバインドしません。
最初のステップは、レポート データ モデルを構築することです。必要に応じて、クエリを使用してコードでこれを行うことができます。このような構造 (ただし、明らかにはるかに大きい) が典型的です。
public class ReportSource
{
public Floogle[] Floogles { get; set; }
}
public class Floogle
{
public Doodad[] Doodads { get; set; }
public string Text { get; set; }
}
public class Doodad
{
public int Number { get; set; }
}
秘訣は、レポートで BindingSource コントロールを使用し、DataSource プロパティをtypeof(ReportSource)
- はい、データ ソースはレポート モデルのタイプに設定することです。
レポートをデザインするとき、多くの情報が得られるわけではありませんが、それは可能です。
サード パーティのレポート ソリューションに関する限り、Telerik が最適なオプションであることがわかりました。