java给cognos传in参数_只使用一个变量向cognos报表传多参/传数组==转

cognos一值传多参我研究出了很多方案,目前是采用的方式是,在framework中的业务视图的sql中 写类似如下语法 in (#csv( split ( ',', prompt("cporgcd","token","") ))# ),实际上我们的语句比这个复杂得多,但我不能泄密,总之嵌套了很多函数。然后在url后面加p_param=‘1002,1003,1004'的方式,但这种方式有两个明显的缺点,第一如果报表页面上没有引用该维度,参数是不能起到过滤作用的,其二这个参数可能会很长很长,以至于超过最大url长度,并且有可能有宏函数解析出错的风险。

因此决定采用新的方案,这种方案看似简单,实际上解决了一个很棘手的问题,在framework中定义全局过滤器(注意不是在维度的那个页签中的filter,而是整体的filter),定义的方式很简单,直接写 in (?param?)即可,然后在report studio中引入该维度即可,注意要想灵活的让该filter不起作用,可以设置其用途为可选,这样不传参就是代表查询全部,这解决了宏函数和不要用不起作用的问题,并且在访问报表的时候采用post的方式传递参数,这样又解决了url过长的问题,可以说一举两得。

post传参参考如下,

如果通过url拼接字符串的话,太麻烦。还是选择用表单提交。

name="frm"  method="post" target="gg">

----------传参,我的参数是随便起的。

------------这个必须写,不然cognos认为参数没有结束,还停留在“提示页面”。有了这段代码就可以直接到结果页面了。

如果参数的设置是in,就有点问题。因为在cognos报表中的设置:[列表字段] in ('参数1','参数2','参数3'),可是将:'参数1','参数2','参数3'通过url就不能传给报表。解决:。。……

首先,没有setParameter方法,只有getParameter,所以一般只区分getAttribute和getParameter的区别。

getAttribute表示从request范围取得设置的属性,必须要先setAttribute设置属性,才能通过getAttribute来取得,设置与取得的为Object对象类型getParameter表示接收参数,参数为页面提交的参数,包括:表单提交的参数、URL重写(就是xxx?id=1中的id)传的参数等,因此这个并没有设置参数的方法(没有setParameter),而且接收参数返回的不是Object,而是String类型

getAttribute表示从request范围取得设置的属性,必须要先setAttribute设置属性,才能通过getAttribute来取得,设置与取得的为Object对象类型 getParameter表示接收参数,参数为页面提交的参数,包括:表单提交的参数、URL重写(就是xxx?id=1中的id)传的参数等,因此这个并没有设置参数的方法(没有setParameter),而且接收参数返回的不是Object,而是String类型

string [] arr = request.getParameterValues("arr");

Cognos 8.3 + JSP前端集成方案

1.       在报表设计器中,对需要传递参数的字段设置“明细过滤器”。比如:[CompanyName] = ?aa?

2.       回到Cognos门户,找到刚才设置参数的报表,按照下图单击“属性”按钮。

3.       记录本张报表的ID,后面的JSP页面会到,然后单击“查看搜索路径、ID和URL”。

4.       记录本张报表的“搜索路径”。“默认操作URL”是可选的,如果报表不需要条件,直接可以用这个地方访问。

5.       新建一个Java Web项目( .NET,PHP,  ASP,  RoR,Django 等其它web项目都行)。新建一个index.jsp页面,代码如下:

cogons

Target="_blank">

测试Cognos 8.3 + JSP前端集成参数传递

Cognos URL:

报表名称:order_1

搜索路径:/content/package[@name='order_detail']/report[@name='order_1']

传递的参数:p_aa (注意这里必须用 "p_" 做前缀表示是参数,否则无法生效)

10. 下面的是最简单的cognos自动登陆实现文档.在安装过cognos的机器上,如果初始用户名和密码都没有改变,可以实现自动登陆.这里说一句,cognos的技术支持太薄弱了,什么都要用户自己摸索,为什么不开放些,也好有利于自己的发展.

目前cognos被客户批的厉害,估计下面cognos的销售情况会有较大的波动.谁让他不开放的!

无标题文档

日期:

缴款方式:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值