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找不到相应的字体文件。

目录 学习基础知识 教程 1:构建简单的列表报告 任务 1:创建新项目 任务 2:创建新报告 任务 3:构建数据源 任务 4:构建数据集 任务 5:对报告进行布局 任务 6:对数据进行排序 任务 7:格式化报告 编辑列标题 格式化列标题 在同一行上显示名字和姓氏 增大行之间的间隔 任务 8:创建报告标题 接下来的步骤 连接至数据源 如何创建 BIRT 数据源 如何修改现有 BIRT 数据源 如何删除 BIRT 报告设计器数据源 如何对数据库或其他 JDBC 数据源指定连接信息 如何添加 JDBC 驱动程序 如何删除 JAR 文件中的所有 JDBC 驱动程序 检索数据 如何创建数据集 如何更改数据集的数据源 如何对 JDBC 数据集编写 SQL 查询 如何对 JDBC 数据集指定存储过程 如何查看和更改输出列 如何更改“预览结果”中出现的行数 如何将计算字段添加至数据集 如何连接数据集 如何定义动态查询 如何设置高速缓存首选项 绑定数据 如何创建列绑定 对报告进行布局 如何添加行或列 如何删除行或列 如何将数据集绑定至表 如何插入链接的图像 如何插入嵌入式图像 如何插入存储在数据源中的图像 显示文本 如何使用动态文本元素 格式化报告内容 如何创建样式 如何导入样式 如何应用样式 如何修改样式 如何删除样式 如何创建格式化规则 如何修改格式化规则 如何删除格式化规则 如何通过拖动边界来调整列或行的大小 如何指定行高 如何指定列宽 如何合并表或网格单元格 如何有条件地隐藏元素 对数据进行排序和分组 教程 2:对报告数据进行分组 任务 1:打开报告设计 任务 2:将报告另存为新文件 任务 3:将贷记限额字段添加至数据集 任务 4:将贷记限额数据添加至报告 任务 5:按贷记限额对客户数据进行分组 任务 6:在组头中显示贷记限额范围 任务 7:显示聚集信息 任务 8:格式化报告 除去详细信息行中的贷记限额数据 在每组的第一行中显示组标题 用一行分隔每组 任务 9:在 BIRT 报告查看器中预览报告 任务 10:在目录中显示贷记限额范围 聚集数据 如何在表达式构建器中构造聚集表达式 编写表达式 过滤数据 如何过滤行以便从 JDBC 数据源检索数据 如何在数据集级别进行过滤 如何在报告元素级别进行过滤 如何在组级别进行过滤 使用户能够对数据进行过滤 使用户能够在查询运行时进行过滤 如何创建简单报告参数 如何在 SQL 查询中插入参数标记 如何创建数据集参数 如何在运行报告时动态更新过滤条件 构建包含子报告的报告 教程 3:构建带有并排子报告的报告 任务 1:创建新报告 任务 2:构建数据源 任务 3:为客户报告构建数据集 任务 4:为订单子报告构建数据集 任务 5:为支付子报告构建数据集 任务 6:创建客户主报告 任务 7:创建订单子报告 任务 8:将订单子报告链接至客户主报告 任务 9:创建支付子报告 任务 10:将支付子报告链接至客户主报告 任务 11:仅显示具有订单或支付的客户 任务 12:并排显示子报告 任务 13:格式化报告 突出显示客户名 编辑列标题 更改日期格式 更改数字格式 增大元素之间的垂直间距 增大订单表与支付表之间的水平间距 在表周围添加边框 增大表边框与内容之间的间距 在报告中使用图表 教程 4:创建图表 任务 1:设置报告设计文件 任务 2:在报告中添加图表 任务 3:为图表提供数据 任务 4:查看图表 任务 5:更新图表标题 任务 6:优化图表外观 在图表中显示数据 如何选择图表数据集 如何对类别系列数据进行分组 如何设置轴的数据类型和格式 如何更改图表预览首选项 对图表进行布局和格式化 如何设置图表背景色 如何定义定制颜色 如何为具有深度的图表或三维图表设置墙体色或地板色 如何设置图表区嵌入 如何为图形设置背景色 如何为图形区加上轮廓 如何为轴中的图形区加上阴影 如何调整图表图形的放置和填充 如何格式化轴名 如何在仪表图或饼图中添加或格式化值系列标题 如何修改轴线 如何修改轴刻度线 如何添加或修改网格线 设计多页报告 如何在页眉和页脚中显示文本 如何指定页眉或页脚大小 如何避免首页出现页眉内容 添加交互式查看功能 如何创建书签 如何链接两个报告部分 如何链接两个报告 如何创建目录条目 如何导出报告数据 构建共享的报告开发框架 如何将元素添加到库中 如何设置报告设计的主题 如何从报告设计中删除主题 如何创建模板报告项
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值