ReportViewerコントロールを使用してASP.NETページにサーバーレポートを表示しており、レポートをオブジェクトに取得して、読み取りや変更を行う方法を探しています。
この種のもの:
var rw = report.Width;
var t = ((Chart)report.Body.Item[3]).Title;
方法はありますか、それともXMLファイルの解析に固執していますか?
ETA:
XMLファイルにアクセスする必要があると思い始めていますが、サーバーからXMLファイルをダウンロードし、(メモリ内で)変更してからReportViewerコントロールに送信する方法がわかりません。
ETA2:
レポート定義をダウンロードする方法は次のとおりです(簡潔にするために省略してクリーンアップします)。
// Download the report
var rs = new ReportingService2010();
rs.UseDefaultCredentials = true;
var reportDefinition = rs.GetItemDefinition("/DashboardReports/MyChart");
// Convert to XML
var ms = new MemoryStream(reportDefinition);
var doc = new System.Xml.XmlDocument();
doc.Load(ms);
// To load the stream into the report viewer
stream.Position = 0; // needed because we used the stream above - doc.Load(ms)
this.ReportViewer1.ServerReport.LoadReportDefinition(stream);