jsp中获得报表某一列的数据

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

 

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

制作一张的报表,连接demo数据源,报表的具体样式如下图所示:

 

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

 

数据集ds2sql为: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发布制作好的报表,查看效果。

 

使用上面jsp发布制作好的报表,在浏览器中查看效果,具体的效果如下:

 

 

 

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

热门文章