使用ActiveReports创建动态区段报表
操作方法
- 01
ActiveReports可以通过API实现运行时的报表创建,让一些报表的一些动态功能能够实现。接下来就以如何创建动态区段报表为例,说一下灵活运用API的方法。首先看一下最终创建报表的效果:简单的说一下创建步骤:
- 02
创建一个报表实例
- 03
动态的添加区段和控件
- 04
修改报表区段和控件的相关细节
- 05
给报表指派设置数据源
- 06
将报表绑定到数据源
- 07
下段代码就能完成所有步骤: privatevoidForm1_Load(objectsender, EventArgs e) { rpt =newSectionReport(); //Adding Page Header/Footer sections rpt.Sections.InsertPageHF(); rpt.Sections[0].BackColor = Color.LightGray; //Adding Detail section rpt.Sections.Insert(1,newDetail()); rpt.Sections[1].BackColor = Color.PeachPuff; rpt.Sections[1].Height = 1.5f; //Adding label to display first column's name GrapeCity.ActiveReports.SectionReportModel.Label lblCategoryID =newGrapeCity.ActiveReports.SectionReportModel.Label(); lblCategoryID.Location =newPointF(0, 0.05F); lblCategoryID.Text ="Category ID"; lblCategoryID.Alignment = GrapeCity.ActiveReports.Document.Section.TextAlignment.Center; lblCategoryID.Font =newSystem.Drawing.Font("Arial", 10, FontStyle.Bold); rpt.Sections[0].Controls.Add(lblCategoryID); //Adding label to display second column's name GrapeCity.ActiveReports.SectionReportModel.Label lblCategoryName =newGrapeCity.ActiveReports.SectionReportModel.Label(); lblCategoryName.Location =newPointF(1.459f, 0.05f); lblCategoryName.Size =newSizeF(1.094f,0.2f); lblCategoryName.Text ="Category Name"; lblCategoryName.Font =newSystem.Drawing.Font("Arial", 10, FontStyle.Bold); rpt.Sections[0].Controls.Add(lblCategoryName); //Adding label to display third column's name GrapeCity.ActiveReports.SectionReportModel.Label lblDescription =newGrapeCity.ActiveReports.SectionReportModel.Label(); lblDescription.Location =newPointF(3.114f, 0.05f); lblDescription.Text ="Description"; lblDescription.Font =newSystem.Drawing.Font("Arial", 10, FontStyle.Bold); rpt.Sections[0].Controls.Add(lblDescription); //Adding label to display fourth column's name GrapeCity.ActiveReports.SectionReportModel.Label lblPicture =newGrapeCity.ActiveReports.SectionReportModel.Label(); lblPicture.Location =newPointF(5.219f, 0.05f); lblPicture.Alignment = GrapeCity.ActiveReports.Document.Section.TextAlignment.Center; lblPicture.Text ="Picture"; lblPicture.Font =newSystem.Drawing.Font("Arial", 10, FontStyle.Bold); rpt.Sections[0].Controls.Add(lblPicture); //Adding Textbox to display first column's records GrapeCity.ActiveReports.SectionReportModel.TextBox txtCategoryID =newGrapeCity.ActiveReports.SectionReportModel.TextBox(); txtCategoryID.Location =newPointF(0,0); txtCategoryID.Alignment = GrapeCity.ActiveReports.Document.Section.TextAlignment.Center; rpt.Sections[1].Controls.Add(txtCategoryID); //Adding Textbox to display second column's records GrapeCity.ActiveReports.SectionReportModel.TextBox txtCategoryName =newGrapeCity.ActiveReports.SectionReportModel.TextBox(); txtCategoryName.Location =newPointF(1.459f,0); rpt.Sections[1].Controls.Add(txtCategoryName); //Adding Textbox to display third column's records GrapeCity.ActiveReports.SectionReportModel.TextBox txtDescription =newGrapeCity.ActiveReports.SectionReportModel.TextBox(); txtDescription.Location =newPointF(3.114f,0); rpt.Sections[1].Controls.Add(txtDescription); //Adding Picture control to display image GrapeCity.ActiveReports.SectionReportModel.Picture picture =newPicture(); picture.Location =newPointF(5.219f,0); rpt.Sections[1].Controls.Add(picture); // Setting report's data source conn =newOleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\stduser\Documents\ComponentOne Samples\ActiveReports Developer 7\Data\NWIND.mdb;Persist Security Info=False"); System.Data.OleDb.OleDbCommand cmd =newSystem.Data.OleDb.OleDbCommand("SELECT * FROM Categories", conn); conn.Open(); reader = cmd.ExecuteReader(); rpt.DataSource = reader; // Assigning DataField properties of controls in the detail section txtCategoryID.DataField ="CategoryID"; txtCategoryName.DataField ="CategoryName"; txtDescription.DataField ="Description"; picture.DataField ="Picture"; reader.Close(); conn.Close(); }