Средство просмотра отчетов из служб отчетов SQL в VS 2008. - PullRequest
0 голосов
/ 08 января 2010

Средство просмотра отчетов из служб отчетов SQL в VS 2008. Если я создаю новый отчет в VS 2008, они имеют расширение .rdlc и работают правильно.

У меня есть несколько отчетов, которые я использовал в службах отчетов SQL. Расширения .rdl и хотят заставить их работать с VS 2008.

Я скопировал файлы rdl и файлы .rdl.data в проект VS 2008 (SP1), но когда я иду, чтобы выбрать отчет в элементе управления, он не видит файл (я предполагаю, что он ищет .rdlc файл)

Я попытался переименовать файл в .rdlc, загрузил файл и получил

Недопустимое определение отчета целевое пространство имен «http://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition' который не может быть улучшен.

Я вижу это http://social.msdn.microsoft.com/Forums/en-SG/vsreportcontrols/thread/65cefd7d-00d8-4be6-a53a-7e34dfd7eb2b

Я вижу здесь http://www.gotreportviewer.com/ Это говорит «Файлы RDL полностью совместимы со средой выполнения элемента управления ReportViewer. Однако файлы RDL не содержат некоторой информации, от которой зависит время разработки элемента управления ReportViewer для автоматической генерации кода привязки данных. При привязке данных вручную можно использовать файлы RDL. в элементе управления ReportViewer. "

Но ссылка на ручное связывание данных не работает.

Есть идеи, как вручную привязать данные? Или лучший способ заставить эти отчеты работать с элементом управления 2008 года?

Ответы [ 2 ]

1 голос
/ 11 февраля 2010

Если вам не нужны расширенные функции, такие как детализация, и вы не можете использовать VS2010, вы можете сделать этот хак (что я и делаю):

  • установить новый reportviewer.exe из VS2010 (я думаю, бета2 или новее);
  • добавить общие / WebForms сборки ReportViewer версии 10.0 к ссылкам;
  • ручной анализ структуры XML RDL для получения источника данных и / или запроса SQL (очень просто);
  • используйте это для заполнения LocalReport.DataSource;
  • Делать LocalReport.Render ("PDF") для получения вывода PDF (код ActionResult для генерации ответа PDF легко найти);
  • поставить кнопку «Просмотр» на странице и iframe;
  • Кнопка «Просмотр» (через JavaScript) назначит атрибут iframe src URL-адресу, который возвращает вышеуказанное содержимое PDF, - и обеспечит хороший предварительный просмотр отчета в формате iframe в формате PDF;
  • альтернативно, можно использовать плагин jQuery Media для рендеринга тега объекта PDF с такими же результатами;
  • Кроме того, я анализирую параметры XML RDL, показываю их на странице и передаю их по URL-адресу «Сгенерировать отчет» - в качестве преимущества я получаю собственные приятные элементы управления пользовательским интерфейсом;
  • Кроме того, у меня есть собственные кнопки «экспорта», которые вызывают LocalReport.Render (формат) и обеспечивают вывод с правильным типом MIME (это Excel, Word, PDF и мой CSV-файл в ручном режиме) - улучшен экспорт в новой версии средство просмотра отчетов.

Приведенный выше список может показаться пугающим, но мне понадобилось всего 2 дня, чтобы взломать полное решение в ASP.NET MVC, и это всего ~ 300 строк кода, включая мое собственное поколение CSV.

Код для привязки данных становится очень простым, когда вы получаете DataTable / DataSet (из запросов XML):

        var reportDataSource = new ReportDataSource();
        reportDataSource.Name = name;
        reportDataSource.Value = ds.Tables[0];
        localreport.DataSources.Add(reportDataSource);
1 голос
/ 08 января 2010

Версия сервера * .rdl в SSRS 2008, к сожалению, не совместима с его локальным аналогом, * .rdlc файлами.

По сути, все, что вы можете сделать, это

  • либо используйте .RDL непосредственно на сервере (используя отчет «Удаленный рендеринг» в элементе управления ReportViewer)

  • в основном воссоздать весь отчет как локальный отчет с нуля

Это невероятно, но, к сожалению, это правда ..... будем надеяться, что с .NET 4, Visual Studio 2010 будет лучше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...