1. 程式人生 > >潤乾報表引數傳遞那些事

潤乾報表引數傳遞那些事

在報表設計好後,往往需要向報表中傳遞引數,引數是如何傳遞給報表的呢?標籤釋出的報表引數傳遞可以分為下面三種情況

預設引數輸入頁面式

為了方便使用者快速體驗報表的功能,當用戶的關注點不在於引數錄入頁面而在於報表時,潤乾的tag標籤提供了generateParamForm屬性,只要置為yes就可以自動生成引數錄入表單,方便使用者快速體驗報表。

<report:htmlname="report1"

......

generateParamForm="yes"

......

/>

報表設計如下


描述內容為自動生成引數表單輸入框的介紹內容,釋出報表的jsp程式碼如下

<table align=left>

  <tr><td>

        <report:html

                name="report1"

                reportFileName="report_0.raq"

                generateParamForm="yes"

                />

  </td></tr>

</table>

頁面展現效果如下:


引數模板式

用潤乾報表設計的引數模板,需要利用引數模板的tag進行釋出,其自動與結果頁面的報表關聯。因此,比較簡單的做法是把引數模板tag和結果報表tag寫到一個頁面裡。如下所示:

<report:paramname="form1" paramFileName="test_arg.raq" /> //引數模板tag

<report:htmlname="report1" //結果報表tag

srcType="file"

reportFileName="test.raq"

generateParamForm="no"

/>

注意:以上兩種方式都沒有接收引數拼成串的程式碼。這是因為引數表單也是報表,使用者在輸入完引數並點選“查詢”後,報表系統把引數存放在了引數快取池中,查詢報表根據引數池ID從引數池中取引數值,所以不需要寫程式碼手動拼引數串了。

自定義引數輸入式

如果使用者自己定義引數輸入頁面,那麼整合流程包括:設計引數頁面——〉在接收頁面中寫程式碼接收引數——〉在接收頁面裡把引數拼成串傳給tag

//使用者自定義的引數輸入頁面

<form method=getname="form1" id="form1"action="<%=request.getContextPath()%>/jsp/test.jsp">

 <table><tr style="FONT-SIZE:13px; FONT-FAMILY: 宋體">

  <td>部門ID</td><td><inputtype="text" id="deptid" name="deptid"/></td>

  <td>&nbsp;

        <input type="submit"value="提交" />

</td>

 </tr></table>

</form>

<table align=left>

  <tr><td>

        <%//接收引數程式碼

        StringBuffer param=new StringBuffer();

  Enumeration paramNames =request.getParameterNames();

  if(paramNames!=null){

        while(paramNames.hasMoreElements()){

                String paramName = (String) paramNames.nextElement();

                String paramValue=request.getParameter(paramName);

                if(paramValue!=null){

                        //把引數拼成name=value;name2=value2;.....的形式

                 param.append(paramName).append("=").append(paramValue).append(";");

                }

        }

  }

              %>

  </td></tr>

  <tr><td>

        <report:html name="report1"

                srcType="file"

                reportFileName="report_0.raq"

                funcBarLocation="top"

                exceptionPage="/jsp/myError.jsp"

                generateParamForm="yes"

                params="<%=param.toString()%>"

        />

  </td></tr>

</table>

頁面展現效果如下


此時,jsp中必須滿足:

1.引數個數必須與要顯示的報表所設計的引數個數一致(如未輸入則使用報表設計時填的預設值),引數名稱也大小寫相同。

2.在test.jsp中用request.getPararmeter(“***”)來取得各引數,並把引數拼成潤乾報表能支援的引數串。

3.把拼成的引數串通過html標籤中的params屬性傳遞到報表中。

標籤式釋出報表引數傳遞可以分為上面說的三種方式,api方式展現報表,可以在context類中或者ReportDefine類中設定引數值

附註:

引數模板提交的引數,儲存在報表系統的引數池中,並沒有存在request裡,因此如果使用引數模板,要在結果頁面裡引用引數值,必須要報表的引數池中讀取,而不應該從request裡獲得。從引數池中取引數程式碼如下:

<%

StringreportParamsId=request.getParameter("reportParamsId"); //取得引數快取的標識號

//從引數快取池中取得的引數保存於一個Hashtable中

Hashtable params = null;

if(!"".equals(reportParamsId)&& reportParamsId != null){

params =com.runqian.report4.view.ParamsPool.get( reportParamsId );

}

//接下來我們以引數名為key,直接從Hashtable中取引數模板中的傳遞的引數值

String paramValue = (String)params.get("appellation");

out.println("取得的引數值是:"+paramValue);

%>


相關推薦

報表引數傳遞那些

在報表設計好後,往往需要向報表中傳遞引數,引數是如何傳遞給報表的呢?標籤釋出的報表引數傳遞可以分為下面三種情況 預設引數輸入頁面式 為了方便使用者快速體驗報表的功能,當用戶的關注點不在於引數錄入頁面而在於報表時,潤乾的tag標籤提供了generateParamForm屬性

報表 ${引數名} 的引用方式

利用 ${引數名}引用方式可以在報表中動態的進行表示式的替換 (類似於潤乾報表 4 中巨集的用法),在報表運算之前,系統會全面搜尋整張報表定義,將所有 ${引數名} 中的引數名替換成引數值。     下面的應用例項中則介紹了通過使用 ${引數名} 的引用方式,隨意修改引數值變

報表 V2018 手機端展現引數模板下拉資料集樣式問題

電腦訪問帶有引數模板的報表,下拉資料集的樣式為 但是通過  showReport.jsp  或者是通過    matchReport.jsp    在手機端訪問報表的話,展現報表的引數模板的樣式丟失。

報表主子報表通過引數控制子報表顯示

客戶需求:       通過引數控制1張彙總表中展現哪個或者哪幾個子報表 製作報表樣式如下圖: 其中第2行  隱藏行表示式為if(@arg1==1,true,false)  插入的子報表是aa00.raq        第4行  隱藏行表示式為if(@arg1!=1,true,false)   插入的子報

報表V4超連結中對引數進行加密解密

眾所周知,潤乾本身自帶的引數模板會將引數統一放到引數池中,通過url傳遞引數池ID來進行引數傳遞,而不是直接將引數直接暴露在位址列中。可是在報表中的超連結功能,我們通常是將拼好的url寫上進行報表的鑽取,這時會發現鑽取中的url是全部展現在外面的,如何對這個url進行安全處

報表實現模糊查詢

技術 潤乾 com 潤乾報表 png 技術分享 alt log .cn 潤乾報表實現模糊查詢

報表如何實現動態隱藏行效果

在業務系統中,我們經常會遇到這樣的需求: 有的資料在符合一定條件的情況下才能夠顯示出來,不符合條件的行並不需要。這個時候就可以利用隱藏行這個屬性來實現這個需求。如下圖所示:  在 E6 單元格我們做的是每個訂單 ID 下面不同的產品名稱的訂單總金額的統計,但是我只想顯示訂單總金額

報表如何固定表頭

對於一個網站來說,使用者體驗會涉及到很多方面,包括頁面佈局是否合理、導航檢視是否清晰、載入速度是否夠快、乃至按鈕或字型的大小,等等諸多方面。 使用者體驗是使用者的主觀感受,通俗來說就是“你這玩意兒用起來方不方便”。 除了網站設計,好的使用者體驗同樣適用於用報表工具製作出的報表。比如資料監控,

報表報表組的展現--tab頁形式展現多張報表

業務系統中,很多報表都是沿用之前 EXCEL 的報表樣式,原來以 sheet 格式顯示的表,客戶在 web 端展現的時候也希望也有同樣的格式,潤乾在實現這種效果和 EXCEL 一樣簡單靈活,輕鬆將資料報表以多個 TAB 頁的形式展現在頁面中,達到了一同展現,同時進行查詢、列印、匯出 EXCEL 結果

報表 5 報表組跨表取數

需求場景: A 報項中 2 個單元格 A1 和 B1,客戶想在輸入這兩個值以後,報表組的 B 報表項能夠直接得到這個 A1+B1 值。 也可能在 A 報表項輸入一個值以後,B 報表項某一個單元格自動應用 A 中的某個單元格值。 ps: 例項中 Sheet1 代表 A,   Sh

報表在 linux 上中文字型問題

潤乾報表部署在 linux 上時,報表展現正常,但當報表匯出 pdf,pdf 列印或者 flash 列印時,有可能會出現單元格內字型樣式問題,比如壓縮在一起,失真等,此種問題多半是字型原因,有可能 linux 上安裝有相應字型,但是報表運算時是通過 jdk 運算,所以要找 jdk 下字型,按照如下方

關於執行緒池ThreadPoolExecutor引數設定那些

       由於近期工作需要,最近需要測試開發某元件(該元件中用到了ThreadPoolExecutor)的效能,測試工具是soapUI,由於以前對測試效能方面接觸較少。所以藉此機會再網上查閱了相關資料,總結如下。      

報表叢集快取共享報錯

現象: 快取共享報錯,找不到快取。 看日誌發現,報表系統找的快取路徑,和raqsoftConfig.xml中的不一致,一般是JVM預設的快取路徑, 比如:/tomcat/temp之類的。 解決: 檢查raqsoftConfig.xml中的快取路徑是不是隻讀的。在linux中可以m

Word文件中如何插入報表

潤乾報表製作完成後,不僅能實現展現及匯出等功能,還能夠根據使用者需求, 通過指定模版檔案中的書籤名稱確定插入位置,然後將報表、 圖片、 文字內容插入到新的 Word 檔案中。 本文主要介紹潤乾報表插入 word 文件的具體步驟。 首先介紹下功能原理: 1、 建立 word 模版,在需要插

報表如何呼叫spring資料

spring是一個開源框架,是為了解決企業應用程式開發複雜性而建立的。在 web 開發環境中經常會與 struts、hibernate聯合起來使用,進行規範的框架結構開發。潤乾中的二次開發也可以與 SSH 框架相結合部署到 web 專案中。本文介紹在設計時沒有啟動 web 服務,在設計器中使用 sp

如何整合報表到spring boot專案

Spring Boot 是由 Pivotal 團隊提供的全新框架,其設計目的是用來簡化新 Spring 應用的初始搭建以及開發過程。該框架使用了特定的方式來進行配置,從而使開發人員不再需要定義樣板化的配置。下面介紹下一個簡單的 springBoot 專案的搭建以及與潤乾 V2018 整合的過程。

報表如何實現資料許可權控制

售前現場交流或售後技術支援階段,經常被客戶問到:“你們報表系統是怎麼搞許可權控制的?” 既然經常被問,那麼今天就討論一下這個問題。 首先呢,看看許可權管理長啥樣! 許可權管理:(來自百度百科),一般指根據系統設定的安全規則或者安全策略,使用者可以訪問而且只能訪問自己被授權的資源,不多不少

報表如何解決F5負載均衡裝置下URL限制問題

基於龐大的網路結構,叢集伺服器的使用帶來了不少流量等負載問題,負載均衡技術應運而生。本文首先以F5 BIG-IP LTM(本地流量管理器)為例簡單介紹一下F5附在均衡裝置,然後再著重介紹潤乾報表在該裝置下出現的URL限制問題如何解決。 F5負載均衡裝置介紹(F5 BIG-IP

報表5】資料庫密碼中含有特殊字元應用部署時xml怎麼處理

問題舉例:     資料庫密碼中含有<字元,報表設計器下配置資料來源時,設計器會自動將這些特殊字元進行轉換,然而如果當我們在專案部署或整合時扔按照常規的配置,配置資料庫連線池時,會發現訪問報表時網頁出現如下報錯資訊: 問題總結:        經排查發現xml檔案

十大理由選擇報表

一、要不要報表工具? 軟體開發專案中,報表必不可少。用報表工具還是寫程式碼實現報表,這是個問題。 簡單行列報表、中國式複雜報表,報表工具都能輕鬆實現。報表工具採用獨立報表模板檔案,不會和其他程式碼耦合。報表需求頻繁改變,只需替換報表檔案即可,不必重新打包、不必重啟服務,可