搜索文章

推荐内容

快逸做的更好

产品优势

您的位置: 首页 > 报表技术分享 > 快逸报表计算数据集记录数

快逸报表计算数据集记录数

背景说明

Api运算报表,当报表的数据集中的数据记录数为0的时候,就是没有数据时,就不需要展现报表,以及导出excel等操作。

 

这个需求,在报表中也能实现,就是在报表的某个单元格中用数据集函数(=ds1.count)获取,然后对这个单元格的值做判断。但有时,不方便设置这样的单元格,那在api中怎么获取记录数,通过对记录数做判断来执行操作呢,我们看下面一个例子。

 

 

应用举例

写一个jsp页面,运算报表。

 api运算报表,如下代码:

<%@ page contentType=”text/html;charset=gb2312″ %>

<%@ page import=”java.io.*”%>

<%@ page import=”com.runqian.report4.usermodel.*”%>

<%@ page import=”com.runqian.report4.model.*”%>

<%@ page import=”com.runqian.report4.view.html.*”%>

<%@ page import=”com.runqian.report4.util.*”%>

<%@ page import=”com.runqian.report4.dataset.DataSet”%>

 

<%

       //第一步,读取报表模板

       String reportFileHome=Context.getInitCtx().getMainDir();

       String reportPath = application.getRealPath(reportFileHome)+”\\area.raq”;

       ReportDefine rd = (ReportDefine)ReportUtils.read( reportPath );      

       //System.out.println(“reportPath==”+reportPath);

 

       //第二步,运算报表

       Context context = new Context();       

       Engine enging = new Engine( rd, context);

       IReport iReport = enging.calc();

 

       //第三步,获取数据集记录数

       DataSetConfig dsc = iReport.getDataSetMetaData().getDataSetConfig(0);//得到数据集配置

       String dsName = dsc.getName();//得到数据集的名称

       DataSet dataSet = context.getDataSet(dsName);//得到数据集   

       int dsCount = dataSet.getRowCount();//得到数据集的记录数

       //System.out.println(“dsCount==”+dsCount);

 

       //第四步,通过记录数判断是否展现、输出excel

       if(dsCount>0){

              HtmlReport hReport = new HtmlReport( iReport,”report1″ );     

              out.print(hReport.generateHtml());

 

ReportUtils.exportToExcel(application.getRealPath(reportFileHome)+”\\area.xls”, iReport, true);

       }else out.println(“dsCount==”+dsCount);

 

%>

本文标签: