找文章 / 找答案
  • 发帖数33
  • 粉丝1

此人很懒,什么也没有留下

  • 解答问题超厉害

    经常帮助其他会员答疑
精选问答 更多内容

[常用脚本] 三控件互相联动

严阳发白银二 来自手机 显示全部楼层 发表于 2024-5-11 17:50:01 |阅读模式 打印 上一主题 下一主题
1
未解决

【常用脚本】 三控件互相联动

3244 8
怎么实现两个日期组件(起始日期,截止日期)和一个文本组件(区间天数)之间联动呢,当改变起始日期,截止日期应变为区间天数+起始日期;当改变截止日期,起始日期应变为截止日期-截止日期;当改变区间天数,应变为起始日期+截止日期。
回复

使用道具 举报

精彩评论8

严阳发白银二 显示全部楼层 发表于 2024-5-11 18:22:14
具体描述:有开始时间,结束时间,区间三个参数,想实现
1.选择开始时间,根据开始时间+区间值,计算出结束时间
2.选择结束时间,根据结束时间-区间值,计算出开始时间
3.填写区间,根据结束时间-区间值,计算出开始时间。
回复

使用道具 举报

美滋滋白银二 显示全部楼层 发表于 2024-5-11 17:57:15
其实这个问题主要是要判断具体是什么组件发生了数据变化。
你用三个变量分别记录最初三个组件的初始值,然后在变化运行时的脚本中,每次判断是哪个组件当前值和之前的备份数据发生了改变,然后就做相应的处理就可以了。具体脚本会写吗?
回复

使用道具 举报

严阳发白银二 显示全部楼层 发表于 2024-5-11 18:16:20
美滋滋 发表于 2024-5-11 17:57
其实这个问题主要是要判断具体是什么组件发生了数据变化。
你用三个变量分别记录最初三个组件的初始值,然 ...

不会写,所以想请教下怎么去写脚本
回复

使用道具 举报

严阳发白银二 显示全部楼层 发表于 2024-5-11 18:21:27
yhdata_lyaa 发表于 2024-5-11 18:14
不行的哦,三个组件互相影响会存在自身引用。
只能一个影响一个哈
比如 区间天数  文本参数3.value ...

有开始时间,结束时间,区间三个参数,想实现
1.选择开始时间,根据开始时间+区间值,计算出结束时间
2.选择结束时间,根据结束时间-区间值,计算出开始时间
3.填写区间,根据结束时间-区间值,计算出开始时间
回复

使用道具 举报

美滋滋白银二 来自手机 显示全部楼层 发表于 2024-5-11 18:25:06
yhdata_lyaa 发表于 2024-5-11 18:14
不行的哦,三个组件互相影响会存在自身引用。
只能一个影响一个哈
比如 区间天数  文本参数3.value ...

按照我上面的回复,是可以的。你试试
回复

使用道具 举报

严阳发白银二 显示全部楼层 发表于 2024-5-11 18:30:36
美滋滋 发表于 2024-5-11 18:25
按照我上面的回复,是可以的。你试试

能给个参考脚本吗,主要是参数的值在变化,我怎么得到并保存最新的参数值呢?
回复

使用道具 举报

美滋滋白银二 显示全部楼层 发表于 2024-5-13 09:37:17
严阳发 发表于 2024-5-11 18:30
能给个参考脚本吗,主要是参数的值在变化,我怎么得到并保存最新的参数值呢? ...

给你举个例子,比如我分别用三个文本参数组件作为起始日期,结束日期以及日期间隔。
其实日期组件叫 文本参数1,结束日期组件叫文本参数2,间隔日期组件叫文本参数3.
1. 在装载时运行的脚本中增加下列脚本
var dataBk_a = 文本参数1.value;
var dataBk_b = 文本参数2.value;
var dataBk_c = 文本参数3.value;
2. 在变化时运行中增加下列脚本
if (文本参数1.value != dataBk_a ) {
    文本参数2.value = formatDate(dateAdd(parseDate(文本参数1.value,"yyyy-MM-dd"),"dayofyear",文本参数3.value),"yyyy-MM-dd")
    dataBk_a = 文本参数1.value;
    dataBk_b = 文本参数2.value;
}
if (文本参数2.value != dataBk_b ) {
    文本参数1.value = formatDate(dateAdd(parseDate(文本参数2.value,"yyyy-MM-dd"),"dayofyear",文本参数3.value*-1),"yyyy-MM-dd")
    dataBk_a = 文本参数1.value;
    dataBk_b = 文本参数2.value;
}
if (文本参数3.value != dataBk_c ) {
    文本参数2.value = formatDate(dateAdd(parseDate(文本参数1.value,"yyyy-MM-dd"),"dayofyear",文本参数3.value),"yyyy-MM-dd")
    dataBk_b = 文本参数2.value;
    dataBk_c = 文本参数3.value;
}
这样就可以了。可以参考下面三个图



联动1.png
联动2.png
联动3.png
回复

使用道具 举报

yhdata_La67Iq6p玄铁一 显示全部楼层 发表于 2024-5-14 15:05:14
那这三个文本组件是怎么联动的呢?我尝试了下,没成功
回复

使用道具 举报

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

  • 官方微信

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

    扫码关注
  • 新浪微博

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

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

会员等你来哦

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