0

XMLドキュメントをデータソースとして使用して、レポートに対してサブレポートを機能させようとしています。

メインレポートデータを並べ替えるとき、サブレポートはXMLドキュメントを再クエリする必要はありません。JRXmlDataSourceではなく、JRSortableDataSourceを期待しています。

私は何が間違っているのですか?

次のデータソース式を使用しました。

$P{REPORT_DATA_SOURCE}).subDataSource("/person/phone")

スタックトレース:

Error filling print... Error evaluating expression :      Source text : $P{REPORT_DATA_SOURCE}.subDataSource("/person/phone")

net.sf.jasperreports.engine.fill.JRExpressionEvalException: Error evaluating expression :  

    Source text : $P{REPORT_DATA_SOURCE}.subDataSource("/person/phone")     
at net.sf.jasperreports.engine.fill.JREvaluator.evaluate(JREvaluator.java:203)     
at net.sf.jasperreports.engine.fill.JRCalculator.evaluate(JRCalculator.java:591)     
at net.sf.jasperreports.engine.fill.JRCalculator.evaluate(JRCalculator.java:559)     
at net.sf.jasperreports.engine.fill.JRFillElement.evaluateExpression(JRFillElement.java:966)     
at net.sf.jasperreports.engine.fill.JRFillSubreport.evaluateSubreport(JRFillSubreport.java:384)     
at net.sf.jasperreports.engine.fill.JRFillSubreport.evaluate(JRFillSubreport.java:286)     
at net.sf.jasperreports.engine.fill.JRFillElementContainer.evaluate(JRFillElementContainer.java:259)     
at net.sf.jasperreports.engine.fill.JRFillBand.evaluate(JRFillBand.java:459)     
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillColumnBand(JRVerticalFiller.java:2044)     
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillDetail(JRVerticalFiller.java:778)     
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:288)     
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:151)     
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:909)     
at net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:126)     
at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:464)     
at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:300)     
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:757)     
at com.jaspersoft.ireport.designer.compiler.IReportCompiler.run(IReportCompiler.java:1003)     
at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:572)     
at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:997) Caused by: groovy.lang.MissingMethodException: 
No signature of method: net.sf.jasperreports.engine.fill.SortedDataSource.subDataSource() 
is applicable for argument types: (java.lang.String) values: [/person/phone]     
at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:54)     
at org.codehaus.groovy.runtime.callsite.PojoMetaClassSite.call(PojoMetaClassSite.java:46)     
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40)     
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)     
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:124)     
at TestParam_1362739351228_895383.evaluate(calculator_TestParam_1362739351228_895383:223)     
at net.sf.jasperreports.engine.fill.JREvaluator.evaluate(JREvaluator.java:190)    
4

3 に答える 3

1

データソース式$P{REPORT_DATA_SOURCE}).subDataSource("/B/C")
に構文エラーがあります最初に 一致
しない文字を見逃しました次に(

JRSortableDataSource
この式を使用することを期待している場合
((net.sf.jasperreports.engine.data.JRSortableDataSource)$P{REPORT_DATA_SOURCE}).subDataSource("DefineThat")

JRXmlDataSource
この式を使用することを期待している場合
((net.sf.jasperreports.engine.data.JRXmlDataSource)$P{REPORT_DATA_SOURCE}).subDataSource("DefineThat")

于 2013-03-11T08:36:10.863 に答える