我用Visual Studio 2013創建了一個.rdlc
報告,我們稱之爲Main.rdlc
,並且它有子報告控制。SSRS「LoadSubreportDefinition」獲取錯誤「沒有指定運行報告所需的一個或多個參數」
在另一方面,我創建了一個Sub.rdlc
作爲子報表與Main.rdlc
鏈接我用這個代碼中設置報表路徑上後面的代碼:
ReportViewer viewer = new ReportViewer();
// load report definition
string reportTemplate = Server.MapPath("~/Main.rdlc");
viewer.LocalReport.LoadReportDefinition(ReportLocalizator.Localize(reportTemplate, culture));
viewer.LocalReport.EnableHyperlinks = true;
viewer.LocalReport.SetParameters(new ReportParameter("Culture", culture));
// load subreport definition
viewer.LocalReport.SubreportProcessing += LocalReport_SubreportProcessing;
string subReportTemplate = Server.MapPath("~/Sub.rdlc");
viewer.LocalReport.LoadSubreportDefinition("SubReport", ReportLocalizator.Localize(subReportTemplate, culture));
viewer.LocalReport.DataSources.Clear();
viewer.LocalReport.DataSources.Add(new ReportDataSource("MyDataSet", myDataSet.Data.DefaultView));
viewer.LocalReport.EnableHyperlinks = true;
viewer.LocalReport.Refresh();
Warning[] warnings;
string[] streamIds;
string mimeType = string.Empty;
string encoding = string.Empty;
string extension = string.Empty;
byte[] bytes = viewer.LocalReport.Render("PDF", null, out mimeType, out encoding, out extension, out streamIds, out warnings);
Response.ClearHeaders();
Response.BufferOutput = true;
Response.Buffer = true;
Response.HeaderEncoding = System.Text.Encoding.UTF8;
Response.Clear();
Response.ContentType = mimeType;
Response.AddHeader("content-length", bytes.Length.ToString());
Response.AddHeader("content-disposition", "attachment; filename=PrintedForm" + "." + extension);
Response.OutputStream.Write(bytes, 0, bytes.Length); // create the file
Response.Flush(); // send it to the client to download
Response.End();
不過,我總是得到錯誤「運行報告所需的一個或多個參數尚未指定。」,儘管子報表中沒有參數。
的代碼運行良好時,我刪除了這部分
// load subreport definition
viewer.LocalReport.SubreportProcessing += LocalReport_SubreportProcessing;
string subReportTemplate = Server.MapPath("~/Sub.rdlc");
viewer.LocalReport.LoadSubreportDefinition("SubReport", ReportLocalizator.Localize(subReportTemplate, culture));
是它的代碼是導致錯誤或RDLC本身?有沒有人有關於這個錯誤的經驗?任何形式的幫助,將不勝感激。由於
後移動電話
SetParameters
我假設你正在選擇一些參數,然後運行報告,然後通過點擊您的子報告之前。上述代碼正在運行主報告,然後在子報告從主報告中獲取參數之前運行子報告。 – Snowlockk嗨@Slocklockk,謝謝你的回覆。在運行報告之前,我沒有選擇任何參數。在後面的代碼中設置的唯一參數是'文化' - 並且子報表中沒有參數字段。你是否從該代碼中找到任何線索? –
你看過這個答案嗎? https://stackoverflow.com/questions/15140176/getting-a-one-or-more-parameters-required-to-run-the-report-have-not-been-speci – Raphael