在Dynamic Jasper报告中使用HashMap对象

时间:2013-03-26 04:57:28

标签: java jasper-reports dynamic-jasper

    public void showApplicantCountVsJobBoardsSimpleReport(Collection<ApplicantCountVsJobBoardsDTO> applicantCountVsJobBoardsList,HttpServletRequest request) throws ColumnBuilderException,ClassNotFoundException, JRException {        
            initStyles();  
            FastReportBuilder drb = new FastReportBuilder();
            setTitleProperties(drb,"Job Board by Company and Job Title");   
            reportTitle = "Job-Board-by-Company-and-Job-Title";       
            DynamicReport dr = createApplicantCountVsJobBoardsSimpleReport(drb, applicantCountVsJobBoardsList); 
            jp = DynamicJasperHelper.generateJasperPrint(dr, new ClassicLayoutManager(), new JRBeanCollectionDataSource(applicantCountVsJobBoardsList));
            request.getSession().setAttribute("JasperPrintObject", jp);
            request.getSession().setAttribute("ReportName", reportTitle);
            displayReport(request, 0);     
        }   

        private DynamicReport createApplicantCountVsJobBoardsSimpleReport(FastReportBuilder drb, Collection<ApplicantCountVsJobBoardsDTO> applicantCountVsJobBoardsList) {
            AbstractColumn columnCompanyName = setStringColumnProperties("companyName","Company Name",100);
            drb.addColumn(columnCompanyName);

            AbstractColumn columnJobTitle = setStringColumnProperties("jobName","Job Title",200);       
            drb.addColumn(columnJobTitle);      

            AbstractColumn columnTotal = setStringColumnProperties("totalApplicantForJob","Total",100);
            drb.addColumn(columnTotal);     

            return drb.build();
        }


public class ApplicantCountVsJobBoardsDTO {

    private String companyName;
    private String jobName;
    private Integer totalApplicantForJob;
    private HashMap<String, Integer> jobBoard;

    public String getCompanyName() {
        return companyName;
    }
    public void setCompanyName(String companyName) {
        this.companyName = companyName;
    }
    public String getJobName() {
        return jobName;
    }
    public void setJobName(String jobName) {
        this.jobName = jobName;
    }   
    public Integer getTotalApplicantForJob() {
        return totalApplicantForJob;
    }
    public void setTotalApplicantForJob(Integer totalApplicantForJob) {
        this.totalApplicantForJob = totalApplicantForJob;
    }
    public HashMap<String, Integer> getJobBoard() {
        return jobBoard;
    }
    public void setJobBoard(HashMap<String, Integer> jobBoard) {
        this.jobBoard = jobBoard;
    }
}

我不知道将jobBoard项目添加到报告中.jobBoard对象中的每个项目都是我报告中的一列。请帮我。我是Jasper的新手。 :(

我正在使用net.sf.jasperreportsar.com.fdvs.dj jars

1 个答案:

答案 0 :(得分:0)

在本例中,您将必须使用ireport工具的子报表功能,在该工具中将hashmap作为数据源传递,然后在该报表中决定报表的布局和设计。

相关问题