在report里怎么计算学年下,学期的环比计算?

如下图用excel做的例子,在数据集中的字段有学年,学期和汇总,然后想做环比计算。

学年和学期为两个控件

学年有默认值,如果在只选择学年的时候,就只做学年的环比计算;

要是选择学期的话,要看这个学年是上学期还是下学期,要是下学期就跟同一学年的上学期做环比计算,要是选择上学期,就要跟上个学年的下学期计算。

哪位大神知道怎么解决啊?不一定要在report里用公式解决,也可以用sql。

image.png

实现样子:

image.png

FineReport 万能补丁 发布于 2023-1-11 16:46 (编辑于 2023-1-11 16:59)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共4回答
最佳回答
0
用户S5182147Lv6中级互助
发布于2023-1-12 10:06

用sql写吧,先用一个 with as对求出的各个学年、学期的汇总数做个存储,然后做过滤;

例如除数的过滤为:select 汇总 from

case when ${学期控件} = '下学期' then 学年 = ${学年控件} and ${学期控件} = '上学期'

when ${学期控件} = '上学期' then 学年 = concat(left(学年控件,4)-1,'-',right(学年控件,4)-1) and ${学期控件} = '下学期'

end -- 用if也行

被除数的过滤为:select 汇总 from

where 学年 = ${学年控件} and 学期 = ${学期控件}

-----

主要意思就是把除数与被除数分别求出来,然后关联计算即可

最佳回答
0
LTC朝Lv6高级互助
发布于2023-1-11 16:51

有个简单方法:你把报表做成按照 学年、学期、值、学年环比、学期环比 的样式,这样,每条数据都有学年环比和学期环比。

你只需要根据控件选择去隐藏相应的行列就行了(条件属性-行高、列宽)

  • 万能补丁 万能补丁(提问者) 不好意思啊,我又完善了下题目想实现的样子,只要这个一个数值,还有环比。上面的两个控件我没放,就是大概用两个控件来控制的两种情况。 不是要做明细数据,所以不能有两列数值。
    2023-01-11 17:00 
最佳回答
0
luojian0323Lv7资深互助
发布于2023-1-11 16:53

image.png

D5=C5/C5[A5:!-1]-1

A5要分组展示 ,不能是列表

  • 万能补丁 万能补丁(提问者) 不好意思啊,我又完善了下题目想实现的样子,只要这个一个数值,还有环比。上面的两个控件我没放,就是大概用两个控件来控制的两种情况。 不是要做明细数据,所以不能有两列数值。
    2023-01-11 17:01 
最佳回答
0
就TM你叫夏洛啊Lv6中级互助
发布于2023-1-11 16:55

image.pngimage.png可以用层次坐标解决,环比公式:当前单元格/向下一个位置的单元格 -1(需要排序被除数未空或未0的情况),a2是左父格的位置

  • 万能补丁 万能补丁(提问者) 这个我想过,但是两个控件来控制,要是只有学年比较简单,但这种加个学期的,而且不是同比, 是环比的不清楚怎么实现啊
    2023-01-11 17:02 
  • 就TM你叫夏洛啊 就TM你叫夏洛啊 回复 万能补丁(提问者) 你补充图片里的箭头肯定要用条件属性-背景图片实现,箭头和同比值不能是一个单元格,是上下两个单元格,你说的“两个控件来控制”不知道啥意思,是指两个单元格吗,你的箭头能放同比值的左边吗,放上面占两个位置不好求同比,左边的话都是向下扩展,好处理
    2023-01-11 17:09 
  • 万能补丁 万能补丁(提问者) 回复 就TM你叫夏洛啊 两个控件是指,一个学年的下拉单选控件,然后会给个默认学年,这样就会计算出来一个当前学年值,旁边的箭头是按箭头下方的值来做的,大于0是绿色向上,小于0是红色向下,等于0为横线。 然后还有一个复选下拉框控件,就是学期了。选择一个的时候就是按上面描述里说的实现功能,两个的时候就同只选择学年的实现。
    2023-01-11 17:16 
  • 4关注人数
  • 424浏览人数
  • 最后回答于:2023-1-12 10:06
    请选择关闭问题的原因
    确定 取消
    返回顶部