历史版本12 :日历表 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

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.2 A1添加条件属性

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

1)当 A2=4 时,新值为公式类型:left($rq,7),这个条件属性用于显示顶部的月份。如下图所示:

image.png

2)当 A2=1 时,新值为字符串<,使用「超级链接>动态参数」,参数为rq,值为公式类型:monthdelta($rq,-1),这个条件属性实现顶部跳到上月的按钮。如下图所示:

image.png

3)当A2=0时,新值为字符串>,使用「超级链接>动态参数」,参数为rq,值为公式类型:monthdelta($rq,1),这个条件属性实现顶部跳到下月的按钮。如下图所示:

image.png

2.3 A2设置形态

A2 单元格设置「形态>数据字典>自定义」。如下图所示:

Snag_14b6227f.png

2.4 A3添加条件属性

1)A3 单元格设置「形态>公式」,公式为:day($$$),如下图所示:

Snag_14b7eb87.png

2)A3 单元格设置两个「条件属性>颜色」,第一个,当日期是周末时,字体显示为红色。其中公式里的 || 表示或。如下图所示:

image.png

3)第二个条件属性,当日期不属于当月时,字体为灰色。其中公式里的 <> 表示不等于。如下图所示:

image.png

2.5 设置参数

设置「模板>模板参数」。参数名为 rq ,值为公式:today(),如下图所示:

image.png

2.6 效果预览

2.6.1 PC端

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

日历.gif

2.6.2 移动端

App 与 HTML5 端效果相同,如下图所示:

79a711c3f513d9159aa8398005b8c417.gif

3. 模板下载编辑

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

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