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

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

  • 解答问题超厉害

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

自定义表格过滤

yhdata_e142Rc1c青铜二 显示全部楼层 发表于 2021-10-13 17:33:45 |阅读模式 打印 上一主题 下一主题
1
已解决

自定义表格过滤

6647 15
B94113A7-F824-46EC-8D46-0F1099B84AED.png QQ20211013-172843@2x.png

现在有个自定义表格,如上图1。最下方有个得分率,这个得分率是通过格间计算获得的。图二,当得分率小于1时显示指标列,如“线路有效率”此指标包含“得分、排名”2列,当下方对应得分率小于1是过滤显示此列指标,否则不显示。

最佳答案

环环 白银三 关注Ta

2021-10-13 17:33:46

如果是要隐藏一整列,通过设置列宽为0来做,先判断得分率小于1,则设置列宽为0,否则不为0,脚本写在顶部导航栏-更多-变化时运行 var loc = new Locator(["c-0"], COL, DETAIL); //c-0代表第一列,c-1代表第二列。。。 自由式表格1.setColWidth(loc, 190) //c是column的意思。c-0,不是减号,是指向,”杠“的意思。指的是第一列。就是先取得第一列的对象,然后将第一列的宽度设置为190 ...
查看完整内容
回复

使用道具 举报

精彩评论15

环环白银三 显示全部楼层 发表于 2021-10-13 17:33:46
如果是要隐藏一整列,通过设置列宽为0来做,先判断得分率小于1,则设置列宽为0,否则不为0,脚本写在顶部导航栏-更多-变化时运行
var loc = new Locator(["c-0"], COL, DETAIL);
//c-0代表第一列,c-1代表第二列。。。
自由式表格1.setColWidth(loc, 190)
//c是column的意思。c-0,不是减号,是指向,”杠“的意思。指的是第一列。就是先取得第一列的对象,然后将第一列的宽度设置为190
回复

使用道具 举报

yhdata_e142Rc1c青铜二 显示全部楼层 发表于 2021-10-13 17:47:03
本帖最后由 yhdata_e142Rc1c 于 2021-10-13 17:50 编辑

现在将脚本写在顶部导航栏-更多-变化时运行中,得分率这个变量怎么获得?而且得分率也是多个的啊?而且指标是多个的,怎么设置多个列的列宽。比方说第一个指标是要显示的,第3个指标是要显示的。怎么动态设置?这不能写死吧?
回复

使用道具 举报

环环白银三 显示全部楼层 发表于 2021-10-13 17:52:19
表格总行列数是固定的吧,这个是获取单元格数据的脚本
var a=getViewData("表1")if(a!=null &&a.exists(1000,-1,true)){
var b=a.get(1,1)   //获取表格第2行第2列的数据,表格行列数从0开始计算
}

回复

使用道具 举报

yhdata_e142Rc1c青铜二 显示全部楼层 发表于 2021-10-13 17:58:34
永洪Tech-chunyu 发表于 2021-10-13 17:52
表格总行列数是固定的吧,这个是获取单元格数据的脚本
var a=getViewData("表1")if(a!=null &&a.exists(100 ...

列数是固定的,行数不是固定的。怎么获取最后一行某列的值?
回复

使用道具 举报

美滋滋白银二 显示全部楼层 发表于 2021-10-13 18:01:08
如果你是在报表的变化是运行中的脚本的话,那你要用getviewdata()这个函数获取自由式表格的所有数据。然后可以循环获取每一行的数据。
回复

使用道具 举报

环环白银三 显示全部楼层 发表于 2021-10-13 18:01:32
rsize是总行数,根据上面的脚本,获取最后一行第2列的数据     var b=a.get(a.rsize-1,1)
回复

使用道具 举报

yhdata_e142Rc1c青铜二 显示全部楼层 发表于 2021-10-13 18:02:52
lijie 发表于 2021-10-13 18:01
如果你是在报表的变化是运行中的脚本的话,那你要用getviewdata()这个函数获取自由式表格的所有数据。然后 ...

比方说我现在要取出,最后一行第5列数据的值应该怎么写代码
回复

使用道具 举报

环环白银三 显示全部楼层 发表于 2021-10-13 18:10:22
var a=getViewData("表1")if(a!=null &&a.exists(1000,-1,true)){
var b=a.get(0,4)   //获取表格第2行第2列的数据,表格行列数从0开始计算
}
回复

使用道具 举报

yhdata_e142Rc1c青铜二 显示全部楼层 发表于 2021-10-14 09:31:51
我按照您说的写了个脚本,获取最后一行第11列的单元格的值,然后写了个判断。我发现没有执行b==1的判断,执行了else的判断。如果我换成b!=1的话,第11列,12列的单元格宽度就设置为0单元格隐藏了。所以现在应该是b的值没有获取到,或者是判断有问题,您能给看下脚本吗?
QQ20211014-092833@2x.png
QQ20211014-092752@2x.png
回复

使用道具 举报

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

  • 官方微信

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

    扫码关注
  • 新浪微博

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

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

会员等你来哦

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