表時(shí)旁邊的cognos圖表能夠?qū)崟r(shí)的變動(dòng),類似flex中的綁定效果。在老板的強(qiáng)烈催促下,經(jīng)理也沒什么時(shí)間去網(wǎng)上去找去問,覺得憑自己以前
的一些J2EE老底子加上report studio中強(qiáng)大的HTML項(xiàng)目貌似可以搞定,于是開搞了...
首先給大家看看數(shù)據(jù)庫(kù)
一、先用report studio建立一個(gè)帶參數(shù)的cognos餅圖報(bào)表(這里可以隨便是什么圖),報(bào)表灰常簡(jiǎn)單
設(shè)置參數(shù)名為par3,并把此報(bào)表保存為a1
二、再用report studio建立一個(gè)列表,如圖
經(jīng)理在這里多用了html項(xiàng)目,因?yàn)閏ognos在頁(yè)面上封裝的太好了,只能這樣拼湊腳本。
基本的原理就是在列表旁邊放置一個(gè)html項(xiàng)目,其內(nèi)容是一個(gè)iframe,其連接也就是剛剛做好的那個(gè)帶參數(shù)的餅圖報(bào)表。
然后在列表中放置一個(gè)label,在label中設(shè)置點(diǎn)擊事件出來iframe鏈接(其實(shí)這樣就換了一個(gè)參數(shù))及重新載入。
其中
1的代碼如下,他主要是點(diǎn)擊的列表觸發(fā)的事件
2到6主要就是定義一個(gè)含有點(diǎn)擊事件的label
2的代碼為
3其實(shí)是一個(gè)報(bào)表表達(dá)式,它是參數(shù)
4的代碼為
5也是一個(gè)報(bào)表表達(dá)式,他是設(shè)置該列顯示的內(nèi)容
6的代碼為,他收個(gè)尾
7的代碼主要是iframe,然后就是刷新等待時(shí)候的一個(gè)等待提示
7的代碼為
拼滴我累死了.....
OK,我們來看看效果
我先點(diǎn)擊一下第一個(gè)單元格
再點(diǎn)擊第二個(gè)
注意,列表不會(huì)刷新哦,有點(diǎn)像ajax的效果。
后來想想,其實(shí)功能挺簡(jiǎn)單的。
例子比較簡(jiǎn)陋,只是想傳達(dá)一個(gè)思想,希望以后大家有好東西能一起交流。
OK,現(xiàn)在代碼都解釋完了,現(xiàn)在來測(cè)試下。
經(jīng)理在這里寫了一個(gè)簡(jiǎn)單的測(cè)試?yán)?,用之前講到的test_sdk_paser包中的test進(jìn)行測(cè)試
下面再測(cè)試一個(gè)帶參數(shù)的報(bào)表
把之前的那個(gè)報(bào)表加一個(gè)參數(shù)
然后在這里輸入一個(gè)1
得到這樣的數(shù)據(jù)
稍微改動(dòng)下代碼,然后run一下
然后得到結(jié)果是這樣的
正好和剛剛的結(jié)果一樣~~
sdk取數(shù)據(jù)關(guān)鍵的也就是上面說的7個(gè)步驟。最后依然要BS一下cognos的開發(fā)者,居然在源碼中一行注釋都沒有,幫助文檔也不全面。
所以還是集結(jié)大家的力量一起研究一起分享研究后的成果。
歡迎大家一起來博客上討論。
謝謝~