永洪社区

标题: 下拉框与文本框联动问题 [打印本页]

作者: luoqu    时间: 2021-12-14 20:04
标题: 下拉框与文本框联动问题
本帖最后由 luoqu 于 2021-12-14 20:43 编辑

目前原数据如下图所示,各系列各月份的目标值不同,想要实现当选择相应系列和月份时,文本框显示对应的目标值,当全选时,文本框显示各系列的总目标值,例如,选择A系列,11月份,目标值为50,如果系列为全选,11月份,目标值则为150,应如何实现呢?下面是我的做法,但这做法,单独选择一个系列值是对的,但全选是不对的,应该如何修改呢?




作者: _贝贝    时间: 2021-12-14 20:04
并没有看到你这个组件有全选的操作呢,我脚本是判断全选与否来做合计,参考下这个案例吧,如果是数据没对上先检查逻辑是否合理。
作者: 环环    时间: 2021-12-14 20:11
图片得作为附件上传才行,文本框加过滤器就行了,过滤器参考如下

作者: luoqu    时间: 2021-12-14 20:22
本帖最后由 luoqu 于 2021-12-14 20:23 编辑
永洪Tech-chunyu 发表于 2021-12-14 20:11
图片得作为附件上传才行,文本框加过滤器就行了,过滤器参考如下

主要问题的点不是过滤器问题,这个我知道,我是想问如何用文本框显示出来,并且当选择系列为“全选”时,求出相应的目标值总和,但不是单纯的sum,因为还有月份的问题,同一个月份同一系列的目标是相同的,但不同系列的目标是不同的
作者: 环环    时间: 2021-12-14 20:29
出相应的目标值总和,最终结果不也是加起来吗,还是说放到不同组件里显示,有原型图,看下效果呢
作者: luoqu    时间: 2021-12-14 20:50
永洪Tech-chunyu 发表于 2021-12-14 20:29
出相应的目标值总和,最终结果不也是加起来吗,还是说放到不同组件里显示,有原型图,看下效果呢 ...

放到不同组件,例如还需要用折线图展示每个月份的目标值,也是要关联系列控件,原型图还有很多的交互,要看就太复杂了
作者: 环环    时间: 2021-12-14 21:19
放到不同组件里的话,过滤器这样子设置呢,不同组件先设置定值,只有当过滤器同时选中了这个值时,数据才会显示
作者: luoqu    时间: 2021-12-15 09:24
永洪Tech-chunyu 发表于 2021-12-14 21:19
放到不同组件里的话,过滤器这样子设置呢,不同组件先设置定值,只有当过滤器同时选中了这个值时,数据才会 ...

现在问题不是这个过滤器的问题啊
作者: luoqu    时间: 2021-12-15 09:28
luoqu 发表于 2021-12-15 09:24
现在问题不是这个过滤器的问题啊

你给他设置一个定值,其实意思就是先默认一个值嘛,但我这里是要复选的,跟这个定值没多大关系,反正就是选择所有系列的时候,求相应目标值总和,例子上应该很明白了,要不你按着做一个模板,你可能就明白我的问题所在了哦

作者: _贝贝    时间: 2021-12-15 11:14
您好,指的是全选的时候文本框展示一个数据是吗   A+B的总和 150?而不是说 只展AB中的一个最大值100
作者: luoqu    时间: 2021-12-15 11:49
永洪tech-zxx 发表于 2021-12-15 11:14
您好,指的是全选的时候文本框展示一个数据是吗   A+B的总和 150?而不是说 只展AB中的一个最大值100 ...

是的哦,我知道最大值肯定是不对的,但就是不知道有什么方法能处理呢
作者: _贝贝    时间: 2021-12-15 13:52
您好,当前max函数的意义是返回字段中最大值的数据,全选的时候就是返回这两个数据中最大值,这个无法直接实现全选时直接将多选的数据内分别最大值相加。
作者: luoqu    时间: 2021-12-15 14:23
永洪tech-zxx 发表于 2021-12-15 13:52
您好,当前max函数的意义是返回字段中最大值的数据,全选的时候就是返回这两个数据中最大值,这个无法直接 ...

我知道啊,我说了MAX是不对的啊,我是想知道如何才能求出来
作者: _贝贝    时间: 2021-12-15 14:48
luoqu 发表于 2021-12-15 14:23
我知道啊,我说了MAX是不对的啊,我是想知道如何才能求出来

亲,这个是实现不了的呀 如果要做这样的效果 ,可以考虑在当前基础上再绑定两个文本组件1、文本2做筛选,分别代表种类A和种类B的筛选结果,再用一个文本组件3获取1、2的值展示A+B的效果,和文本组件4max函数的文本组件叠放在一起
再用脚本判断列表参数是否全选,如果全选就显示文本组件3:A+B的值 ,隐藏文本4;不全选就隐藏文本3,显示文本4 .


作者: luoqu    时间: 2021-12-15 14:51
永洪tech-zxx 发表于 2021-12-15 14:48
亲,这个是实现不了的呀 如果要做这样的效果 ,可以考虑在当前基础上再绑定两个文本组件1、文本2做筛选, ...

请问这个脚本具体如何写呢?
作者: _贝贝    时间: 2021-12-15 14:57
顶部--更多--脚本--变化时运行:if(列表参数1.getObjects().length==列表参数1.getSelectedObjects().length)//判断是否全选{
var a =文本1.data+文本2.data
文本3.data='目标值是'+a  
文本3.width=200
文本4.width=0  //自由布局下生效
}
else{
文本3.width=0
文本4.width=200
}


作者: luoqu    时间: 2021-12-15 15:31
永洪tech-zxx 发表于 2021-12-15 14:57
顶部--更多--脚本--变化时运行:if(列表参数1.getObjects().length==列表参数1.getSelectedObjects().lengt ...

但是var a =文本1.data+文本2.data出来的结果是两个文本拼接起来而不是相加哦
作者: _贝贝    时间: 2021-12-15 15:52
luoqu 发表于 2021-12-15 15:31
但是var a =文本1.data+文本2.data出来的结果是两个文本拼接起来而不是相加哦

我本地是相加的,文本1和文本2是绑定的字段做过滤,版本不同计算逻辑可能会不同,拼接的话使用parseInt转换下
parseInt(文本1.data)+parseInt(文本2.data)
不同类型转换参考帮助中心说明
https://www.yonghongtech.com/hel ... _highlightsub=parse
作者: luoqu    时间: 2021-12-15 18:58
用上面大神的方法做了一下,发现文本框和其他控件联动时出现顺序乱了,版面初始化默认值选项是“月累计”时,全选的数据正确,当切换到“年累计”时,最右边的文本数据还是“月累计”的数据,再切换到“月累计”时,最右边的文本数据却显示“年累计”的数据了,然后数据就乱了,无法与时间的选项进行对应联动,请问脚本需要如何修改呢?(另外,时间选项同时是和左边的日期选项进行联动的)


(, 下载次数: 672)