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