|
|

楼主 |
发表于 2010/12/2 16:22:21
|
显示全部楼层
本帖最后由 peanut 于 2010/12/2 16:57 编辑
今天用ireport建立父子报表,就是带子报表(subreport)的报表。在ireport上可以正常显示,但是在adempiere客户端却无法显示。
后来在官方文档上发现子报表需要额外编译。
http://www.adempiere.com/index.php/ADempiere/Compiere_JasperReports_Integration_HowTo#Problem_with_subreports
看过这篇文档后存在几个问题:
1. 这个是以网页访问(WebApp)为例子的,对于客户端(Client)访问是否有效?
2. 第4步复制编译好的Jasper文件。原文摘录如下:
: Step 4: Copy the new subreport compiled file
: Now you must copy the new compiled file to the location as you need. In the example we will copy
: From: C:\Documents and Settings\Alejandro\Configuración local\Temp\
: To : D:\Adempiere\jboss\server\adempiere\deploy\WebApp.ear\webApp.war\
这里有几个疑问:
1. Windows操作系统下编译好的文件放置在C:\...\Temp\目录下,Linux操作系统下在什么目录?
2. 不使用org.compiere.report.ReportStarter,而是使用iReport进行编译,是否可行?
3. 文件复制的目标目录Adempiere\jboss\server\adempiere\deploy\WebApp.ear\webApp.war\没有找到。我能找到的相类似的目录是/home/media/adempiere/jboss/server/adempiere/deploy/jboss-web.deployer,我应该放在哪个目录下?我是否应当建立目录../WebApp.ear/webApp.war/?
ADempiere执行JasperReport报错代码
CCache.clear - java.beans.PropertyVetoException: Skip reset for trx entries cache
[INFO] Initializing c3p0 pool... com.mchange.v2.c3p0.ComboPooledDataSource [ acquireIncrement -> 3, acquireRetryAttempts -> 2, acquireRetryDelay -> 1000, autoCommitOnClose -> false, automaticTestTable -> null, breakAfterAcquireFailure -> false, checkoutTimeout -> 0, connectionCustomizerClassName -> null, connectionTesterClassName -> com.mchange.v2.c3p0.impl.DefaultConnectionTester, dataSourceName -> AdempiereDS, debugUnreturnedConnectionStackTraces -> false, description -> null, driverClass -> org.postgresql.Driver, factoryClassLocation -> null, forceIgnoreUnresolvedTransactions -> false, identityToken -> z8kfsx8c1axcccl1kdzo6b|277b5f00, idleConnectionTestPeriod -> 1200, initialPoolSize -> 1, jdbcUrl -> jdbc:postgresql://localhost:5432/adempiere?encoding=UNICODE, maxAdministrativeTaskTime -> 0, maxConnectionAge -> 0, maxIdleTime -> 900, maxIdleTimeExcessConnections -> 1200, maxPoolSize -> 15, maxStatements -> 0, maxStatementsPerConnection -> 0, minPoolSize -> 1, numHelperThreads -> 3, numThreadsAwaitingCheckoutDefaultUser -> 0, preferredTestQuery -> SELECT Version FROM AD_System, properties -> {user=******, password=******}, propertyCycle -> 0, testConnectionOnCheckin -> false, testConnectionOnCheckout -> false, unreturnedConnectionTimeout -> 0, usesTraditionalReflectiveProxies -> false ]
Exception in thread "jasper simple-1000069" java.lang.NoClassDefFoundError: org/codehaus/groovy/runtime/callsite/CallSiteArray
at salescontract_1291337525218_186281.$createCallSiteArray(calculator_salescontract_1291337525218_186281)
at salescontract_1291337525218_186281.$getCallSiteArray(calculator_salescontract_1291337525218_186281)
at salescontract_1291337525218_186281.<init>(calculator_salescontract_1291337525218_186281)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at java.lang.Class.newInstance0(Class.java:355)
at java.lang.Class.newInstance(Class.java:308)
at net.sf.jasperreports.engine.design.JRAbstractJavaCompiler.loadEvaluator(JRAbstractJavaCompiler.java:98)
at net.sf.jasperreports.engine.design.JRAbstractCompiler.loadEvaluator(JRAbstractCompiler.java:320)
at net.sf.jasperreports.engine.JasperCompileManager.loadEvaluator(JasperCompileManager.java:240)
at net.sf.jasperreports.engine.fill.JRFillDataset.createCalculator(JRFillDataset.java:421)
at net.sf.jasperreports.engine.fill.JRBaseFiller.<init>(JRBaseFiller.java:428)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:76)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:86)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:56)
at net.sf.jasperreports.engine.fill.JRFiller.createFiller(JRFiller.java:142)
at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:52)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:417)
at org.compiere.report.ReportStarter.startProcess(ReportStarter.java:561)
at org.adempiere.util.ProcessUtil.startJavaProcess(ProcessUtil.java:160)
at org.adempiere.util.ProcessUtil.startJavaProcess(ProcessUtil.java:105)
at org.compiere.apps.ProcessCtl.startProcess(ProcessCtl.java:649)
at org.compiere.apps.ProcessCtl.run(ProcessCtl.java:432)
at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.ClassNotFoundException: org.codehaus.groovy.runtime.callsite.CallSiteArray
at java.lang.ClassLoader.findClass(ClassLoader.java:359)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
... 26 more
|
|