集智平台jsp中获得报表某一列的数据

有一些客户需要在报表报表展现与输出" target="_blank" class="geeznLink8">展现的同时获取到报表某一列的内容,然后需要在其他的地方对着一列的数据进行处理,这样就需要在jsp中计算完报表后获取到报表相应列里面的内容,然后用bean的方式发布报表。

第一步:制作一张报表,连接demo数据源。

制作一张的报表,连接demo数据源。

数据集ds1的sql为:SELECT EMPLOYEE.EMPID,EMPLOYEE.EMPNAME,EMPLOYEE.BIRTHDAY,EMPLOYEE.SEX,EMPLOYEE.DEGREE,EMPLOYEE.BONUS FROM EMPLOYEE

数据集ds2的sql为:SELECT DEGREE.ID,DEGREE.NAME FROM DEGREE

设置报表E2单元格的显示格式为:ds2.select1(name,id==value())

设置报表D2单元格的显示格式为:map(list(“1″,”2″),list(“男”,”女”))

第二步:编写jsp,获取报表列的内容。

写一个jsp,在jsp中获取到需要展现的报表,在jsp中使用API计算报表得到IReport对象,然后遍历IReport对象的指定列,然后保存这个列的内容,这样就实现了或者指定列内容的需求。

具体jsp中完整的代码如下:

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

<%@ taglib uri=”/WEB-INF/runqianReport4.tld” prefix=”report” %>

<%@ page import=” com.runqian.report4.model.ReportDefine,

com.runqian.report4.model.engine.ExtCellSet,

com.runqian.report4.usermodel.Context,

com.runqian.report4.usermodel.Engine,

com.runqian.report4.usermodel.INormalCell,

com.runqian.report4.usermodel.IReport,

com.runqian.report4.util.ReportUtils”%>

<% //这里为两种方法准备图片连接的公共部分

 

String raq = “colname.raq”;

String path = application.getRealPath(“/reportFiles/”+raq);

 

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

Context ctx = new Context();

Engine engine = new Engine(rd,ctx);

IReport ireport = engine.calc();

StringBuffer sb = new StringBuffer();

 

int colnum = 3;

for(int i =1;i<=ireport.getRowCount();i++){

INormalCell inc = ireport.getCell(i, (short)colnum);

sb.append(inc.getValue().toString()+”;”);

}

out.println(“报表第”+colnum+”列的值为(真实值):”+sb);

 

request.setAttribute(“report”,ireport);

 

%>

<table align=center>

<tr><td>

<report:html

name=”report1″

srcType=”defineBean”

beanName=”report”

needSaveAsWord=”yes”

needSaveAsPdf=”yes”

needSaveAsExcel=”yes”

submit=”<%=submitImage%>”

height=”-1″

/>

</td></tr>

</table>

第三步:使用jsp发布制作好的报表,查看效果。

这样经过上面几步的设置,获取报表中指定列内容的需求就实现了。

本文标签: