none
.NET: Перезагрузка ReportViewer RRS feed

  • Общие обсуждения

  • Здравствуйте. И сразу к делу... Есть форма на ней располагается компонент reportViewer. Я создал несколько отчётов .rdlc. Необходимо что бы по нажатию на кнопку 1 в reportViewer загружался отчёт 1, на кнопку 2 - отчёт 2 и т.д. Т.е. необходимо реализовать перезагрузку reportViewer.
    Пробовал так, но не работает:

    this.staff_driveTableAdapter.Fill(this.hrDataSet.staff_drive);
    this.reportViewer1.LocalReport.ReportEmbeddedResource = "Rep.Staff_drive.rdlc";
    this.reportViewer1.RefreshReport();

    this.reportViewer1.LocalReport.ReportEmbeddedResource = "REp.Adrr_birth.rdlc";
    Microsoft.Reporting.WinForms.ReportDataSource ds = new Microsoft.Reporting.WinForms.ReportDataSource();
    ds.Name = "Vedom_ex_C_DS";
    ds.Value = staff_address_birthBindingSource;
    reportViewer1.LocalReport.DataSources.Add(ds);
    this.reportViewer1.RefreshReport();

    this.staff_address_birthTableAdapter.Fill(this.hrDataSet.staff_address_birth);
    this.reportViewer1.LocalReport.ReportPath = "..\\..\\Adrr_birth.rdlc";
    this.reportViewer1.RefreshReport();

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

Все ответы

  • Здравствуйте.

    После того как добавили DataSource в коллекцию, т.е. после строки

    reportViewer1.LocalReport.DataSources.Add(ds);

    попробуйте вызывать метод

    reportViewer1.DataBind();


    Для связи [mail]

  • У репорта нет такого метода, есть только DataBindings, но с ним не работает. Может нужно подключать какой-то uses?
  • Хм, да действительно, такой метод есть у Microsoft.Reporting.WebForms ReportViewer

    Тогда попробуйте как предлагается в статье Dynamic Binding Of RDLC To ReportViewer:

    private void BindReportViewer()
        {
            ReportViewer1.Visible = true;
                   
            //Invoke Stored procedure With Input parameter to it.
            //DataSet dsReport = objSP.GetTable(storedProcedure,txtParameter.Text));
            //Hardcoded Values.
            IList >Customer< customerList = new List>Customer<();
            customerList.Add(new Customer(1,"Santosh Poojari"));
            customerList.Add(new Customer(2, "Santosh Poojari1"));
            customerList.Add(new Customer(3, "Santosh Poojari2"));
           
            ReportParameter[] param = new ReportParameter[1];
            param[0] = new ReportParameter("Report_Parameter_0",txtParameter.Text);
            ReportViewer1.LocalReport.SetParameters(param);
            ReportDataSource rds = new ReportDataSource
    			("DataSet1_Customers_DataTable1", customerList);
            ReportViewer1.LocalReport.DataSources.Clear();
            ReportViewer1.LocalReport.DataSources.Add(rds);
            ReportViewer1.LocalReport.Refresh();
        }


    Для связи [mail]

  • У меня слишком много отчётов и параметров. Так что этот метод не подходит. Может есть что-нибудь другое?
  • Уважаемый пользователь!

    В вашей теме отсутствует активность в течение последних 5 дней. При отсутствии каких-либо действий в течение 2 последующих дней, тема будет переведена в разряд обсуждений. Вы можете возобновить дискуссию, просто оставив сообщение в данной теме


    Для связи [mail]