永洪社区

标题: 三控件互相联动 [打印本页]

作者: 严阳发    时间: 2024-5-11 17:50
标题: 三控件互相联动
怎么实现两个日期组件(起始日期,截止日期)和一个文本组件(区间天数)之间联动呢,当改变起始日期,截止日期应变为区间天数+起始日期;当改变截止日期,起始日期应变为截止日期-截止日期;当改变区间天数,应变为起始日期+截止日期。
作者: 美滋滋    时间: 2024-5-11 17:57
其实这个问题主要是要判断具体是什么组件发生了数据变化。
你用三个变量分别记录最初三个组件的初始值,然后在变化运行时的脚本中,每次判断是哪个组件当前值和之前的备份数据发生了改变,然后就做相应的处理就可以了。具体脚本会写吗?
作者: 严阳发    时间: 2024-5-11 18:16
美滋滋 发表于 2024-5-11 17:57
其实这个问题主要是要判断具体是什么组件发生了数据变化。
你用三个变量分别记录最初三个组件的初始值,然 ...

不会写,所以想请教下怎么去写脚本
作者: 严阳发    时间: 2024-5-11 18:21
yhdata_lyaa 发表于 2024-5-11 18:14
不行的哦,三个组件互相影响会存在自身引用。
只能一个影响一个哈
比如 区间天数  文本参数3.value ...

有开始时间,结束时间,区间三个参数,想实现
1.选择开始时间,根据开始时间+区间值,计算出结束时间
2.选择结束时间,根据结束时间-区间值,计算出开始时间
3.填写区间,根据结束时间-区间值,计算出开始时间
作者: 严阳发    时间: 2024-5-11 18:22
具体描述:有开始时间,结束时间,区间三个参数,想实现
1.选择开始时间,根据开始时间+区间值,计算出结束时间
2.选择结束时间,根据结束时间-区间值,计算出开始时间
3.填写区间,根据结束时间-区间值,计算出开始时间。

作者: 美滋滋    时间: 2024-5-11 18:25
yhdata_lyaa 发表于 2024-5-11 18:14
不行的哦,三个组件互相影响会存在自身引用。
只能一个影响一个哈
比如 区间天数  文本参数3.value ...

按照我上面的回复,是可以的。你试试
作者: 严阳发    时间: 2024-5-11 18:30
美滋滋 发表于 2024-5-11 18:25
按照我上面的回复,是可以的。你试试

能给个参考脚本吗,主要是参数的值在变化,我怎么得到并保存最新的参数值呢?
作者: 美滋滋    时间: 2024-5-13 09:37
严阳发 发表于 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;
}
这样就可以了。可以参考下面三个图




作者: yhdata_La67Iq6p    时间: 2024-5-14 15:05
那这三个文本组件是怎么联动的呢?我尝试了下,没成功





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