2016-10-30 5 views
-2

мои отчеты (RDL-файл) Набор данных, lunche процедуру из SQL-сервера 2014.обед SSRS сообщают программно с помощью C#, не открывая браузер

я хочу lunche отчеты программно с помощью C#

я сослаться на следующие шаги:

Добавить веб-ссылку на конечные точки. Затем нам нужно инициализировать отчет, вызвав метод LoadReport(). Если отчет содержит параметры, нам нужно объявить и заполнить массив объектов ParameterValue. Как только параметры настроены, мы можем вызвать метод SetExecutionParameters() и передать их в rsExec.SetExecutionParameters (executeParams, «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

Я попытался улучить URL-адрес с помощью HttpClient, но «он не работает.

Используя Fiddler, я заметил, что, когда я обедаю URL-адрес из браузера (и он обедает отчёт), на заднем плане осталось немного запросов и ответов, прежде чем отчет будет обедать.

Угадайте, что не может имитировать работу браузеров ....?

Мне нужно запустить отчет, не открывая браузер.

я пытался очень многими способами, и им отчаянный уже ...

кто-нибудь может помочь?

ответ

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.