Для тех из вас, кто столкнулся с этой ошибкой по причинам, не указанным в оригинальном постере ...
Вот похожий сценарий.
У вас есть отчет, в котором используется несколько параметров отчета.
Этот параметр заполняется источником данных, который основывает свои значения на каком-то табличном запросе.
Когда вы используете опцию «Выбрать все» для этого параметра отчета и нажимаете кнопку «Просмотр отчета», параметр сбрасывается на пустой и ваш отчет не генерируется.
Я считаю, что эта проблема возникает из-за того, что что-то делает ваш набор данных недействительным во время выполнения запроса, но я не могу быть уверен на 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
И после этого параметры вашего отчета больше не будут сбрасываться.
Хранимая процедура также будет работать, я подозреваю.