Java軟件報表軟件技術(shù)博客

          java報表軟件技術(shù)匯總 java報表軟件制作 報表軟件新聞
          posts - 355, comments - 100, trackbacks - 0, articles - 3
             :: 首頁 :: 新隨筆 ::  :: 聚合  :: 管理

          在使用報表軟件時,用戶系統(tǒng)左邊一般有目錄樹,點擊報表節(jié)點就會在右側(cè)網(wǎng)頁的iframe中顯示出報表,同時點擊的時候也會傳遞一些參數(shù)給網(wǎng)頁,比如時間和用戶信息等。如何使網(wǎng)頁中的報表能夠獲取到傳遞過來的參數(shù)呢?以下用報表軟件FineReport簡單介紹一些。

          具體實現(xiàn)過程

          將報表生成頁面時,給網(wǎng)頁添加onload事件,首先獲取url中的參數(shù),然后嫁接到iframe的src上,或者通過獲得的參數(shù)拼接處完整的報表url賦給iframe的src。

          <html>
          <head>
          <title>FineReport Demo</title>
          <meta http-equiv="Content-Type" content="text/html; charset=GBK">
          <script type="text/javascript" src="/WebReport/ReportServer?op=emb&resource=finereport.js"></script>
          <script type="text/javascript">
              
          function autoLoad(){
                  
          //返回從問號 (?) 開始的 URL(查詢部分)
                  var paraString = location.search;   
                  
          //多個參數(shù)用&分隔,將參數(shù)字符串轉(zhuǎn)為數(shù)組,使每個參數(shù)值存于一個數(shù)組元素中
                  var paras = paraString.split("&");  
                  
          //每個數(shù)組元素中"="后面的值即參數(shù)值
                  var reportName = paras[0].substr(paras[0].indexOf("="+ 1); 
                  
          var area = paras[1].substr(paras[1].indexOf("="+ 1);
                  
          var province = paras[2].substr(paras[2].indexOf("="+ 1);
                  
          var city = paras[3].substr(paras[3].indexOf("="+ 1);
                  
          //使用獲取的參數(shù)值拼接出最終的url
                  var reportURL = "/WebReport/ReportServer?reportlet=" + reportName + "&area=" + area + "&province=" + province + "&city=" + city;
                  
          //url中可能包含中文或特殊字符因此需要進行編碼轉(zhuǎn)換,注意需要先引入finereport.js
                  reportURL = FR.cjkEncode(reportURL);
                  
          //將新的報表路徑賦給報表所在iframe的src
                  document.getElementById("reportFrame").src = reportURL; 
              }

              
          //加載網(wǎng)頁時調(diào)用autoLoad方法
              window.onload = autoLoad;
          </script>
          </head>
          <body>
          <iframe id="reportFrame" width="900" height="400"></iframe>
          </body>
          </html>

          將代碼保存為geturlpara.html,保存在工程下的page_demo文件夾下。

          使用管理員登錄決策平臺,點擊管理系統(tǒng)>報表管理,點擊添加鏈接,鏈接路徑為:page_demo/geturlpara.html?report=doc/Parameter/MultiValue/MultiValue.cpt&area=華東&province=江蘇&city=無錫,名稱為:url參數(shù)傳遞給iframe中的報表,如下圖:

          這樣刷新fs,就可以看到左側(cè)目錄樹中多了一個節(jié)點,點擊該節(jié)點后,就可以在右側(cè)網(wǎng)頁的iframe中顯示出報表包括傳遞給網(wǎng)頁的參數(shù)。

          效果查看

          如下圖,點擊左側(cè)“url參數(shù)傳給iframe中的報表”節(jié)點時,即打開相對應(yīng)的鏈接,對應(yīng)網(wǎng)頁就會在中間區(qū)域顯示出來:



          主站蜘蛛池模板: 朔州市| 浏阳市| 涟水县| 景宁| 星座| 辽中县| 新源县| 鄂州市| 云林县| 上杭县| 郴州市| 堆龙德庆县| 志丹县| 石狮市| 鹿邑县| 宁远县| 垫江县| 尼木县| 峨眉山市| 丽水市| 新沂市| 玉田县| 高阳县| 邻水| 芜湖县| 澜沧| 金阳县| 巴林左旗| 北京市| 德江县| 蛟河市| 长寿区| 延长县| 乡宁县| 信宜市| 吐鲁番市| 滨州市| 旬邑县| 商洛市| 中宁县| 漾濞|