Добавить чередующийся цвет строки в отчет SSRS Matrix с разделением страниц - PullRequest
0 голосов
/ 22 февраля 2019

У меня есть матрица с несколькими разбиениями страниц для каждой группы продуктов.Я использую приведенное ниже выражение, чтобы получить чередующийся цвет строки для каждой группы продуктов.Проблема в том, что он работает, как и ожидалось, только на странице 1. Другие страницы (т.е. страница 2) возвращают нежелательные результаты, как показано на снимке экрана ниже:

Выражение:

= iif (RunningValue (Fields! CurrentIntroducerManager.Value.ToString, CountDistinct, Nothing) Mod 2, "Gainsboro", "White")

enter image description here

Ответы [ 2 ]

0 голосов
/ 23 февраля 2019

У меня были проблемы с использованием значения «Время выполнения», и я просто использовал функцию «Цвет альтернативной строки», которую кто-то создал некоторое время назад.

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

Для первого столбца, управляющего цветом:

=Code.AlternateColor("AliceBlue", "White", True)

Для остальных столбцов не переключайтесь с третьим аргументом:

=Code.AlternateColor("AliceBlue", "White", False)

Возможно, вам придется переключить цвета в первом столбце в матрице.

Неправильно работает цветовое выражение чередующейся строки в матрице SSRS

Цвета чередующихся строк SSRS в группах

0 голосов
/ 22 февраля 2019

Агрегатные функции, такие как RunningValue, имеют необязательный аргумент для переопределения области.В вашем случае вам нужно будет указать правильную группу строк, в которой вы пытаетесь считать строки.В отличие от самого низкого уровня детализации, который используется по умолчанию.Это должно выглядеть так, но с названием вашей группы:

=iif(RunningValue(Fields!CurrentIntroducerManager.Value.ToString,CountDistinct, "MyGroupNameHere") Mod 2,"Gainsboro", "White")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...