隨筆-15  評(píng)論-79  文章-0  trackbacks-0

           cognos中有列表和圖形,但是表和圖之間總是孤立的,刷新頁面也都是全頁面刷新,于是經(jīng)理在想,是否有個(gè)方法能在點(diǎn)擊cognos列

          表時(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ù)庫

          一、先用report studio建立一個(gè)帶參數(shù)的cognos餅圖報(bào)表(這里可以隨便是什么圖),報(bào)表灰常簡單

          設(shè)置參數(shù)名為par3,并把此報(bào)表保存為a1
          二、再用report studio建立一個(gè)列表,如圖

          經(jīng)理在這里多用了html項(xiàng)目,因?yàn)閏ognos在頁面上封裝的太好了,只能這樣拼湊腳本。
          基本的原理就是在列表旁邊放置一個(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ā)的事件

          1<script type="text/javascript">
          2    function changeframe(par)
          3    {
          4        sname="http://localhost/cognos8/cgi-bin/cognos.cgi?b_action=cognosViewer&ui.object=/content/package[@name='aa']/report[@name='a1']&ui.action=run&run.prompt=false&p_par3="+par;
          5        frameChart.location.href=sname;
          6    }

          7</script>

           

          2到6主要就是定義一個(gè)含有點(diǎn)擊事件的label
          2的代碼為

          1<u><label onclick="changeframe('


          3其實(shí)是一個(gè)報(bào)表表達(dá)式,它是參數(shù)

          1[query1].[arr2]


          4的代碼為

          1');"  style="width:100%;height:100%" >


          5也是一個(gè)報(bào)表表達(dá)式,他是設(shè)置該列顯示的內(nèi)容

          1[arr2]


          6的代碼為,他收個(gè)尾

          1</label ></u>


          7的代碼主要是iframe,然后就是刷新等待時(shí)候的一個(gè)等待提示
          7的代碼為

           1<iframe frameborder="0" id="frameChart" src="" scrolling="no" height="450" width="100%"></iframe>
           2<div id="loading" style="display:block; padding:100px 0 100px 0;text-align:center;color:#999999;font-size:12px;">
           3      頁面加載中
           4    </div>
           5<script type="text/javascript">     
           6     var  a  = document.getElementById("frameChart");   
           7     var b  = document.getElementById("loading");   
           8     a.style.display =  "none";                     
           9     b.style.display = "block";                     
          10     
          11        if  (window.ActiveXObject)   {   
          12
          13
          14     a.onreadystatechange =  function()     
          15     {   
          16        if (this.readyState=="complete")   
          17         {                                                                   
          18             b.innerHTML  =   "";   
          19              b.style.display = "none";   
          20             a.style.display  = "";   
          21          }
             
          22     }
           
          23     }
          else
          24     a.style.display =  "block";                     //隱藏 
          25     b.style.display = "none"
          26     }

          27  </script>


          拼滴我累死了.....

          OK,我們來看看效果
          我先點(diǎn)擊一下第一個(gè)單元格

          再點(diǎn)擊第二個(gè)

          注意,列表不會(huì)刷新哦,有點(diǎn)像ajax的效果。


          后來想想,其實(shí)功能挺簡單的。
          例子比較簡陋,只是想傳達(dá)一個(gè)思想,希望以后大家有好東西能一起交流。

          posted on 2010-08-20 17:37 張?jiān)猈on 閱讀(4325) 評(píng)論(4)  編輯  收藏 所屬分類: Cognos

          評(píng)論:
          # re: cognos列表與圖形聯(lián)動(dòng)效果[未登錄] 2010-10-28 18:37 | apple
          我試過了但是有個(gè)問題,第三個(gè)和第5個(gè)html引用的報(bào)表表達(dá)式?jīng)]有起到作用是由于什么原因呢,第5個(gè)控制顯示內(nèi)容但是顯示的是字符串并沒有當(dāng)成報(bào)表數(shù)據(jù)項(xiàng)顯示啊,第三個(gè)html同樣是這個(gè)問題,我是按照你的方法寫的結(jié)果卻沒有你的效果不理解  回復(fù)  更多評(píng)論
            
          # re: cognos列表與圖形聯(lián)動(dòng)效果[未登錄] 2010-10-29 09:00 | apple
          我解決了因?yàn)槭切率诌€要向您多多學(xué)習(xí),謝謝  回復(fù)  更多評(píng)論
            
          # re: cognos列表與圖形聯(lián)動(dòng)效果 2010-10-30 00:14 | え經(jīng)理え
          不好意思,今天才看到。應(yīng)該是不會(huì)有問題的~ 拼js,多看看左右的括號(hào)!!@apple
            回復(fù)  更多評(píng)論
            
          # re: cognos列表與圖形聯(lián)動(dòng)效果[未登錄] 2012-08-29 15:48 | decode360
          不用拼接,可以寫到一起的。把HTML的類型換成字段就可以。  回復(fù)  更多評(píng)論
            
          主站蜘蛛池模板: 尚志市| 武鸣县| 曲阜市| 乐业县| 双城市| 灌阳县| 连南| 垦利县| 呈贡县| 深泽县| 崇左市| 嘉黎县| 肃宁县| 永泰县| 封开县| 正阳县| 蒲江县| 武山县| 隆德县| 塔城市| 庄浪县| 罗定市| 大石桥市| 南汇区| 鄂温| 安福县| 富川| 哈尔滨市| 金秀| 乌拉特后旗| 南丰县| 芒康县| 克什克腾旗| 吉木乃县| 肥西县| 台前县| 行唐县| 扎赉特旗| 维西| 黔东| 彭水|