动态日历表

  • 文档创建者:axing
  • 编辑次数:8次
  • 最近更新:cairui1984cn 于 2019-12-02
  • 1. 概述

    1.1 应用场景

    实现每个月的日历,并可以通过点击切换上下月。

    日历.gif

    1.2 实现思路

    1)获取当月第一天所在周的第一天,获得当月最后一天所在周的最后一天,使用range()公式生成这两个日期之间的所有日期。

    2)通过动态参数实现月份切换。

    2. 示例

    2.1 报表设计

    1)报表样式设计如下:

    A1自定义父格到A2

    A2 单元格填入公式:[1,2,3,4,5,6,0]

    注:有些系统使用 dateinweek() 函数获取到的第一天是周日的日期。这时只需要把 A2 单元格的公式改为[0,1,2,3,4,5,6]。

    A3 单元格填入公式:GREPARRAY(range(dateinweek(dateinmonth($rq, 1), 1), dateinweek(dateinmonth($rq, -1), -1)), weekday(item) = A2)

    A2 单元格设置横向扩展,A3 设置纵向扩展。

    image.png

    2) A1 单元格设置三个条件属性:

    当 A2=4 时,新值为公式类型:left($rq,7)

    image.png

    当 A2=1 时,新值为字符串<,使用超级链接>动态参数,参数为rq,值为公式类型:monthdelta($rq,-1)

    image.png

    当A2=时,新值为字符串>,使用超级链接>动态参数,参数为rq,值为公式类型:monthdelta($rq,1)

    image.png

    3) A2 单元格设置形态>数据字典>自定义

    Snag_14b6227f.png

    4)A3 单元格设置形态>公式,公式为:day($$$)

    Snag_14b7eb87.png

    5) A3 单元格设置两个条件属性>颜色

    当日期是周末时,字体红色。

    image.png

    当日期不属于当月时,字体灰色。

    image.png

    6)设置模板>模板参数

    参数名为 rq ,值为公式:today()

    image.png

    2.2 效果预览

    1)PC端

    保存报表,点击分页预览,报表效果如下:

    日历.gif

    2)移动端效果:

    79a711c3f513d9159aa8398005b8c417.gif

    3. 模板下载

    已完成模板可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Parameter\动态日历表.cpt

    点击下载模板:动态日历表.cpt

    附件列表


    主题: 报表设计
    • 有帮助
    • 没帮助
    • 只是浏览
    • 评价文档,奖励 1 ~ 100 随机 F 豆!