使用C#,ReportViewer和RDL文件生成报告

时间:2016-04-15 21:43:21

标签: c# sql-server reportviewer rdl

我正在尝试使用C#和RDL文件生成报告。我已经按照例子,但我无法得到它。我收到错误:

“项'sample.rdl'的路径无效。完整路径长度必须少于260个字符;其他限制适用。如果报表服务器处于纯模式,则路径必须以斜杠开头。( rsInvalidItemPath)”。我试过在路径上加一个斜线但没有成功。

我的报告服务器处于原生模式。我的两个主要问题是:

  1. 我需要参数吗?
  2. 我的RDL文件应存放在哪里?
  3. 现在我将RDL文件存储在我的项目中。 (我认为这不对)

    以下是代码段:

    const string path = "sample.rdl";
    string url = "http://localhost/ReportServer";
    string format = "PDF";
    
    var rsReports = new Microsoft.Reporting.WebForms.ReportViewer
    {
        ProcessingMode = ProcessingMode.Remote,
        ShowParameterPrompts = false
    };
    rsReports.ServerReport.ReportServerUrl = new Uri(url);
    rsReports.ServerReport.ReportPath = Path.Combine("\\" + Environment.CurrentDirectory, path);
    rsReports.ServerReport.Refresh();
    byte[] report = rsReports.ServerReport.Render(format.ToUpper());
    
    return report;
    

1 个答案:

答案 0 :(得分:1)

您的RDL文件必须部署到SSRS服务器。您可以在Visual Studio中执行此操作。 右键单击报表项目,将报表服务器URL设置为http://localhost/ReportServer

然后右键单击您的报告并选择部署。 这会将您的报告和数据源部署到服务器。

您可以在更改此行后再次尝试代码....

rsReports.ServerReport.ReportPath = "/folder/reportName";

其中folder是发布报告的服务器上文件夹的名称,而reportName =“sample”(不包含.rdl)

您获得的错误意味着路径必须以'/'

开头