Добавить элемент управления в конструктор активного отчета

Я знаю, что есть разные способы добавления элементов управления в Active Report. Я нашел их на разных веб-страницах, таких как:

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

Но это не мое дело, мне нужно загрузить конструктор, т.е. GrapeCity.ActiveReport.Design.Designer, с некоторыми элементами управления. Я хочу добавить эти элементы управления из моего кода. Пожалуйста помогите.


person Ammar    schedule 10.11.2014    source источник


Ответы (3)


Если вы ищете с помощью конструктора конечных пользователей и хотите добавить элементы управления в разделы отчета на основе разделов, вам нужно будет преобразовать отчет конструктора конечных пользователей с помощью класса 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 — это имя элемента управления конструктора. Надеюсь это поможет.

person Sankalp1984    schedule 12.11.2014
comment
Спасибо за ваш ответ, так как ответы очень редки для ActiveReports. У меня есть решение, изучив документацию. Я также собираюсь опубликовать свое решение. - person Ammar; 12.11.2014
comment
Ваш ответ выглядит лучше, чем мое решение. - person Ammar; 12.11.2014

Я сделал это, создав новый 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)

Сообщите мне, если в этом ответе есть какие-либо проблемы.

person Ammar    schedule 12.11.2014

Ниже приведен код, который вы можете поместить в событие загрузки формы.

  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);
person Atif Tariq    schedule 08.03.2017