0
点赞
收藏
分享

微信扫一扫

Generate/Create RDLC Dynamically

GotReportViewer   http://www.gotreportviwer.com/

Generate RDLC dynamically (great)
namespace DynamicTable    
{     
    public partial class Form1 : Form     
    {     
        private DataSet m_dataSet;     
        private MemoryStream m_rdl;         public Form1()    
        {     
            InitializeComponent();     
        }         private void Form1_Load(object sender, EventArgs e)    
        {     
            OpenDataFile("test.xml", false);     
        }         private void ShowReport()    
        {     
            this.reportViewer1.Reset();     
            this.reportViewer1.LocalReport.LoadReportDefinition(m_rdl);     
            this.reportViewer1.LocalReport.DataSources.Add(new ReportDataSource("MyData", m_dataSet.Tables[0]));     
            this.reportViewer1.RefreshReport();     
        }         private MemoryStream GenerateRdl(List<string> allFields, List<string> selectedFields)    
        {     
            MemoryStream ms = new MemoryStream();     
            RdlGenerator gen = new RdlGenerator();     
            gen.AllFields = allFields;     
            gen.SelectedFields = selectedFields;     
            gen.WriteXml(ms);     
            ms.Position = 0;     
            return ms;     
        }         private void DumpRdl(MemoryStream rdl)    
        {     
            using (FileStream fs = new FileStream(@"c:\test.rdlc", FileMode.Create))     
            {     
                rdl.WriteTo(fs);     
            }     
        }         private List<string> GetAvailableFields()    
        {     
            DataTable dataTable = m_dataSet.Tables[0];     
            List<string> availableFields = new List<string>();     
            for (int i = 0; i < dataTable.Columns.Count; i++)     
            {     
                availableFields.Add(dataTable.Columns[i].ColumnName);     
            }     
            return availableFields;     
        }         private void OpenDataFile(string filename, bool showOptionsDialog)    
        {     
            try     
            {     
                m_dataSet = new DataSet();     
                m_dataSet.ReadXml(filename);                 List<string> allFields = GetAvailableFields();    
                ReportOptionsDialog dlg = new ReportOptionsDialog(allFields);     
                if (showOptionsDialog)     
                {     
                    if (dlg.ShowDialog() != DialogResult.OK)     
                        return;     
                }     
                List<string> selectedFields = dlg.GetSelectedFields();                 if (m_rdl != null)    
                    m_rdl.Dispose();     
                m_rdl = GenerateRdl(allFields, selectedFields);     
                DumpRdl(m_rdl);                 ShowReport();    
            }     
            catch (Exception ex)     
            {     
                MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);     
            }     
        }         private void openToolStripMenuItem_Click(object sender, EventArgs e)    
        {     
            if (openFileDialog1.ShowDialog() == DialogResult.OK)     
            {     
                OpenDataFile(openFileDialog1.FileName, true);     
            }     
        }     
    }     
}


http://social.msdn.microsoft.com/Forums/en-US/vsreportcontrols/thread/8cc4f0d5-52b8-482a-bb30-062f91d52626/

http://www.amazon.com/s/ref=nb_ss?url=search-alias%3Dstripbooks&field-keywords=2005+Reporting+Services+&x=21&y=23

http://spacefold.com/lisa/post/2008/05/25/Walkthrough-A-Simple-ish-Runtime-Quick-Report.aspx

http://schemas.microsoft.com/sqlserver/reporting/2005/01/reportdefinition/ReportDefinition.xsd

http://spacefold.com/lisa/post/2009/07/26/YAPS-about-Dynamic-Layouts.aspx

http://www.codeproject.com/KB/reporting-services/DynamicReport.aspx

http://www.wangchao.net.cn/bbsdetail_546410.html (great)

(great)

(great)

http://www.ureader.com/msg/115712546.aspx (great)

http://yorozuya.exeexe.net/vbdotnet_fyireporting/rdl0010.html (great)

http://social.msdn.microsoft.com/Forums/en-US/xmlandnetfx/thread/c139c343-14bc-4026-96f6-a5c53f60b53f (great)



举报

相关推荐

0 条评论