找文章 / 找答案
精选问答 更多内容

[可视化] 月份加减

monq青铜三 显示全部楼层 发表于 2021-9-9 11:03:01 |阅读模式 打印 上一主题 下一主题
1
未解决

【可视化】 月份加减

  • monq青铜三
  • 2021-09-09 11:03:01
  • 发布在 论坛
6830 8
怎么做出这样中间是个时间,然后点击上下一月可以加减一个月的参数,并传给图标进行过滤

回复

使用道具 举报

精彩评论8

永洪Tech-CIDX白银二 显示全部楼层 发表于 2021-9-9 15:31:09
我们可以通过按钮组件来控制日期过滤组件1.新建年月表达式
日期新建表达式.png
创建时间戳字段年月.png

2.新建日期过滤组件,并绑定 年月 字段,新建两个按钮组件并分别命名为“上月”“下月”
绑定年月到日期过滤组件.png

3.新建两个参数:dateChoose 和 upanddown,并取消勾选“弹出”
新建日期参数.png

4.选中“下月”按钮组件,在右边点击设置,点击脚本,进入组件脚本编辑界面
进入组件脚本.png

5.写入脚本:其中“日期过滤1”为日期过滤组件名称,可在组件设置查看,脚本内容需要放在提交时运行内。

var date1 = 日期过滤1.firstDates;
if(date1 != null){
date1 = date1[0;
date1 = substring(date1,1);
date1 = date1.split('-');
if(Number(date1[1) == 11){
    date1[0 = formatNumber((Number(date1[0)+1),"##");
    date1[1 = '0';
}else{
    date1[1 = formatNumber((Number(date1[1)+1),"##");
}
日期过滤1.firstDates = ["t"+date1[0]+'-'+date1[1;

var date2 = 日期过滤1.firstDates[0;
param["dateChoose" = date2;
refreshData();
param["upanddown" = 1;
}
提交时运行.png




6.选中“上月”按钮组件,在右边点击设置,点击脚本,进入组件脚本编辑界面,脚本内容需要放在提交时运行内。
写入脚本:其中“日期过滤1”为日期过滤组件名称,可在组件设置查看

var date1 = 日期过滤1.firstDates;
if(date1 != null){
date1 = date1[0;
date1 = substring(date1,1);
date1 = date1.split('-');
if(Number(date1[1) == 0){
    date1[0 = formatNumber((Number(date1[0)-1),"##");
    date1[1 = '11';
}else{
    date1[1 = formatNumber((Number(date1[1)-1),"##");
}
日期过滤1.firstDates = ["t"+date1[0]+'-'+date1[1;

var date2 = 日期过滤1.firstDates[0;
param["dateChoose" = date2;
refreshData();
param["upanddown" = 0;

}


7.在报告的左上角,点击更多 - 脚本,进入组件脚本编辑页面,在运行时变化内写入脚本
组件脚本入口.png



运行时变化甲苯.png

8. 脚本内容:

if(日期过滤1.firstDates == null && param["upanddown" == 1){
    date1 =  param["dateChoose";
date1 = substring(date1,1);
date1 = date1.split('-');
if(Number(date1[1) == 0){
    date1[0 = formatNumber((Number(date1[0)-1),"##");
    date1[1 = '11';
}else{
    date1[1 = formatNumber((Number(date1[1)-1),"##");
}
日期过滤1.firstDates = ["t"+date1[0]+'-'+date1[1;

var date2 = 日期过滤1.firstDates;
param["dateChoose" = date2;
}else if(日期过滤1.firstDates == null && param["upanddown" == 0){
    date1 =  param["dateChoose";
date1 = substring(date1,1);
date1 = date1.split('-');
if(Number(date1[1) == 11){
    date1[0 = formatNumber((Number(date1[0)+1),"##");
    date1[1 = '0';
}else{
    date1[1 = formatNumber((Number(date1[1)+1),"##");
}
日期过滤1.firstDates = ["t"+date1[0]+'-'+date1[1;

var date2 = 日期过滤1.firstDates;
param["dateChoose" = date2;
}



回复

使用道具 举报

monq青铜三 显示全部楼层 发表于 2021-9-9 16:09:08
刚刚试了,点击按钮没有反应,可以再帮忙看看吗
回复

使用道具 举报

monq青铜三 显示全部楼层 发表于 2021-9-9 16:09:29
永洪Tech-wj 发表于 2021-9-9 15:31
我们可以通过按钮组件来控制日期过滤组件1.新建年月表达式

刚刚试了,点击按钮没有反应,可以再帮忙看看吗
回复

使用道具 举报

永洪Tech-CIDX白银二 显示全部楼层 发表于 2021-9-9 16:37:18
monq 发表于 2021-9-9 16:09
刚刚试了,点击按钮没有反应,可以再帮忙看看吗

请在预览报告中点击按钮
回复

使用道具 举报

monq青铜三 显示全部楼层 发表于 2021-9-9 16:45:29
永洪Tech-wj 发表于 2021-9-9 16:37
请在预览报告中点击按钮

是在预览中点击的,我用的下拉参数组件绑定时间字段,移动端的布局,加了debug(下拉参数1.firstDatas),报错 : null
回复

使用道具 举报

永洪Tech-CIDX白银二 显示全部楼层 发表于 2021-9-9 17:00:42
monq 发表于 2021-9-9 16:45
是在预览中点击的,我用的下拉参数组件绑定时间字段,移动端的布局,加了debug(下拉参数1.firstDatas), ...

下拉参数组件需要修改脚本,源脚本使用的日期过滤组件,下拉参数组件获取选中值的脚本:
var date1 = 下拉参数1.getSelectedObjects()[0];
当 下拉参数1.getSelectedObjects() 不为空时,可获取到选中日期,获取到的是时间类型数据,原来的日期过滤组件获取到的是日期字符串
回复

使用道具 举报

monq青铜三 显示全部楼层 发表于 2021-9-9 18:02:08
永洪Tech-wj 发表于 2021-9-9 17:00
下拉参数组件需要修改脚本,源脚本使用的日期过滤组件,下拉参数组件获取选中值的脚本:
var date1 = 下 ...

var date1 = 下拉参数1.getSelectedObjects()[0];  -- 只改这一行吗?其他的要不要改呀,我只改第一行还是报错
回复

使用道具 举报

monq青铜三 显示全部楼层 发表于 2021-9-10 09:39:51
永洪Tech-wj 发表于 2021-9-9 17:00
下拉参数组件需要修改脚本,源脚本使用的日期过滤组件,下拉参数组件获取选中值的脚本:
var date1 = 下 ...

可以给一个下拉参数组件的例子吗
回复

使用道具 举报

高级模式
您需要登录后才可以回帖 登录 | 免费注册

  • 官方微信

    欢迎关注永洪服务号!收费为0,价值无限

    扫码关注
  • 新浪微博

    让每位用户轻松挖掘数据价值!

    访问新浪微博
  • 智能客服
50W

会员等你来哦

Copyright   ©2012-2024  北京永洪商智科技有限公司  (京ICP备12050607) 京公网安备110110802011451号 |《永洪社区协议》
返回顶部