Как передать значение параметра в суботчет
Использование vb.net я создал бэкэнд отчета как sql server, и в моем основном отчете я передаю три параметра (2 date и 1 category id), а во вложенном отчете у меня есть два параметра(2 date).
пока я запускаю проект, я получаю какую-то ошибку, похожую на следующую,
Additional information: Object reference not set to an instance of an object.
Что я уже пробовал:
''Main report parameters Dim cryRpt As New ReportDocument cryRpt.Load("report path") cryRpt.SetParameterValue("Exid", PrintId) cryRpt.SetParameterValue("Frm", FDate) cryRpt.SetParameterValue("To", TDate) ''Sub report parameters Dim mySubReport As ReportDocument mySubReport = cryRpt.OpenSubreport("report path") mySubReport.SetParameterValue("Frm", FDate) mySubReport.SetParameterValue("To", TDate)
CHill60
Отладьте свой код. Определите, если cryRpt
нет ничего. Если это так, то ваш путь к отчету неверен. Если это не Ничто, то проверьте значение mySubReport
Если это ничего, то этот "путь отчета" недействителен.
jmavrix
Оба отчета находятся в допустимом пути, я могу просмотреть отчет из vs2015.
но пока я запускаю проект, я получаю error.is в обязательном порядке необходимо передать одно и то же количество параметров из основного отчета во вложенный отчет
CHill60
Это не та ошибка, о которой вы сообщили в своем вопросе!
jmavrix
ошибка та же самая , это то, что я пробовал
CHill60
Я понял, что это был вопрос, а не сообщение об ошибке. Я не знаю, сколько параметров нужно вашим отчетам - я их не вижу.
В какой именно строке кода выбрасывается это исключение?
jmavrix
В этой строке mySubReport. SetParameterValue ("Frm", FDate)
я получаю следующую ошибку
Необработанное исключение типа "System.NullReferenceException" произошло в SmartOfficeV1.1.exe
Дополнительная информация: ссылка на объект не установлена на экземпляр объекта.
CHill60
Вам нужно отладить и посмотреть, какое значение имеет mSubReport в этот момент. Если это ничего, то "путь отчета" неверен при попытке открыть вложенный отчет. Если это не Ничто, то FDate - это ничто-вам нужно будет выяснить, почему.