永洪社区

标题: 怎样用脚本控制表格组件,刷新显示呢,求老师教 [打印本页]

作者: 好好学习    时间: 2021-4-14 19:00
标题: 怎样用脚本控制表格组件,刷新显示呢,求老师教
就比如说有三个表格,语文,数学,英语,让这三张表格每5秒显示一次,先显示语文,5秒后再只显示数学,再5秒只显示英语,5秒后又只显示语文,循环刷新显示

作者: 永洪tech-zyc    时间: 2021-4-14 19:12
本帖最后由 永洪tech-zyc 于 2021-4-14 19:15 编辑

这边 可以通过选项卡 组件实现。参考示例如下  
interval=5 //刷新间隔,单位秒,不宜太短  
var b=选项卡1.selIndex

if(b<4){
选项卡1.selIndex=b+1
}else{
选项卡1.selIndex=0

}
if(param['a']<4){
param['a']++
}else{
param['a']=0
}



作者: 好好学习    时间: 2021-4-14 21:17
永洪tech-zyc 发表于 2021-4-14 19:12
这边 可以通过选项卡 组件实现。参考示例如下  
interval=5 //刷新间隔,单位秒,不宜太短  
var b=选项卡1 ...

如果是嵌套在轮播组件里呢,轮播里不能放选项卡组件呢
作者: 永洪tech-zyc    时间: 2021-4-15 09:20
本帖最后由 永洪tech-zyc 于 2021-4-15 09:21 编辑
prx 发表于 2021-4-14 21:17
如果是嵌套在轮播组件里呢,轮播里不能放选项卡组件呢

轮播组件 分布放入几个科目的表吗,截图看看你当前是什么样的
作者: 好好学习    时间: 2021-4-15 10:25
就是这样的

作者: 好好学习    时间: 2021-4-15 10:25
永洪tech-zyc 发表于 2021-4-15 09:20
轮播组件 分布放入几个科目的表吗,截图看看你当前是什么样的

在下面图片
作者: 永洪tech-zyc    时间: 2021-4-15 10:29
本帖最后由 永洪tech-zyc 于 2021-4-15 10:33 编辑
prx 发表于 2021-4-15 10:25
在下面图片

好的我想想看,你这边初  中  高 三个分布是独立的表格对把,这边是想实现表格切换 还是,轮播页切换呢
作者: 好好学习    时间: 2021-4-15 10:43
永洪tech-zyc 发表于 2021-4-15 10:29
好的我想想看,你这边初  中  高 三个分布是独立的表格对把,这边是想实现表格切换 还是,轮播页切换呢 ...

1.一共三个表格组件
2.每个表格里都有初中高,只是展示的内容不同
3.第一个表格是初中高的体制,第二个表格是初中高的教师信息,第三个表格是初中高的学生信息
作者: 好好学习    时间: 2021-4-15 10:44
永洪tech-zyc 发表于 2021-4-15 10:29
好的我想想看,你这边初  中  高 三个分布是独立的表格对把,这边是想实现表格切换 还是,轮播页切换呢 ...

然后三张表格来回循环切换,5秒一次
作者: 永洪tech-zyc    时间: 2021-4-15 10:45
这边要不考虑把这三个表放在轮播组件里呢,从报表设计的角度。脚本的话比较麻烦,如果不能用选项卡的话
作者: 好好学习    时间: 2021-4-15 10:46
永洪tech-zyc 发表于 2021-4-15 10:45
这边要不考虑把这三个表放在轮播组件里呢,从报表设计的角度。脚本的话比较麻烦,如果不能用选项卡的话 ...

轮播不能套轮播吧,这个就是要放在一页轮播页里的
作者: 永洪tech-zyc    时间: 2021-4-15 10:56
prx 发表于 2021-4-15 10:46
轮播不能套轮播吧,这个就是要放在一页轮播页里的

是不能但是可以把他独立出来吗,从设计的角度
作者: 美滋滋    时间: 2021-4-15 11:04
我倒是有一个小思路。
我的想法是报表设定一个参数,然后报表设定5秒一循环,每次循环时该参数加1,然后用该参数除以你要轮播组件的个数,用余数来控制组件的显示与否,应该可以达到你的需求
作者: 永洪tech-zyc    时间: 2021-4-15 11:08
本帖最后由 永洪tech-zyc 于 2021-4-15 11:15 编辑
lijie 发表于 2021-4-15 11:04
我倒是有一个小思路。
我的想法是报表设定一个参数,然后报表设定5秒一循环,每次循环时该参数加1,然后用 ...

这样不行,我尝试了 用interval 循环,但是他循环的是脚本自身,并不能缓存执行的次数,每次都会从新赋值计算。无法判断循环次数。下面是我写的模拟脚本 ,param["a"] 初始化为1,模拟两个组件循环切换。测试结果,a的值一直2,觉得需要实现一个锁的机制,实现缓存下执行的次数

//装载时
param[ = 1
var a = param[


//运行时

interval = 5
debug(param["a")
a++
debug(a)
if(a<=2){
    if(a==1){
提交1.visible = true
图表1.visible= true
提交2.visible = false
图表2.visible = false
}else if(a == 2){
提交1.visible = false
图表1.visible= false
提交2.visible = true
图表2.visible = true
}
}else {
a = 1
}




作者: 美滋滋    时间: 2021-4-15 11:15
本帖最后由 lijie 于 2021-4-15 11:16 编辑

在参数设置中设置参数默认值,然后在装载时部署你的脚本,不要在变化时部署同时不是用a的值来判断,是用a除以你要控制轮播的个数,比如你的例子中,用a除以2,然后取余。用余数来判断。
比如余数是0显示哪些组件,隐藏哪些组件;余数是1显示哪些组件,隐藏哪些组件

作者: 永洪tech-zyc    时间: 2021-4-15 11:22
lijie 发表于 2021-4-15 11:15
在参数设置中设置参数默认值,然后在装载时部署你的脚本,不要在变化时部署同时不是用a的值来判断,是用a除 ...

我试试 改改
作者: 美滋滋    时间: 2021-4-15 11:22
interval = 5
param["a"] = param["a"] + 1
if(param["a"]%2 == 0){
提交1.visible = true
图表1.visible= true
提交2.visible = false
图表2.visible = false
}else if(param["a"]%2 == 1){
提交1.visible = false
图表1.visible= false
提交2.visible = true
图表2.visible = true
}

作者: 永洪tech-zyc    时间: 2021-4-15 11:29
lijie 发表于 2021-4-15 11:22
interval = 5
param["a"] = param["a"] + 1
if(param["a"]%2 == 0){

可以的,无论装载时和变化时都可以,我不应该在脚本中给与赋值和传值
interval = 5
debug(param["a"])
param["a"]++
debug(param["a"])
if(param["a"]%2==0){
提交1.visible = true
图表1.visible= true
提交2.visible = false
图表2.visible = false
}else{
提交1.visible = false
图表1.visible= false
提交2.visible = true
图表2.visible = true
}


作者: 美滋滋    时间: 2021-4-15 11:31
本帖最后由 lijie 于 2021-4-15 11:32 编辑

搞定了吧?最好放在装载时。不过这个方法只是我的一个小思路,其实并不是很好,等于是让你的报表每5秒重新加载一次,如果报表直连数据库的话,也会同时增加数据库访问。

作者: 永洪tech-zyc    时间: 2021-4-15 11:32
lijie 发表于 2021-4-15 11:22
interval = 5
param["a"] = param["a"] + 1
if(param["a"]%2 == 0){

赞,赞~~
作者: 永洪tech-zyc    时间: 2021-4-15 11:35
lijie 发表于 2021-4-15 11:31
搞定了吧?最好放在装载时。不过这个方法只是我的一个小思路,其实并不是很好,等于是让你的报表每5秒重新 ...

变化时应该不会让报告重新加载把,这边脚本的interval, 是当前脚本循环,如果在加载中循环脚本,是不是就意味着,报告循环重新加载,然后触发加载时运行 才实现加载时脚本的 循环执行
作者: 美滋滋    时间: 2021-4-15 11:38
你的 interval = 5 设置的其实就是报表的刷新,所以是报表每5秒刷新一次。
我觉得你可以考虑尝试一下在各自的组件的脚本中进行刷新设置。

作者: 永洪tech-zyc    时间: 2021-4-15 11:44
lijie 发表于 2021-4-15 11:38
你的 interval = 5 设置的其实就是报表的刷新,所以是报表每5秒刷新一次。
我觉得你可以考虑尝试一下在各自 ...

这样确实好些,但是不能绑定在 楼主情景下 相关的组件脚本中,建议放在 “第三方” 组件下尝试
作者: 美滋滋    时间: 2021-4-15 11:51
永洪tech-zyc 发表于 2021-4-15 11:44
这样确实好些,但是不能绑定在 楼主情景下 相关的组件脚本中,建议放在 “第三方” 组件下尝试 ...

能不能给个实例
作者: 永洪tech-zyc    时间: 2021-4-15 13:18
本帖最后由 永洪tech-zyc 于 2021-4-15 13:19 编辑

模拟案例,语文,数学两个关联 表 轮询切换

1.  编辑参数中自定义一个参数 设置刷新的初始值,这里设置初始值为0
(, 下载次数: 320)