Опишу способ, которым можно нарисовать горизонтальную линию в диаграмме bar chart в JasperReports.
Для этого расположите в отчёте элемент bar chart и заполните его данными. Теперь нам нужно написать customizer, который будет рисовать горизонтальную линию. Для этого наследуемся от класса JRChartCustomizer:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
package ru.urvanov.javaexamples.jasperreportsbarchartintervalmarker; import java.awt.Color; import org.jfree.chart.JFreeChart; import org.jfree.chart.plot.CategoryPlot; import org.jfree.chart.plot.ValueMarker; import net.sf.jasperreports.engine.JRChart; import net.sf.jasperreports.engine.JRChartCustomizer; public class MyTestCustomizer implements JRChartCustomizer { public void customize(JFreeChart chart, JRChart jasperChart) { ValueMarker marker = new ValueMarker(6); // Позиция, на которой // рисуем линию marker.setPaint(Color.BLUE); CategoryPlot plot = (CategoryPlot) chart.getPlot(); plot.addRangeMarker(marker); } } |
Теперь укажем этот customizer в нашей диаграмме bar chart:
1 2 3 |
<barChart> <chart evaluationTime="Report" customizerClass="ru.urvanov.javaexamples.jasperreportsbarchartintervalmarker.MyTestCustomizer"> ... |
Полный код примера можно посмотреть на GitHub.