我有一个项目,其中jasper报告是从java方法创建的。我的碧玉代码如下:
<?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="balance" pageWidth="595" pageHeight="842" whenNoDataType="AllSectionsNoDetail" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="30" bottomMargin="30" isFloatColumnFooter="true" >
<property name="ireport.zoom" value="1.0"/>
<property name="ireport.x" value="0"/>
<property name="ireport.y" value="0"/>
<style name="Table">
<box>
<pen lineWidth="1.0" lineColor="#FF0000"/>
</box>
</style>
<style name="TableHeader" mode="Opaque" forecolor="#FFFFFF" backcolor="#006F3A"/>
<style name="TableFooter" mode="Opaque" backcolor="#C0C0C0"/>
<subDataset name="TableData" >
<field name="participantName" class="java.lang.String"/>
<field name="familySize" class="java.lang.String"/>
<field name="participantAge" class="java.lang.String"/>
</subDataset>
<title>
<band height="150">
<componentElement>
<reportElement style="Table" x="0" y="50" width="555" height="100" />
<c:table xmlns:c="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd">
<datasetRun subDataset="TableData" />
<c:column width="80" >
<c:columnHeader style="TableHeader" height="30" rowSpan="1">
<box leftPadding="10">
<pen lineColor="#000000"/>
<bottomPen lineWidth="0.5"/>
</box>
<staticText>
<reportElement x="0" y="0" width="70" height="30" >
<printWhenExpression><![CDATA[new Boolean($F{participantName}!= null)]]></printWhenExpression>
</reportElement>
<textElement verticalAlignment="Middle">
<font size="12" isBold="true"/>
</textElement>
<text><![CDATA[Name]]></text>
</staticText>
</c:columnHeader>
<c:detailCell height="15" rowSpan="1">
<box leftPadding="10">
<bottomPen lineWidth="0.5"/>
</box>
<textField isStretchWithOverflow="true">
<reportElement x="0" y="0" width="70" height="15" />
<textFieldExpression><![CDATA[$F{participantName}]]></textFieldExpression>
</textField>
</c:detailCell>
</c:column>
<c:column width="80" >
<c:columnHeader style="TableHeader" height="30" rowSpan="1">
<box leftPadding="10">
<pen lineColor="#000000"/>
<leftPen lineWidth="0.5"/>
<bottomPen lineWidth="0.5"/>
</box>
<staticText>
<reportElement x="0" y="0" width="70" height="30" >
<printWhenExpression><![CDATA[new Boolean($F{familySize}!= null)]]></printWhenExpression>
</reportElement>
<textElement verticalAlignment="Middle">
<font size="12" isBold="true"/>
</textElement>
<text><![CDATA[FSize]]></text>
</staticText>
</c:columnHeader>
<c:detailCell height="15" rowSpan="1">
<box leftPadding="10">
<leftPen lineWidth="0.5"/>
<bottomPen lineWidth="0.5"/>
</box>
<textField>
<reportElement x="0" y="0" width="70" height="15" />
<textFieldExpression><![CDATA[$F{familySize}]]></textFieldExpression>
</textField>
</c:detailCell>
</c:column>
<c:column width="80" >
<c:columnHeader style="TableHeader" height="30" rowSpan="1">
<box leftPadding="10">
<pen lineColor="#000000"/>
<leftPen lineWidth="0.5"/>
<bottomPen lineWidth="0.5"/>
</box>
<staticText>
<reportElement x="0" y="0" width="70" height="30" >
<printWhenExpression><![CDATA[new Boolean($F{participantAge}!= null)]]></printWhenExpression>
</reportElement>
<textElement verticalAlignment="Middle">
<font size="12" isBold="true"/>
</textElement>
<text><![CDATA[Age]]></text>
</staticText>
</c:columnHeader>
<c:detailCell height="15" rowSpan="1">
<box leftPadding="10">
<leftPen lineWidth="0.5"/>
<bottomPen lineWidth="0.5"/>
</box>
<textField>
<reportElement x="0" y="0" width="70" height="15" />
<textFieldExpression><![CDATA[$F{participantAge}]]></textFieldExpression>
</textField>
</c:detailCell>
</c:column>
</c:table>
</componentElement>
</band>
</title>
</jasperReport>
问题是在运行时我得到以下错误: 无法创建报告流org.xml.sax.SAXParseException; lineNumber:26; columnNumber:30;第26行char 30处的错误:net.sf.jasperreports.engine.design.JRDesignComponentElement无法强制转换为net.sf.jasperreports.engine.JRBoxContainer。 请帮我解决这个问题并提前感谢..
答案 0 :(得分:0)
当我将jar-“jasperreports”从“3.1.2升级到3.7.2”时,上述问题已经解决了。此外,我已将itext.jar升级到2.1.5并将poi.jar升级到3.5 FINAL以修复字体问题和pdf导出问题。我希望它适用于所有人..