有没有办法可以使ActiveReports详细信息的列进行程序化访问?
-
04-10-2019 - |
题
我有一个针对.NET的数据动力学活动的报告。在本报告中,我将详细信息部分的列表属性设置为X。详细信息部分具有一个数据库文本框。
详细信息部分的列截面属性设置为跨down,然后将数据绑定机制自动填充数据量后,将数据填充数据和数据登录机制。
这是代码...
Public Sub RunReport
Dim count As Integer = 0
' ... get count
Detail1.ColumnCount = count
Me.DataSource = ds
Me.DataMember = ds.Tables(0).TableName
End Sub
该代码正常工作,并且在整个报告中自动填写数据。
现在,我需要更改报告并圈出或突出显示报告中列的一项项目之一。
我找不到任何方法可以通过编程方式访问自动生成的列,因此我可以打开边框或绘制圆形或其他东西。有什么想法,我该怎么做?
塞思
解决方案
您可以通过在格式事件中设置控件的属性来打开边框。例如,如果您想在其值小于零时设置文本框的边框,则可以使用以下代码之类的内容:
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;
}
}
读 这里 有关边境财产的更多信息。
在最终页面上获得控制的位置并不那么容易。您可以根据某些内容来计算位置,但是我建议使用控件本身突出显示所需的数据,而不是在页面上绘制。这将使您的生活更轻松:)
如果圆形对您很重要,则可以在ActiveReport中使用“形状”控件来通过基于条件设置其位置和可见性来实现此目的。只需确保形状的z订单在文本框下即可。使用形状的代码类似于我在上面的代码构造代码的方式,但是您将设置顶部/左/宽度/高度和形状控制的可见属性,而不是设置边框属性。有关形状控制的更多信息是 这里.
希望这可以帮助。
Scott Willeke
GrapeCity
不隶属于 StackOverflow