一、需求:
在瀏覽器輸入一個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
<!doctype html> <html lang="en"> <head> <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no"><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"><meta name="HandheldFriendly" content="true"> <meta charset="UTF-8"> <meta name="Generator" content="EditPlus®"> <meta name="Author" content=""> <meta name="Keywords" content=""> <meta name="Description" content=""> <title>一個技術界的小人物</title> </head> <body> <iframe src="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" width="100%" height="600"></iframe> </body> </html>
如下圖所示