反馈已提交

网络繁忙

FVS表格实现日历翻页效果

  • 文档创建者:Alicehyy
  • 历史版本:7
  • 最近更新:Alicehyy 于 2024-01-02
  • 1. 概述

    适用场景:安装了「FineVis数据可视化」插件的用户,可参考本文了解 FineVis 的相关功能。

    1.1 版本

    报表服务器版本
    插件版本
    11.0.9V1.12.0

    1.2 预期效果

    本文将介绍 FVS 模板中使用 表格组件日期时间控件 实现日历翻页效果。预览效果如下图所示:

    150ACC27-B291-44A3-AE54-073DB7504B62.GIF

    1.3 实现思路

    在表格中使用公式表现日期,设置参数和相应的日期时间控件,通过超链点击事件改变控件值并查询来实现翻页效果。

    2. 示例

    2.1 新建模板

    点击设计器左上角「文件>新建可视化看板」,创建一张空白看板,可自定义名称和尺寸。如下图所示:

    Snag_4d930201.png

    2.2 设计日期时间控件

    添加一个日期时间控件到画布中,设置名称为 date ,即表示参数为 date

    设置字号为 16px ,格式下拉选择「年-月」和「yyyy-MM」,默认值设置为公式:=TODAY() 。

    如下图所示:

    Snag_4db58499.png

    2.3 设计表格

    2.3.1 添加表格

    添加一个表格,点击「编辑组件」进入表格编辑界面。如下图所示:

    Snag_4db4f4fc.png

    2.3.2 日历样式设计

    这里主要说明日历实现方式,具体样式设计不做赘述。

    1)当前日期

    在单元格中插入公式 =FORMAT(TODAY(),"yyyy年MM月dd日  EEEEE") ,获取当前日期并转换格式,公式说明可参考 日期的特殊格式转换 。

    1678178442681794.png

    2)辅助数据

    为了实现日历效果,需要借助辅助数据。

    • B3 单元格插入公式为 =$date,获取参数 date 的值,在「单元格元素」中设置其格式为「日期型」,手动输入 yyyy年MM月

    • B4 单元格插入公式为 =WEEKDAY(DATEINMONTH($date,1)),获取参数 date 日期所在月的第一天并返回其星期数,返回值为介于0到6之间的某一整数,分别代表星期中的某一天(从星期日到星期六)。

    • C4 单元格插入公式为 =DAYSOFMONTH($date),获取参数 date 日期所在月包含的天数。

    注:设置完成后将第 4 行隐藏。

    1678180706113992.png

    3)日期排列

    • B5-H5 单元格按星期日到星期六的顺序进行排列。

    • B6 单元格插入公式为 =IF(B4 = 0,1,"") ,表示若参数 date 日期所在月的第一天返回的星期数是 0,则显示数字为 1,表示这个月的第一天是星期日。

    • C6 单元格插入公式为 =IF(B4 <= 1,1 - B4 + 1,""), 若 B4=0 ,则 C6=2,若 B4=1,则 C6=1 。D6-H6 单元格与 C6 单元格同理,依次类推即可。

    • B7-H9 单元格插入公式即简单的累加,详情请参见模板

    • B10 单元格插入公式为 =IF(H9 + 1 <= C4,H9 + 1,"") ,C10-C11 之间剩余单元格依次类推。其原理为:H9 单元格最大可能为 28,最小可能为 22,;而 C4 单元格最小为 28,最大为 31,故从 B10 单元格开始,以 H9 为参照执行公式。

    更多内容请参见模板,如下图所示:

    1678180887354650.png

    4)设置当天日期高亮

    选中日历主体所有的日期单元格,增加条件属性,选择背景颜色,作用对象为「当前格子」。选择「公式」,分别输入并「增加」三个公式:$$$=day(now()) and month(B3)==month(B2) and year(B3)==year(B2) ,表示单元格值为当日的日期时背景色变色。如下图所示:

    1678187952505299.png

    2.3.3 设置翻页超链

    在 C13、D13、F13、G13 单元格中分别写入「上年、上月、下月、下年」。

    选中 C13 单元格,添加一个 JavaScript 脚本类型超链,添加参数 a,参数值为公式 =FORMAT(YEARDELTA(B3,-1),"yyyy-MM") 。

    输入 JavaScript 代码:

    duchamp.getWidgetByName("date").setValue(a); //给参数控件 date 赋值

    如下图所示:

    1678188704248941.png

    另外 3 个单元格中 JS 代码相同,参数 a 的值分别为:

    上年:FORMAT(YEARDELTA(B3,-1),"yyyy-MM")

    上月:FORMAT(MONTHDELTA(B3,-1),"yyyy-MM")

    下月:FORMAT(MONTHDELTA(B3,1),"yyyy-MM")

    下年:FORMAT(YEARDELTA(B3,1),"yyyy-MM")

    注:首次设置超链后单元格样式改变,可自行修改。

    2.3.4 表格内容双向铺满

    设置完成后,点击左上角「返回可视化看板」,设置表格内容适应方式为「双向铺满」,点击设计器右上角「保存」即可。如下图所示:

    Snag_4e6a70e2.png

    2.4 效果预览

    2.4.1 PC 端

    点击右上角「预览」。效果如 1.2 节预期效果所示。

    2.4.2 移动端

    预览方式请参考 FVS移动端预览 ,效果如下图所示:


    3. 模板下载

    附件列表


    主题: FineVis数据可视化
    • 有帮助
    • 没帮助
    • 只是浏览
    中文(简体)

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭

    联系我们
    在线支持
    获取专业技术支持,快速帮助您解决问题
    工作日9:00-12:00,13:30-17:30在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持