Открытие Remote RDL с помощью .NET Report Viewer - PullRequest
2 голосов
/ 10 января 2012

Я удаленно храню rdl в базе данных сервера sql в двоичном формате. Я хотел бы использовать элемент управления просмотра отчетов для отображения отчета.

Это похоже на простую концепцию, но я продолжаю находить противоречивые учебники, в которых есть несколько разных подходов ... ни один из которых я не могу заставить работать.

Правильно ли я считаю, что все, что мне нужно, это элемент управления просмотра отчетов, чтобы это работало? Если да, то как открыть удаленный RDL-файл?

У меня также есть переменная, в которой содержимое rdl хранится в строке ... не уверены, помогает ли это? Так что я могу использовать эту строку или вытащить .rdl из БД ...

Я новичок в .NET, поэтому я не уверен, как лучше всего подойти к этому ... Пока у меня есть следующее:

ReportViewer r = new ReportViewer();
//pass the rdl to report viewer
r.ProcessingMode = ProcessingMode.Remote;

Ответы [ 2 ]

3 голосов
/ 10 января 2012

Вы должны фактически установить его в режим локальной обработки, а не удаленный.

Я только когда-либо загружал RDL из DLL, а не базы данных, но я бы посмотрел на следующий API, поскольку он может иметь перегрузку для приема строки или для преобразования вашей строки в поток.

reportViewer.LocalReport.LoadReportDifinition

Вот код, который я использую для загрузки из DLL (может помочь увидеть в контексте)

Assembly assembly = Assembly.LoadFrom("MyReports.dll");
Stream stream = assembly.GetManifestResourceStream("Reports.MyReport.rdlc");
reportViewer.LocalReport.LoadReportDifinition(stream);
0 голосов
/ 11 января 2013

Попробуйте изменить этот код:

ReportViewer1.ProcessingMode = Microsoft.Reporting.WebForms.ProcessingMode.Remote;
ReportViewer1.ServerReport.ReportServerCredentials = new ReportServerNetworkCredentials();
//ReportViewer1.ServerReport.ReportServerCredentials = new Rep();
ReportViewer1.ServerReport.ReportServerUrl = new Uri(@"http://PRODUCTIONDB:80/ReportServer/MexReports"); //report server
ReportViewer1.ServerReport.ReportPath = "rptMEXHEDailyReportReview1"; // rdl name
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...