2006 JR Open Discussion Posted August 21, 2006 Share Posted August 21, 2006 By: nsorochan - nsorochan Crosstab and printWhenExpression 2006-01-10 15:49I have a crosstab and only want to print it on certain instances. I tried adding a printWhenExpression element to the reportElement, but the compile fails. It passes the check from the dtd. jasper reports 1.1.1 Here is how I am using the tag: <crosstab isRepeatColumnHeaders="false"> <reportElement x="0" y="20" width="812" height="60" mode="Opaque"> <printWhenExpression><![CDATA[new Boolean(true)]]></printWhenExpression> </reportElement> ... Here is the stack trace [jrc] File : C:projectshrorg3rdpartyjasperreports-1.1.1demosamplescrosstabsShipmentsRe port.jrxml ... FAILED. [jrc] Error compiling report design : C:projectshrorg3rdpartyjasperreports-1.1.1demosamp lescrosstabsShipmentsReport.jrxml [jrc] net.sf.jasperreports.engine.JRRuntimeException: Expression ID not found. [jrc] at net.sf.jasperreports.engine.base.JRBaseObjectFactory.getExpression(JRBaseObjectFa ctory.java:363) [jrc] at net.sf.jasperreports.engine.base.JRBaseElement.<init>(JRBaseElement.java:127) [jrc] at net.sf.jasperreports.crosstabs.base.JRBaseCrosstab.<init>(JRBaseCrosstab.java:79) [jrc] at net.sf.jasperreports.engine.base.JRBaseObjectFactory.getCrosstab(JRBaseObjectFact ory.java:1196) [jrc] at net.sf.jasperreports.crosstabs.design.JRDesignCrosstab.getCopy(JRDesignCrosstab.j ava:209) [jrc] at net.sf.jasperreports.engine.base.JRBaseElementGroup.<init>(JRBaseElementGroup.jav a:88) [jrc] at net.sf.jasperreports.engine.base.JRBaseBand.<init>(JRBaseBand.java:68) [jrc] at net.sf.jasperreports.engine.base.JRBaseObjectFactory.getBand(JRBaseObjectFactory. java:427) [jrc] at net.sf.jasperreports.engine.base.JRBaseReport.<init>(JRBaseReport.java:217) [jrc] at net.sf.jasperreports.engine.JasperReport.<init>(JasperReport.java:86) [jrc] at net.sf.jasperreports.engine.design.JRAbstractCompiler.compileReport(JRAbstractCom piler.java:214) [jrc] at net.sf.jasperreports.engine.design.JRDefaultCompiler.compileReport(JRDefaultCompi ler.java:131) [jrc] at net.sf.jasperreports.engine.JasperCompileManager.compileReportToFile(JasperCompil eManager.java:127) [jrc] at net.sf.jasperreports.engine.JasperCompileManager.compileReportToFile(JasperCompil eManager.java:109) [jrc] at net.sf.jasperreports.ant.JRAntCompileTask.compile(JRAntCompileTask.java:398) [jrc] at net.sf.jasperreports.ant.JRAntCompileTask.execute(JRAntCompileTask.java:252) [jrc] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275) [jrc] at org.apache.tools.ant.Task.perform(Task.java:364) [jrc] at org.apache.tools.ant.Target.execute(Target.java:341) [jrc] at org.apache.tools.ant.Target.performTasks(Target.java:369) [jrc] at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1216) [jrc] at org.apache.tools.ant.Project.executeTarget(Project.java:1185) [jrc] at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:4 0) [jrc] at org.apache.tools.ant.Project.executeTargets(Project.java:1068) [jrc] at org.apache.tools.ant.Main.runBuild(Main.java:668) [jrc] at org.apache.tools.ant.Main.startAnt(Main.java:187) [jrc] at org.apache.tools.ant.launch.Launcher.run(Launcher.java:246) [jrc] at org.apache.tools.ant.launch.Launcher.main(Launcher.java:67) [jrc] [jrc] NESTED BY : [jrc] net.sf.jasperreports.engine.JRException: Error compiling report design. [jrc] at net.sf.jasperreports.engine.design.JRAbstractCompiler.compileReport(JRAbstractCom piler.java:231) [jrc] at net.sf.jasperreports.engine.design.JRDefaultCompiler.compileReport(JRDefaultCompi ler.java:131) [jrc] at net.sf.jasperreports.engine.JasperCompileManager.compileReportToFile(JasperCompil eManager.java:127) [jrc] at net.sf.jasperreports.engine.JasperCompileManager.compileReportToFile(JasperCompil eManager.java:109) [jrc] at net.sf.jasperreports.ant.JRAntCompileTask.compile(JRAntCompileTask.java:398) [jrc] at net.sf.jasperreports.ant.JRAntCompileTask.execute(JRAntCompileTask.java:252) [jrc] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275) [jrc] at org.apache.tools.ant.Task.perform(Task.java:364) [jrc] at org.apache.tools.ant.Target.execute(Target.java:341) [jrc] at org.apache.tools.ant.Target.performTasks(Target.java:369) [jrc] at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1216) [jrc] at org.apache.tools.ant.Project.executeTarget(Project.java:1185) [jrc] at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:4 0) [jrc] at org.apache.tools.ant.Project.executeTargets(Project.java:1068) [jrc] at org.apache.tools.ant.Main.runBuild(Main.java:668) [jrc] at org.apache.tools.ant.Main.startAnt(Main.java:187) [jrc] at org.apache.tools.ant.launch.Launcher.run(Launcher.java:246) [jrc] at org.apache.tools.ant.launch.Launcher.main(Launcher.java:67) [jrc] Caused by: net.sf.jasperreports.engine.JRRuntimeException: Expression ID not found. [jrc] at net.sf.jasperreports.engine.base.JRBaseObjectFactory.getExpression(JRBaseObjectFa ctory.java:363) [jrc] at net.sf.jasperreports.engine.base.JRBaseElement.<init>(JRBaseElement.java:127) [jrc] at net.sf.jasperreports.crosstabs.base.JRBaseCrosstab.<init>(JRBaseCrosstab.java:79) [jrc] at net.sf.jasperreports.engine.base.JRBaseObjectFactory.getCrosstab(JRBaseObjectFact ory.java:1196) [jrc] at net.sf.jasperreports.crosstabs.design.JRDesignCrosstab.getCopy(JRDesignCrosstab.j ava:209) [jrc] at net.sf.jasperreports.engine.base.JRBaseElementGroup.<init>(JRBaseElementGroup.jav a:88) [jrc] at net.sf.jasperreports.engine.base.JRBaseBand.<init>(JRBaseBand.java:68) [jrc] at net.sf.jasperreports.engine.base.JRBaseObjectFactory.getBand(JRBaseObjectFactory. java:427) [jrc] at net.sf.jasperreports.engine.base.JRBaseReport.<init>(JRBaseReport.java:217) [jrc] at net.sf.jasperreports.engine.JasperReport.<init>(JasperReport.java:86) [jrc] at net.sf.jasperreports.engine.design.JRAbstractCompiler.compileReport(JRAbstractCom piler.java:214) [jrc] ... 17 more By: Lucian Chirita - lucianc RE: Crosstab and printWhenExpression 2006-01-11 00:13That's a bug. Here is the fix: go to net.sf.jasperreports.engine.JRExpressionCollector, find this method: public void collect(JRCrosstab crosstab) and add this line at the beginning: collectElement(crosstab); The fix is also available on CVS. Regards, Lucian By: nsorochan - nsorochan RE: Crosstab and printWhenExpression 2006-01-11 11:10thanx, that seems to work. It compiles now. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now