у меня есть две кнопки (button1, button2), две кнопки открывают два идентичных отчета, за исключением того, что report2.rdlc имеет строковый параметр
, если я нажал button1 сначала в окне сообщений отображается число параметров = 0(как и ожидалось) , и я получаю report1.rdlc, отображаемый в reportviewer1, если затем я нажимаю кнопку2 , в окне сообщения снова отображается число параметров = 0 (я ожидаю, что оно покажет 1) и я получаю LocalProcessingException {«Была предпринята попытка установить параметр отчета« Report2ParameterString », который не определен в этом отчете.»}
если я нажал кнопку2 сначала в окне сообщения отображается число параметров = 1 (как и ожидалось) и я получаю report2, отображаемый в reportviewer1, если затем я нажимаю кнопку1 в окне сообщения снова отображается число параметров = 1 (я ожидаю, что он покажет 0) я получаю report1.rdlc, отображаемый в reportviewer1 без исключений
мой код
private void report1Button_Click(object sender, EventArgs e)
{
reportViewer1.LocalReport.ReportPath = Application.StartupPath + "\\report1.rdlc";
MessageBox.Show("parameters count =" + reportViewer1.LocalReport.GetParameters().Count.ToString());
reportViewer1.LocalReport.DataSources.Clear();
reportViewer1.LocalReport.DataSources.Add(new ReportDataSource("DataSet1", reportDataTable));
reportViewer1.RefreshReport();
}
private void report2Button_Click(object sender, EventArgs e)
{
reportViewer1.LocalReport.ReportPath = Application.StartupPath + "\\report2.rdlc";
MessageBox.Show("parameters count =" +reportViewer1.LocalReport.GetParameters().Count.ToString());
reportViewer1.LocalReport.SetParameters(new ReportParameter("Report2ParameterString", " testing Report2ParameterString"));
reportViewer1.LocalReport.DataSources.Clear();
reportViewer1.LocalReport.DataSources.Add(new ReportDataSource("DataSet1", reportDataTable));
reportViewer1.RefreshReport();
}