1

コードでパラメーターを設定しても、パラメーターを設定する必要があるというエラーが表示され続けます。SSRS に渡される内容を確認するためにプロファイラーを実行しましたが、プロファイラーはパラメーター = null を示しています。しかし、それらはすべてコードで設定されています。誰にもアイデアはありますか?コードは次のとおりです。

string strReportPath;
      Microsoft.Reporting.WinForms.ReportParameter prmFranchiseOID;
      Microsoft.Reporting.WinForms.ReportParameter prmSchoolOID;
      Microsoft.Reporting.WinForms.ReportParameter prmRoomOID;
      Microsoft.Reporting.WinForms.ReportParameter prmOrderDate;
      Microsoft.Reporting.WinForms.ReportParameter prmLanguage;
      Microsoft.Reporting.WinForms.ReportParameter prmContrast;
      List<Microsoft.Reporting.WinForms.ReportParameter> prms = new List<ReportParameter>();
        byte[] pdf = null;

        try
        {
            prmFranchiseOID = new Microsoft.Reporting.WinForms.ReportParameter("FranchiseOID", "8D126AA2-2E5C-4B2B-8D19-167027F8C7D8");
            prmSchoolOID = new Microsoft.Reporting.WinForms.ReportParameter("SchoolOID", "96FEE335-0CB9-413A-9DDC-78F8C67770C4");
            prmRoomOID = new Microsoft.Reporting.WinForms.ReportParameter("RoomOID", "null");
            prmOrderDate = new Microsoft.Reporting.WinForms.ReportParameter("OrderDate", DateTime.Now.AddDays(1).Date.ToString());
            prmLanguage = new Microsoft.Reporting.WinForms.ReportParameter("Language", "en-CA");
            prmContrast = new Microsoft.Reporting.WinForms.ReportParameter("Contrast", "true");

            prms.Add(prmFranchiseOID);
            prms.Add(prmSchoolOID);
            prms.Add(prmRoomOID);
            prms.Add(prmOrderDate);
            prms.Add(prmLanguage);
            prms.Add(prmContrast);

            // Note: For Account Holder users, their specified report folder is "/LunchLady/User".
            strReportPath = "/LunchLady/Franchise/" + urlReportName;

            try
            {
                rvReport.ServerReport.ReportServerUrl = new System.Uri("https://testsql.thelunchlady.ca/ReportServer");
                rvReport.ServerReport.ReportPath = strReportPath;
                rvReport.ServerReport.SetParameters(prms);

                string ReportType = "PDF";

                pdf = rvReport.ServerReport.Render(ReportType);

ありがとう

4

1 に答える 1

0

ASP.NET の SSRS コントロールで大規模なプログラミングを行った結果、WinForms に関連する場合と関連しない場合があることの 1 つは、各 SSRS パラメータが実際にはそれ自体がコレクションであるということです選択する)。

したがって、私たちにとってうまくいったのは、コレクション(あなたの場合は prms )が型であったことです

List<IEnumerable<ReportViewer.ReportParameter>> prms

また、SetParameters 関数を使用してパラメーターを追加するときは、一度に 1 つずつ追加しました。

for (int i = 0; i < prms.Count; i++)
{
    rvReport.ServerReport.SetParameters(prms[i]);
}

繰り返しますが、これは ASP.NET で機能したものであり、試してみる価値があります。

于 2014-11-26T05:16:26.060 に答える