一张报表有个功能需要现在版本去和之前的版本数据做对比,如果当前版本1月份数据大于之前版本一月份数据,则变色,现在我的思路是在条件属性里面去判断,获取上个版本一月份的值和当前版本一月份的值做对比,但是一共有24个字段,权责1-12月,收付1-12月,这样写在条件属性里面,数据大的时候跑不出来,两三行还可以,有没有好的优化思路,求点拨。
写到条件格式里,会导致查询数据库次数过多,每个条件格式都会去查询,有24个单元格就至少要24次查询。不单纯是条件格式里的SQL怎么写的问题了。
建议在做表单时,将要对比的数据全部查询出来填充表格后,条件格式里只写单元格值之间进行比较,就不用再去查询了。至于有些不想显示的数据隐瞒掉。
性能优化插件https://help.fanruan.com/finereport/doc-view-2612
SQL函数适合整体一次性取出数据,且每次查询一行时都会执行数据库全量遍历
还是在数据集或者数据库中做联表处理,再到FB中做展示
肯定不能照你这样做。你这样在条件属性里面直接用sql公式判断,相当于每行都要执行一遍sql,数据一大肯定效率很低。建议先把两个版本的数据都展示是单元格中,在条件属性中通过月份将两个版本的数据关联成一行。条件属性执行用户两列单元格大小进行比较就行,这样报表执行效率会很快。