将控件添加到活动报表的设计器

时间:2014-11-10 13:15:36

标签: c# vb.net activereports grapecity

我知道在Active Report中添加控件的方法有很多种。我在不同的网页上找到了它们,如:

this.Sections["groupHeader1"].Controls.Add(txt);

但这不属于我的业务我必须加载设计师,即GrapeCity.ActiveReport.Design.Designer加上一些控件。我想从我的代码后面添加这些控件。请帮帮我。

3 个答案:

答案 0 :(得分:1)

如果您正在查看最终用户设计器并希望将控件添加到基于部分的报表部分,则需要使用SectionReport类转换最终用户设计器报表并相应地访问其部分。例如,检查以下代码,将一个文本框添加到"详细信息"点击按钮的报告部分:

    private void button1_Click(object sender, EventArgs e)
    {
        GrapeCity.ActiveReports.SectionReportModel.TextBox txtBox = new GrapeCity.ActiveReports.SectionReportModel.TextBox();
        txtBox.Text = "Hello World!";
        txtBox.Location = new Point(1, 1);
        txtBox.Size = new SizeF(2, 0.5f);
        ((GrapeCity.ActiveReports.SectionReport)reportdesigner.Report).Sections["Detail"].Controls.Add(txtBox);
    }

这里reportDesigner是设计器控件的名称。希望这会有所帮助。

答案 1 :(得分:0)

我通过使用新SectionReport并在其中采用Designer.Report来完成此操作。现在在SectionReport中添加控件意味着在Designer.Report中添加控件。这就是我对以下解决方案的看法,因为它对我有用。

Dim sr As New GrapeCity.ActiveReports.SectionReport()

sr = Me.reportdesigner.Report
''Adding Detail section
sr.Sections.Insert(1, New GrapeCity.ActiveReports.SectionReportModel.Detail())
sr.Sections(1).BackColor = Color.PeachPuff
sr.Sections(1).Height = 1.5F

Dim lbl2 As New GrapeCity.ActiveReports.SectionReportModel.Label()

lbl2.Location = New PointF(0, 0.05F)
lbl2.Text = "Category ID"
lbl2.Alignment = GrapeCity.ActiveReports.Document.Section.TextAlignment.Center
lbl2.Font = New System.Drawing.Font("Arial", 10, FontStyle.Bold)
sr.Sections(1).Controls.Add(lbl2)

如果此答案中有任何问题,请报告我。

答案 2 :(得分:0)

以下是您可以在Form的加载事件中放入的代码。

  GrapeCity.ActiveReports.SectionReport sectionReport = new GrapeCity.ActiveReports.SectionReport();
    sectionReport.Sections.Add(GrapeCity.ActiveReports.Document.Section.SectionType.Detail, "Body");
                GrapeCity.ActiveReports.SectionReportModel.TextBox MyTextBox = new GrapeCity.ActiveReports.SectionReportModel.TextBox();
                MyTextBox.Text = "My Runtime Text";
                MyTextBox.ShrinkToFit = true;
                MyTextBox.DataField = "ID";
                sectionReport.Sections[0].Controls.Add(MyTextBox);