SSRS: параметры ASP.NET ReportViewer сбрасываются в значения по умолчанию при нажатии кнопки «Просмотреть отчет». - PullRequest
1 голос
/ 26 марта 2009

У меня есть отчет служб отчетов SQL (SQL 2008, созданный с использованием Report Builder v2.0), в котором есть целочисленный параметр с несколькими вариантами выбора (в данном случае список хранилищ).

Значением по умолчанию является 0 («Все магазины»). Параметр передается в хранимую процедуру как varchar(1024).

Все это прекрасно работает в построителе отчетов или на веб-сайте служб Reporting Services.

Однако на веб-сайте ASP.NET с использованием компонента ReportViewer параметры сбрасываются на значения по умолчанию каждый раз, когда вы выбираете «Просмотр отчета».

Я попытался установить представление для асинхронной загрузки (изменяет контейнер рендеринга?) Плюс любые другие параметры, которые я смог найти, но безуспешно. Кто-нибудь знает хитрость, чтобы это исправить?

Ответы [ 3 ]

2 голосов
/ 01 апреля 2009

Я сделал ошибку. Элемент управления ReportViewer находился внутри мастер-страницы. Каждый раз, когда нажималась кнопка «Просмотреть отчет», она выполняла обратную передачу и сбрасывала сеанс.

Я добавил if (!IsPostBack) перед методом настройки отчета.

1 голос
/ 02 июня 2009

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

1 голос
/ 02 апреля 2009

Для тех из вас, кто столкнулся с этой ошибкой по причинам, не указанным в оригинальном постере ...

Вот похожий сценарий.

У вас есть отчет, в котором используется несколько параметров отчета. Этот параметр заполняется источником данных, который основывает свои значения на каком-то табличном запросе.

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

Я считаю, что эта проблема возникает из-за того, что что-то делает ваш набор данных недействительным во время выполнения запроса, но я не могу быть уверен на 100%.

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

Например, ваш CityDataSource может быть заполнен запросом:

SELECT DISTINCT city, city as SortOrder from accounts
UNION
SELECT 'All' as city, '0' as SortOrder
ORDER BY SortOrder

Если вы составляли отчеты служб отчетов SQL, возможно, вы наткнулись на это решение один или два раза.

Теперь мы изменим запрос CityDataSource так:

DECLARE @citytable TABLE (city varchar(255), sortorder varchar(255))
INSERT INTO @citytable (city, sortorder) VALUES
(
SELECT DISTINCT city, city as SortOrder from accounts
)
SELECT city, sortorder FROM @citytable ORDER BY sortorder

И после этого параметры вашего отчета больше не будут сбрасываться.

Хранимая процедура также будет работать, я подозреваю.

...