永洪社区

标题: 使用参数列,预览报告时,初始显示所有列,刷新后才动..... [打印本页]

作者: xixixiyao    时间: 2024-3-20 18:11
标题: 使用参数列,预览报告时,初始显示所有列,刷新后才动.....
如题
使用了动态参数列,2024年应该只显示1、2月的列数据,但是初始加载进去,1至12月全部显示了,如果切换年度,或者使用报告的刷新功能
就会变成24年只显示1、2月
怎么做到,初始一进来选择24年的时候,就只显示1、2月呢??
脚本中增加了refreshData(),不行


预览初始一进来



使用报告刷新功能,或切换年份后,24年是这样


作者: yhdata_lyaa    时间: 2024-3-20 18:23
哪个是用的参数列,怎么设置的,没有写脚本吧
作者: yh_PV8bsVj6    时间: 2024-3-20 19:26
如何设置参数列
作者: xixixiyao    时间: 2024-3-21 09:22
yh_PV8bsVj6 发表于 2024-3-20 19:26
如何设置参数列

使用的是数据集中新建参数列

作者: xixixiyao    时间: 2024-3-21 09:27
yhdata_lyaa 发表于 2024-3-20 18:23
哪个是用的参数列,怎么设置的,没有写脚本吧

没有脚本控制,就是新建了参数列,里面的列名与下拉列表参数一致2024年正常查出来应该只有这些的



但是每次查看报告,初始时候就会是全部,重新选择年份之后就能正常

作者: 美滋滋    时间: 2024-3-21 09:36
1.加载时有脚本吗?
2.月份组件有过滤条件吗?
3.变化时有什么脚本吗?
作者: xixixiyao    时间: 2024-3-21 09:48
美滋滋 发表于 2024-3-21 09:36
1.加载时有脚本吗?
2.月份组件有过滤条件吗?
3.变化时有什么脚本吗?

1.加载脚本,主要是控制权限
refreshData()
文本1.width=0
param["bm_org5"]=文本1.data
下拉列表参数2.width=0

if(isNull(param['bm_org5')==true||param['bm_org5']==''||param['bm_org5']=='(NULL)'){
图表1.visible=false
图表1.exportVisible=false
debug('抱歉,您没有数据查看权限,请联系管理员')
}
else{
图表1.visible=true
图表1.exportVisible=true
}

if(isNull(param['bm_org5')==false&&param['bm_org5']!='all'){
param["limit_org5"]=param["bm_org5"
}


2.月份组件无过滤,数据是由数据集生成,数据集中 有年度参数限制


3.变化时脚本,赋值参数refreshData()
param["var_year"]=文本参数_year.getSelectedObjects()[0
param["var_year"]=substring(param["var_year",0,4)



作者: humming    时间: 2024-3-21 10:05
xixixiyao 发表于 2024-3-21 09:48
1.加载脚本,主要是控制权限
refreshData()
文本1.width=0

应该是报告的初始化脚本里没有对参数var_year进行赋值导致的

作者: 美滋滋    时间: 2024-3-21 10:20
humming 发表于 2024-3-21 10:05
应该是报告的初始化脚本里没有对参数var_year进行赋值导致的

应该是这个问题。数据集是参数数据集,而画面初始化的时候,没有给数据集传递有效的参数。
另外,建议在加载时运行的脚本中,增加给参数组件赋值初始数据的逻辑。
作者: xixixiyao    时间: 2024-3-21 10:36
humming 发表于 2024-3-21 10:05
应该是报告的初始化脚本里没有对参数var_year进行赋值导致的

初始加载报告的时候,不执行变化的脚本吗?
我记得之前问过永洪的技术人员,说是加载时,先执行加载脚本,再执行变化脚本
作者: xixixiyao    时间: 2024-3-21 10:37
美滋滋 发表于 2024-3-21 10:20
应该是这个问题。数据集是参数数据集,而画面初始化的时候,没有给数据集传递有效的参数。
另外,建议在 ...

把变化的赋值脚本在加载里,重复写了之后就没问题了。
我以为加载时候,会先执行加载再执行变化脚本,所以就没有把变化的再写一次
作者: yhdata_lyaa    时间: 2024-3-21 10:56
初始加载报告的时候,会执行变化时运行的脚本
作者: xixixiyao    时间: 2024-3-21 11:10
yhdata_lyaa 发表于 2024-3-21 10:56
初始加载报告的时候,会执行变化时运行的脚本

那我变化时有给年度参数赋值啊,为啥必须在装载时,再加上赋值才能对呢?
是还没有执行变化的赋值,页面就加载完成了吗?
作者: yhdata_lyaa    时间: 2024-3-21 11:36
var_year 在变化时运行赋默认值,是从文本参数获取的?
默认值需要初始化变量和定义参数要在“装载时运行”写哦,仅在首次加载报告时执行一次。
作者: xixixiyao    时间: 2024-3-21 13:08
yhdata_lyaa 发表于 2024-3-21 11:36
var_year 在变化时运行赋默认值,是从文本参数获取的?
默认值需要初始化变量和定义参数要在“装载时运行” ...

对的,var_year 在变化时的脚本中,从文本参数进行赋值

装载没有赋值脚本,在运行变化脚本的时候 也不赋值吗?
作者: 郭晓蕊    时间: 2024-3-21 14:38
1
作者: yhdata_lyaa    时间: 2024-3-21 16:58
xixixiyao 发表于 2024-3-21 13:08
对的,var_year 在变化时的脚本中,从文本参数进行赋值

装载没有赋值脚本,在运行变化脚本的时候 也不赋 ...

会的,但是放在变化时运行 只要一变化,都会赋值一样的值,等于写死了一样,手选也改变不了参数值
作者: xixixiyao    时间: 2024-3-22 09:17
yhdata_lyaa 发表于 2024-3-21 16:58
会的,但是放在变化时运行 只要一变化,都会赋值一样的值,等于写死了一样,手选也改变不了参数值{:4_91: ...

是的呀,我就是要实现每次变化都把文本参数赋值给 var_year,那在变化时,每次都会赋值没问题啊
我理解预览第一次加载报告时,是先执行装载的脚本,再执行变化的脚本。所以我的var_year会在执行变化的脚本被赋初始值啊。
但是实际却一定要在装载写赋值才行,我的理解不对么,这个装载和变化脚本的机制到底是什么样的呢
作者: yhdata_lyaa    时间: 2024-3-22 10:15
xixixiyao 发表于 2024-3-22 09:17
是的呀,我就是要实现每次变化都把文本参数赋值给 var_year,那在变化时,每次都会赋值没问题啊
我理解预 ...

是啊,第一次加载报告时,是先执行装载的脚本,再执行变化的脚本。那一次打开参数列的月也是勾满的吗,参数变化时运行的脚本里给确定的值默认值了么
作者: xixixiyao    时间: 2024-3-25 09:23
yhdata_lyaa 发表于 2024-3-22 10:15
是啊,第一次加载报告时,是先执行装载的脚本,再执行变化的脚本。那一次打开参数列的月也是勾满的吗,参 ...

文本参数给了默认当年,也就是文本参数的初始值是有的“2024”,然后初始加载执行变化时脚本的时候,会把文本参数的值赋值给var_year,这样第一次执行完装载+变化的脚本后,var_year应该得到文本参数的值呀






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