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

[常用脚本] 开始日期与结束日期的使用

yhdata_8957青铜二 显示全部楼层 发表于 2024-11-4 15:10:08
yhdata_lyaa 发表于 2024-11-4 14:26
1.装载时运行脚本
2.变化时运行
开始日期会自动变成结束日期往前推12月的日期

我又试了一下,变化时运行的脚本优先级会高于装载时运行,所以我打开页面的时候,开始日期就和结束日期相差一年了,这个要怎么处理呢
回复

使用道具 举报

yhdata_8957青铜二 显示全部楼层 发表于 2024-11-4 16:08:00
yhdata_Dkp2dKHh 发表于 2024-11-4 15:40
直接在变化时运行写就行啦,开始结束参数组件不设置默认,勾选。
js脚本加个判断
1.当开始参数为空,参数赋 ...

脚本里面只能使用iif函数啊
回复

使用道具 举报

yhdata_lyaa 显示全部楼层 发表于 2024-11-4 16:17:43
yhdata_8957 发表于 2024-11-4 14:46
你好,我根据这个代码得到的场景是:1、点击页面后,开始日期为去年的今天,结束日期为今年的昨天---所以 ...

应该是与第二点冲突了,报告打开先执行装载时运行脚本,再执行变化时运行脚本。
结束日期有默认值昨天,变化运行又设置了 开始=结束-12
回复

使用道具 举报

yhdata_lyaa 显示全部楼层 发表于 2024-11-4 16:18:46
参考楼上的办法解决试试
回复

使用道具 举报

yhdata_8957青铜二 显示全部楼层 发表于 2024-11-4 16:22:11
yhdata_Dkp2dKHh 发表于 2024-11-4 16:14
脚本里JS循环 判断都可以写,别只看他们列出的函数,你这个 在if里面做几个判断 赋值就再结合过滤就ok啦 ...

我大概知道你的思路,但我不太清楚怎么去写,if ('开始日期' ==null ),then var a=dateTrunc('year',today())
开始日期.setSelectedObjects([a], DATE);
//开始日期设置今年第一天
结束日期.setSelectedObjects([param["_LAST_FULL_DAY_"]], DATE);
//结束日期默认为当年昨日

elseif  var  b=dateAdd(结束日期.getSelectedObjects()[0],'month',-12)
开始日期.setSelectedObjects(, DATE);
//开始日期与结束日期相差12月、

类似这样去写吗?
回复

使用道具 举报

yhdata_8957青铜二 显示全部楼层 发表于 2024-11-4 16:48:21
yhdata_Dkp2dKHh 发表于 2024-11-4 16:32
if (isNull(param["结束参数"])) {
    param["结束参数"]=昨天;
    param["开始参数"]=昨天年份的第一天; ...

感谢大家回复
回复

使用道具 举报

yhdata_8957青铜二 显示全部楼层 发表于 2024-11-4 16:56:06
yhdata_Dkp2dKHh 发表于 2024-11-4 16:32
if (isNull(param["结束参数"])) {
    param["结束参数"]=昨天;
    param["开始参数"]=昨天年份的第一天; ...

function getYesterday() {
    var today = new Date();
    today.setDate(today.getDate() - 1);
    return today;
}

function getFirstDayOfYear(date) {
    return new Date(date.getFullYear(), 0, 1);
}

if (isNull(param["结束日期"])) {
    param["结束日期"] = getYesterday();
    param["开始日期"] = getFirstDayOfYear(getYesterday());
} else {
    var endDate = new Date(param["结束日期"]);
    endDate.setMonth(endDate.getMonth() - 12);
    param["开始日期"] = endDate;
}(;´Д`)没有生效
回复

使用道具 举报

yhdata_8957青铜二 显示全部楼层 发表于 2024-11-5 10:36:58
yhdata_青山 发表于 2024-11-4 14:50
我发的已经是全部代码了,你先新建一个页面,把代码放上去试一下,可以的话再加你自己的代码,提交时运行 ...

我按你的方法去试了,和大家的效果一样,装载时运行的脚本在加上变化时运行的脚本后都不生效了
回复

使用道具 举报

yhdata_8957青铜二 显示全部楼层 发表于 2024-11-5 10:49:55
本帖最后由 yhdata_8957 于 2024-11-5 10:51 编辑
yhdata_Dkp2dKHh 发表于 2024-11-4 17:11
if (isNull(param["结束参数"])) {
    param["结束参数"]=param["_LAST_FULL_DAY_"];
    param["开始参 ...

我修改了变量 放进变化时运行,都不生效你的逻辑就是判断结束日期是否为空来决定开始日期的变化形式吧
回复

使用道具 举报

yhdata_l2BtxABd新手上路 显示全部楼层 发表于 2024-11-5 12:06:26
yhdata_lyaa 发表于 2024-11-4 13:34
1.下拉参数组件单选吗,是绑定的日期字段吗,确认有对应的日期数据?
2.可以写脚本控制,建议使用文本参数 ...

回复

使用道具 举报

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

  • 官方微信

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

    扫码关注
  • 新浪微博

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

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

用户等你来哦

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