SSRS — групповой набор строк на основе вычисленного значения из данных строки

Я хочу сгруппировать (отобразить) набор строк на основе расчета одного из данных столбца строки.

Допустим, у меня есть 3 столбца в табликсе. 1. Описание 2. Сумма 3. Дебет/кредит

на основе значения D / C я хотел бы суммировать сумму (для дебета ее -ve, а для кредита + ve), пока общая сумма не станет равной нулю, а затем сгруппировать эти строки в другой цвет или между строками между другим набором ряды.

Пример вывода:


Описание Сумма D/C
xyz 10 D
sss 10 C

abc 15 D
vvv 5 C
ccc 5 C
abc 5 C

Спасибо
Картик


person Karthik    schedule 01.02.2016    source источник
comment
Вы хотите группировать только тогда, когда сумма равна нулю?   -  person alejandro zuleta    schedule 01.02.2016
comment
Вы установили какую-либо группу строк в своем табликсе? Я где-то видел похожее решение, но оно работает только в том случае, если группы строк не установлены.   -  person alejandro zuleta    schedule 01.02.2016
comment
Нет, я ничего не сделал. мой текущий табликс прост. Все, что мне нужно для представления строк в этих конкретных наборах.   -  person Karthik    schedule 01.02.2016


Ответы (1)


Я воссоздал ваш сценарий, используя набор данных, который вы предоставили в вопросе. Я использую свойство background-color ячейки «Сумма» для группировки сумм.

Это табликс, который я создал. Выбранному свойству фона ячейки присваивается выражение (см. ниже):

введите здесь описание изображения

В меню Report вкладка Report Properties... / Code помещает эту функцию в текстовую область.

Dim prevColor As String = "Red"
Dim accumulator As Double = 0
Public Function GetSumColor(ByVal value as Double) as String
    Dim color As String             
    accumulator = accumulator + value
    color = prevColor
    If accumulator = 0 Then
        If prevColor = "Red" Then
            prevColor = "Yellow"
        Else
            prevColor = "Red"
        End If
    End If
    Return color
End Function

Эта функция изменит цвет фона ячейки между Red или Yellow в зависимости от суммы, равной нулю (вы можете использовать любой цвет, который хотите).

В свойстве background-color ячейки Amount используйте это выражение:

=Code.GetSumColor(
IIF(Fields!D_C.Value="C",-Fields!Amount.Value,Fields!Amount.Value)
)

Это даст следующий результат:

введите здесь описание изображения

Дайте мне знать, если это поможет вам.

person alejandro zuleta    schedule 01.02.2016
comment
Спасибо за ваше время. Я попробовал с моим отчетом, и я вижу все красное. Не уверен, что это изменение, которое мне нужно было сделать. проверяю это сейчас. в противном случае ваши решения выглядят хорошо для меня. Вызов функции из выражения дает ошибку. =Code.GetSumColor...сообщает о нераспознанном идентификаторе. Но у меня есть код функции, вставленный на вкладке кода свойств отчета. - person Karthik; 01.02.2016
comment
@Karthik Добавьте точный пример ваших данных, кажется, функция неправильно суммирует значения. - person alejandro zuleta; 01.02.2016
comment
Понятно. Мне пришлось использовать тип данных Decimal в функции. Большое спасибо Алехандро - person Karthik; 01.02.2016