ActiveReportsの詳細セクションの列にプログラム的なアクセスを取得する方法はありますか?
-
04-10-2019 - |
質問
.NETのデータダイナミクスActiLEREPORTSのレポートがあります。このレポートでは、詳細セクションの列カウントプロパティをプログラムでXに設定しています。詳細セクションには、1つのデータバウンドテキストボックスがあります。
詳細セクションの列向けプロパティは、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つを強調表示する必要があります。
自動生成された列にプログラム的にアクセスする方法を見つけることができないので、境界線をオンにしたり、円か何かを描くことができます。私がそれをする方法はありますか?
セス
解決
フォーマットイベントでコントロールのプロパティを設定することにより、境界線をオンにすることができます。たとえば、値がゼロ未満の場合にテキストボックスの境界を設定したい場合は、次のコードのようなものを使用できます。
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;
}
}
読んだ ここ 国境敷地の詳細については。
結果のページでコントロールの位置を取得するのはそれほど簡単ではありません。いくつかのことに基づいて位置を計算できますが、ページに描画するのではなく、必要なデータを強調表示するためにコントロール自体を使用することをお勧めします。それはあなたの人生を楽にします:)
円形が重要である場合、ActiveReportsの「形状」コントロールを使用して、条件に基づいて位置と可視性を設定することでこれを行うことができます。形状のZオーダーがテキストボックスの下にあることを確認してください。形状を使用するコードは、上記のコードの構築方法と似ていますが、境界プロパティを設定する代わりに、上/左/幅/高さと形状制御の可視プロパティを設定します。形状コントロールの詳細は次のとおりです ここ.
お役に立てれば。
Scott Willeke
GrapeCity