#asp.net #reportviewer
#asp.net #reportviewer
Вопрос:
Я пытаюсь вызвать отчеты rdl удаленно в ASP.NET И я успешно вызвал отчет без параметра. Но когда я передаю параметр, сообщающий, что я не заполняю и не выдаю ошибку. Это отображает примечание в отчете. найдите мой код ниже. и, пожалуйста, предложите мне то же самое.
MyReportViewer.ProcessingMode = Microsoft.Reporting.WebForms.ProcessingMode.Remote;
MyReportViewer.ServerReport.ReportServerUrl = new Uri(@"http://gblon9sqm10 /ReportServer_DB10");
MyReportViewer.ServerReport.ReportPath = "/Reports/Report1";
MyReportViewer.ShowParameterPrompts = false;
MyReportViewer.ShowPrintButton = true;
ReportParameter[] rptParameters = new ReportParameter[1];
rptParameters[0] = new ReportParameter();
rptParameters[0].Name = "exposureType";
rptParameters[0].Values.Add("Impressions");
MyReportViewer.ServerReport.SetParameters(rptParameters);
MyReportViewer.ServerReport.Refresh();
Комментарии:
1. Можете ли вы открыть файл rdl отчета и посмотреть параметр там?
2. Да, у меня есть параметр, я создал 2 отчета, один с параметром, а другой без параметра. один без параметра работает нормально. Если я передаю параметр в отчет без параметра, я получаю ошибку, поскольку параметр не существует. Когда я передаю параметр в отчет с параметром, я не получаю никакой ошибки и ничего не отображаю.
3. Вы уверены, что второй отчет работает правильно? Что произойдет, если вы просто добавите параметр label в отчет 1 и установите для него параметр?
4. Да, второй без параметра работает. И если MyReportViewer. ShowParameterPrompts = true; тогда сначала работает laso, но мне нужно выбрать параметр в программе просмотра отчетов. я не могу установить значение параметра из файла .cs
Ответ №1:
Прошло некоторое время с тех пор, как я это настраивал, но я помню, что должен был убедиться, что вы не настраивали отчет снова при обратной передаче. Это мой код в page_load:
if (!Page.IsPostBack)
{
rptViewer.ServerReport.ReportServerUrl = Settings.ReportServerUrl;
if (rptViewer.ServerReport.ReportServerCredentials == null)
rptViewer.ServerReport.ReportServerCredentials = new ReportServerCredentials();
List<ReportParameter> parameters = new List<ReportParameter>();
parameters.Add(new ReportParameter("TitleLabel", "Title string here"));
//More parameters added here...
rptViewer.ServerReport.SetParameters(parameters);
}
Ответ №2:
Я столкнулся с той же проблемой с тем же кодом и конфигурацией, о которых вы упомянули.
Я попробовал немного поработать и избавиться от проблемы.
Я создал новый отчет с единственным параметром «Name» и передаю значение этому параметру из исходного кода в качестве ReportParameter. На стороне конфигурации отчета задайте тип текста параметра и разрешите использовать пустые значения. Обратите внимание, что здесь я не трогал никаких других настроек параметра, значит, сохранил его таким, как есть по умолчанию.
У меня это работает, а затем я начал добавлять дополнительные параметры, и это работает отлично.
Нет никаких ограничений браузера.
Попробуйте, как сказано выше, и все равно вы столкнетесь с проблемой, тогда ответьте мне, я выложу пример кода.
Надеюсь, это вам поможет.