MMD*_*MNC 2 report microsoft-reporting c#-4.0
我正在使用以下代码尝试SetParametr:
var report = new ReportParameter[1];
report[0] = new ReportParameter("MyName", "Raha");
var reportDataSource1 = new ReportDataSource { Name = "WpfApplication17_User", Value = _users };
_reportViewer.LocalReport.DataSources.Add(reportDataSource1);
_reportViewer.ServerReport.SetParameters(report);
_reportViewer.LocalReport.ReportPath = "../../Report1.rdlc";
_reportViewer.RefreshReport();
Run Code Online (Sandbox Code Playgroud)
错误:尚未指定报告定义的来源
为什么错?
我创建了一个报告参数,参数名称是'MyName'
更新:
我正在使用以下代码:
//var report = new ReportParameter[1];
//report[0] = new ReportParameter("MyName", "Raha");
var reportDataSource1 = new ReportDataSource { Name = "WpfApplication17_User", Value = _users };
string exeFolder = System.IO.Path.GetDirectoryName(Process.GetCurrentProcess().MainModule.FileName);
_reportViewer.LocalReport.ReportPath =exeFolder + @"\Reports\Report1.rdlc";
_reportViewer.LocalReport.DataSources.Add(reportDataSource1);
//_reportViewer.ServerReport.SetParameters(report);
_reportViewer.RefreshReport();
Run Code Online (Sandbox Code Playgroud)
报告中显示的数据.
但是,我使用以下代码:
var report = new ReportParameter[1];
report[0] = new ReportParameter("MyName", "Raha");
var reportDataSource1 = new ReportDataSource { Name = "WpfApplication17_User", Value = _users };
string exeFolder = System.IO.Path.GetDirectoryName(Process.GetCurrentProcess().MainModule.FileName);
_reportViewer.LocalReport.ReportPath = exeFolder + @"\Reports\Report1.rdlc";
_reportViewer.LocalReport.DataSources.Add(reportDataSource1);
_reportViewer.ServerReport.SetParameters(report);//error
_reportViewer.RefreshReport();
Run Code Online (Sandbox Code Playgroud)
错误为:尚未指定报告定义的来源
我发现自己陷入了同样的错误,原因其实很简单:必须首先设置报表定义,在参数之前。这样,LocalReport可以检查它们是否真的是强制性的,并最终抛出异常。
下面的代码应该工作:
_reportViewer.LocalReport.DataSources.Add(reportDataSource1);
_reportViewer.LocalReport.ReportPath = "../../Report1.rdlc";
_reportViewer.ServerReport.SetParameters(report);
Run Code Online (Sandbox Code Playgroud)
把ReportParameter放到后面
_reportViewer.LocalReport.ReportPath = "../../Report1.rdlc";
Run Code Online (Sandbox Code Playgroud)
在这里编写ReportParameter
该错误与您的参数无关。该错误与ReportPath. 请参阅有关设置报告路径的其他 SO 问题。您确定应用程序运行时指定的相对路径正确吗?该路径相对于您的源代码吗?如果您想查看它在哪里查找文件,那么您可以添加一些代码来解析该相对路径(Path.GetFullPath)并查看它指向的位置。确保您的rdlc文件位于该文件夹中。
编辑:
根据您更新的问题并验证是否确实找到了报告。我更详细地查看了您的代码。您正在设置 的参数ServerReport,但正在加载 中的报告LocalReport。尝试设置LocalReport.
_reportViewer.LocalReport.SetParameters(report);
Run Code Online (Sandbox Code Playgroud)