Jasper报表获取表格首末记录时变量取值异常问题咨询
Jasper 辅助数据集首尾记录获取异常解决方案
问题1:不分页场景仅能获取末条记录、首条记录取值失败
- 调整变量的计算规则:
首条记录对应变量将Calculation属性设为First,Reset type设为Report,Increment type设为None,确保变量仅在数据集第一条记录加载时完成赋值,后续记录遍历不会覆盖该值。
末条记录对应变量根据字段类型可将Calculation属性设为Nothing,Reset type设为Report,Increment type设为对应数据集遍历粒度,确保全量记录遍历完成后再输出最终值。 - 调整变量放置区域:首条记录变量不要放在表格 Detail 带区,优先放在表格 Header 带区、报表 Title 带区这类先于数据遍历加载的区域,避免取值被覆盖。
问题2:跨页场景下变量取值为null
- 调整辅助数据集加载时机:将辅助数据集的
Run when属性设为Report initialization,确保报表初始化阶段就完成全量数据遍历和变量计算,无需等到表格组件渲染时才加载数据。 - 调整变量求值时机:将首尾记录对应变量的
Evaluation time属性设为Report,替代默认的Now,确保变量取的是全报表计算完成后的最终值,不受当前渲染页面的作用域限制。 - 开启表格预计算属性:绑定辅助数据集的表格组件开启
Pre evaluate属性,强制表格在报表页面渲染前完成全量数据遍历和关联变量计算,即使表格位于前序页面,后续页面也能正常读取变量值。
内容的提问来源于stack exchange,提问作者Pablo Ruiz Ortega
相关产品推荐
相关产品推荐

