ReportViewer 在本地工作,不在服务器中工作
ReportViewer working locally, not working in server
<rsweb:ReportViewer ID="ReportViewer1" runat="server" SizeToReportContent="True">
<LocalReport ReportPath="/Activity/Reports/Report.rdlc">
<DataSources>
<rsweb:ReportDataSource DataSourceId="ObjectDataSource1" Name="dsActivity" />
<rsweb:ReportDataSource DataSourceId="ObjectDataSource2" Name="dsPoints" />
<rsweb:ReportDataSource DataSourceId="ObjectDataSource3" Name="dsEnterprise" />
</DataSources>
</LocalReport>
</rsweb:ReportViewer>
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" SelectMethod="ListAct" TypeName="App.BL.Activity"></asp:ObjectDataSource>
<asp:ObjectDataSource ID="ObjectDataSource2" runat="server" SelectMethod="ListPts" TypeName="App.BL.Points"></asp:ObjectDataSource>
<asp:ObjectDataSource ID="ObjectDataSource3" runat="server" SelectMethod="ListEtp" TypeName="App.BL.Enterprise"></asp:ObjectDataSource>
此代码在调试时有效,但当我将其发布到服务器时,出现以下错误消息:
处理本地报表时出错。
尚未指定报告 'Report' 的报告定义
找不到文件 'E:\Groups\Tech\appWebHlg\Report.rdlc'。
ReportPath 以某种方式无法到达 Report.rdlc,我如何在服务器端找到它?我可以使用任何绝对路径吗?如何让 ReportViewer 找到报告?
您需要更改服务器的 ReportPath。 ReportPath 需要是服务器硬盘驱动器上的绝对路径。
大多数人发现在执行报表时最好在代码中设置报表路径。例如 (c#)
if (ReportViewer1.LocalReport.ReportPath.BeginsWith("/")) {
string realpath = Server.MapPath(ReportViewer1.LocalReport.ReportPath);
ReportViewer1.LocalReport.ReportPath = realpath;
}
ReportViewer1.LocalReport.Refresh();
<rsweb:ReportViewer ID="ReportViewer1" runat="server" SizeToReportContent="True">
<LocalReport ReportPath="/Activity/Reports/Report.rdlc">
<DataSources>
<rsweb:ReportDataSource DataSourceId="ObjectDataSource1" Name="dsActivity" />
<rsweb:ReportDataSource DataSourceId="ObjectDataSource2" Name="dsPoints" />
<rsweb:ReportDataSource DataSourceId="ObjectDataSource3" Name="dsEnterprise" />
</DataSources>
</LocalReport>
</rsweb:ReportViewer>
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" SelectMethod="ListAct" TypeName="App.BL.Activity"></asp:ObjectDataSource>
<asp:ObjectDataSource ID="ObjectDataSource2" runat="server" SelectMethod="ListPts" TypeName="App.BL.Points"></asp:ObjectDataSource>
<asp:ObjectDataSource ID="ObjectDataSource3" runat="server" SelectMethod="ListEtp" TypeName="App.BL.Enterprise"></asp:ObjectDataSource>
此代码在调试时有效,但当我将其发布到服务器时,出现以下错误消息:
处理本地报表时出错。
尚未指定报告 'Report' 的报告定义
找不到文件 'E:\Groups\Tech\appWebHlg\Report.rdlc'。
ReportPath 以某种方式无法到达 Report.rdlc,我如何在服务器端找到它?我可以使用任何绝对路径吗?如何让 ReportViewer 找到报告?
您需要更改服务器的 ReportPath。 ReportPath 需要是服务器硬盘驱动器上的绝对路径。
大多数人发现在执行报表时最好在代码中设置报表路径。例如 (c#)
if (ReportViewer1.LocalReport.ReportPath.BeginsWith("/")) {
string realpath = Server.MapPath(ReportViewer1.LocalReport.ReportPath);
ReportViewer1.LocalReport.ReportPath = realpath;
}
ReportViewer1.LocalReport.Refresh();