我有一个由对象{groupName,rowName,colName,value}组成的数据源。我正在尝试将字段row,col,val放在交叉表中,由组分隔[该组具有标题]。数据对象的集合被存储为主数据源。
我在尝试这样做时遇到了错误:
net.sf.jasperreports.engine.JRRuntimeException: Error incrementing crosstab dataset
net.sf.jasperreports.engine.fill.JRFillCrosstab$JRFillCrosstabDataset.customIncrement(JRFillCrosstab.java:762)
net.sf.jasperreports.engine.fill.JRFillElementDataset.increment(JRFillElementDataset.java:193)
net.sf.jasperreports.engine.fill.JRCalculator.calculateVariables(JRCalculator.java:162)
net.sf.jasperreports.engine.fill.JRVerticalFiller.fillDetail(JRVerticalFiller.java:747)
有没有人建议为什么会发生这种情况或如何解决?
答案 0 :(得分:19)
我发现以下内容可能有所帮助:*
什么是“交叉表数据” 处理“例外意味着什么?
如果有更多数据,则抛出此异常 之后添加到交叉表数据集中 交叉表已经存在 渲染。
这通常发生在a 交叉表元素链接到主要元素 报告的数据集(不使用 subdataset run)和resetType 交叉表数据集的属性 不匹配交叉表的地方 渲染。
交叉是特殊的 显示聚合的组件 数据。当他们被链接到 你简单地说,报告的主要数据集 不能把它们放在细节部分, 因为没有要聚合的数据 来自单一记录。
这样的交叉表 只能居住在群组页脚或 在报告的摘要部分 并具有适当的resetType 值,以便他们的数据集是 在它们之后每次初始化 渲染。
如果你仍然认为你需要 为每个细节渲染一个交叉表 在主文档中,然后差不多 肯定这个交叉表应该是 链接到子数据集而不是 报告的主要数据集。
您必须尝试将所有数据放入详细信息部分,这样就不允许交叉表组件聚合所有数据。
答案 1 :(得分:0)
将CrossTab放在夏季部分并删除所有其他Band以正确对齐CrossTab。 我正在使用jasperstudio,这种方法解决了这个问题。