Получение "одного или нескольких параметров, необходимых для запуска отчета, не указано" - программирование
Подтвердить что ты не робот

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

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

Например, если у вас есть список сотрудников, показатели производительности и значения, связанные с ними; тогда пользователь будет выбирать показатель имени сотрудника/производительности, и они получат информацию о подсчете этого сотрудника для этой меры.

У меня есть два параметра, каждый из которых заполняется SQL-запросами, получая список имен и показателей сотрудников, и таблицу ниже, которая просто извлекает информацию на основе "WHERE name = @Name AND measure = @Measure", но когда Я нажимаю "Предварительный просмотр" для локального запуска отчета. Я получаю сообщение об ошибке: "один или несколько параметров, необходимых для запуска отчета, не были указаны"

Я знаю, что параметры работают должным образом, потому что я могу кормить их значения непосредственно в текстовое поле, и значения заполняются правильно. Кроме того, если я изменяю запрос, чтобы просто принять один параметр (т.е. WHERE measure = @Measure), запрос работает.

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

4b9b3361

Ответ 1

Я испытал это поведение в .NET 4.0 с помощью локальных отчетов (в файлах .rdlc), когда одно из значений параметров содержало строку emtpy. Хотя установка параметра была правильной:

  report.SetParameters(
            new List<ReportParameter> {
                new ReportParameter("Title", Messages.Title),
                new ReportParameter("SubTitle", Messages.Subtitle))
            }
            );

Он работал только до тех пор, пока оба параметра фактически содержали некоторые символы, иначе указанное исключение было брошено.

Ответ 2

Это вызвало у меня много часов боли. Оказывается, что это связано с использованием общего набора данных. Внесите набор данных в свой отчет, и он отлично работает.

Ответ 3

Эта ошибка возникает, когда вы либо

A) параметр написан неправильно в фактическом отчете. Это означает, что запрос ожидает @Name, но в отчете передается @Names (или другое правописание).

или же

Б) Возможно ли, что вы пытаетесь запустить отчет со значением по умолчанию для параметра NULL для @Name, но хранимая процедура требует фактического значения?

Это может произойти, если вы создаете отчет в Visual Studio и для параметра @Name задано значение по умолчанию (null).

Попробуйте удалить значение по умолчанию или убедитесь, что у параметра @Name есть фактическое значение, даже если оно просто ''.

Ответ 4

У меня была аналогичная проблема. Проблема возникла при использовании SharedDataSource с параметрами, которые должны иметь нулевое значение. Если вы используете тот же запрос во встроенном источнике данных, проблем нет.

В отличие от внедренного источника данных, вам нужно определить, разрешено ли параметрам, используемым в запросе общих источников данных, иметь нулевое значение, как показано на снимке экрана. В моем случае в запросе общего источника данных есть два параметра, которые могут иметь нулевое значение.

Установить Разрешить для параметра SharedDataSource

Итак, после того, как они разрешили null, проблема исправлена!

Ответ 5

У меня была та же проблема, теперь она отсортирована на сервере sql server 2008 r2.

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

Это было очень просто, просто удостоверившись, что орфография, включая случай, одинакова и использование @.

У меня есть общий набор данных, называемый currentSpaceByDrive, со следующим кодом:

SELECT 
   [DRIVE]
  ,[Volume_Size_GB]
  ,[VolumeSpaceAvailable_GB]
  ,[VolumePercentAvailable]
FROM  monitoring.dbo.currentSpaceByDrive(@ServerID)

Я добавляю общий набор данных currentSpaceByDrive в свой отчет, и я даю ему то же имя. когда я нажимаю правой кнопкой мыши на нем, тот, который находится в моем отчете, свойства набора данных, является @ServerID.

Значение @ServerID поступает из другого набора данных, называемого the_servers (где пользователь выбирает идентификатор сервера)

У меня есть параметр отчета, также называемый @ServerID, который получает его значение от_сервера и используется для подачи параметра @ServerID в currentSpaceByDrive.

Слишком много @ServerID, я понимаю, но если вы сделаете свой собственный тест на основе этого, вы сделаете это. См. Прикрепленное изображение.

надеюсь, что это поможет Марсело

enter image description here

Ответ 6

проверить DataSet в сервере отчетов, у меня была аналогичная проблема, я редактировал общий набор данных в Visual Studio, но это не сработало, после часа разочарования я проверил набор данных на сервере отчетов, и я узнал, что он не обновляется с помощью изменения, которые я сделал в визуальной студии, я удаляю его и снова переопределяю Dataset из visual studio. он работает.

Ответ 7

На самом деле мне пришлось:

  • Удалить объект SubReport из отчета.
  • Перетащите новый объект из панели инструментов
  • Настройте имя субрепортажа и отчет
  • В Paramateres "Добавить" и выберите каждый параметр и соответствующее значение.

Тогда работает для меня.

Ответ 8

Для меня установка значения параметра создает проблемы. Я не знаю почему, но значение параметра не смогло принять строку. Пустой или нулевой. Так что я просто дал "", поскольку значение решает ошибку.

Образец

ReportParameter[] parameters = new ReportParameter[4];
parameters[0] = new ReportParameter("Name", EName);
parameters[1] = new ReportParameter("ShiftName", CurrentShift);
parameters[2] = new ReportParameter("Date", LoginDate);
if(ValidateReportData())//some condition
{
    parameters[3] = new ReportParameter("Date1", LoginDate);
}
else
{
    //parameters[3] = new ReportParameter("Date1", string.Empty);//this makes exception while calling Render function.
    parameters[3] = new ReportParameter("Date1", " ");//Solves the issue.
}