设为首页 收藏本站
查看: 1226|回复: 0

[经验分享] BIRT 使用说明书

[复制链接]

尚未签到

发表于 2017-2-19 12:39:11 | 显示全部楼层 |阅读模式




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-->
  <!--
  Defaulttimezone setting.
  Examples:"Europe/Paris", "GMT+1".
  Defaultsto the container's timezone.         
  -->
  <!--  context-param>
  <param-name>BIRT_VIEWER_TIMEZONE</param-name>
  <param-value></param-value>
  </context-param-->
  <!-- Reportresources 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>
  <!-- Thegenerated 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>
  <!-- Ifonly 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>
  <!-- Outputimage/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>
  <!-- Enginelog directory. Default to ${birt home}/logs -->
  <context-param>
  <param-name>BIRT_VIEWER_LOG_DIR</param-name>
  <param-value>birt/logs</param-value>
  </context-param>
  <!-- Reportengine 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 ${birthome}/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 reportdesign 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>
  <!-- Memorysize(MB) for creating cube. -->
  <context-param>
  <param-name>BIRT_VIEWER_CUBE_MEMORY_SIZE</param-name>
  <param-value></param-value>
  </context-param>
  <!-- Ifalways 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>
  <!-- DefineBIRT viewer configuration file -->
  <context-param>
  <param-name>BIRT_VIEWER_CONFIG_FILE</param-name>
  <param-value>WEB-INF/viewer.properties</param-value>
  </context-param>
  <!-- Ifturn 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>
  <!-- Ifforce 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配置 -->
  <!-- ViewerFilter.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配置 -->
  <!-- ViewerHttpSession Listener -->
  <listener>
  <listener-class>org.eclipse.birt.report.listener.ViewerHttpSessionListener</listener-class>
  </listener>
  <!-- BIRT配置 -->
  <!-- ViewerServlet, Support SOAP -->  
  <servlet>
  <servlet-name>ViewerServlet</servlet-name>
  <servlet-class>org.eclipse.birt.report.servlet.ViewerServlet</servlet-class>
  </servlet>
  <!-- EngineSerlvet -->
  <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-->
  <actionpath="/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'>
  <TDCOLSPAN='2'></TD>
  </TR>
  <TRCLASS='body_caption' VALIGN='bottom'>
  <TDCOLSPAN='2'>
  <TABLEBORDER=0 CELLSPACING="0" CELLPADDING="1px"WIDTH="100%">
  <TR>
  <TDWIDTH="3px"/>
  <TD>
  <B><%=attributeBean.getReportTitle( ) %>
  </B>
  </TD>
  <TDALIGN='right'>
  </TD>
  <TDWIDTH="3px"/>
  </TR>
  </TABLE>
  </TD>
  </TR-->
  /gdchn/chnweb/birt/pages/control/ToolbarFragment.jsp
  <!--TD WIDTH="6px"/>
  <TDWIDTH="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
  {
  %>
  <%
  }
  %>   
  /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--NewReport弹出对话框如下图:
  File name给报表模板命名,保存在一个路径下,可以去掉对号,自定义保存的路径。
  点击 Next>
  2.点击Next后进入,报表模板类型的选择,一般情况下是选择Blank Report(空白的模板类型),这样方便自己来设计模板的样式。选择Blank Report后点击Finish
  3.一个命名为new_report_8的空白的报表模板已经创建完成,接下来要对这个报表进行数据源的配置,选择Data Explorer(数据资源管理的标签)
  4.在Data Sources右键点击选择New DataSource,进行数据源的配置,以创建JDBC Data Source 为例进行说明,点击Next
  5.点击Next后,对数据源进行配置,点击Manage Drivers 可以加载数据库驱动文件。配置完成后点击OK,一个数据源建立完成。
  6.数据源建立完成,开始建立数据集,先选择刚才创建好的数据源名字 DataSouce,
  对数据集进行命名:TestDS,点击Next>
  7.点击Next> ,在左边选择刚才定义好的数据源Data Source 筛选出要操作的表,可进行拖拽,也可以自己拼写SQL语句。然后点击OK。
  8.一个数据集建立完成了,可以点击 Preview Results 进行预览
  下面是预览的结果,可以查看输出的字段
  9.建立好了数据集,接下来是要进行参数的配置,一张报表,一般情况下会输入多个参数,来查询出想得到的结果。
  3.1报表模板的创建
  1.新建一个报表模板:点击File--New File--NewReport弹出对话框如下图:
  File name给报表模板命名,保存在一个路径下,可以去掉对号,自定义保存的路径。
  点击 Next>
  2.点击Next后进入,报表模板类型的选择,一般情况下是选择Blank Report(空白的模板类型),这样方便自己来设计模板的样式。选择Blank Report后点击Finish
  3.一个命名为new_report_8的空白的报表模板已经创建完成,接下来要对这个报表进行数据源的配置,选择Data Explorer(数据资源管理的标签)
  4.在Data Sources右键点击选择New DataSource,进行数据源的配置,以创建JDBC Data Source 为例进行说明,点击Next
  5.点击Next后,对数据源进行配置,点击Manage Drivers 可以加载数据库驱动文件。配置完成后点击OK,一个数据源建立完成。
  6.数据源建立完成,开始建立数据集,先选择刚才创建好的数据源名字 DataSouce.
  对数据集进行命名:TestDS,点击Next>
  7.点击Next> ,在左边选择刚才定义好的数据源Data Source 筛选出要操作的表,可进行拖拽,也可以自己拼写SQL语句。然后点击OK。
  8.一个数据集建立完成了,可以点击 Preview Results 进行预览
  下面是预览的结果,可以查看输出的字段
3.2使用公用的数据源
  Birt也可以不需要没张报表模板都建立数据源,可以创建一个公用的数据源,使每个报表模板都引用这个数据源。首先来创建一个公用的数据源。
  1.点击File>>New>>NewLibrary,进入下面的换面,然后给公用数据源进行命名,选择公用数据源的存储路径,一般情况与报表模板存储在一个路径下。然后点击Finish.
  2.进行公用数据源的配置,步骤与在报表模版中配置数据源是一样的。
  首先在DataSources右键点击选择New Data Source,进行数据源的配置,以创建JDBC Data Source 为例进行说明,点击Next
  点击Next后,对数据源进行配置,点击ManageDrivers 可以加载数据库驱动文件。配置完成后点击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 toReport,这样就会把这个公用的数据源添加到报表模板中。
  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
  点击NewParameter,进入配置参数的界面,配置参数名称、参数类型、参数展示的形式,默认值等信息,如果参数不是必须填写的可以把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,

         CASEd.root_distance

            WHEN1

               THENSUBSTR (d.group_name, 5, 2)

            ELSEd.group_name

         ENDgroup_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

    FROMpmrt.tb_rpt_2g_serv_daya,

         dchngroupmsg b,

         dchngroupinfo c,

         schnclassinfo f,

         schnbrandcode g,

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

            FROMdchngroupmsg a, dchngroupinfo b

           WHEREb.parent_group_id = '${parent_group_id}'

             ANDb.denorm_level = '${group_level}'

             ANDa.GROUP_ID = b.GROUP_ID) d,

         (SELECTb.class_code, a.class_name, a.root_distance

            FROMschnclassmsg a, schnclassinfo b

           WHERE b.parent_class_code= '${parent_class_code}'

             ANDb.denorm_level = '${class_level}'

             ANDa.class_code = b.class_code) e

   WHEREa.GROUP_ID = b.GROUP_ID

     ANDb.GROUP_ID = c.GROUP_ID

     ANDb.class_code = f.class_code

     ANDc.parent_group_id = d.GROUP_ID

     ANDf.parent_class_code = e.class_code

     ANDa.deal_date >= ${begin_time} anda.deal_date<=${end_time}

     ANDa.product_id = g.product_id

     ANDg.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中选中hideElement
  修改表达式
4 尚未解决问题列表
  
  问题编号
  问题描述
  问题解决条件
  计划解决时间
  1
  表头固定
  2
  Word导出乱码
4.1 表头固定
  当报表超出页面,出现滚动条时。最好可以固定表头,这样用户可以清楚看到是哪一项指标。如EXCEL锁定列功能,最好也能实现。估计用户以后会提这个需求。
4.2 Word导出乱码
  Unix主机上导出Word时乱码,可能和主机字体设置有关系。BIRT找不到相应的字体文件。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-344261-1-1.html 上篇帖子: 淘宝技术发展(转) 下篇帖子: Spring MVC 3 深入总结
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表