永洪社区

标题: 如何判断交叉表为空 [打印本页]

作者: 感谢论坛的大神    时间: 2022-5-16 10:21
标题: 如何判断交叉表为空
如何判断交叉表下是否有数据?(场景:当筛选处理完成后,若交叉表数据显示为空,此时将该交叉表组件隐藏)
作者: Il.Mare    时间: 2022-5-16 10:21
永洪tech-ab 发表于 2022-5-17 11:13
好的,加您了

已解决,因为布局是移动端,应该使用 mobileVisible
作者: 感谢论坛的大神    时间: 2022-5-16 10:32
补充图片:过滤筛选之后数据表是空的,此时将表头组件隐藏(visible=false),有数据的时候则表格正常显示。
作者: Il.Mare    时间: 2022-5-16 10:37
您好,建议您使用 getViewData(String); 函数,此函数可以获取组件的数据,如果为null,则设置组件隐藏
作者: 感谢论坛的大神    时间: 2022-5-16 11:30
永洪tech-ab 发表于 2022-5-16 10:37
您好,建议您使用 getViewData(String); 函数,此函数可以获取组件的数据,如果为null,则设置组件隐藏 ...

你好,我在页面脚本和组件脚本中都加了以下代码:
var Data=getViewData("表组件名");
debug(param["Data"]);
var TableData=getData("表组件名");
debug(param["TableData"]);

预览执行时,发现:无论表里是否有数结果都是null。请问是我函数方式不对吗?
作者: Il.Mare    时间: 2022-5-16 11:57
您好,改成这样debug(?["Data"]);     debug(?["TableData"]);  再试下呢?
作者: 感谢论坛的大神    时间: 2022-5-16 12:08
永洪tech-ab 发表于 2022-5-16 11:57
您好,改成这样debug(?["Data"]);     debug(?["TableData"]);  再试下呢?

您好,这样写会报错,详见附图。
我有个疑问:页面脚本是不是在表格的数据加载出来之前就执行完了?所以是null?  可是这段代码我也放到了交叉表组件的脚本里,两个脚本执行出来的都是null。
作者: humming    时间: 2022-5-16 13:21
var vdata= getViewData("图表1");
var empty = vdata == null || vdata.size(-1) <= 1  
debug(empty)
作者: Il.Mare    时间: 2022-5-16 13:36
yhdata_VznjEr2h 发表于 2022-5-16 12:08
您好,这样写会报错,详见附图。
我有个疑问:页面脚本是不是在表格的数据加载出来之前就执行完了?所以是 ...

您再试下下面的脚本呢
作者: 感谢论坛的大神    时间: 2022-5-16 15:49
永洪tech-ab 发表于 2022-5-16 13:36
您再试下下面的脚本呢

您好!上面的脚本是可以判断表是否为空的。但是当它为空的时候,组件还是无法隐藏。
附图可以看到,无论是true还是false,表格组件都显示了。
脚本代码是:
var vdata= getViewData("图表");
var empty = vdata == null || vdata.size(-1) <= 1
debug("3.是否空"+empty)
debug("3.表数据"+param["empty"])

if(trim(empty)=="true"){   //这里不用trim函数结果也是一样的
debug("3.是否该显示:false")
图表.visible=false;
时间.visible=false;
单位.visible=false;
} else{
debug("3.是否该显示:true")
图表.visible=true;
时间.visible=true;
单位.visible=true;
}
作者: Il.Mare    时间: 2022-5-16 17:10
您好,最后加一个 refreshData() 函数 再尝试下。同时脚本需要写在 变化时运行 中,预览看下效果呢
作者: 感谢论坛的大神    时间: 2022-5-16 17:46
永洪tech-ab 发表于 2022-5-16 17:10
您好,最后加一个 refreshData() 函数 再尝试下。同时脚本需要写在 变化时运行 中,预览看下效果呢 ...

你您好! 脚本是在“变化时运行”里的。 refreshdata函数现在用了,预览之后还是不行。
作者: Il.Mare    时间: 2022-5-16 18:34
您好,那就加上clearData("xx"),再refreshData(),麻烦您再试下呢
作者: 感谢论坛的大神    时间: 2022-5-17 10:41
您好,按您的要求在变化时脚本的refresh前加了clearData("表名"),也尝试过在页面加载时的脚本和组件脚本上加clearData("表名"),都没法隐藏没有数据的表组件。   页面的组件好像是先加载出来,数据才加载的,请问脚本放在哪里才是最后执行的呢?
作者: 感谢论坛的大神    时间: 2022-5-17 10:48
永洪tech-ab 发表于 2022-5-16 18:34
您好,那就加上clearData("xx"),再refreshData(),麻烦您再试下呢

您好,烦请看我上一个回复。
我把脚本放到组件上(手册里说组件脚本是最后执行的),即使它已经判定表为空了,但隐藏组件的代码未生效,表头还是展现出来了。  clearData和refrehDate都加了。
作者: Il.Mare    时间: 2022-5-17 11:04
能否远程看下?
作者: 感谢论坛的大神    时间: 2022-5-17 11:12
永洪tech-ab 发表于 2022-5-17 11:04
能否远程看下?

麻烦您加我微信吧:Nefelibata12890   
我们总部采购了bi,现在用的是公司内网开发,没法给您远程。


作者: Il.Mare    时间: 2022-5-17 11:13
好的,加您了




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