横着好像不行吧,如果列数不规定的话,你可以画多个.jasper,根据不同的结果判断一下

解决方案 »

  1.   

    仔细看了看Jasperreport,发现Crosstab能实现这个需求,正在分析中,欢迎有熟悉Crosstab的一起学习。[email protected]
      

  2.   

    File file=new File(application.getRealPath("/Report/RTAReport.jrxml"));
        JasperDesign jasperDesign=JRXmlLoader.load(file);    JRDesignStaticText text=(JRDesignStaticText)(((JRDesignBand)jasperDesign.getTitle()).getElementByKey("staticText"));
        text.setHorizontalAlignment(JRAlignment.HORIZONTAL_ALIGN_LEFT);
        text.setText(title);
        jasperDesign.setTitle(text);//jasperDesign可以用来动态建立报表的元素(包括列)
        jasperDesign.addField(fieldName);
        jasperDesign.removeField(fieldName);
        jasperDesign.setColumnWidth();
        jasperDesign.setColSpacing();
        jasperDesign.setColumnCount(columnCount);
        jasperDesign.setColumnHeader(JRBand columnHeader);
        jasperDesign.setLeftMargin(0);
        jasperDesign.setTopMargin(0);
        jasperDesign.setRightMargin(0);
        jasperDesign.setBottomMargin(0);
    System.out.print("--jasperDesign---");
       JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign); System.out.print("--jasperReport---");
        Map parameters = new HashMap();
        parameters.put("Reporttitle", "Address Report");
        parameters.put("BaseDir", reportFile.getParentFile());    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
        String URL="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=HNDB_DATA";
        Connection connect=DriverManager.getConnection(URL,"sa","");
        JasperPrint jasperPrint =JasperFillManager.fillReport(jasperReport,parameters,connect);
    System.out.print("--jasperPrint---");
    connect.close();
    JRHtmlExporter exporter = new JRHtmlExporter();
    Map imagesMap = new HashMap();
    session.setAttribute("IMAGES_MAP", imagesMap);
    exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
    exporter.setParameter(JRExporterParameter.OUTPUT_WRITER, out);
    exporter.setParameter(JRHtmlExporterParameter.IMAGES_MAP, imagesMap);
    exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI, "image.jsp?image=");
       exporter.setParameter(JRHtmlExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS,Boolean.TRUE);
        System.out.print("report out");
    exporter.exportReport();
        connect.close();