WEBI 中的参数传递

需求:部分报表分主从报表,需要对参数进行传递,动态显示从报表信息。

 主从报表可以加强对数据进行分析,以满足客户需求。也是报表工具以及开发报表最基本功能特性。

Webi参数传递跟其他Web应用程序参数传递方式一样,没有本质区别,在我看来,唯一区别,就是接收参数值有些特别设置而已。Webi参数传递大体思路为:在主报表中创建需要动态绑定的URL,然后在从报表中设置参数接收条件即可。本技术要点是:URL和参数接收设置。而URL是使用webi公布的报表浏览方式:opendocument.aspx进行参数传递,在文章后面回附上关于boe_xi_opendocument.pdf文档说明。下面我们可以动手制作一个DEMO来阐述整个过程。

1.         用Designer工具创建一个Universe,然后导入到CMS里。
2.         用Infoview工具创建一个webi文档报表。如图所示:
3.         点击“编辑报表”进入编辑状态,如图:
4.         在这里同样要增加一个变量来格式化数据,这就用到第一章《Hyerlink的实现》。双击report变量弹出属性窗口:
这地方需要特别说明那就是公式了:=" <a href=""..""..""scripts""opendocument.aspx?sIDTyp=CUID&sType=wid&iDocID=2699&lsSparaSexName="+URLEncode([性别])+"&lsSparaCauseName="+URLEncode([案由])+""" target=""_blank"">"+[人数]+"</a>"
需要注意的地方:
l ""..""..""scripts"":这是定位opendocument.aspx文件的地方,不管什么方式去格式化,如开发的时候可能在Universe里进行定义,都得注意。
l sIDTyp=CUID&sType=wid&iDocID=2699:sIDType是接收报表文档方式;sType是文档类型;IdocID是文档报表CUID编号。
l lsSparaSexName="+URLEncode([性别])+"&lsSparaCauseName="+URLEncode([案由]):这里当然是参数格式化了。在boe_xi_opendocument.pdf详细介绍了多种参数数据格式,如多值,多参数,值域,日期域等等。
l URLEncode:这个函数对中文数据很重要,否则接收参数显示不出数据。
5.         主报表设计和设置就这样了,从报表按照前面创建主报表流程创建。从报表webi编辑文档状态点击“编辑查询”:
“查询过滤器”就是设置参数获取的地方。具体设置如下
l 点击 设置为提示(prompt)。
l 点击 将提示信息设置为参数名称。
l 这里参数名称很微妙的,lsSparaCauseName对应参数名称为:paraCauseName。当然webi这种自定义规则并不影响什么,相反可以让你明白传递的数据方式是什么,更好的让你区分参数的传递的来龙去脉。这些微妙的东西并不代表什么,但是有一点:以人为本,是软件发展的重要特点,扯远了。
6.         好了,我们来看看最后效果。如图:
总结:在做复杂的报表还是多参数报表,opendocument参数非常重要。boe_xi_opendocument.pdf应该细细研究,对boe_xi_opendocument.pdf我会在后面专门用一篇文章阐述。最近,在细化需求的时候,要求钻取可以传递参数,这是个严峻的问题,因为维数很多的时候这种方式很费力的。
原文地址:https://www.cnblogs.com/hanmos/p/3084359.html