Отображение 12 столбцов для каждого месяца, но значения месяца зависят от выбранного пользователем месяца.

Использование Crystal Reports для VS2010.

У меня есть следующие требования для автономного CR.:

Начиная с указанной даты начала, извлеките из таблицы все записи о продажах за следующие 12 месяцев. StartDate – это параметр, который используется в отчете и выбирается пользователем.

Столбцы следующие: Month1 — это месяц StartDate, за которым следуют последовательные месяцы.

Column1     Column2      Month1 Month2 M3  M4  M5  M6  M7  M8  M9  M10 M11  M12

Например: если StartDate — 05.01.2013 (май 2013 г.), тогда столбцы должны быть:

Column1     Column2      May13 Jun13 Jul13  Aug13  Sep13  Oct13  Nov13  Dec13  Jan14  Feb14 Mar14  Apr14

Был бы очень признателен, если бы кто-нибудь мог указать мне на ссылки или дать несколько указаний о том, как этого добиться.

ОБНОВЛЕНИЕ:

Мне удалось получить заголовки динамических столбцов, используя формулу

ToText(DateAdd('m', 1, {?StartDate}), 'MMM yy')

Я застрял в поиске формулы для получения значения данных в разделе «Подробности». Если имя поля {Sales.Extension}, как рассчитать сумму расширения только для этого месяца.


person aMazing    schedule 12.01.2014    source источник
comment
For that month означает только месяц, который пользователь выбирает в параметре? а не остальные месяцы, которые отображаются в подробном разделе.   -  person Siva    schedule 13.01.2014
comment
Неа. Извиняюсь. Для этого месяца означает соответствующий столбец месяца. Одно значение для каждого месяца (12 столбцов).   -  person aMazing    schedule 13.01.2014


Ответы (2)


Насколько я понимаю проблему, вы можете использовать приведенное ниже решение.

  1. Создайте формулу и напишите ниже код и разместите в разделе подробностей.

    If ToText(DateAdd('m', 1, {?StartDate}), 'MMM yy')= ToText(DateAdd('m', 1, <<Database Field>>), 'MMM yy') Then {Sales.Extension}

напишите приведенную выше формулу для всех столбцов отчета.

Если вам нужна сводка, возьмите сводку поля, размещенного в разделе подробностей.

person Siva    schedule 14.01.2014
comment
Легенда. Я именно так и сделал. Я собирался сам ответить на свой вопрос, но ценю ваш ответ. - person aMazing; 15.01.2014

Используйте кросс-таблицу; добавьте дату продажи в область столбцов; группировка по месяцам. Добавьте значение для суммирования в область строк.

Формула выбора записи:

{table.sales_date} IN {?StartDate} TO DateAdd("m", 12, {?StartDate})
person craig    schedule 12.01.2014
comment
Спасибо Крейг. Я выбрал другой подход. Для заголовка я добавил такую ​​формулу, как ToText(DateAdd('m', 1, {?StartDate}), 'MMM yy'), что дает мне следующие 12 месяцев. Я застрял на фактических данных раздела Detail. Если имя поля — Расширение, как я могу получить сумму Расширения за каждый месяц? - person aMazing; 13.01.2014