页面树结构
转至元数据结尾
转至元数据起始

正在查看旧版本。 查看 当前版本.

与当前比较 查看页面历史

« 前一个 版本 2 下一个 »

需求:

集团目前有月度任务采购计划,要求默认展示当月创建的所有任务,计划开始时间、结束时间,实际开始时间和结束时间,跟甘特图有点类似。

展示效果

实现思路

通过Excel的条件规则对符合日期范围内的日期进行单元格颜色填充。

实现步骤

一、数据集准备

随着月份不同天数也会出现28、 29、30、31天不等,因此需要通过编写sql获取不同月份的天数。如以下基于MySQL数据库的sql示例,不同数据库类型需自行调整SQL。

// mysql.help_topic  是MySQL的一个内置表,内置了600多条数据,其中存在一个整形的序号字段 help_topic_id  借助此表处理处当前月的每一天数据,如11月有30条数据

select * from (
select
    date_sub(
        curdate(),
        interval(cast(help_topic_id as signed integer)) day
    ) as dates,
    year(
        date_sub(
            curdate(),
            interval(cast(help_topic_id as signed integer)) day
        )
    ) year,
    month(
        date_sub(
            curdate(),
            interval(cast(help_topic_id as signed integer)) day
        )
    ) month,
    day(
        date_sub(
            curdate(),
            interval(cast(help_topic_id as signed integer)) day
        )
    ) day
from
    mysql.help_topic
where
    help_topic_id < day(curdate())
union all
select
    date_add(
        curdate(),
        interval(cast(help_topic_id as signed integer)+1 ) day
    ) as dates,
    year(
        date_add(
            curdate(),
            interval(cast(help_topic_id as signed integer)+1 ) day
        )
    ) year,
    month(
        date_add(
            curdate(),
            interval(cast(help_topic_id as signed integer)+1 ) day
        )
    ) month,
    day(
        date_add(
            curdate(),
            interval(cast(help_topic_id as signed integer)+1 ) day
        )
    ) day
from
    mysql.help_topic
where
    help_topic_id < day(last_day(curdate())) - day(curdate())
    ) t order by dates

查询结果如下:


二、报表设计




  • 无标签