润乾集算报表提供了将多个报表组合到一起显示的报表组功能。使用报表组可以很方便地将同类报表组合到一起展现、导出及打印。下面来看下报表组的使用。

报表组制作

新建报表组

  首先准备要加入报表组中的报表,这里使用订单表和订单明细表,两表均带有订单ID范围参数bideid。新建报表组,编辑报表源:

润乾集算报表呈现一组多个报表_一组多个报表

   报表来源URL可以是绝对路径,也可以是相对路径(相对于应用资源路径),这里我们使用相对路径。

 

增加参数

  为报表组设置参数如下:

润乾集算报表呈现一组多个报表_报表组_02

编辑报表项

  分别设置两个报表项,更改报表项标题并设置参数,将报表组参数传递给各报表项:

润乾集算报表呈现一组多个报表_报表组_03

   设置后的报表组(group.rpg)如下:

润乾集算报表呈现一组多个报表_报表组导出_04

   到这里报表组的设置已经完成,报表组中的订单表和订单明细表制作可参考集算报表相关文档。

   由于报表组中带有参数,发布到页面需要参数输入界面,所以这里再制作一个参数模板(group_arg.rpx),联合报表组发布:

润乾集算报表呈现一组多个报表_报表组打印_05

   报表组展现

  编辑报表组展现的JSPshowReportGroup.jsp):

<%@ pagecontentType="text/html;charset=GBK" %>
<%@ tagliburi="/WEB-INF/raqsoftReport.tld" prefix="report" %>
<%@ pageimport="java.io.*"%>
<%@ pageimport="java.util.*"%>
<%@ pageimport="com.raqsoft.report.usermodel.Context"%>
<%@ pageimport="com.raqsoft.report.util.ReportUtils"%>
<%@ pageimport="com.raqsoft.report.model.ReportDefine"%>
<%@ pageimport="com.raqsoft.report.usermodel.ReportGroup"%>
<%@ pageimport="com.raqsoft.report.usermodel.SubReportConfig"%>
 
<html>
<link type="text/css"href="css/style.css" rel="stylesheet"/>
<body topmargin=0leftmargin=0 rightmargin=0 bottomMargin=0>
<%
         request.setCharacterEncoding("GBK" );
         String report = request.getParameter("rpg" );
         StringreportFileHome=Context.getInitCtx().getMainDir();
         StringBuffer param=new StringBuffer();
        
         //保证报表名称的完整性
         int iTmp = 0;
         if( (iTmp =report.lastIndexOf(".rpg")) <= 0 ){
                   report = report +".rpg";
                   iTmp = 0;
         }
        
 
         Enumeration paramNames =request.getParameterNames();
         if(paramNames!=null){
                   while(paramNames.hasMoreElements()){
                            String paramName =(String) paramNames.nextElement();
                            StringparamValue=request.getParameter(paramName);
                            if(paramValue!=null){
                                     //把参数拼成name=value;name2=value2;.....的形式
                                     param.append(paramName).append("=").append(paramValue).append(";");
                            }
                   }
         }
 
         //以下代码是检测这个报表是否有相应的参数模板
         String paramFile =report.substring(0,iTmp)+"_arg.rpx";
         File f=newFile(application.getRealPath(reportFileHome+ File.separator +paramFile));
 
%>
<jsp:includepage="grouptoolbar.jsp" flush="false" />
<tableid="rpt" width=100%height=100%><tr><td>
<%    //如果参数模板存在,则显示参数模板
         if( f.exists() ) {
         %>
         <table id=param_tblalign=center><tr><td>
                   <report:paramname="form1" paramFileName="<%=paramFile%>"
                            needSubmit="no"
                            params="<%=param.toString()%>"
                           
                   />
         </td>
         <td><ahref="javascript:_submit( form1 )"><imgsrc="../p_w_picpaths/query.jpg" border=nostyle="vertical-align:middle"></a></td>
         </tr></table>
         <% }
%>
<tablealign=center>
         <tr><td>
                   <report:groupgroupFileName="<%=report%>"
                            funcBarLocation="top"
                            exceptionPage="/reportJsp/myError2.jsp"
                            params="<%=param.toString()%>"
                            appletJarName="raqsoftReportApplet.jar"
                   />
         </td></tr>
</table>
 
<scriptlanguage="javascript">
         //设置分页显示值
        
         document.getElementById( "t_page_span").innerHTML=report1_getTotalPage();
         document.getElementById("c_page_span" ).innerHTML=report1_getCurrPage();
 
</script>
</body>
</html>

 

  将以上报表和报表组放置到报表应用的应用资源路径,如我这里的D:\Program Files\raqsoft\report\webapps\demo\reportFiles,启动应用,访问发布报表组页面,如:http://192.168.1.100:6666/demo/reportJsp/showReportGroup.jsp?rpg=group.rpg可以看到报表组展现效果:

润乾集算报表呈现一组多个报表_报表组打印_06

润乾集算报表呈现一组多个报表_报表组打印_07

   报表组导出

   页面发布后,报表组可以导出ExcelPDFWORD等文件,在发布报表组的页面<report:group>标签下加入:

needSaveAsExcel="yes"

        needSaveAsWord="yes"

        needSaveAsPdf="yes"

   即可在页面中增加相应按钮,已导出Excel为例,导出效果如下:

润乾集算报表呈现一组多个报表_报表组_08

润乾集算报表呈现一组多个报表_报表组_09

   报表组打印

  与导出类似,在<report:group>标签中加入needPrint="yes"属性即可加入报表打印按钮,报表组打印时会提示打印组内某个或某些报表,如下图示:

润乾集算报表呈现一组多个报表_一组多个报表_10

   用户可以通过“预览查看报表打印预览效果,通过打印完成报表组的打印操作。