简体   繁体   中英

How to generate an RDLC file using C# during runtime

I'm doing some application development (CRM solution) which require generating diagrammatically an RDLC file at runtime. How do I do that?

You can use 'Generate RDLC dynamically - Table' example from got reportviewer? page

感谢所有回答此问题的人的回复,但我发现了一篇很好的文章来生成动态报告: 带有Reporting Services的动态报告

ALL you have to do is change the the data source by coding. like

        ReportViewer.LocalReport.DataSources.Clear();
        ReportViewer.ProcessingMode = Microsoft.Reporting.WinForms.ProcessingMode.Local;


        ReportDataSource RDS = new ReportDataSource();
        RDS.Name = "DataSet";


        RDS.Value = itemReportTableBindingSource;
        ReportViewer.LocalReport.ReportEmbeddedResource = "RFID.Reports.ItemsReport.rdlc";
        ReportViewer.LocalReport.DataSources.Add(RDS);

        this.itemReportTableTableAdapter.Fill(this.reportsDataSet.ItemReportTable);
        this.ReportViewer.RefreshReport();

Can I confirm that you are trying to build a dynamic reporting solution based on RDLC, or do you just need to mine the data stored in the CRM and show it in a RDLC. I guess you've exhausted other tools such as Proclarity and Excel for users to mine data.

Assuming the former (ie an RDLC designer), then RDLC is just an XML file, so I guess you could create simple, standard RDLC's containing datasources, field definitions, cells etc by applying an XSLT after first exporting some kind of xml 'model' from your designer?

Sounds like a lot of work ;)

You should consult this link it might be helpful

How to dynamically add new columns to report created with Reporting Services?

RDLC Report is a XML file and by editing it in XMLDocument you can modify locate /Report/Body/ReportItems/Table node and do the following inside it

  • define the header of a new column – add a new TableCell inside Header node
  • bind the column with data (from DataTable) – add a new TableCell inside Details node
  • define the width of the colum – add a new TableColumn inside TableColumns

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM