#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 на диаграмме.