何日もかけて取り組んできた問題の解決にかなり近づいています。
ASP.net ページの SSRS レポートにパラメーターを渡そうとしています。ユーザーは前のページで、プログラム (3 つのプログラムのドロップダウン リスト) と期間 (日付) の 2 つのオプションを選択します。
何かを渡すことはできますが、欲しいものは得られません。ユーザーがレポートに何を表示するかを選択するページは次のとおりです。
ClientScript.RegisterStartupScript(this.GetType(), "Alert", "alert('Bill Created!');window.open('../demographics/supbillrpt.aspx?prog=fprogram&period=cperiod','_self');", true);
fprogram は次のとおりです。
SqlParameter param2 = new SqlParameter();
param2 = command.Parameters.Add("@program", SqlDbType.Char);
param2.Value = fprogram;
cperiod も同じですが、日付です。
レポートを表示するページのコード ビハインドは次のとおりです。
String sprogram = Request.QueryString[0];
String speriod = Request.QueryString[1];
ReportViewer1.ProcessingMode = ProcessingMode.Remote;
ReportViewer1.Width = 800;
ReportViewer1.Height = 600;
IReportServerCredentials irsc = new CustomReportCredentials();
ReportViewer1.ServerReport.ReportServerCredentials = irsc;
ReportViewer1.ServerReport.ReportPath = "/sup_billing/Report1";
ReportViewer1.ServerReport.Refresh();
ReportParameter p = new ReportParameter("prog", sprogram); ReportViewer1.ServerReport.SetParameters(new ReportParameter[] { p });
ReportParameter p2 = new ReportParameter("period", speriod); ReportViewer1.ServerReport.SetParameters(new ReportParameter[] { p2 });
そして、私が得たのは、プログラムが空白で、ピリオドが「cperiod」と表示されていることです
変数として読み取れるようにするためにいくつかの異なることを試みましたが、何も機能していないようです。
以下を入れた場合:
ClientScript.RegisterStartupScript(this.GetType(), "Alert", "alert('Bill Created!');window.open('../demographics/supbillrpt.aspx?prog=VEX.period=cperiod','_self'); "、 真実);
VEX はそのドロップダウン リストの項目で、そのように配置したので表示されます。しかし、ユーザーが常に VEX を選択するとは限らないため、fprogram 変数を使用する必要があります。助言がありますか?