У меня есть отчет о SSRS с Dataset, что эти 3 поля:Sum первый элемент каждой группы и RunningValue
Fields!MyFirstField.Value
Fields!MySecondField.Value
Fields!MyThirdField.Value
Отчет делится на группы: В моих файлах Роу У меня есть
MyPrimaryGroup
MySeconday Group
И у меня есть поле, что делает каждую группу:
Fields!Group.Value
в среде IDE a - накапливать первый элемент каждой группы каждого поля.
Что я сделал следующее:
Dim Acum as Double
Dim ActualGroup = ""
Function Accumulator(ByVal MyGroup as String, ByVal value as Double) As Double
If ActualGroup <> MyGroup
Acum= Acum + value
ActualGroup = MyGroup
Return Acum
value=0
End If
End Function
После этого я сделал вычисляемое поле, как это:
=Code.Accumulator(Fields!Group.Value,Fields!MyFirstField.Value)
И поставить его в ряд внутри моей основной группы, дело в том, он только накапливает первые два, например:
На этом изображении мы имеем графический пример того, что делает код, это сохранение первого элемента каждой группы, так что в этом случае Накопленный v ALUE должен быть 10+11+12=33
но код дает мне 21
, не сохраняет третье значение года]
Это одна часть проблемы, другая проблема заключается в том, что я не могу сделать этот аккумулятор работать с поле, которое есть выражение величины пробега, например:
FormatNumber(RunningValue(Fields!MySecondField.Value, Sum,"MyDataset"), 2)
есть ли способ, чтобы подвести первый элемент каждой группы и накапливает его значение, то же самое с полем, которое на самом деле работает значение?
дать вам больше информации о том, что я, что достичь, я скриншот таблицы:
Где вы видите синие круги, находится в этих полях внутри моей группы, которые я хочу поставить код и MyField3 является бегущее значение и эти группы:
Это более или менее информация у меня есть для первых двух элементов моей группы:
Так код s hould:
If MERCH308 <> "" then
0 = 0 + 6,80
"" = MERCH308
End If
На следующей группе он должен делать:
If MERCH314 <> MERCH308
6,80 = 6,80 + 22,28
MERCH308 = MERCH314
End If
И К следующему:
If MERCH314 <> MERCH314
//It does not enter the if
Пока она не видит новую группу, отличную от MERCH314, проблема , что единственный способ правильного функционирования кода (как я уже исследовал) - отменить разрывы страниц в таблице и пометить «Поддержание всего на одной странице, если это возможно».
И что Im пытается сказать с проблемой RunningValue заключается в следующем:
MyFields3 является бегущим значением:
=FormatNumber(RunningValue(Fields!MyFields3.Value, Sum,"MyDataset",2)
Но я не могу подать заявление:
Code.Accumulator(Fields!MyGroup.Value,RunningValue(Fields!MyFields3.Value,Sum,"Mydataset")
Как он говорит, что «имеет неправильное число в качестве параметра для функции RunningValue»
Итак, идея состоит в том, чтобы накапливать 1-й элемент каждой группы аккумулятора, так как «RunningValue» на самом деле является аккумулятором, поэтому идея состоит в том, чтобы суммировать (для моей третьей колонки) 6,80 + 29,08. Но помните, что 29,08 - результат рабочего значения.
Ok Я решил проблему с разрывом страницы , Если у кого-то такая же проблема, вы должны объявить свои переменные как общедоступные, так как каждый разрыв страницы является новым экземпляром и будет публичным. Ваши значения будут сохраняться. Теперь о проблеме с текущим значением – Nickso
Проверьте мое обновление. –