Передача даты в качестве параметра в подотчет / другой отчет для использования в качестве параметра
У меня есть два отчета. Первый отчет выбирает тип отчета из выпадающего списка и принимает даты от и до, а при нажатии на просмотр отчета - перечисляет имена клиентов для этого типа отчета.
Когда вы нажимаете на customername
второй отчет называется (действие), передавая 3 параметра - customername
, datefrom
, а также dateto
в качестве параметров, которые будут использоваться во втором отчете.
Когда я запускаю каждый отчет по отдельности, оба работают нормально. Когда я запускаю первый отчет (выберите тип отчета, выберите datefrom
/dateto
), в этом отчете перечислены все имена клиентов для этого типа отчета. Когда я нажимаю на customername
Я получаю сообщение об ошибке:
"Значение, предоставленное для параметра отчета" reportdatefrom ", недопустимо для его типа" (rsReportParameterTypeMismatch)
Пожалуйста помоги.
3 ответа
Используйте что-то вроде формата (Параметры! Reportdatefrom.Value,"ГГГГММДД"), чтобы преобразовать значение в каноническую строку перед передачей его в подотчет.
SSRS иногда имеет проблемы с датой / временем. URL-адресность означает, что все значения параметров в любом случае преобразуются в строки, но правила преобразования по умолчанию могут отличаться для разных компонентов. Один компонент генерирует литерал даты и времени, который другой компонент не может прочитать. Обычно это происходит из-за региональных настроек за пределами США.
В любом случае, чтобы обойти это, просто конвертируйте даты в строковые литералы в канонической форме ODBC, прежде чем передавать их.
Это также зависит от того, как вы передаете URL в подотчет.
Если вы передаете его через объект SubReport в своем основном отчете, а свойство Action - через опцию URL:
Я предлагаю вам создать строку URL и добавить к ней ссылки на поля, необходимые для выполнения требований к параметрам подотчета.
т.е.
="http://serverXXXX/ReportServer?/FernandoReports/rptTET&rs:Command=Render&rc:toolbar=false&wsTETID=" + Fields!TETID.Value.ToString()
Таким образом вы заставляете SSRS отображать все значение поля как одну строку с правильным значением из таблицы Fields.
Проверьте параметр типа в 2-м отчете. Оба параметра!From и Parameters!To имеют тип Datetime, но я не знаю, какой метод вы называете 2-м отчетом, но в моем случае я вам так
Щелкните правой кнопкой мыши Textbox > Properties > выберите Action на левой панели> выберите опцию Go to Report, как показано на этом изображении ниже
Затем добавьте параметр для отправки в 2-й отчет.
Убедитесь, что параметры!From и To (оба отчета) имеют тип Datetime.