2016-08-19 5 views
0

У меня есть некоторые вопросы, получающие альтернативные цвета строк.SSRS чередующиеся рядовые цвета внутри групп

Я пробовал различные выражения, и это так близко, как я получил, чтобы получить это сделать:

=IIF(RunningValue(Fields!agent_name.Value,CountDistinct, Nothing) MOD 2 = 1, "Gainsboro", "White") 

Где все остальные мои отчеты становятся все правильно альт строки затенение, у меня возникают проблемы с этим конкретным отчетом, который имеет группу строк и столбцов в группу .. потратил около 2 дней и до сих пор не повезло :(

Когда я делаю мои строки с выражением выше, он отображается как это: result showing using above expression

My R ow group, очевидно, является именем,

Группа столбцов - месяц/год.

Любые предложения/помощь будет принята с благодарностью

ответ

2

Проблема заключается в том, что есть значения NULL в данных, где матрица создания ячеек, где нет данных. Поскольку для этих ячеек нет агента_имя, по умолчанию используется белый.

Я отказался от использования значений и рядов Runnning в SSRS и обычно использовал функцию Alternating Row Color.

Вы добавить VB код в отчет (Свойства отчета > код):

Private bOddRow(10) As Boolean 

Function AlternateColor(ByVal OddColor As String, ByVal EvenColor As String, ByVal Toggle As Boolean, ByVal Type AS INTEGER) As String 

    If Toggle Then bOddRow(Type) = Not bOddRow(Type) 

    If bOddRow(Type) Then 
       Return OddColor 
    Else 
       Return EvenColor 
    End If 

End Function 

Затем используйте выражение для заполнения цвета:

=code.AlternateColor("AliceBlue", "White", 0, 1) 

Первые два аргумента являются цветами, чередующимися между ними, третий аргумент - это элемент управления, который сообщает ему о переключении цветов, а четвертый аргумент - для группы, которая будет использоваться для вложенной группировки.

Первый столбец ряда имеет контроль с первым .

=code.AlternateColor("AliceBlue", "White", 1, 1) 

Используйте это в своей первой колонке - где у вас есть ваше имя агента.

How to create Alternative Row Background colors in SSRS for values in a group

+0

Вы бомба, но моя разметка таким образом, где выделен первый столбец, но детали одной и той же группы не являются. Вместо этого, следующая строчная деталь отображается затененной? Как изменить его, чтобы затенение оставалось в моей группе? – user3571153

+0

Nvm. Я получил это .. СПАСИБО МУЖЧИНУ .. ВАМ СПАСИБО ЖИЗНЬ !!! – user3571153

0

Necromancing.
Принятый ответ не сработал для меня, так как Toggle очень нерегулярен в группировке столбцов.

Приведенный ниже код работал.

Вы должны установить цвет фона в первой ячейке, как

=iif(Code.IncrementRunningValue() Mod 2 = 0, "WhiteSmoke", "White") 

И во всех последующих клетках как

=iif(Code.GetRunningValue() Mod 2 = 0, "WhiteSmoke", "White") 

Установка как групповой переменной не будет работать, потому что сортировка применяется после группировки (это означает, что строки будут переупорядочены после создания значений).

Private m_s_count As ULong = 0 

Public Function IncrementRunningValue() As ULong 
    m_s_count = m_s_count + 1UL 

    Return m_s_count - 1UL 
End Function 

Public Function GetRunningValue() As ULong 
    Return m_s_count 
End Function 

Или вы можете сделать это еще проще:

Private m_s_AlternatingColor1Count As ULong = 0 


Private Function ComputeAlternatingColor1(val As ULong) As String 
    If val Mod 2 = 0 Then 
     Return "WhiteSmoke" 
    End If 

    Return "White" 
End Function 


Public Function IncrementAlternatingColor1() As String 
    Dim alternatingColor As String = ComputeAlternatingColor1(m_s_AlternatingColor1Count) 
    m_s_AlternatingColor1Count = m_s_AlternatingColor1Count + 1UL 

    Return alternatingColor 
End Function 

Public Function GetAlternatingColor1() As String 
    Return ComputeAlternatingColor1(m_s_AlternatingColor1Count) 
End Function 

, а затем в первой строке в цвет фона:

=Code.IncrementAlternatingColor1() 

и цвет фона всех последующих строк :

=Code.GetAlternatingColor1() 

Это имеет то преимущество, что вы можете переключать цвета в ОДНОМ месте (DRY).

Смежные вопросы