永洪社区

标题: 过滤组件批量提交和默认参数值是否冲突? [打印本页]

作者: 小鱼儿    时间: 2023-6-1 15:46
标题: 过滤组件批量提交和默认参数值是否冲突?
本帖最后由 小鱼儿 于 2023-6-1 15:47 编辑

924版本有个单独日期过滤组件,有个查询按钮(批量提交)有个图表根据参数数据联动,参数为脚本获取日期过滤组件的值

需设置日期过滤默认:
当每月1号,显示上月,否则为本月(如:2023年6月1号,默认为2023年5月,2023年6月2日,默认为2023年6月)

默认值为本月时脚本如下,现需要根据条件更改默认值,怎么写脚本呢?
// 本年月
var this_ym_1='';
var this_ym_2='';
// 上年月
var last_ym_1='';
var last_ym_2='';

if(日期过滤1.firstDates!=null){
    this_ym_1=日期过滤1.firstDates[0;
    this_ym_1=dateAdd(parseDate(replaceRegex(this_ym_1,'y|-',''),'yyyyMM'),'month',1);
    last_ym_1=formatDate(dateAdd(this_ym_1,'month',-1),'yyyyMM');
    this_ym_1=formatDate(this_ym_1,'yyyyMM');
}

if(日期过滤2.firstDates!=null){
    this_ym_2=日期过滤2.firstDates[0;
    this_ym_2=dateAdd(parseDate(replaceRegex(this_ym_2,'y|-',''),'yyyyMM'),'month',1);
    last_ym_2=formatDate(dateAdd(this_ym_2,'month',-1),'yyyyMM');
    this_ym_2=formatDate(this_ym_2,'yyyyMM');
}

param['this_ym_1']=this_ym_1;
param['last_ym_1']=last_ym_1;
param['this_ym_2']=this_ym_2;
param['last_ym_2']=last_ym_2;



作者: yhdata_yzm    时间: 2023-6-1 15:46
小鱼儿 发表于 2023-6-2 14:26
文本参数 模式为日期 可以设置成只选择年月 不到日的形式吗?924版本

日期层级里边可以选择为月。
1.在数据集里新建日期表达,把文本转换成日期列,再新建日期表达式年月。
2.新建报告,使用文本参数选择为日期-月,不要设置默认值
3.拖入图表,绑定数据,设置过滤条件年月=文本参数
4。写脚本如下:
if(day(today())==1)
{
var a=year(today())+'-'+0+month(dateAdd(today(),'dayofyear',-1))+'-'+'01'
文本参数1.setSelectedObjects([a],STRING)
}
else
{
var a=year(today())+'-'+0+month(today())+'-'+'01'
文本参数1.setSelectedObjects([a],STRING)
}
作者: yhdata_lyaa    时间: 2023-6-1 16:07
日期过滤组件是单独模式的吗
作者: 小鱼儿    时间: 2023-6-1 16:15
yhdata_lyaa 发表于 2023-6-1 16:07
日期过滤组件是单独模式的吗

是的
作者: 小鱼儿    时间: 2023-6-1 16:24
yhdata_lyaa 发表于 2023-6-1 16:07
日期过滤组件是单独模式的吗

我在装载时运行写了如下脚本,(变化时运行的脚本还是上面的)在过滤组件上,显示为2023年5月,是对的,但是图表绑定的this_ym_1参数没生效,必须再次选中过滤组件中的5月,点击查询,才可以出来数据。

var myDate = new Date();
var years = myDate.getFullYear();
var months = myDate.getMonth();
var lastmonths = myDate.getMonth()-1;
var days=myDate.getDate();
       
        if(days==1){
        日期过滤1.firstDates=["t"+years+"-"+lastmonths];
        var this_ym_1=formatDate(dateAdd(myDate,'month',-1),'yyyyMM');
        var last_ym_1=formatDate(dateAdd(myDate,'month',-2),'yyyyMM');
        var this_ym_2=formatDate(dateAdd(myDate,'month',-1),'yyyyMM');
        var last_ym_2=formatDate(dateAdd(myDate,'month',-2),'yyyyMM');
        } else{
        日期过滤1.firstDates=["t"+years+"-"+months];
        var this_ym_1=formatDate(myDate,'yyyyMM');
        var last_ym_1=formatDate(dateAdd(myDate,'month',-1),'yyyyMM');
        var this_ym_2=formatDate(myDate,'yyyyMM');
        var last_ym_2=formatDate(dateAdd(myDate,'month',-1),'yyyyMM');
        }

param['this_ym_1']=this_ym_1;
param['last_ym_1']=last_ym_1;
param['this_ym_2']=this_ym_2;
param['last_ym_2']=last_ym_2;


作者: yhdata_yzm    时间: 2023-6-1 17:51
都用参数组件嘛,不要过滤加参数混合使用
作者: 小鱼儿    时间: 2023-6-2 14:25
yhdata_yzm 发表于 2023-6-1 17:51
都用参数组件嘛,不要过滤加参数混合使用

需要有日期过滤那个样式的组件
作者: 小鱼儿    时间: 2023-6-2 14:26
yhdata_yzm 发表于 2023-6-1 17:51
都用参数组件嘛,不要过滤加参数混合使用

文本参数 模式为日期 可以设置成只选择年月 不到日的形式吗?924版本
作者: 烽火连三月    时间: 2023-6-2 15:12
选择数据过滤吧




欢迎光临 永洪社区 (http://club.yonghongtech.com/) Powered by Discuz! X3.4