m0_61103284 2023-06-13 11:17 采纳率: 50%
浏览 36
已结题

关于用JAVA写报表,涉及时间查询

第一张图图片是需求

img


第二张图片是数据库的结构

img


大概阐述一下那个需求 就是想要展示一年的每一周有多少数据 而一周中没有数据的就显示0 有数据又要具体到那一天 并且时间是上周三到本周二为一个周次 有什么好的写法吗 qq了

  • 写回答

2条回答 默认 最新

  • 水晶心泉 2023-06-13 12:12
    关注

    有个粗略的思路:

    1. 拿到数据列表后,先按日期倒序排一下序
    2. 创建一个结果数组,用来存放整理后的结果
    3. 遍历数据列表
    3.1 计算当前行所属周数(这里需要根据需求来,比如今天是周三到周天这段时间的话直接计算周数,周一周二的话就周数减13.2 累计统计数据,比如合格lot、不良lot等
    3.3 与上一行相比较,看本行与上一行的周数是否相同
    3.3.1 如果相同,则将当前行插入到结果数组的头部,然后继续
    3.3.2 如果不同
    3.3.2.1 如果当前行的周数==上一行周数-1。则创建一个对象,属性名与普通行基本一致(这样后面拼表格的时候方便些),属性值为本周到目前为止累计的统计数据。看你的需求中周合计列颜色与普通的日数据不一样,所以这里还需要加一个类似type的属性,用于区分是周合计还是日数据。插入到结果数组的头部
    3.3.2.2 如果本行与上一行的周数之间有落下的,需要生成空的属性值都为0的周合计对象,落下几个就创建几个,也是插入到结果数组的头部
    3.3.3 如果没有下一个了,视同3.3.2
    4.根据结果数组渲染即可。得到的结果数组的结构应该是周合计、日数据、周合计、周合计、日数据类似这样的
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 6月21日
  • 已采纳回答 6月13日
  • 创建了问题 6月13日