2015-03-10 2 views
0

У меня есть данные в отчете, сгруппированные по году/месяцу. Есть ли способ ссылаться на данные предыдущего месяца с рекурсивным способом? мне нужно реализовать такую ​​формулу:Рекурсивное выражение в построителе отчетов 3

Отставание = last_month_backlog + (sum_of_open - sum_of_close)

, где находится last_month_backlog (sum_of_open - sum_of_close) по сравнению с предыдущим месяцем. Например

  • на февраль: 5 открыт, 4 близко, last_month_backlog: 2 -> Отставание = 2 + (5 - 4) = 3

  • марта: 7 открыт, 3 близко -> Отставание = 3 + (7 - 3) = 4

то, что я пытался до сих пор:

=((IIf((Fields!month_number.Value > Month(Fields!close_time.Value) and (Fields!month_number.Value-2) < Month(Fields!close_time.Value)),(sum(Fields!number_of_open_cases.Value) - sum(Fields!number_of_close_cases.Value)),0)) + (sum(Fields!number_of_open_cases.Value) - sum(Fields!number_of_close_cases.Value))) 

, но он не работает правильно ly ...

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

=IIf(Fields!month_number.Value = Month(DateAdd(DateInterval.Month,-1,Today())) ,sum(Fields!number_of_open_cases.Value) - sum(Fields!number_of_close_cases.Value),0) 

еще не повезло ... Любые идеи, как сделать эту работу?

ответ

1

Я думаю, что RunningValue() - это то, что вы хотите. Запуск значения просто хранит совокупное общее количество определенных вами значений, поэтому, если мы скажем ему суммировать отставание для каждого месяца, как это;

=RunningValue(Fields!sum_of_open.Value - Fields!sum_of_close.Value, Sum, "Year") 

Я предполагаю, что «Год» это название группы Роу, что группы на год, если нет, то вам нужно изменить.

Отредактировано для просмотра комментариев.

+0

Я собрал его в колонках на [full_year], а затем на дочерней группе [month_number]. Я думаю, на моем примере это должно быть так: = RunningValue ((Fields! Number_of_open_cases.Value - Fields! Number_of_close_cases.Value), Sum, "month_number"), но, похоже, это не сработало ... Я получаю «Значение выражение для текстового поля «Textbox21» имеет параметр области видимости, который недопустим для агрегатной функции. Параметр области должен быть установлен как строковая константа, которая равна либо имени содержащейся группы, либо имени области данных, содержащей данные , или имя набора данных. ". – Janek

+0

В нижней правой панели, где указано «Группы столбцов», что говорит панель [month_number]? Это то, что нужно использовать в качестве последнего параметра RunningValue() –

+0

Итак, получилось, я должен использовать имя группы вместо значения, которое сгруппировано. Но он показывает точно то же самое, что я могу получить, используя только «= sum (Fields! Number_of_open_cases.Value) - sum (Fields! Number_of_close_cases.Value)», означает, что в этом месяце нет. См. Экран: http://i.snag.gy/Ch39r.jpg. Вместо 24, 4 и 10 мне нужно увидеть там (24 + отставание от месяца 8), (24 + 4), (4 + 10). – Janek

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