Могу ли я предварительно обработать данные перед их передачей в SSRS 2005? - PullRequest
3 голосов
/ 17 сентября 2009

Мы рассматриваем возможность перехода на службы отчетов Sql Server 2005. Многие из наших существующих отчетов требуют предварительной обработки данных перед их отображением.

Например, у нас есть запрос на отчет, который возвращает координаты GPS (широта и долгота) из хранимой процедуры, но перед передачей набора данных в наш механизм отчетов (в настоящее время Crystal) мы обращаемся к веб-службе для отмены геокодировать координаты и получить адресную строку. Мы помещаем это в DataSet объект.

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

Как я могу вставить и предварительно обработать набор данных после извлечения его из источника данных, но перед передачей его средству визуализации?

Ответы [ 4 ]

1 голос
/ 26 сентября 2009

Вы также можете использовать результаты пакета служб SSIS в качестве источника данных (пакет выполняется по требованию при запуске отчета).

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

Я не думаю, что многие люди понимают, что это существует и насколько это полезно для обработки EII отчетов типа

1 голос
/ 17 сентября 2009

Вы можете создать сборку .NET с методом, который обрабатывает отдельную запись. Затем включите эту сборку в отчет и вызовите этот метод при отображении каждой строки. Это сделает обработку и отобразит результат.

Например, после создания сборки и добавления ее в отчет может появиться таблица, в которой одно из выражений ячейки выглядит так:

= Code.ReverseGeocode (Поля! Широта, Поля! Долгота)

См. http://msdn.microsoft.com/en-us/library/ms155798.aspx для некоторых указаний.

0 голосов
/ 17 сентября 2009

Полагаю, я не понимаю, почему вы просто не пишете SQl, чтобы предоставить данные так, как вы этого хотите. Вы не можете вычислить поле с помощью функции или использовать предложение where для дальнейшей фильтрации данных. Вы можете выполнять довольно обширные манипуляции с данными в хранимых процедурах или источниках данных запросов.

0 голосов
/ 17 сентября 2009

Одним из вариантов будет использование элемента управления ReportViewer в локальном режиме.

Данные загружаются в ASP-NET, вы можете предварительно обработать их, а затем передать их элементу управления для представления.

Я не уверен, как SSRS будет обращаться с пользовательским кодом / DLL, если вы хотите обработать все данные, прежде чем думать о представлении (как в упомянутом решении = Code.ReverseGeocode). RBAR чувствует себя неправильно на уровне текстового поля или ячейки.

...