それで、これが私のデレマです。
タイトルはそれをすべて言います。 SSRSレポートをリモートで実行してPDFとして保存する方法に関するガイダンスが見つからないようです。
以下の記事をフォローしてみました。 ASP.NET CoreサイトでリファレンスとしてReporting Services(SSRS)を使用
ただし、サービス参照をプロジェクトに追加すると、一部のメソッドに誤った署名があるようです。
例えば。 rsExec.LoadReportAsync(report、null);
私の参照では、最初のパラメーターはTrustedUserHeaderオブジェクトです。
C#からSSRSレポートを実行する方法について、良い出発点はありますか?簡単な例は見つかりません。
これを行うには、Microsoft.Reporting.Webformsと次のメソッドを使用します。
using Microsoft.Reporting.WebForms;
...
public byte[] ExportToExcel(string reportName, string[] paramNames, string[][] paramDic)
{
// Variables
Warning[] warnings;
string[] streamIds;
string mimeType;
string encoding;
string extension;
ReportViewer rv = new ReportViewer { ProcessingMode = ProcessingMode.Remote };
rv.AsyncRendering = false;
ServerReport sr = rv.ServerReport;
sr.ReportServerUrl = new Uri("http://<server>/reportserver");
sr.ReportPath = "/<report path>/" + reportName;
if (paramNames.Length != 0)
{
List<ReportParameter> paramList = paramNames.Select((t, i) => new ReportParameter(t, paramDic[i])).ToList();
rv.ServerReport.SetParameters(paramList);
}
return rv.ServerReport.Render("Excel", null, out mimeType, out encoding, out extension,
out streamIds, out warnings);
}
次に、byte
配列をResponse
経由でクライアントに送信するか、ファイルに保存して後で電子メールで送信/転送できます。
最初のパラメーターはレポートの名前、2番目はパラメーター名の配列、3番目はパラメーター値を含む配列の配列です。私はこの方法をキャリアの早い段階で書きましたが、今はこの方法では書きません。これを使用する場合、コードをリファクタリングして2つのパラメーターを取得します。reportNameと、パラメーターと呼ばれるディクショナリーなどのパラメーター値を管理するための辞書です。