【问题标题】:lunch SSRS report programmatically using C# without opening the browser使用 C# 以编程方式进行午餐 SSRS 报告,无需打开浏览器
【发布时间】:2016-10-30 08:23:13
【问题描述】:

我的报告(.rdl 文件)数据集,午餐来自 sql server 2014 的程序。

我想使用 C# 以编程方式处理报告

我参考以下步骤:

添加对端点的 Web 引用。 然后我们需要通过调用 LoadReport() 方法来初始化报表。 如果报表包含参数,我们需要声明并填充一个 ParameterValue 对象数组。 设置好参数后,我们可以调用 SetExecutionParameters() 方法并将它们传递到 rsExec.SetExecutionParameters(executionParams, "en-us") 中。

我无法执行这些步骤,因为我从 dbo.ExecutionLogStorage 表中获取参数

它看起来像:

=27%202%22016%2000%300%300&=26%210%22016%2000%300%300&__:=&__:=&__:=&__:=&__:=&___=96776&__:=&__:=&__:=&=%7%1%7........................

所以填充数组 ParameterValue 对象是一个问题(第 3 节)

但是,我有报告的 url,该 url 包含有关报告的所有信息,包括参数,如下所示:

http://ServerAdress/ReportServer_Name/Pages/ReportViewer.aspx?/Reports/DealFile/DF_RPT11_AutonomyQuotaUtilization_Report&Year=2016&Summary=%D7%A9%D7%A0%D7%94:%C2%A0%C2%A0%C2%A02016&rc:Parameters=false

我尝试使用 HttpClient 午餐 URL,但它不起作用。

使用 Fiddler 时,我注意到当我从浏览器中获取 URL 时(并且它对报告进行午餐),在报告实际午餐之前,背景上几乎没有请求和响应。

猜一个不能模仿浏览器的工作......?

我需要在不打开浏览器的情况下运行报告。

我尝试了很多方法,我已经绝望了......

有人可以帮忙吗?

【问题讨论】:

    标签: c# reporting-services report reportingservices-2005


    【解决方案1】:

    您可以使用 ReportExecution2005 端点将报告呈现为 HTML(或其他)格式并随时显示。这显然可以在没有浏览器的情况下完成。 据我了解,您使用的是this MSDN article,并且您的方法是正确的。 您可以通过在浏览器中打开报告来确定需要哪些参数。但是,根据您提供的 URL,我可以说参数设置应该是这样的:

    var parameters = new ParameterValue[2];
    parameters[0] = new ParameterValue();
    parameters[0].Name = "Year";
    parameters[0].Value = "2016";
    parameters[1] = new ParameterValue();
    parameters[1].Name = "Summary";
    parameters[1].Value = "שנה:   2016"; // ?!
    

    唯一的问题是解码后的 URL 看起来有点损坏,因此您最好检查报告及其定义以了解 Summary 参数的确切值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多