Java軟件報表軟件技術博客

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

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

          具體實現過程

          將報表生成頁面時,給網頁添加onload事件,首先獲取url中的參數,然后嫁接到iframe的src上,或者通過獲得的參數拼接處完整的報表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;   
                  
          //多個參數用&分隔,將參數字符串轉為數組,使每個參數值存于一個數組元素中
                  var paras = paraString.split("&");  
                  
          //每個數組元素中"="后面的值即參數值
                  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);
                  
          //使用獲取的參數值拼接出最終的url
                  var reportURL = "/WebReport/ReportServer?reportlet=" + reportName + "&area=" + area + "&province=" + province + "&city=" + city;
                  
          //url中可能包含中文或特殊字符因此需要進行編碼轉換,注意需要先引入finereport.js
                  reportURL = FR.cjkEncode(reportURL);
                  
          //將新的報表路徑賦給報表所在iframe的src
                  document.getElementById("reportFrame").src = reportURL; 
              }

              
          //加載網頁時調用autoLoad方法
              window.onload = autoLoad;
          </script>
          </head>
          <body>
          <iframe id="reportFrame" width="900" height="400"></iframe>
          </body>
          </html>

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

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

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

          效果查看

          如下圖,點擊左側“url參數傳給iframe中的報表”節點時,即打開相對應的鏈接,對應網頁就會在中間區域顯示出來:



          主站蜘蛛池模板: 福贡县| 平远县| 香格里拉县| 辽源市| 应城市| 湾仔区| 休宁县| 三原县| 普陀区| 南部县| 贡觉县| 张家口市| 靖州| 鲜城| 桓台县| 滦平县| 乌苏市| 罗城| 安岳县| 资溪县| 凤阳县| 民丰县| 陆河县| 林甸县| 阿图什市| 长沙市| 廉江市| 成安县| 上思县| 霍林郭勒市| 安多县| 西丰县| 四会市| 桃园县| 宝清县| 海丰县| 陆川县| 靖州| 黄骅市| 澎湖县| 中卫市|