Java 在动态Jasper报表中使用HashMap对象 public void showApplicationCountVsJobBoardsSimpleReport(集合ApplicationCountVsJobBoardsList,HttpServletRequest请求)抛出ColumnBuilderException、ClassNotFoundException、JRException{ initStyles(); FastReportBuilder drb=新的FastReportBuilder(); 固定产权(drb,“按公司和职务划分的职务委员会”); reportTitle=“按公司和职务划分的职务委员会”; DynamicReport dr=createApplicantCountVsJobBoardsSimpleReport(drb,ApplicationCountVSJobBoardsList); jp=DynamicJasperHelper.generateJasperPrint(dr,new ClassicLayoutManager(),new JRBeanCollectionDataSource(applicationcountvsjobboardslist)); request.getSession().setAttribute(“JasperPrintObject”,jp); request.getSession().setAttribute(“ReportName”,reportTitle); 显示报告(请求,0); } 专用DynamicReport createApplicantCountVsJobBoardsSimpleReport(FastReportBuilder drb、Collection ApplicationCountVSJobBoardsList){ AbstractColumnCompanyName=SetString列属性(“公司名称”、“公司名称”,100); drb.addColumn(columnCompanyName); AbstractColumn columnJobTitle=setStringColumnProperties(“jobName”,“Job Title”,200); drb.addColumn(columnJobTitle); AbstractColumnColumnTotal=SetString列属性(“TotalApplicationForJob”,“Total”,100); drb.addColumn(columnTotal); 返回drb.build(); } 公共类应用程序CountVsJobBoardsTo{ 私有字符串companyName; 私有字符串jobName; 专用整数TotalApplicationForJob; 私有HashMap作业板; 公共字符串getCompanyName(){ 返回公司名称; } public void setCompanyName(字符串companyName){ this.companyName=companyName; } 公共字符串getJobName(){ 返回作业名; } public void setJobName(字符串jobName){ this.jobName=jobName; } 公共整数GetTotalApplicationForJob(){ 返回作业的总应用程序; } public void setTotalApplicationForJob(整数TotalApplicationForJob){ this.totalapplicationforjob=totalapplicationforjob; } 公共HashMap getJobBoard(){ 返回工作板; } public void setJobBoard(HashMap jobBoard){ this.jobBoard=工作板; } }
我没有任何想法将工作板项目添加到报告中。。jobBoard对象中的每个项目都将成为我报告中的一列。请帮帮我。我是贾斯珀的新手(Java 在动态Jasper报表中使用HashMap对象 public void showApplicationCountVsJobBoardsSimpleReport(集合ApplicationCountVsJobBoardsList,HttpServletRequest请求)抛出ColumnBuilderException、ClassNotFoundException、JRException{ initStyles(); FastReportBuilder drb=新的FastReportBuilder(); 固定产权(drb,“按公司和职务划分的职务委员会”); reportTitle=“按公司和职务划分的职务委员会”; DynamicReport dr=createApplicantCountVsJobBoardsSimpleReport(drb,ApplicationCountVSJobBoardsList); jp=DynamicJasperHelper.generateJasperPrint(dr,new ClassicLayoutManager(),new JRBeanCollectionDataSource(applicationcountvsjobboardslist)); request.getSession().setAttribute(“JasperPrintObject”,jp); request.getSession().setAttribute(“ReportName”,reportTitle); 显示报告(请求,0); } 专用DynamicReport createApplicantCountVsJobBoardsSimpleReport(FastReportBuilder drb、Collection ApplicationCountVSJobBoardsList){ AbstractColumnCompanyName=SetString列属性(“公司名称”、“公司名称”,100); drb.addColumn(columnCompanyName); AbstractColumn columnJobTitle=setStringColumnProperties(“jobName”,“Job Title”,200); drb.addColumn(columnJobTitle); AbstractColumnColumnTotal=SetString列属性(“TotalApplicationForJob”,“Total”,100); drb.addColumn(columnTotal); 返回drb.build(); } 公共类应用程序CountVsJobBoardsTo{ 私有字符串companyName; 私有字符串jobName; 专用整数TotalApplicationForJob; 私有HashMap作业板; 公共字符串getCompanyName(){ 返回公司名称; } public void setCompanyName(字符串companyName){ this.companyName=companyName; } 公共字符串getJobName(){ 返回作业名; } public void setJobName(字符串jobName){ this.jobName=jobName; } 公共整数GetTotalApplicationForJob(){ 返回作业的总应用程序; } public void setTotalApplicationForJob(整数TotalApplicationForJob){ this.totalapplicationforjob=totalapplicationforjob; } 公共HashMap getJobBoard(){ 返回工作板; } public void setJobBoard(HashMap jobBoard){ this.jobBoard=工作板; } },java,jasper-reports,dynamic-jasper,Java,Jasper Reports,Dynamic Jasper,我没有任何想法将工作板项目添加到报告中。。jobBoard对象中的每个项目都将成为我报告中的一列。请帮帮我。我是贾斯珀的新手( 我正在使用net.sf.jasperreports和ar.com.fdvs.djjars在这种情况下,您必须使用ireport工具的子报表功能,在该功能中,您将hashmap作为数据源传递,并在该报表中决定报表的布局和设计。您是否有通过代码创建报表模板的特定需求?您需要吗可以使用iReport创建报告模板,并使用编译的.jasper文件用数据填充报告并将其导出。否。我需
我正在使用
net.sf.jasperreports
和ar.com.fdvs.dj
jars在这种情况下,您必须使用ireport工具的子报表功能,在该功能中,您将hashmap作为数据源传递,并在该报表中决定报表的布局和设计。您是否有通过代码创建报表模板的特定需求?您需要吗可以使用iReport创建报告模板,并使用编译的.jasper文件用数据填充报告并将其导出。否。我需要执行以下操作:(@1355)你检查过任何示例吗?我尝试过使用子报表。但我无法成功..请查看:你能同时给我代码流吗?我也看到了子报表创建。尝试过。但不起作用:(您必须添加jobBoard字段并将其数据类型设置为HashMap。然后您将此作为数据源传递到子报表中。希望您使用iReport工具设置报表的布局。我可以进一步帮助您,但我不会获取您的代码。如果您能给我您的电子邮件ID,我将向您转发使用子报表的示例代码。)
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;
}
}