я имею RDL файлы, созданные Report Builder 3.0. Мне нужно использовать их в моем приложении для Windows, написанном на C ++ таким образом, чтобы я мог устанавливать параметры подключения к SQL Server и расположение отчета во время выполнения.
Это возможно и как?
Google сказал мне что мне нужно конвертировать RDL в RDLC файл, но даже тогда я не мог найти способ установки этих параметров и вызова RDLC файл из C ++.
Вы можете использовать ReportViewer и использовать файлы RDL или RDLC, но RDL может иметь некоторые ограничения, так как он не включает необходимую информацию для создания кода привязки данных.
Файлы RDL не содержат информации о том, что время разработки
Элемент управления ReportViewer зависит от автоматической генерации
код привязки данных. Привязывая данные вручную, файлы RDL могут использоваться в
элемент управления ReportViewer.
Вы можете установить параметры из ReportViewer, проверьте этот документация и приведенный ниже пример кода на C #:
private void SetReportParameters() {
// Set Processing Mode
reportViewer1.ProcessingMode = ProcessingMode.Remote;
// Set report server and report path
reportViewer1.ServerReport.ReportServerUrl = new
Uri("http://<ServerName>/reportserver");
reportViewer1.ServerReport.ReportPath =
"/AdventureWorks Sample Reports/Employee Sales Summary";
List<ReportParameter> paramList = new List<ReportParameter>();
paramList.Add(new ReportParameter("EmpID", "288", false));
paramList.Add(new ReportParameter("ReportMonth", "12", false));
paramList.Add(new ReportParameter("ReportYear", "2003", false));
this.reportViewer1.ServerReport.SetParameters(paramList);
// Process and render the report
reportViewer1.RefreshReport();
}
Это пример ReportViewer
Использование для создания файлов Excel:
protected void Button1_Click(object sender, EventArgs e)
{
Warning[] warnings;
string[] streamids;
string mimeType;
string encoding;
string extension;
byte[] bytes = ReportViewer1.LocalReport.Render(
"Excel", null, out mimeType, out encoding,
out extension,
out streamids, out warnings);
FileStream fs = new FileStream(@"c:\output.xls",
FileMode.Create);
fs.Write(bytes, 0, bytes.Length);
fs.Close();
Label1.Text = "Report exported to output.xls";
}
Дайте мне знать, если это поможет вам.
Других решений пока нет …