Использовать функцию Previous () для сортировки данных в обратном порядке в SSRS? - PullRequest
3 голосов
/ 06 сентября 2011

Я пытаюсь использовать функцию Previous () в индикаторе отчета для отображения стрелки вверх или вниз в зависимости от того, было ли увеличение или уменьшение по сравнению с прошлым годом. Это прекрасно работает, когда данные отображаются в порядке возрастания, но при отображении в порядке возрастания функция Previous () больше не работает, она просто обрабатывает верхнюю строку как самую старую. Я создал собственный код. PercentDifference (Num, PrevNum), чтобы получить различия. Чтобы проиллюстрировать это, это таблица в SSRS. Изменение года - это вычисляемый столбец с выражением:

Financial Year         Value     (Year Change) 
Apr 2007 - Mar 2008    30,000          0
Apr 2008 - Mar 2009    37,000        7,000
Apr 2009 - Mar 2010    42,000        5,000
Apr 2010 - Mar 2011    38,000       (4,000)

Это работает нормально, так как строка 2 «видит» Current-Previous как 37000-30000. Однако при отображении по дате по убыванию, так что я получаю это:

Financial Year         Value     (Year Change) 
Apr 2010 - Mar 2011    38,000          0
Apr 2009 - Mar 2010    42,000        4,000
Apr 2008 - Mar 2009    37,000       (5,000)
Apr 2007 - Mar 2008    30,000       (7,000)

Поскольку строка 2 видит Current-Previous как 42000-38000, а строка 1 не имеет понятия строки 2?!

Это должно выглядеть так:

Financial Year         Value     (Year Change) 
Apr 2010 - Mar 2011    38,000       (4,000)
Apr 2009 - Mar 2010    42,000       (5,000)
Apr 2008 - Mar 2009    37,000        7,000 
Apr 2007 - Mar 2008    30,000          0

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

Есть идеи, как мне это сделать?

Большое спасибо,

Ответы [ 2 ]

1 голос
/ 06 сентября 2011

Я использовал предыдущий в «обратном» порядке:

В моем примере я использовал предыдущую функцию для данных периода и значений и нормальное значение для предыдущих данных.

Также я скрываюпервый ряд (показывать не имеет смысла) и показывать последний период в нижнем колонтитуле

Для контроля видимости первого ряда используйте: =Previous(Fields!fiscalmonth.Value) is Nothing

enter image description here

enter image description here

0 голосов
/ 06 сентября 2011

Когда вы сортируете по дате в порядке убывания, вам кажется, что вместо предыдущего значения вам нужно следующее значение. SSRS не предоставляет никаких следующих функций в отличие от Crystal.

Здесь вы можете попытаться создать запрашиваемый параметр, который принимает значение поля «Значение» и пишет выражение вроде:

Параметры! Value.Value ((RowNumber (ничто)) - Параметры! Value.Value ((RowNumber (ничто) +1)

Основная идея состоит в том, что вы можете получить значение в виде индексированного массива, например, Параметры! Value.Value (i) даст вам i-ую запись поля «Значение».

И вам понадобится функция RowNumber, чтобы получить текущий счетчик строк.

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...