永洪社区

标题: 关于用脚本来控制文本超链接到不同的报告 [打印本页]

作者: 123停    时间: 2021-3-30 16:26
标题: 关于用脚本来控制文本超链接到不同的报告
    这边想要用脚本来控制文本组件在提交时超链接到不同的报告,做了一番尝试发现只能超链接到第一次连接的报告无法随意切换,脚本如下,如果第一次超链接到报告1,那就无法再链接到报告2,如果第一次超链接到报告2,那就无法再超链接到报告1,不知道有没有大神知道解决方法

var loc=new Locator([],OBJECT,DETAIL);
var a=下拉参数1.getSelectObjects()[0];
if (a=='1')
{
文本1.setLink(loc,"db://测试/报告1");
}
else if  (a=='2')
{
文本1.setLink(loc,"db://测试/报告2");
}



作者: dwjcyb    时间: 2021-3-30 17:05
是在报告1和报告2也有提交按钮来超链接么
作者: 123停    时间: 2021-3-30 17:16
weijiakun 发表于 2021-3-30 17:05
是在报告1和报告2也有提交按钮来超链接么

没,想要跳到报告1后,返回,在下拉列表中选择不同的值然后再跳到报告2
作者: dwjcyb    时间: 2021-3-31 13:24
123停 发表于 2021-3-30 17:16
没,想要跳到报告1后,返回,在下拉列表中选择不同的值然后再跳到报告2

跳到报告1后如果想要再跳到报告2 要在报告1也做超链接 指向报告2
作者: 美滋滋    时间: 2021-3-31 13:30
你这个脚本是写在哪里的?
作者: 123停    时间: 2021-3-31 14:23
lijie 发表于 2021-3-31 13:30
你这个脚本是写在哪里的?

文本组件的脚本,提交时运行
作者: 美滋滋    时间: 2021-3-31 14:26
你放到变化时运行中就可以了。只有写在那里,你的变量a才能重新获取到你下拉选择的值。不信你可以在文本组件中debug(a),看看你的变量a的值是什么

作者: 123停    时间: 2021-3-31 14:28
weijiakun 发表于 2021-3-31 13:24
跳到报告1后如果想要再跳到报告2 要在报告1也做超链接 指向报告2

现在看来是一个组件只要第一次用脚本给它加上了超链接后就无法更改超链接的指向了,removeLink(int r,int c) 移除指定位置的超链接,我看帮助中心有这个移除超链接的,这个可以用到文本组件上吗
作者: 123停    时间: 2021-3-31 14:29
lijie 发表于 2021-3-31 14:26
你放到变化时运行中就可以了。只有写在那里,你的变量a才能重新获取到你下拉选择的值。不信你可以在文本组 ...

我debug了a的值,在提交时运行也是有变化的,只不过切换超链接的脚本没有生效
,就好像超链接一经脚本赋予就无法改变
作者: 美滋滋    时间: 2021-3-31 14:30
不会的吧,总之,你放到变化时运行就可以了。
作者: 123停    时间: 2021-3-31 14:33
lijie 发表于 2021-3-31 14:30
不会的吧,总之,你放到变化时运行就可以了。

对了,我放到全局的变化时运行脚本可以了,感谢
作者: 美滋滋    时间: 2021-3-31 14:35
我刚才也测试了一下,放到文本组件的提交时脚本中,a的变量确实可以重新获取值。
我觉得可能是这样的,虽然你在提交时,重新设定了文本组件的链接地址,但是由于文本组件此时并没有重新装载,所以链接并没有真实改变。这个想法也只是我的猜测而已。
作者: 美滋滋    时间: 2021-3-31 14:43
另外,我还做了个测试,你在报表装载时,如果已经设置好了文本组件的超链接后,在文本组件的提交时运行的脚本是不会触发的。我感觉因为当点击文本组件时,超链接的执行要优先于文本组件自身的脚本执行。具体的你可以测试一下,首先在报表装载时脚本设置好文本组件的超链接。然后在文本组件的提交时增加debug('1'),这时,这个调试信息根本就不会出来。画面直接先进行了跳转。
作者: 123停    时间: 2021-3-31 14:53
lijie 发表于 2021-3-31 14:43
另外,我还做了个测试,你在报表装载时,如果已经设置好了文本组件的超链接后,在文本组件的提交时运行的脚 ...

是的,我也试过,如果文本组件有了超链接后在文本组件提交时运行设置debug是出不来提示信息的,所以可能文本组件在第一次用其提交时运行的脚本赋予其超链接后,其超链接优先级高于其提交时运行脚本,后续再点击提交就不会触发提交时运行的脚本了
作者: 美滋滋    时间: 2021-3-31 14:58
123停 发表于 2021-3-31 14:53
是的,我也试过,如果文本组件有了超链接后在文本组件提交时运行设置debug是出不来提示信息的,所以可能 ...

这样的话,问题就明确了。
写脚本的话,最好写在报表装载及变化运行时中,这样也方便后期的维护。不然你要点开每个组件看看是否有脚本。。。。




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