api计算数据集记录数

◆ 背景说明

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

 

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

 

 

◆ 应用举例

1 写一个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);

 

%>

本文标签: