Jasper сообщает о вычислении количества по части даты

#sql #jasper-reports

#sql #jasper-отчеты

Вопрос:

У меня есть отчет, в котором перечислены события по дате, в которую они произошли. В рамках отчета я хотел бы построить график количества событий в зависимости от месяца и года. Для этого (я думаю) мне нужна переменная, которая подсчитывает события в части дня-года даты. Я не уверен, возможно ли это без перехода к вспомогательному отчету и использования предложения Group By в SQL (чего я бы предпочел не делать, если это возможно)?

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

 <variable name="DISCHARGE_MONTH_YEAR" class="java.lang.String">
        <variableExpression><![CDATA[new String ((new SimpleDateFormat("MM.yyyy").format($F{HosDateDis})))]]></variableExpression>
</variable>

<variable name="DEATHS_MONTH_YEAR" class="java.util.HashMap">
        <variableExpression><![CDATA[$V{DEATHS_MONTH_YEAR}.put($V{DISCHARGE_MONTH_YEAR},
$V{DEATHS_MONTH_YEAR}.get($V{DISCHARGE_MONTH_YEAR})   1)]]></variableExpression>
</variable>
  

Комментарии:

1. добавьте переменную map, в полосе сведений увеличьте соответствующую запись, чтобы в итоге вы могли построить свою диаграмму.

2. Спасибо вам за это. Я не совсем уверен, что вы имеете в виду? Вы предлагаете мне создать хэш-карту, скажем, где ключ равен MMYYYY, а значение увеличивается на диапазон сведений, а затем я бы использовал переменную HashMap для построения диаграммы? Это смутно верно? Было бы сложно выполнить простой пример?

3. Да, вот так. Я не могу привести пример, потому что у меня поблизости нет JR (иначе я бы уже опубликовал его в качестве ответа). Когда вы закончите, и это сработает, пожалуйста, опубликуйте пример в качестве ответа.

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