Передача параметра из отчета RDL для ASP.NET

#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. На стороне конфигурации отчета задайте тип текста параметра и разрешите использовать пустые значения. Обратите внимание, что здесь я не трогал никаких других настроек параметра, значит, сохранил его таким, как есть по умолчанию.

У меня это работает, а затем я начал добавлять дополнительные параметры, и это работает отлично.

Нет никаких ограничений браузера.

Попробуйте, как сказано выше, и все равно вы столкнетесь с проблемой, тогда ответьте мне, я выложу пример кода.

Надеюсь, это вам поможет.