Как изменить / создать объект rldc, reportViewer и набор данных во время выполнения? - PullRequest
2 голосов
/ 31 января 2012

Я использую ReportViewer для создания некоторых отчетов в своем веб-приложении и хочу знать:

Можно использовать ReportViewer без предварительного создания файла .rdlc ... dataSet ...и все такое?

Я хочу создавать экземпляры этих объектов, устанавливать их свойства во время выполнения, чтобы не включать слишком много файлов в мое приложение (30 отчетов x 3 файла [dataSet, .rdlc и .aspx])

Следующий метод объясняет некоторые мои проблемы:

protected void Page_Load (отправитель объекта, EventArgs e) {

    //getting the string connection
    string connString = ConfigurationManager.ConnectionStrings["ConnString"].ConnectionString;
    //estabilishing connection
    using (SqlConnection conn = new SqlConnection(connString))
    {
        string sql = @"EXEC SP_PRODUCTS"; // or another SQL command

        //opening connection
        conn.Open();
        SqlCommand cmd = new SqlCommand(sql, conn);
        SqlDataAdapter adp = new SqlDataAdapter(cmd);
        DataTable dte = new DataTable();

        //filling the dataTable with the command above
        adp.Fill(dte);

        //closing connection
        conn.Close();

        //defining which report the component will render
        ReportViewer1.LocalReport.ReportPath = "myReport.rdlc";

        //adding the dataSource Adicionando o data source, it's important passing the same name you defined before
        //at this moment, i didn't understood if the DataSource is being created populated by the dte datatable or
        //if it is just binding the dte datatable to an existing dataSource named "Products
        ReportViewer1.LocalReport.DataSources.Add(new Microsoft.Reporting.WebForms.ReportDataSource("Products", dte));

        //without this it wont work
        ReportViewer1.DataBind();
    }

}

Есть идеи, как это решить?Заранее спасибо.

1 Ответ

2 голосов
/ 10 февраля 2012

Вы должны создать файл rdlc, но вы можете заполнить этот rdlc столбцами, которые вам нужны, и в зависимости от того, что вам нужно, вы можете показать / скрыть столбцы.Вы можете использовать параметры для этого.Таким образом, вы можете использовать только один файл rdlc.Вы также можете определить объект (и сделать только один набор данных) для всех нужных вам столбцов, и вы заполните его в зависимости от отчета.

...