使用iReport和JasperReport 3.5(遗产,不是我的选择) 我在Java中有一个主要的空白报告,并试图插入带报告语言= JavaScript的空白子报告。
两者都只是“选择1作为Field1来自双重”查询和一个标签组件。
结果JasperReports在后面的堆栈中引发错误(报告代码中没有“new java.lang.Integer(1)”)
错误填充打印... net.sf.jasperreports.engine.fill.JRExpressionEvalException:错误评估表达式: 源文本:new java.lang.Integer(1) net.sf.jasperreports.engine.JRRuntimeException:net.sf.jasperreports.engine.fill.JRExpressionEvalException:计算表达式时出错: 源文本:new java.lang.Integer(1)引起:net.sf.jasperreports.engine.fill.JRExpressionEvalException:评估表达式时出错: 源文本:new java.lang.Integer(1) bla-bla-bla引起: java.lang.RuntimeException:没有与当前线程关联的上下文 在org.mozilla.javascript.Context.getContext(Context.java:2206) 在org.mozilla.javascript.SecurityController.createLoader(SecurityController.java:136) 在org.mozilla.javascript.optimizer.Codegen.defineClass(Codegen.java:143)
怎么了?
找到something with Birt,但不知道如何在JasperReports中进行此操作
必须为每个单独的线程利用Javascript上下文 如下所示,然后从工作线程运行打印任务。
org.mozilla.javascript.Context.enter();
<BIRT print task...>
org.mozilla.javascript.Context.exit();
UPDATE 当属性包含在内时,似乎会出现此报告。
然后我将子报告语言更改为“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="report0" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20">
<queryString language="SQL">
<![CDATA[select 123123 as DFG from dual]]>
</queryString>
<field name="DFG" class="java.math.BigDecimal">
<fieldDescription><![CDATA[]]></fieldDescription>
</field>
<title>
<band height="79">
<staticText>
<reportElement x="0" y="0" width="100" height="20"/>
<textElement/>
<text><![CDATA[MAIN]]></text>
</staticText>
<subreport>
<reportElement stretchType="RelativeToTallestObject" x="0" y="20" width="555" height="59"/>
<connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression>
<subreportExpression class="java.lang.String"><![CDATA["subReport1.jasper"]]></subreportExpression>
</subreport>
</band>
</title>
</jasperReport>
子报告
<?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="report1" language="javascript" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20">
<queryString>
<![CDATA[select 155554444445554 as Hy from dual]]>
</queryString>
<field name="HY" class="java.math.BigDecimal">
<fieldDescription><![CDATA[]]></fieldDescription>
</field>
<background>
<band/>
</background>
<title>
<band height="79">
<staticText>
<reportElement x="87" y="29" width="100" height="20"/>
<textElement/>
<text><![CDATA[Hello from subreport]]></text>
</staticText>
</band>
</title>
<detail>
<band height="70">
<textField>
<reportElement x="63" y="14" width="100" height="20"/>
<textElement/>
<textFieldExpression class="java.math.BigDecimal"><![CDATA[$F{HY}]]></textFieldExpression>
</textField>
</band>
</detail>
</jasperReport>