3

現在、SQL Reporting Services 2005 をセットアップしており、ユーザーがレポートにアクセスできる URL にレポート マネージャーを配置しています。レポートはそこでうまく機能しています。

私の問題は、これらのレポートを C# .net 4.0 コードでユーザーの操作(画面上のレポート ビューアーの使用など)なしで生成しようとしていることです。C# .net アプリケーションでレポートを生成して PDF ファイルにエクスポートしたいと考えています。レポートには必須パラメーターがあるため、パラメーターをレポートに渡す必要があります。これどうやってするの?

オンラインで検索しましたが、間違ったキーワードを使用しているか、これに関する情報があまりありません。これはかなり一般的な質問であると予想していたので、これに関する情報を見つけるのがいかに困難であったかに非常に驚いています. すべてのアドバイス/ヘルプをいただければ幸いです。

4

3 に答える 3

2
string outputPath = "C:\Temp\PdfReport.pdf";

ReportViewer reportViewer = new ReportViewer();
reportViewer.ServerReport serverReport = new ServerReport();
reportViewer.ServerReport.ReportPath = @"path/to/report";
reportViewer.ServerReport.ReportServerUrl = new Uri(@"http://...");
reportViewer.ProcessingMode = ProcessingMode.Local;

reportViewer.ServerReport.ReportServerCredentials.NetworkCredentials = new 
    System.Net.NetworkCredential(username, password, domain)

List<ReportParameter> parameters = new List<ReportParameter>();
parameters.Add(new ReportParameter("parameterName", "value"));

string mimeType;
string encoding;
string extension;
string[] streams;
Warning[] warnings;
byte[] pdfBytes= serverReport.Render("PDF", string.Empty, out mimeType, 
    out encoding, out extension, out streams, out warnings);

// save the file
using (FileStream fs = new FileStream(outputPath, FileMode.Create))
{
    fs.Write(pdfBytes, 0, pdfBytes.Length);
    fs.Close();
}
于 2010-12-16T14:04:36.663 に答える
2

ReportViewer の 2005 バージョンはあまり使用していません。しかし、次のようなことができるはずです。

ServerReport serverReport = new ServerReport();
serverReport.ReportPath = "path/to/report";
serverReport.ReportServerCredentials = ...;
serverReport.ReportServerUrl = "http://....";
serverReport.SetParameters(...);
string mimeType;
string encoding;
string extension;
string[] streams;
Warning[] warnings;
byte[] asPdf = serverReport.Render("PDF", string.Empty, out mimeType, out encoding, out extension, out streams, out warnings);

一般的な要点はServerReportLocalReportどちらも ReportViewer の外で使用できるように設計されていることです。

于 2010-12-14T17:45:18.180 に答える
0

レポートをPDFとして開きたいという同様の問題がありました。ブラウザー ウィンドウでパラメーター付きの pdf を開くだけの場合は、レポート サーバー自体を使用して、クエリ文字列オプションとしてFormat=PDFを指定できます。

例:

http://myServer/ReportServer/Pages/ReportViewer.aspx?%2fMyApplicationReports%2fAcutalReportFileName&rs:Command=Render&rs:Format=PDF&ParamOneId=31943&ParamTwoDate=17072015

これで誰かが時間を節約できることを願っています!

于 2015-07-17T06:05:17.317 に答える