Использование объекта HashMap в отчете 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 будет столбцом в моем отчете. Помогите мне, пожалуйста. Я новичок в Джаспере. :(

Я использую банки net.sf.jasperreports и ar.com.fdvs.dj


person Sarika.S    schedule 26.03.2013    source источник
comment
У вас есть конкретная потребность в создании шаблона отчета с помощью кода? Вы можете использовать iReport для создания шаблона отчета и использовать скомпилированный файл .jasper для заполнения отчета данными и его экспорта.   -  person Abhishek Nandi    schedule 26.03.2013
comment
нет. Мне нужно сделать так :(   -  person Sarika.S    schedule 26.03.2013
comment
@ 1355 Вы проверяли какие-нибудь образцы?   -  person Alex K    schedule 26.03.2013
comment
Я пробовал с подотчетом. Но я не могу добиться успеха..   -  person Sarika.S    schedule 26.03.2013


Ответы (1)


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

person swapnil_nerd    schedule 26.03.2013
comment
не могли бы вы также дать мне поток кода. Я также видел создание подотчетов. Пытался. но не работает. :( - person Sarika.S; 26.03.2013
comment
вам нужно добавить поле jobBoard и установить его тип данных как HashMap. Затем вы передаете это в подотчет в качестве источника данных. Надеюсь, вы используете инструмент iReport для настройки макета вашего отчета. Я могу помочь вам в дальнейшем, но я не получаю вам код. Если вы могли бы дать мне свой идентификатор электронной почты, я отправлю вам пример кода, который использует подотчет - person swapnil_nerd; 12.05.2013