一、需求:
在浏览器输入一个URL,在URL后面加上参数就可以访问一个有提示值的报表?比如下面的报表
二、解决办法
Cognos Model 查询主题设计层概要
Select
*
from
[UCOM_DW].tumor_trend
where
tumor_trend.doctor_id =#prompt('did','string')#
and tumor_trend.p_id =#prompt('pid','string')#
URL概要
http://king:9300/bi/v1/disp?b_action=cognosViewer&run.outputFormat=HTML&run.prompt=false&ui.object=storeID(%22i35C733A8A0BA418DB767C34831807957%22)&ui.action=run&cv.header=false&cv.toolbar=false&p_did=15267120752&p_pid=2017001
需要注意的是:如何获取cognos11报表的URL访问方式请看我的另一篇博文 Cognos11中通过URL访问report的设置
获取到之后是这个样子的:
-----------------------------------------------------------------------------------------------------------------------------------------------
http://king:9300/bi/v1/disp?b_action=cognosViewer&run.outputFormat=HTML&run.prompt=true&ui.object=storeID(%22i35C733A8A0BA418DB767C34831807957%22)&ui.action=run&cv.header=false&cv.toolbar=false
------------------------------------------------------------------------------------------------------------------------------------------------
需要修改的是:
1:把run.prompt=true改为run.prompt=false这样就不会走提示页,直接提交到报表页
2:在URL后面加上&p_did=15267120752&p_pid=2017001,注意用&符号区分每一个参数,另外需要注意的就是在原始的参数名前面加上p_告诉cognos是参数的含义
3:如果参数值是英文或者数字可以直接写在后面,如果是中文请先进行URL-UTF8转码操作,然后赋值给参数,可以借助《Encode_ Decode Tools URL编码解码工具.》
中文转码后参数格式&p_name=%E5%BC%A0%E4%B8%89
下面就可以进行集成了,集成方式有两种:
(1):URL集成,直接通过浏览器访问URL,如下图
(2):IFRAME集成,通过IFRAME集成在HTML中然后访问HTML,如下图
IFRAME集成的HTML代码如下 wxj.html
一个技术界的小人物
如下图所示