Jasper reports 列表或列表中的表

Jasper reports 列表或列表中的表,jasper-reports,ireport,Jasper Reports,Ireport,我到处搜索,但找不到明确的答案:是否可以创建一个JasperReport报告,其中包含一个列表,其中包含另一个列表(或表)?如果是,如何将参数传递到内部列表 我尝试在iReport中实现此功能,但收到以下异常: Error filling print... null Setting up the file resolver...  java.lang.UnsupportedOperationException       at net.sf.jasperreports.components.t

我到处搜索,但找不到明确的答案:是否可以创建一个JasperReport报告,其中包含一个列表,其中包含另一个列表(或表)?如果是,如何将参数传递到内部列表

我尝试在iReport中实现此功能,但收到以下异常:

Error filling print... null 
Setting up the file resolver...  java.lang.UnsupportedOperationException      
at net.sf.jasperreports.components.table.FillTableFactory.cloneFillComponent(FillTableFactory.java:46)      
at net.sf.jasperreports.engine.fill.JRFillComponentElement.<init>(JRFillComponentElement.java:77)      
at net.sf.jasperreports.engine.fill.JRFillComponentElement.createClone(JRFillComponentElement.java:187)      
at net.sf.jasperreports.engine.fill.JRFillElementGroup.<init>(JRFillElementGroup.java:105)      
at net.sf.jasperreports.engine.fill.JRFillElementContainer.<init>(JRFillElementContainer.java:100)      
at net.sf.jasperreports.components.list.FillListContents.<init>(FillListContents.java:58)      
at net.sf.jasperreports.components.list.FillListContents.createClone(FillListContents.java:97)      
at net.sf.jasperreports.components.list.HorizontalFillList.getContents(HorizontalFillList.java:308)      
at net.sf.jasperreports.components.list.HorizontalFillList.prepare(HorizontalFillList.java:142)      
at net.sf.jasperreports.engine.fill.JRFillComponentElement.prepare(JRFillComponentElement.java:129)      
at net.sf.jasperreports.engine.fill.JRFillElementContainer.prepareElements(JRFillElementContainer.java:331)      
at net.sf.jasperreports.components.list.FillListContents.prepare(FillListContents.java:86)      
at net.sf.jasperreports.components.list.VerticalFillList.fillContents(VerticalFillList.java:153)      
at net.sf.jasperreports.components.list.VerticalFillList.prepare(VerticalFillList.java:102)      
at net.sf.jasperreports.engine.fill.JRFillComponentElement.prepare(JRFillComponentElement.java:129)      
at net.sf.jasperreports.engine.fill.JRFillElementContainer.prepareElements(JRFillElementContainer.java:331)     
at net.sf.jasperreports.engine.fill.JRFillBand.fill(JRFillBand.java:379)      
at net.sf.jasperreports.engine.fill.JRFillBand.fill(JRFillBand.java:353)      
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillColumnBand(JRVerticalFiller.java:2046)      
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.JRBaseFiller.fill(JRBaseFiller.java:822)      
at net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:61)      
at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:446)      
at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:276)      
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:745)      
at com.jaspersoft.ireport.designer.compiler.IReportCompiler.run(IReportCompiler.java:891)      
at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:572)      a
t org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:997)  
Print not filled. Try to use an EmptyDataSource...
填充打印时出错…null
正在设置文件解析器…java.lang.UnsupportedOperationException
位于net.sf.jasperreports.components.table.FillTableFactory.cloneFillComponent(FillTableFactory.java:46)
位于net.sf.jasperreports.engine.fill.JRFillComponentElement.(JRFillComponentElement.java:77)
位于net.sf.jasperreports.engine.fill.JRFillComponentElement.createClone(JRFillComponentElement.java:187)
位于net.sf.jasperreports.engine.fill.JRFillElementGroup.(JRFillElementGroup.java:105)
位于net.sf.jasperreports.engine.fill.JRFillElementContainer.(JRFillElementContainer.java:100)
位于net.sf.jasperreports.components.list.FillListContents.(FillListContents.java:58)
位于net.sf.jasperreports.components.list.FillListContents.createClone(FillListContents.java:97)
位于net.sf.jasperreports.components.list.HorizontalFillList.getContents(HorizontalFillList.java:308)
位于net.sf.jasperreports.components.list.HorizontalFillList.prepare(HorizontalFillList.java:142)
net.sf.jasperreports.engine.fill.JRFillComponentElement.prepare(JRFillComponentElement.java:129)
位于net.sf.jasperreports.engine.fill.JRFillElementContainer.prepareElements(JRFillElementContainer.java:331)
位于net.sf.jasperreports.components.list.FillListContents.prepare(FillListContents.java:86)
位于net.sf.jasperreports.components.list.VerticalFillList.fillContents(VerticalFillList.java:153)
在net.sf.jasperreports.components.list.VerticalFillList.prepare(VerticalFillList.java:102)中
net.sf.jasperreports.engine.fill.JRFillComponentElement.prepare(JRFillComponentElement.java:129)
位于net.sf.jasperreports.engine.fill.JRFillElementContainer.prepareElements(JRFillElementContainer.java:331)
位于net.sf.jasperreports.engine.fill.JRFillBand.fill(JRFillBand.java:379)
位于net.sf.jasperreports.engine.fill.JRFillBand.fill(JRFillBand.java:353)
net.sf.jasperreports.engine.fill.JRVerticalFiller.fillColumnBand(JRVerticalFiller.java:2046)
net.sf.jasperreports.engine.fill.JRVerticalFiller.fillDetail(JRVerticalFiller.java:778)
位于net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:288)
位于net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:151)
位于net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:909)
位于net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:822)
位于net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:61)
位于net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:446)
位于net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:276)
位于net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:745)
位于com.jaspersoft.ireport.designer.compiler.IReportCompiler.run(IReportCompiler.java:891)
在org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:572)上
t org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:997)
打印未填写。尝试使用空数据源。。。
是,将“子数据集”的概念作为表格包括在“详细信息”栏中。
C.f.官方IReport文档(IReport ultimate guide.pdf)在他们的网站上。

我也遇到了这个错误。后来我发现方法
net.sf.jasperreports.components.table.FillTableFactory.cloneFillComponent
实际上直到6.0.0才实现。所以我用6.0.0替换了旧的Jasperreport库,问题就解决了。

我真的不明白-你能再详细说明一下吗?假设我有一个细节栏,我想在其中添加一个列表,在该列表中我想添加一个表-因此,要渲染的表的数量将是细节渲染的次数乘以每个列表的渲染次数!这可能吗?是的!可以说,细节栏已经是第一个列表。“详细信息”栏中的每个内容在(主)报表查询中每个记录呈现一次。如果将具有自己子查询或子数据集的表添加到此带区,则最终将得到与(主)报表查询返回记录一样多的表。每个表的行数(子数据集记录)与子查询为给定(主)记录返回的行数相同。您好!我想我没有说清楚:我想渲染一个表,在该表的每个单元格内渲染另一个表(可能在第二个表的单元格内渲染另一个表)。这能做到吗?我想不是,但我要求是肯定的。我现在不能测试它,所以我不确定你是否正确,以便接受答案。然而,如果这个答案得到任何其他投票,我将很高兴接受它!我创建了一个表a,其中一列包含另一个表B。但B不会出现在最终报告中。如何将数据集传递到内部表