ActiveReports で一行おきに背景色を変えるには

備忘録です。先日に続き ActiveReports ネタ。

グレープシティ ActiveReports for .NET 7.0J Pro 3開発LP

グレープシティ ActiveReports for .NET 7.0J Pro 3開発LP


一行おきに背景色変えるのってどっかにソースあったと思うんだけど見つからなかったので、プロジェクトからコード引っ張ってきました。SectionReport (3.0J なら ActiveReport3)クラスに Detail.Format イベントを追加し、イベント内で処理すればオッケーです。こんな感じ・・・

VB.NET

Private _rowCount As Int32

Private Sub Detail_Format(sender As Object, e As EventArgs) Handles Detail.Format
    Try
        If (_rowCount Mod 2) = 0 Then
            ' 偶数行
            Detail.BackColor = System.Drawing.Color.Transparent
        Else
            ' 奇数行
            Detail.BackColor = System.Drawing.Color.AliceBlue
        End If
        _rowCount += 1
    Catch ex As Exception
        Throw
    End Try
End Sub

C#

private Int32 _rowCount;

private void detail_Format(object sender, EventArgs e) {
    try {
        if ((_rowCount % 2) == 0) {
            // 偶数行
            detail.BackColor = System.Drawing.Color.Transparent;
        }
        else {
            // 奇数行
            detail.BackColor = System.Drawing.Color.AliceBlue;
        }
    }
    catch (Exception) {
        throw;
    }
}

競合某社のレポートは偶数行・奇数行の前景・背景をノンコーディングで設定できるので、ActiveReports もプロパティで設定できるようになると便利ですね。