关于FineReport 的week()函数?

FineReport中  week(2019-1-1) =52;

EXCEL 中 weeknum 2019-1-1 =1;

从数据库的销售明细表中取数据,做周销售分析,2019-1-1的数据会归在2018年的第52周,大家什么看法,我觉得这样是有问题的。


补充一下:

我的想法是:1、一般企业里出报表的惯例是2019-1-1会记入到第一周。(我不知道大多数企业是不是这样?,应该是吧。) 希望帆软可以再加一个Week2()函数,Week2(2019-1-1)=1; 2、有的企业有自己的企业日历:比如:2018-12-21日是全年的第一天;2019-12-20是全年的最后一天(财务上比较常用) 希望帆软再加一个Week3()函数,Week3(2018-12-21)=1;week3(2019-12-20)=52

FineReport yangb 发布于 2018-12-16 22:07 (编辑于 2018-12-17 10:50)
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共4回答
最佳回答
1
城落满芯Lv6中级互助
发布于2018-12-17 09:06

百度week用法

image.png

mysql

image.png

FineReport 9.0

image.png


好像 确实有问题,遇到 年初 年末 会不准确

最佳回答
2
axingLv6专家互助
发布于2018-12-17 09:09(编辑于 2018-12-17 16:13)

WEEK(DATEDELTA(日期,if(week(DATEINYEAR(日期,1))=1,-1,6)))

WorkBook204.cpt


  • yangb yangb(提问者) 能不能稍加解释一下这个函数。
    2018-12-17 10:26 
  • axing axing 回复 yangb(提问者) 这个是判断日期的当前年一月一号是不是第一周,是的话直接计算,不是的话改为第一周计算,这里的-1和6是改了每一周的起始,改成周一到周日为一周,如果想按系统的周日到周六为一周,那么将-1和6改成0和7
    2018-12-17 10:37 
  • axing axing 回复 yangb(提问者) 这个就是转换一下就行了,每个企业都是有特殊的需求的,不可能为每个需求都开发一个功能,而是要用现有的功能去灵活实现企业的需求
    2018-12-17 10:54 
  • yangb yangb(提问者) 回复 axing 同意你的说法。 我还是觉得这个函数的取数不太准确,可能是我没想太清楚。 你看下,@城落满芯 的回答。
    2018-12-17 11:13 
  • axing axing 回复 yangb(提问者) 那个日期得到的结果不准确?
    2018-12-17 14:11 
最佳回答
1
轩辕丶尘Lv2初级互助
发布于2018-12-17 08:49

有什么问题,FR中week是按阳历取日期的,Excel中按阴历取得,结果都对。

  • yangb yangb(提问者) 你说这个是对的,客观的,也没毛病。 我的想法是:1、一般企业里出报表的惯例是2019-1-1会记入到第一周。(我不知道大多数企业是不是这样?,应该是吧。) 希望帆软可以再加一个Week2()函数,Week2(2019-1-1)=1; 2、有的企业有自己的企业日历:比如:2018-12-21日是全年的第一天;2019-12-20是全年的最后一天(财务上比较常用) 希望帆软再加一个Week3()函数,Week3(2018-12-21)=1;week3(2019-12-20)=52
    2018-12-17 10:41 
最佳回答
1
吾姓独孤Lv6高级互助
发布于2018-12-17 08:53(编辑于 2018-12-17 08:56)

20190101是星期二,星期日是20181230,所以这个星期是算2018年的,从20190106的星期日开始才算2019年的第一个星期,如果不按这样的标准,相邻俩年都会有一个星期重复的,在一些计算多年星期数的时候可能出问题,或者其他的一些地方出问题

  • 7关注人数
  • 1067浏览人数
  • 最后回答于:2018-12-17 16:13
    请选择关闭问题的原因
    确定 取消
    返回顶部