BIRT 使用說明書


 

 

 

 

BIRT

使用說明書

Vx.x

 

 

 

北京神州數碼思特奇信息技術股份有限公司

二〇一〇年四月


 

1 BIRT介紹... 4

2 應用集成... 5

2.1 添加Jar包、配置web.xml. 5

2.2 報表查詢界面集成... 15

2.2.1 集成EXCEL報表工具... 16

2.3 對BIRT顯示界面的一些修改... 17

2.4 備忘事項... 20

3 報表配置... 22

3.1報表模板的創建... 28

3.2使用公用的數據源... 35

3.3參數的配置... 39

3.3.1 配置?形式的參數... 39

3.3.2 配置腳本形式的參數... 43

3.1 隔行高亮顯示... 44

3.2 引用定義好的CSS樣式... 46

3.3 圖表配置... 49

3.4 字段收斂(根據用戶group_id隱藏字段) 55

3.4.1 數據集beforeOpen腳本中增加... 56

3.4.2 修改報表Sqlquery. 56

3.4.3 修改報表模板... 58

4 尚未解決問題列表... 59

4.1 表頭固定... 59

4.2 Word導出亂碼... 59

 

1 BIRT介紹

BIRT (Business Intelligence and Reporting Tools), 是為 Web 應用程序開發的基於 Eclipse 的開源報表系統,特別之處在於它是以 Java 和 J2EE 為基礎。BIRT 有兩個主要組件:基於 Eclipse 的報表設計器,以及部署到應用服務器上的運行時組件。BIRT 也提供了圖表引擎讓你能為應用增加圖表。

 

擴展閱讀:

1.www.eclipse.org/birt

2.www.birt-exchange.com

3.www.actuate.com

4.www.actuatechina.com

目前最新版本為2.5,但新的版本可能存在問題,也沒有前人的經驗借鑒,所以我們使用的版本是2.3.2。

使用前請先下載birt-rcp-report-designer-2_3_2(eclipse報表設計器)、birt-runtime-2_3_2_2(BIRT報表運行環境)

 

2 應用集成

BRIT運行環境要求

Java 1.5 JDK/JRE以上

Weblogic9以上

 

2.1 添加Jar包、配置web.xml

環境為weblogic10,jdk1.6

應用為渠道佣金系統WEB應用

 

birt-runtime-2_3_2中WebViewerExample

copy WebViewerExample\WEB-INF\platform 到當前工程WEB-INF下

copy birt.tld 到當前工程WEB-INF\tld下

copy WebViewerExample\WEB-INF\lib 到當前工程WEB-INF\lib下

copy WebViewerExample\WEB-INF\server-config.wsdd 到當前工程WEB-INF下

copy WebViewerExample\WEB-INF\viewer.properties 到當前工程WEB-INF下

 

copy js.jar 到weblogic/wlserver_10.3/server/lib/下

 

編輯chn_domain/bin/setDomainEnv.sh 修改CLASSPATH,增加${WL_HOME}/server/lib/js.jar

CLASSPATH="${WL_HOME}/server/lib/js.jar${PRE_CLASSPATH}${CLASSPATHSEP}${WEBLOGIC_CLASSPATH}${CLASSPATHSEP}${POST_CLASSPATH}${CLASSPA

THSEP}${WLP_POST_CLASSPATH}"

 

copy WebViewerExample\webcontent\birt 到當前工程webRoot規下

copy WebViewerExample\report、logs、documents、scriptlib 到剛copy過來的webRoot\birt下

 

編輯web.xml

       

        <!-- BIRT配置 -->

        <!-- Default locale setting -->

        <!-- context-param>

                <param-name>BIRT_VIEWER_LOCALE</param-name>

                <param-value>en-US</param-value>

        </context-param-->

 

        <!--

                Default timezone setting.

                Examples: "Europe/Paris", "GMT+1".

                Defaults to the container's timezone.         

         -->

        <!--  context-param>

                <param-name>BIRT_VIEWER_TIMEZONE</param-name>

                <param-value></param-value>

        </context-param-->

       

        <!-- Report resources directory for preview. Default to ${birt home} -->

        <!--存放報表模板路徑-->

        <context-param>

                <param-name>BIRT_VIEWER_WORKING_FOLDER</param-name>

                <param-value>birt/model</param-value>

        </context-param>

       

        <!-- The generated document files directory. Default to ${birt home}/documents -->

        <context-param>

                <param-name>BIRT_VIEWER_DOCUMENT_FOLDER</param-name>

                <param-value>birt/documents</param-value>

        </context-param>

 

        <!-- If only access the reprot resources under working folder. Default is true -->

        <context-param>

                <param-name>WORKING_FOLDER_ACCESS_ONLY</param-name>

                <param-value>true</param-value>

        </context-param>

 

        <!-- Output image/chart directory. Default to ${birt home}/report/images -->

        <context-param>

                <param-name>BIRT_VIEWER_IMAGE_DIR</param-name>

                <param-value>birt/report/images</param-value>

        </context-param>

 

        <!-- Engine log directory. Default to ${birt home}/logs -->

        <context-param>

                <param-name>BIRT_VIEWER_LOG_DIR</param-name>

                <param-value>birt/logs</param-value>

        </context-param>

 

        <!-- Report engine log level -->

        <context-param>

                <param-name>BIRT_VIEWER_LOG_LEVEL</param-name>

                <param-value>WARNING</param-value>

        </context-param>

 

        <!-- Directory to store all birt report script libraries (JARs). Default to ${birt home}/scriptlib -->

        <context-param>

                <param-name>BIRT_VIEWER_SCRIPTLIB_DIR</param-name>

                <param-value>birt/scriptlib</param-value>

        </context-param>

       

        <!-- Resource location directory. Default to ${birt home} -->

        <context-param>

                <param-name>BIRT_RESOURCE_PATH</param-name>

                <param-value>birt</param-value>

        </context-param>

 

        <!-- Preview report max rows limited. -->

        <context-param>

                <param-name>BIRT_VIEWER_MAX_ROWS</param-name>

                <param-value></param-value>

        </context-param>

 

        <!-- Preview report max cube fetch levels limited.(Only support to preview a report design file using preview pattern.) -->

        <context-param>

                <param-name>BIRT_VIEWER_MAX_CUBE_ROWLEVELS</param-name>

                <param-value></param-value>

        </context-param>

        <context-param>

                <param-name>BIRT_VIEWER_MAX_CUBE_COLUMNLEVELS</param-name>

                <param-value></param-value>

        </context-param>

 

        <!-- Memory size(MB) for creating cube. -->

        <context-param>

                <param-name>BIRT_VIEWER_CUBE_MEMORY_SIZE</param-name>

                <param-value></param-value>

        </context-param>

       

        <!-- If always overwrite generated document file. For runtime,efalult to true -->

        <context-param>

                <param-name>BIRT_OVERWRITE_DOCUMENT</param-name>

                <param-value>true</param-value>

        </context-param>

 

        <!-- Define BIRT viewer configuration file -->

        <context-param>

                <param-name>BIRT_VIEWER_CONFIG_FILE</param-name>

                <param-value>WEB-INF/viewer.properties</param-value>

        </context-param>

 

        <!-- If turn on the function that supports print on the server side. Default to on. -->

        <context-param>

                <param-name>BIRT_VIEWER_PRINT_SERVERSIDE</param-name>

                <param-value>ON</param-value>

        </context-param>

 

        <!-- If force optimized HTML output. Default to true -->

        <context-param>

                <param-name>HTML_ENABLE_AGENTSTYLE_ENGINE</param-name>

                <param-value>true</param-value>

        </context-param>

        <!-- BIRT配置 -->

       

 

  <!-- BIRT配置 -->

        <!-- Viewer Filter.Currently, set request character encoding to UTF-8. -->

        <filter>

            <filter-name>ViewerFilter</filter-name>

        <filter-class>org.eclipse.birt.report.filter.ViewerFilter</filter-class>

        </filter>

 

 <!-- BIRT配置 -->

    <filter-mapping>

        <filter-name>ViewerFilter</filter-name>

        <servlet-name>ViewerServlet</servlet-name>

    </filter-mapping>

    <filter-mapping>

        <filter-name>ViewerFilter</filter-name>

        <servlet-name>EngineServlet</servlet-name>

    </filter-mapping>   

 

<!-- BIRT配置 -->

      <!-- Viewer Servlet Context Listener -->

        <listener>

                <listener-class>org.eclipse.birt.report.listener.ViewerServletContextListener</listener-class>

        </listener>

 

  <!-- BIRT配置 -->

        <!-- Viewer HttpSession Listener -->

        <listener>

                <listener-class>org.eclipse.birt.report.listener.ViewerHttpSessionListener</listener-class>

        </listener>

       

<!-- BIRT配置 -->

        <!-- Viewer Servlet, Support SOAP --> 

        <servlet>

                <servlet-name>ViewerServlet</servlet-name>

                <servlet-class>org.eclipse.birt.report.servlet.ViewerServlet</servlet-class>

        </servlet>

 

        <!-- Engine Serlvet -->

        <servlet>

                <servlet-name>EngineServlet</servlet-name>

                <servlet-class>org.eclipse.birt.report.servlet.BirtEngineServlet</servlet-class>

        </servlet>

 

<!-- BIRT配置 --> 

        <servlet-mapping>

                <servlet-name>ViewerServlet</servlet-name>

                <url-pattern>/frameset</url-pattern>

        </servlet-mapping>

       

        <servlet-mapping>

                <servlet-name>ViewerServlet</servlet-name>

                <url-pattern>/run</url-pattern>

        </servlet-mapping>

       

        <servlet-mapping>

                <servlet-name>EngineServlet</servlet-name>

                <url-pattern>/preview</url-pattern>

        </servlet-mapping>

 

        <servlet-mapping>

                <servlet-name>EngineServlet</servlet-name>

                <url-pattern>/download</url-pattern>

        </servlet-mapping>

 

        <servlet-mapping>

                <servlet-name>EngineServlet</servlet-name>

                <url-pattern>/parameter</url-pattern>

        </servlet-mapping>  

 

        <servlet-mapping>

                <servlet-name>EngineServlet</servlet-name>

                <url-pattern>/document</url-pattern>

        </servlet-mapping>  

 

        <servlet-mapping>

                <servlet-name>EngineServlet</servlet-name>

                <url-pattern>/output</url-pattern>

        </servlet-mapping>  

       

        <servlet-mapping>

                <servlet-name>EngineServlet</servlet-name>

                <url-pattern>/extract</url-pattern>

        </servlet-mapping> 

 

<!-- BIRT -->

  <taglib>

        <taglib-uri>/birt.tld</taglib-uri>

        <taglib-location>/WEB-INF/tld/birt.tld</taglib-location>

  </taglib> 

 

2.2 報表查詢界面集成

 

BIRT參數輸入界面

 

BIRT的參數輸入界面為彈出頁面,並且很多個性化的參數輸入類型不能滿足,如日期框營銷架構、級聯參數等。所以就使用我們原有EXCEL報表工具輸入參數的頁面,通過URL傳參。

 

2.2.1 集成EXCEL報表工具

新增java類

sitech/channel/common/DataConnection.java //數據庫操作

sitech/channel/common/ExcelBean.java //Excel操作

sitech/channel/common/Item.java //簡單實體類

sitech/channel/common/ToolsOfSystem.java //工具類

sitech/channel/common/WhereTable.java //簡單實體類

 

sitech/channel/sireport/action/ReportAction.java //strutsAction

sitech/channel/sireport/service/QryWhereBean.java //Excel報表Bean

sitech/channel/sireport/service/RepQueryBean.java //Excel報表Bean

 

DataConnection.properties //數據庫鏈接配置文件

 

/gdchn/chnweb/WEB-INF/sc-sys.xml

 

    <!-- 報表 xuyd add -->

        <action path="/sireport"

                    type="sitech.channel.sireport.action.ReportAction"

              validate="false" parameter="command"             

                  scope="request">    

             <forward name="query" path="/report/xls/index.jsp" />    

            

    </action>

 

新增

/gdchn/chnweb/report目錄

/gdchn/chnweb/activeX 目錄

/gdchn/chnweb/ext目錄 //ext js相關文件

 

2.3 對BIRT顯示界面的一些修改

 

/gdchn/chnweb/birt/pages/layout/FramesetFragment.jsp

                        <!--  TR CLASS='body_caption_top'>

                                <TD COLSPAN='2'></TD>

                        </TR>

                        <TR CLASS='body_caption' VALIGN='bottom'>

                                <TD COLSPAN='2'>

                                        <TABLE BORDER=0 CELLSPACING="0" CELLPADDING="1px" WIDTH="100%">

                                                <TR>

                                                        <TD WIDTH="3px"/>

                                                        <TD>

                                                                <B><%= attributeBean.getReportTitle( ) %>

                                                                </B>

                                                        </TD>

                                                        <TD ALIGN='right'>

                                                        </TD>

                                                        <TD WIDTH="3px"/>

                                                </TR>

                                        </TABLE>

                                </TD>

                        </TR-->

 

/gdchn/chnweb/birt/pages/control/ToolbarFragment.jsp

 

                                        <!-- TD WIDTH="6px"/>

                                        <TD WIDTH="15px">

                                           <INPUT TYPE="image" NAME='printServer' SRC="birt/images/PrintServer.gif"

                                                     TITLE="<%= BirtResources.getHtmlMessage( "birt.viewer.toolbar.printserver" )%>"

                                                     ALT="<%= BirtResources.getHtmlMessage( "birt.viewer.toolbar.printserver" )%>" class="birtviewer_clickable">

                                        </TD-->

 

/gdchn/chnweb/birt/pages/control/NavigationbarFragment.jsp

 

                if( false)//attributeBean.isShowNavigationbar( ) )

                {

        %>

                HEIGHT="25px"

        <%

                }

                else

                {

        %>

                style="display:none"

        <%

                }

        %>  

 

/gdchn/chnweb/birt/styles/style.css

/******************************************************************************

 * Toolbar

 ******************************************************************************/

.birtviewer_toolbar

{

        height:26px;

        background-color:#f0f4f5;

        font-family:Verdana;

        font-size:8pt;

        border-top-width:1px;

        border-top-style:solid;

        border-top-color:#808080;

        border-bottom-width:1px;

        border-bottom-style:solid;

        border-bottom-color:#808080;

}

 

/******************************************************************************

 * Navigation bar

 ******************************************************************************/

.birtviewer_navbar

{

        height:26px;

        background-color:#f0f5f5;

        font-family:Verdana;

        font-size:8pt;

        border-left-color:#808080;

        border-left-style:solid;

        border-left-width:1px;

}

 

 

2.4 備忘事項

------------配置渠道菜單時&,替換為%26

chnnew/sireport.do?command=query%26queryid=1000001

 

EXT以UTF-8編碼

修改過濾器,sitech.channel.framework.util.CharacterEncodingFilter

增加

                if("/sireport.do".equals(request.getRequestURI())){

                        request.setCharacterEncoding("UTF-8");

                }

 

3 報表配置

 

 

1.新建一個報表模板:點擊File--New File--New Report彈出對話框如下圖:

File name給報表模板命名,保存在一個路徑下,可以去掉對號,自定義保存的路徑。

點擊 Next>

 

2.點擊Next后進入,報表模板類型的選擇,一般情況下是選擇Blank Report(空白的模板類型),這樣方便自己來設計模板的樣式。選擇Blank Report后點擊Finish

 

3.一個命名為new_report_8的空白的報表模板已經創建完成,接下來要對這個報表進行數據源的配置,選擇Data Explorer(數據資源管理的標簽)

 

4.在Data Sources右鍵點擊選擇New Data Source,進行數據源的配置,以創建JDBC Data Source 為例進行說明,點擊Next

 

5.點擊Next后,對數據源進行配置,點擊Manage Drivers 可以加載數據庫驅動文件。配置完成后點擊OK,一個數據源建立完成。

 

6.數據源建立完成,開始建立數據集,先選擇剛才創建好的數據源名字 Data Souce,

對數據集進行命名:TestDS,點擊Next>

 

 

 

7.點擊Next> ,在左邊選擇剛才定義好的數據源Data Source 篩選出要操作的表,可進行拖拽,也可以自己拼寫SQL語句。然后點擊OK。

 

 

8.一個數據集建立完成了,可以點擊 Preview Results 進行預覽

下面是預覽的結果,可以查看輸出的字段

 

9.建立好了數據集,接下來是要進行參數的配置,一張報表,一般情況下會輸入多個參數,來查詢出想得到的結果。

 

3.1報表模板的創建

 

1.新建一個報表模板:點擊File--New File--New Report彈出對話框如下圖:

File name給報表模板命名,保存在一個路徑下,可以去掉對號,自定義保存的路徑。

點擊 Next>

 

 

2.點擊Next后進入,報表模板類型的選擇,一般情況下是選擇Blank Report(空白的模板類型),這樣方便自己來設計模板的樣式。選擇Blank Report后點擊Finish

 

3.一個命名為new_report_8的空白的報表模板已經創建完成,接下來要對這個報表進行數據源的配置,選擇Data Explorer(數據資源管理的標簽)

 

4.在Data Sources右鍵點擊選擇New Data Source,進行數據源的配置,以創建JDBC Data Source 為例進行說明,點擊Next

 

5.點擊Next后,對數據源進行配置,點擊Manage Drivers 可以加載數據庫驅動文件。配置完成后點擊OK,一個數據源建立完成。

 

6.數據源建立完成,開始建立數據集,先選擇剛才創建好的數據源名字 Data Souce.

對數據集進行命名:TestDS,點擊Next>

 

 

 

7.點擊Next> ,在左邊選擇剛才定義好的數據源Data Source 篩選出要操作的表,可進行拖拽,也可以自己拼寫SQL語句。然后點擊OK。

 

 

8.一個數據集建立完成了,可以點擊 Preview Results 進行預覽

下面是預覽的結果,可以查看輸出的字段

 

 

3.2使用公用的數據源

 

Birt也可以不需要沒張報表模板都建立數據源,可以創建一個公用的數據源,使每個報表模板都引用這個數據源。首先來創建一個公用的數據源。

1.點擊File>>New>>New Library,進入下面的換面,然后給公用數據源進行命名,選擇公用數據源的存儲路徑,一般情況與報表模板存儲在一個路徑下。然后點擊Finish.

 

2.進行公用數據源的配置,步驟與在報表模版中配置數據源是一樣的。

首先在Data Sources右鍵點擊選擇New Data Source,進行數據源的配置,以創建JDBC Data Source 為例進行說明,點擊Next

 

點擊Next后,對數據源進行配置,點擊Manage Drivers 可以加載數據庫驅動文件。配置完成后點擊OK,一個數據源建立完成。這樣一個公用的數據源就建立完成了。

 

3.公用的數據源已經創建完成,下面就要在報表模板中引用公用數據源,還是以之前創建好的報表模板new_report_8.rptdesign為例,把剛才制作好的公用數據源引用到new_report_8模板中。

(1)首先打開new_report_8.rptdesign,然后Window>>Show View>>Resource Exploer 打開資源管理面板,在下面的截圖中可以看到,我們剛才建立的功用的數據源,new_library.rptlibrary,還可以看到,定義好的數據源test_Library

 

5.在test_Library上點擊右鍵,選擇Add to Report,這樣就會把這個公用的數據源添加到報表模板中。

6.可以在下面的截圖中看到,模板中有兩個數據源,一個Data Source是之前我們在我們在報表模板中建立的,另一個 test_Library是引用自公用數據源

 

3.3參數的配置

下面介紹報表參數配置進行說明,參數的配置主要有兩種形式,一個是?的形式,還有一種是利用script腳本進行參數的替換,下面分別說明

3.3.1配置?形式的參數

以new_report_8為例,使用之前在new_report_8建立好的數據集TestDS

打開TestDS數據集,使其引用test_Library數據源,替換了我們之前以用的Data Source數據源。

 

 

打開Query查詢窗口,拼寫SQL語句,?形式就是要查詢時,輸入的參數。

下面的兩個參數,是需要從外面輸入的,所以要對兩個參數進行配置。

 

下面如圖是要配置兩個要輸入的參數,進行查詢,右鍵Report Parameters>>New Parameter

 

點擊New Parameter,進入配置參數的界面,配置參數名稱、參數類型、參數展示的形式,默認值等信息,如果參數不是必須填寫的可以把IS Required的勾去掉。配置完成點擊OK

 

 

為剛才數據集的兩個參數已經配置好,如下圖

 

接下來是讓TestDS數據集引用配置好的兩個參數,打開數據集TestDS

點擊左側Parameters>>New 把剛才配置好的兩個參數引入進來,注意參數的順序要與?號的順序一致。這樣?形式的參數就配置完成了。可以進行預覽

 

 

 

 

 

 

3.3.2配置腳本形式的參數

還是引用上面的數據集,是以腳本替換的形式進行查詢的,打開TestDS數據集然后進行SQL語句的拼寫。

 

 

在剛才的SQL語句基礎上多了一個條件,是rownum<=

${rownum}是要在腳本中被替換的。在Parameters中配置rownum參數

 

下面進入script腳本中,選中TestDS,右側報表工作區,點擊script, BeforeOpen下編寫腳本。Before Open表示在執行SQL語句之前進行了參數的替換。這樣就可以腳本形式替換參數,就可以執行了。

 

 

3.1 隔行高亮顯示

點擊右側報表配置工作區中的LayOutb標簽,選中要高亮顯示的行,一般是Table-Detail,選擇Higthgts,點擊Add

 

點擊Add 彈出窗口進行配置如圖進行配置:

 

3.2 引用定義好的CSS樣式

顯示出Outline,刪除style下birt默認的樣式,引用定義好的樣式

 

然后右鍵 Styles>>Use CSS File,引用外部定義好的birt.css.

 

(1)表頭如何引用樣式:

選中Table-Header右鍵>>Style>>Apply Style>>table-th

 

(2)如何引用報表內容樣式:

選中Table-Detail右鍵>>Style>>Apply Style>>tables-rows

 

(3)報表最后一樣引用樣式

選中Table-Footer右鍵>>Style>>Apply Style>>tables-last-row

 

(3)固定表頭使其內容顯示在一行

選中要固定的內容右鍵>>Style>>Apply Style>>tip

 

 

3.3 圖表配置

表TEST_CHART

字段名

字段類型

是否可為空

YEARMONTH

VARCHAR2(6)

Y

TYPE

VARCHAR2(10)

Y

NUM

NUMBER(8)

Y

 

insert into TEST_CHART (YEARMONTH, TYPE, NUM)

values ('200910', '2G開戶', 9000);

insert into TEST_CHART (YEARMONTH, TYPE, NUM)

values ('200910', '3G開戶', 7500);

insert into TEST_CHART (YEARMONTH, TYPE, NUM)

values ('200910', '上網卡', 5700);

insert into TEST_CHART (YEARMONTH, TYPE, NUM)

values ('200911', '2G開戶', 3000);

insert into TEST_CHART (YEARMONTH, TYPE, NUM)

values ('200911', '3G開戶', 2500);

insert into TEST_CHART (YEARMONTH, TYPE, NUM)

values ('200911', '上網卡', 7700);

insert into TEST_CHART (YEARMONTH, TYPE, NUM)

values ('200912', '2G開戶', 900);

insert into TEST_CHART (YEARMONTH, TYPE, NUM)

values ('200912', '3G開戶', 750);

insert into TEST_CHART (YEARMONTH, TYPE, NUM)

values ('200912', '上網卡', 570);

insert into TEST_CHART (YEARMONTH, TYPE, NUM)

values ('201001', '2G開戶', 9900);

insert into TEST_CHART (YEARMONTH, TYPE, NUM)

values ('201001', '3G開戶', 9750);

insert into TEST_CHART (YEARMONTH, TYPE, NUM)

values ('201001', '上網卡', 9570);

insert into TEST_CHART (YEARMONTH, TYPE, NUM)

values ('201002', '2G開戶', 2900);

insert into TEST_CHART (YEARMONTH, TYPE, NUM)

values ('201002', '3G開戶', 2750);

insert into TEST_CHART (YEARMONTH, TYPE, NUM)

values ('201002', '上網卡', 2570);

insert into TEST_CHART (YEARMONTH, TYPE, NUM)

values ('201003', '2G開戶', 9900);

insert into TEST_CHART (YEARMONTH, TYPE, NUM)

values ('201003', '3G開戶', 9750);

insert into TEST_CHART (YEARMONTH, TYPE, NUM)

values ('201003', '上網卡', 9570);

commit;

 

新建數據集

 

 

 

 

 

 

 

選中數據集

 

 

 

 

 

 

 

 

修改markers大小為2

 

3.4 字段收斂(根據用戶group_id隱藏字段)

以[ 2G發展量報表 ]為例

根據不同用戶,判斷是否隱藏后付費用戶數

 

省中心用戶

 

地市用戶

 

 

表DFND_HIDDEN_COL:

字段名

字段類型

是否可為空

含義

FUNCTION_CODE

VARCHAR2(10)

N

功能代碼

LOGIN_GROUP_ID

VARCHAR2(10)

N

登陸group_id

HIDDEN_SEQ1

NUMBER

Y

1為隱藏

HIDDEN_NOTE1

VARCHAR2(40)

Y

 

HIDDEN_SEQ2

NUMBER

Y

 

HIDDEN_NOTE2

VARCHAR2(40)

Y

 

HIDDEN_SEQ3

NUMBER

Y

 

HIDDEN_NOTE3

VARCHAR2(40)

Y

 

HIDDEN_SEQ4

NUMBER

Y

 

HIDDEN_NOTE4

VARCHAR2(40)

Y

 

HIDDEN_SEQ5

NUMBER

Y

 

HIDDEN_NOTE5

VARCHAR2(40)

Y

 

 

FUNCTION_CODE

LOGIN_GROUP_ID

HIDDEN_SEQ1

HIDDEN_NOTE1

HIDDEN_SEQ2

9445

16128

1

后付費發展數

 

 

3.4.1 數據集beforeOpen腳本中增加

this.queryText = this.queryText.replaceAll("\\$\\{login_group_id\\}",params["loginGroupId"].value);

 

3.4.2 修改報表Sqlquery

新增紅色字體部分

SELECT  aa.*, bb.hidden_seq1 from (

SELECT   d.GROUP_ID,

         CASE d.root_distance

            WHEN 1

               THEN SUBSTR (d.group_name, 5, 2)

            ELSE d.group_name

         END group_name,

         e.class_code, e.class_name, g.brand_type_name t0,

         SUM (pre_lucky) t1, SUM (pre_pop) t2, SUM (pre_up) t3,

         SUM (pre_other) t4, SUM (pre_tot) t5, SUM (after_world) t6,

         SUM (tot_2g) t7, d.queue_index, d.root_distance rd1,

         e.root_distance rd2,

         '${login_group_id}' login_group_id

    FROM pmrt.tb_rpt_2g_serv_day a,

         dchngroupmsg b,

         dchngroupinfo c,

         schnclassinfo f,

         schnbrandcode g,

         (SELECT b.GROUP_ID, a.group_name, a.queue_index, a.root_distance

            FROM dchngroupmsg a, dchngroupinfo b

           WHERE b.parent_group_id = '${parent_group_id}'

             AND b.denorm_level = '${group_level}'

             AND a.GROUP_ID = b.GROUP_ID) d,

         (SELECT b.class_code, a.class_name, a.root_distance

            FROM schnclassmsg a, schnclassinfo b

           WHERE b.parent_class_code = '${parent_class_code}'

             AND b.denorm_level = '${class_level}'

             AND a.class_code = b.class_code) e

   WHERE a.GROUP_ID = b.GROUP_ID

     AND b.GROUP_ID = c.GROUP_ID

     AND b.class_code = f.class_code

     AND c.parent_group_id = d.GROUP_ID

     AND f.parent_class_code = e.class_code

     AND a.deal_date >= ${begin_time} and a.deal_date<=${end_time}

     AND a.product_id = g.product_id

     AND g.brand_type = '10'

GROUP BY d.GROUP_ID,

         e.class_code,

         d.group_name,

         e.class_name,

         brand_type_name,

         d.queue_index,

         d.root_distance,

         e.root_distance

ORDER BY d.queue_index) aa, dfnd_hidden_col bb

where aa.login_group_id = bb.login_group_id(+)

and bb.function_code(+) = '9445'

 

3.4.3 修改報表模板

 

選中要隱藏的字段

 

 

Visibility中選中hide Element

修改表達式

 

 

4 尚未解決問題列表

 

問題編號

問題描述

問題解決條件

計划解決時間

1

表頭固定

 

 

2

Word導出亂碼

 

 

 

 

 

 

4.1 表頭固定

當報表超出頁面,出現滾動條時。最好可以固定表頭,這樣用戶可以清楚看到是哪一項指標。如EXCEL鎖定列功能,最好也能實現。估計用戶以后會提這個需求。

 

4.2 Word導出亂碼

Unix主機上導出Word時亂碼,可能和主機字體設置有關系。BIRT找不到相應的字體文件。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM