有没有办法以编程方式访问ActiveReports详细信息部分的列?

时间:2010-05-24 19:06:56

标签: .net visual-studio activereports

我在Data Dynamics ActiveReports for .NET中有一份报告。在此报表中,我以编程方式将详细信息部分的ColumnCount属性设置为X.详细信息部分有一个数据绑定文本框。

详细信息部分的ColumnDirection属性设置为AcrossDown,然后数据绑定机制在设置DataSource和DataMember后自动填充数据。

这是代码......

Public Sub RunReport
        Dim count As Integer = 0

        ' ...    get count

        Detail1.ColumnCount = count

        Me.DataSource = ds
        Me.DataMember = ds.Tables(0).TableName

End Sub

该代码工作正常,数据会自动填充整个报告。

现在,我需要更改报告并圈选或突出显示报告中各列之间自动填充的项目之一。

我找不到以编程方式访问自动生成列的任何方法,因此我可以打开边框或绘制圆形或其他内容。有什么想法我会怎么做?

赛斯

1 个答案:

答案 0 :(得分:2)

您可以通过在Format事件中设置控件的属性来打开边框。例如,如果要在文本框的值小于零时设置边框,可以使用类似下面的代码:

 private void detail_Format(object sender, System.EventArgs eArgs)
 {
      if (this.TextBox1.Value < 0) {
           this.TextBox1.Border.BottomColor = System.Drawing.Color.Blue;
           this.TextBox1.Border.BottomStyle = BorderLineStyle.DashDot;
           this.TextBox1.Border.LeftColor = System.Drawing.Color.Blue;
           this.TextBox1.Border.LeftStyle = BorderLineStyle.DashDot;
           this.TextBox1.Border.RightColor = System.Drawing.Color.Blue;
           this.TextBox1.Border.RightStyle = BorderLineStyle.DashDot;
           this.TextBox1.Border.TopColor = System.Drawing.Color.Blue;
           this.TextBox1.Border.TopStyle = BorderLineStyle.DashDot;
      }
 }

阅读here以获取有关border属性的更多信息。

在结果页面上获取控件的位置并不容易。您可以根据某些事情计算位置,但我建议使用控件本身来突出显示您想要的数据,而不是在页面上绘图。它会让你的生活更轻松:)

如果圆形对您很重要,您可以使用ActiveReports中的“形状”控件通过根据条件设置它的位置和可见性来执行此操作。只需确保形状的z顺序位于文本框下方。使用形状的代码与我构造上面代码的方式类似,但您可以设置形状控件的Top / Left / Width / Height和Visible属性,而不是设置边框属性。有关形状控制的更多信息是here

希望这有帮助。

 Scott Willeke
 GrapeCity