Как генерировать отчеты в цикле и отправлять их в один pdf файл
Я пытаюсь сгенерировать 10 отчетов один за другим, беря данные из базы данных, а затем пытаясь объединить все в один выходной pdf-файл. У меня есть дизайн в форме. rdlc. Вот мой код C# :
var db = Database.Open("dbConnection"); var data = db.QuerySingle("select name from customer_table where id = 2"); Microsoft.Reporting.WebForms.ReportViewer RptVr = new Microsoft.Reporting.WebForms.ReportViewer(); RptVr.LocalReport.ReportPath = "~/report/a.rdlc"; RptVr.LocalReport.EnableExternalImages = true; Microsoft.Reporting.WebForms.ReportParameter[] x = new Microsoft.Reporting.WebForms.ReportParameter[1]; var fname = ""; fname = "inline; filename=reportCard" + a + ".pdf"; x[0] = new Microsoft.Reporting.WebForms.ReportParameter("Name", data.name); RptVr.LocalReport.SetParameters(x); string deviceInfo = "<DeviceInfo>" + " <OutputFormat>EMF</OutputFormat>" + " <PageWidth>11in</PageWidth>" + " <PageHeight>8.5in</PageHeight>" + " <MarginTop>0in</MarginTop>" + " <MarginLeft>0in</MarginLeft>" + " <MarginRight>0in</MarginRight>" + " <MarginBottom>0in</MarginBottom>" + "</DeviceInfo>"; Byte[] results = RptVr.LocalReport.Render("PDF", deviceInfo); Response.ContentType = "Application/pdf"; Response.AddHeader("content-disposition", fname); Response.OutputStream.Write(results, 0, results.Length);
это работает, но когда я пытаюсь сделать цикл, как показано ниже, я знаю, что что-то не так. Я попытался сгенерировать отчет в цикле и получить один выходной файл pdf.
var db = Database.Open("dbConnection"); var data = db.Query("select name from customer_table"); for(i = 0; i<data.length;i++) { Microsoft.Reporting.WebForms.ReportViewer RptVr = new Microsoft.Reporting.WebForms.ReportViewer(); RptVr.LocalReport.ReportPath = "~/report/a.rdlc"; RptVr.LocalReport.EnableExternalImages = true; Microsoft.Reporting.WebForms.ReportParameter[] x = new Microsoft.Reporting.WebForms.ReportParameter[1]; var fname = ""; fname = "inline; filename=reportCard" + a + ".pdf"; x[0] = new Microsoft.Reporting.WebForms.ReportParameter("Name", data.name); RptVr.LocalReport.SetParameters(x); string deviceInfo = "<DeviceInfo>" + " <OutputFormat>EMF</OutputFormat>" + " <PageWidth>11in</PageWidth>" + " <PageHeight>8.5in</PageHeight>" + " <MarginTop>0in</MarginTop>" + " <MarginLeft>0in</MarginLeft>" + " <MarginRight>0in</MarginRight>" + " <MarginBottom>0in</MarginBottom>" + "</DeviceInfo>"; Byte[] results = RptVr.LocalReport.Render("PDF", deviceInfo); Response.ContentType = "Application/pdf"; Response.AddHeader("content-disposition", fname); Response.OutputStream.Write(results, 0, results.Length); i++; }
Пожалуйста, помогите, как мне это сделать.
Что я уже пробовал:
Я попытался динамически генерировать отчеты один за другим в цикле и попытаться поместить их в один pdf файл