Java报表插件:FineReport循环引用

 时间:2026-02-15 14:26:57

1、 新建报表,设计表样

新建工作薄,添加数据集,SQL语句为select 日期, 入库, 出库 from 库存 where strftime('%m',日期)= '06' order by 日期,查询出6月份入库出库情况,并按照日期升序排序。

如下设计报表

Java报表插件:FineReport循环引用

2、数据列设置如下:

单元格数据集数据列属性

A3ds1日期默认

C3ds1入库汇总-求和,其余默认

D3ds1出库汇总-求和,其余默认

3、循环引用设置

方法一:

生日库存

假设6月份前留下的余额为0,则在B3单元格中,输入公式:=if(&A3 = 1, 0, B3[A3:-1] + C3[A3:-1] - D3[A3:-1]):当&A3=0,第一天的上日库存为0,否则从第二天开始,上日库存就等于前天库存+上日入库-上日出库。

本日库存

在E3单元格中,输入公式=B3 + C3 - D3:本日库存就为上日库存+本日入库-本日出库。

注:由于E3单元格中使用了B3的值,所以上日库存不能直接用E3[A3:-1],否则会因为B3-E3-B3导致死循环。

方法二:

直接在B3单元格中输入循环引用公式=CIRCULAR(A3, B3, C3, D3),等同于公式=if(&A3 = 1, 0, B3[A3:-1] + C3[A3:-1] - D3[A3:-1]),如果为横向扩展。则传递第五个参数false,例如:=CIRCULAR(A3, B3, C3, D3,false)。

4、保存与预览

保存模板,预览效果如上。模板效果在线查看请点击CircularReference.cpt

已完成模板可参考%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Advanced\Cacuate_Between_Cells\CircularReference.cpt。

  • Java跳转语句—break语句
  • PRVG-11134 : Interface 错误解决办法
  • 总说Linux,到底什么是Linux?
  • Linux中如何开启8080端口供外界访问
  • 使用Spring Nested事务要注意的事项(补充版)
  • 热门搜索
    嘴唇干燥怎么办 荨麻疹的治疗方法 墙纸图片大全 身上出现小红点是怎么回事 免费追剧大全电视剧网站 怎么看自己电脑的显卡 红烧狮子头的家常做法 游泳的技巧与方法 怎样炖鸡好吃 结节性痤疮怎么治疗