我的报告(.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节)
是个问题但是,我有报告的网址,网址包含有关报告的所有信息,包括参数,如下所示:
我试图使用HttpClient来发送URL,但是'它不起作用。
使用Fiddler我注意到,当我从浏览器中获取URL(并且它会使报告前进)时,在报告实际午餐之前,背景信息上的请求和响应很少。
猜一个不能模仿浏览器的工作....?
我需要在不打开浏览器的情况下运行报告。
我尝试了很多方式,而且我已经绝望了 ......
任何人都可以提供帮助吗?
答案 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参数的确切值。