yhdata_xrvXuQqg白银一
昨天 16:08 发布在问答
怎么写脚本获取过滤日期组件的开始日期和结束日期
本帖最后由 yhdata_xrvXuQqg 于 2025-7-10 16:16 编辑

怎么写脚本获取过滤日期组件的开始日期和结束日期

并且展示到界面,展示成文本或者富文本,表格一类不允许修改的组件?

因为我现在有一些快捷日期是写好了脚本,写好脚本的时候,过滤条件修改日期是不生效了,但是组件能点开修改,只是修改不生效,导致操作错误

我就想快捷日期的时候,隐藏过滤条件,把开始日期和结束日期显示到文本(或者富文本或者表格这种无法修改的组件),

等使用自定义按钮的时候,则显示过滤日期组件这个时候可以自行修改,避免客户在快捷日期的时候改了日期又不能生效,干脆就不让改
87
6
精彩评论6
yhdata_lyaa
发表于 昨天 16:25 显示全部楼层
获取日期过滤组件的值,参考https://club.yonghongtech.com/thread-109226-1-1.html再赋值给参数,写到文本组件或富文本   ?{参数名}
或者直接写脚本赋值给文本组件
文本1.data=获取的值
回复

使用道具 2#

yhdata_xrvXuQqg白银一 回复yhdata_lyaa
发表于 2025-07-10 16:39:39
debug(param["起始日期"]) 为什么取的这个值得到一堆乱码
回复

yhdata_xrvXuQqg白银一 回复yhdata_xrvXuQqg白银一
发表于 2025-07-10 16:39:58
[Ljava.lang.Object;@653670cb
回复

yhdata_lyaa回复yhdata_xrvXuQqg白银一
发表于 2025-07-10 16:49:53
param["起始日期"]是怎么来的
回复

yhdata_xrvXuQqg白银一
发表于 昨天 16:51 显示全部楼层
var start=日期过滤1.firstDates[0]
//获取以t开头的文本形式的起始日期
var ww=split(substring(start,1),"_")
//截取t字后面的字符串,并以"-“为分隔符转换为数组
var y=ww[0]//年
var m=ww[1]+1//月,因日期过滤的月是0-11,需加1
var d=ww[2]//日
param["ww"]=date(y,m,d)
debug(param["ww"])
这个得到的值是Sun Nov 30 00:00:00 CST 2


var a = 下拉列表参数1.getSelectedObjects()[0];
if(a == '昨日'){
var star_date = param["_LAST_FULL_DAY_"];
var end_date = param["_LAST_FULL_DAY_"];

var year1 = year(star_date);
var month1 = month(star_date)-1 ;
var day1 = day(star_date);

var star_datestr = 't' + year1 + '-' +month1 + '-' + day1;

日期过滤1.firstDates = [star_datestr];
日期过滤1.secondDates = [star_datestr];
param['起始日期']=[star_datestr];
param['截止日期']=[star_datestr];


}else if(a == '本周'){
var star_date = param["_THIS_YEAR_WEEK_"];
var end_date = param["_LAST_FULL_DAY_"];
var week_date= weekdayname(param["_THIS_FULL_DAY_"]);
var lastweek_date = param["_LAST_YEAR_WEEK_"];
var lastweekend_date = dateAdd(param["_THIS_YEAR_WEEK_"],"dayofyear",-1);

if(week_date=='星期一'){
var year1 = year(lastweek_date);
var month1 = month(lastweek_date)-1;
var day1 = day(lastweek_date);

var year2 = year(lastweekend_date);
var month2 = month(lastweekend_date)-1;
var day2 = day(lastweekend_date);

}else{
var year1 = year(star_date);
var month1 = month(star_date)-1;
var day1 = day(star_date);

var year2 = year(end_date);
var month2 = month(end_date)-1;
var day2 = day(end_date);
}

var star_datestr = 't' + year1 + '-' +month1 + '-' + day1;
var end_datestr = 't' + year2 + '-' +month2 + '-' + day2;


日期过滤1.firstDates = [star_datestr];
日期过滤1.secondDates = [end_datestr];
param['起始日期']=[star_datestr];
param['截止日期']=[end_datestr];



}else if(a == '本月'){

var star_date = param["_THIS_YEAR_MONTH_"];
var end_date = param["_LAST_FULL_DAY_"];
var month_date= param["_THIS_FULL_DAY_"];
var lastmonth_date = param["_LAST_YEAR_MONTH_"];
var lastmonthend_date = dateAdd(param["_THIS_YEAR_MONTH_"],"dayofyear",-1);


if(day(month_date)=='01'){   
var year1 = year(lastmonth_date);
var month1 = month(lastmonth_date)-1;
var day1 = day(lastmonth_date);

var year2 = year(lastmonthend_date);
var month2 = month(lastmonthend_date)-1;
var day2 = day(lastmonthend_date);

}else{
var year1 = year(star_date);
var month1 = month(star_date)-1;
var day1 = day(star_date);

var year2 = year(end_date);
var month2 = month(end_date)-1;
var day2 = day(end_date);
}

var star_datestr = 't' + year1 + '-' +month1 + '-' + day1;
var end_datestr = 't' + year2 + '-' +month2 + '-' + day2;


日期过滤1.firstDates = [star_datestr];
日期过滤1.secondDates = [end_datestr];
param['起始日期']=[star_datestr];
param['截止日期']=[end_datestr];



}else if(a == '本季'){

var star_date = param["_THIS_YEAR_QUARTER_"];
var end_date = param["_LAST_FULL_DAY_"];
var quarter_date= param["_THIS_FULL_DAY_"];
var lastquarter_date = param["_LAST_YEAR_QUARTER_"];
var lastquarterend_date = dateAdd(param["_THIS_YEAR_QUARTER_"],"dayofyear",-1);

if(year(star_date)==year(quarter_date)&&month(star_date)==month(quarter_date)&&day(star_date)==day(quarter_date)){
var year1 = year(lastquarter_date);
var month1 = month(lastquarter_date)-1;
var day1 = day(lastquarter_date);

var year2 = year(lastquarterend_date);
var month2 = month(lastquarterend_date)-1;
var day2 = day(lastquarterend_date);

}else{
var year1 = year(star_date);
var month1 = month(star_date)-1;
var day1 = day(star_date);

var year2 = year(end_date);
var month2 = month(end_date)-1;
var day2 = day(end_date);
}

var star_datestr = 't' + year1 + '-' +month1 + '-' + day1;
var end_datestr = 't' + year2 + '-' +month2 + '-' + day2;
日期过滤1.firstDates = [star_datestr];
日期过滤1.secondDates = [end_datestr];
param['起始日期']=[star_datestr];
param['截止日期']=[end_datestr];

}else if(a == '本年'){

var star_date = param["_THIS_YEAR_MONTH_"];
var end_date = param["_LAST_FULL_DAY_"];
var year_date= param["_THIS_FULL_DAY_"];

if(month(star_date)=='01'&&day(star_date)=='01'){
var year1 = year(star_date)-1;
var month1 = month(star_date)-1;
var day1 = day(star_date);

var year2 = year(end_date);
var month2 = month(end_date)-1;
var day2 = day(end_date);
//如果是一年的第一天则返回去年第一天到昨天的数据
var star_datestr = 't' + year1 + '-' +'00' + '-' + '01';
var end_datestr = 't' + year2 + '-' +month2 + '-' + day2;

}else{
var year1 = year(star_date);
var month1 = month(star_date)-1;
var day1 = day(star_date);

var year2 = year(end_date);
var month2 = month(end_date)-1;
var day2 = day(end_date);
var star_datestr = 't' + year1 + '-' +'00' + '-' + '01';
var end_datestr = 't' + year2 + '-' +month2 + '-' + day2;
}


日期过滤1.firstDates = [star_datestr];
日期过滤1.secondDates = [end_datestr];
param['起始日期']=[star_datestr];
param['截止日期']=[end_datestr];
}
else if(a == '自定义'){

param['起始日期']=日期过滤1.firstDates;
param['截止日期']=日期过滤1.secondDates;

}
else{
//无需写脚本
}
这个拿到的起始日期值是乱码
回复

使用道具 3#

yhdata_xrvXuQqg白银一 回复yhdata_xrvXuQqg白银一
发表于 2025-07-10 16:51:58
但是我这个其实日期作为参数传参到其他报表是OK的正确的,现在想通过文本展示出来就不行
回复

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

  • 官方微信

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

    扫码关注
  • 新浪微博

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

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

用户等你来哦

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