生成的jasper报告未显示条形图

时间:2012-02-01 13:42:01

标签: spring jasper-reports jfreechart

我有一个包含代码的报告控制器:

@Controller
public class ReportsController {


@RequestMapping(value="report.htm",method=RequestMethod.GET)
        public String showReport() throws JRException{

                ... 
                InputStream reportStream = this.getClass().getResourceAsStream("/report.jrxml");                

                JRDataSource dataSource = new JRBeanCollectionDataSource(reportData);

                HashMap params = new HashMap();
                params.put("Title", "Report");

                JasperDesign jd = JRXmlLoader.load(reportStream);


                JasperReport jr = JasperCompileManager.compileReport(jd);

                JasperPrint jp = JasperFillManager.fillReport(jr, params, dataSource);

                JRHtmlExporter exporter = new JRHtmlExporter();

                exporter.setParameter(JRExporterParameter.JASPER_PRINT, jp);

                //EXPORTING REPORT TO A FILE "myreport.html"
                exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, "E:/Program Files/Apache Software Foundation/Tomcat 6.0/webapps/mywebapp/WEB-INF/jsps/reports/reportsOutput/myreport.html"); //--------statement (1)

                exporter.setParameter(JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN, false);
                exporter.setParameter(JRHtmlExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS, true);

                exporter.exportReport();

                return "report";
        }
}

在声明(1)中,我将生成的报告导出到文件 myreport.html

我的报告模板文件( report.jrxml )是:

<?xml version="1.0" encoding="UTF-8"?>
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="report5" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20">
    <property name="ireport.zoom" value="1.0"/>
    <property name="ireport.x" value="0"/>
    <property name="ireport.y" value="0"/>
    <field name="count" class="java.lang.Integer"/>
    <field name="status" class="java.lang.String"/>
    <background>
        <band/>
    </background>
    <detail>
        <band height="343">
            <textField>
                <reportElement mode="Transparent" x="8" y="14" width="100" height="20"/>
                <textElement/>
                <textFieldExpression class="java.lang.Integer"><![CDATA[$F{count}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement mode="Transparent" x="267" y="14" width="100" height="20"/>
                <textElement/>
                <textFieldExpression class="java.lang.String"><![CDATA[$F{status}]]></textFieldExpression>
            </textField>
            <staticText>
                <reportElement mode="Transparent" x="146" y="14" width="100" height="20"/>
                <textElement/>
                <text><![CDATA[status]]></text>
            </staticText>
            <barChart>
                <chart>
                    <reportElement mode="Transparent" x="108" y="119" width="200" height="100"/>
                    <chartTitle/>
                    <chartSubtitle/>
                    <chartLegend/>
                </chart>
                <categoryDataset>
                    <categorySeries>
                        <seriesExpression><![CDATA[""]]></seriesExpression>
                        <categoryExpression><![CDATA[$F{status}]]></categoryExpression>
                        <valueExpression><![CDATA[$F{count}]]></valueExpression>
                        <itemHyperlink/>
                    </categorySeries>
                </categoryDataset>
                <barPlot>
                    <plot/>
                </barPlot>
            </barChart>
        </band>
    </detail>
</jasperReport>

问题是我在myreport.html生成的报告显示的所有内容但未显示任何条形图,而是显示空白空格代替图表。

有什么建议吗?

修改

图表数据由上述代码中的语句JasperPrint jp = JasperFillManager.fillReport(jr, params, dataSource);提供。

此外,jasper报告API生成了一个文件夹,该文件夹位于我的输出文件(myreport.html)所在的同一目录中:

/ mywebapp / WEB-INF / jsps / reports / reportsOutput / myreport.html (输出文件)

/ mywebapp / WEB-INF / jsps / reports / reportsOutput / myreport.html_files (生成的文件夹)

此生成的文件夹(myreport.html_files)包含根据模板生成的图表图像并且正确但这些图表图像未显示在输出文件myreport.html 中以及其他文本输出中报告。 感谢...

1 个答案:

答案 0 :(得分:0)

如果存在多种颜色的条,它们将以越来越弱的阴影显示。导出为PDF,您可能会看到它们