午餐SSRS报告以编程方式使用C#而无需打开浏览器

时间:2016-10-30 08:23:13

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

我的报告(.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节)

是个问题

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

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(并且它会使报告前进)时,在报告实际午餐之前,背景信息上的请求和响应很少。

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

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

我尝试了很多方式,而且我已经绝望了 ......

任何人都可以提供帮助吗?

1 个答案:

答案 0 :(得分:0)

您可以使用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参数的确切值。