Bisakah seseorang menjelaskan logika di balik membalikkan bidang ke false dalam kode di bawah ini (dari posting di atas)
Satu hal yang saya perhatikan adalah bahwa tidak satu pun dari dua metode teratas memiliki gagasan tentang apa warna baris pertama harus dalam kelompok; grup hanya akan mulai dengan warna yang berlawanan dari baris terakhir dari grup sebelumnya. Saya ingin grup saya selalu mulai dengan warna yang sama ... baris pertama dari setiap grup harus selalu putih, dan baris berikutnya diwarnai.
Konsep dasarnya adalah mengatur ulang sakelar ketika setiap grup dimulai, jadi saya menambahkan sedikit kode:
Private bOddRow As Boolean
'*************************************************************************
'-- Display green-bar type color banding in detail rows
'-- Call from BackGroundColor property of all detail row textboxes
'-- Set Toggle True for first item, False for others.
'*************************************************************************
'
Function AlternateColor(ByVal OddColor As String, _
ByVal EvenColor As String, ByVal Toggle As Boolean) As String
If Toggle Then bOddRow = Not bOddRow
If bOddRow Then
Return OddColor
Else
Return EvenColor
End If
End Function
'
Function RestartColor(ByVal OddColor As String) As String
bOddRow = True
Return OddColor
End Function
Jadi saya memiliki tiga jenis latar belakang sel sekarang:
- Kolom pertama baris data memiliki = Code.AlternateColor ("AliceBlue", "White", True) (Ini sama dengan jawaban sebelumnya.)
- Kolom baris data yang tersisa memiliki = Code.AlternateColor ("AliceBlue", "White", False) (Ini, juga, sama dengan jawaban sebelumnya.)
- Kolom pertama dari baris pengelompokan memiliki = Code.RestartColor ("AliceBlue") (Ini baru.)
- Kolom baris pengelompokan yang tersisa memiliki = Code.AlternateColor ("AliceBlue", "White", False) (Ini digunakan sebelumnya, tetapi tidak disebutkan untuk pengelompokan baris.)
Ini bekerja untuk saya. Jika Anda ingin baris pengelompokan menjadi tidak berwarna, atau warna yang berbeda, harus cukup jelas dari ini cara mengubahnya.
Jangan ragu untuk menambahkan komentar tentang apa yang bisa dilakukan untuk meningkatkan kode ini: Saya baru untuk SSRS dan VB, jadi saya sangat curiga bahwa ada banyak ruang untuk perbaikan, tetapi ide dasarnya tampak bagus (dan itu berguna untuk saya) jadi saya ingin membuangnya di sini.