找文章 / 找答案
  • 发帖数8
  • 粉丝0

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

    精选问答 更多内容

    [数据处理] 求助,怎么实现列表过滤组件之间的联动

    yhdata_O2F01rvj玄铁一 显示全部楼层 发表于 2024-8-25 21:56:57 |阅读模式 打印 上一主题 下一主题

    求助,想要实现如下功能,点选24年的月份,23年对应月份同步点选,如果点选24年1、4、6月,23年也同步点选1、4、6月;
    24年全选,23年同样全选;
    这样的功能要如何实现呀,搞得头大,球球各位大佬。

    最佳答案

    数据分析之星
    朝花夕拾 铂金一 关注Ta

    2024-08-25 21:56:58

    哈哈 他在发帖的时候就已经扣了,现在你看到的是余额
    查看完整内容
    回复

    使用道具 举报

    精彩评论17

    朝花夕拾铂金一 显示全部楼层 发表于 2024-8-26 11:12:41
    本帖最后由 朝花夕拾 于 2024-8-26 11:22 编辑

    改造完啦

    1. var arr = year2024.getSelectedObjects()
    2. var arr2 = []
    3. for(var i in arr){
    4.     // 获取第一个参数列表的日期
    5.     a_date=arr[i]
    6.     // 第一个参数列表的日期减一年就是第二个参数列表的日期
    7.     b_date = toSQLDate(dateAdd(a_date,'year',-1),DType.DATE_TIME)
    8.     arr2.push(b_date)
    9.     // debug(b_year)
    10. }
    11. year2023.setSelectedObjects(arr2,DType.DATE_TIME)
    复制代码
    回复

    使用道具 举报

    朝花夕拾铂金一 显示全部楼层 发表于 2024-8-25 21:56:58
    yhdata_yzm 发表于 2024-8-26 10:41
    可以再简化下
    dateAdd(a,'year',-1)就可以计算年份-1
    还有楼主积分不够,还欠你30不要忘记了 ...

    哈哈 他在发帖的时候就已经扣了,现在你看到的是余额
    回复

    使用道具 举报

    yhdata_O2F01rvj玄铁一 显示全部楼层 发表于 2024-8-25 21:57:22
    上面是两个不同的过滤组件
    回复

    使用道具 举报

    阿姆斯特朗炮铂金二 显示全部楼层 发表于 2024-8-26 08:27:14
    通过脚本实现吧
    回复

    使用道具 举报

    yhdata_O2F01rvj玄铁一 显示全部楼层 发表于 2024-8-26 08:38:13

    大佬,脚本要怎么实现啊,获取24年组件的选择数据,那个值怎么能映射到23年的值
    回复

    使用道具 举报

    阿姆斯特朗炮铂金二 显示全部楼层 发表于 2024-8-26 09:20:20
    你这两个是用的什么组件?
    回复

    使用道具 举报

    嗯哼大王玄铁一 显示全部楼层 发表于 2024-8-26 09:28:47
    脚本吧

    回复

    使用道具 举报

    yhdata_O2F01rvj玄铁一 显示全部楼层 发表于 2024-8-26 09:29:18
    本帖最后由 yhdata_O2F01rvj 于 2024-8-26 09:34 编辑
    阿姆斯特朗炮 发表于 2024-8-26 09:20
    你这两个是用的什么组件?

    全部都是下拉列表参数,绑定的字段值也是相同的,都是同一个年月数据;只不过在不同年度组件里,我添加了不同年度的过滤。
    回复

    使用道具 举报

    yhdata_lyaa 显示全部楼层 发表于 2024-8-26 09:40:56
    不支持哦,脚本比较复杂。有一个想法你看看行不
    新建日期表达式-月数
    只用月数进行筛选,不管哪一年都包括了

    回复

    使用道具 举报

    朝花夕拾铂金一 显示全部楼层 发表于 2024-8-26 10:03:42
    本帖最后由 朝花夕拾 于 2024-8-26 10:17 编辑

    悬赏拿下,记得放在报表脚本的变化时运行里
    20240826101632(1).gif
    1. // year2023、year2024分别为两个下拉列表参数的名称
    2. var arr = year2024.getSelectedObjects()
    3. var arr2 = []
    4. var a_year=''
    5. var b_year=0
    6. for(var i in arr){
    7.     // 获取第一个参数中所选项的年份
    8.     a_year=parseInt(substring(arr[i],0,4))
    9.     // 参数 - 1就是第二个参数要选的年份
    10.     b_year = a_year - 1
    11.     // 获取月份,月份直接作为第二个参数的月份
    12.     b_month = substring(arr[i],4)
    13.     // 组合
    14.     b_ym = b_year + b_month
    15.     // 放入新数组
    16.     arr2.push(b_ym)
    17.     //debug(b_ym)
    18. }
    19. // 设置第二个参数的所选项为新数组
    20. year2023.setSelectedObjects(arr2,STRING)
    复制代码
    回复

    使用道具 举报

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

    • 官方微信

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

      扫码关注
    • 新浪微博

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

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

    会员等你来哦

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