知识库

推荐内容

快逸做的更好

产品优势

您的位置: 首页 > 知识库 > 设计基础 > 如何在填报监听类里获取到原值与填报新值

如何在填报监听类里获取到原值与填报新值

很多客户反映在填报监听类里获取不到原值与填报的新值,下面就关于这个问题做一下介绍,

首先介绍html标签里的两个属性,

 

这个属性的含义就是如果把这个类写上,那么报表当点击提交前后,就会执行监听类里的beforeSave()和afterSave()这两个方法,根据不同的代码,起到填报监听的作用。

 

这个属性的意义可以看图片里的介绍,当他设置为yes里,就不执行报表里设置的更新了,这样既可以在监听类里更新,也可以在测试阶段作为测试监听类,避免过多更新数据库,浪费资源。

在jsp中设置:

 

其中api.Listener为监听类的类名。saveDataByListener设置为yes不

用报表复杂报表设计" target="_blank" class="quieeLink1">设计的更新提交。

在这个类里,在afterSave()方法中,加入 如下代码:

int colNum = report.getColCount();

int rowNum = report.getRowCount();

for (int i = 1; i <= rowNum; i++) {

    for (short j = 1; j <= colNum; j++) {

INormalCell iCell = report.getCell(i, j); // 遍历

单元格

// 检验单元格是否为可填报单元格

 if (iCell.getInputProperty() != null) {

 Object value1 = iCell.getValue(); // 获取单元格的

原值

                  Object value2

=iCell.getInputValue(); // 获取单元格填报后的值

if(!value1.toString().equals(value2.toString())){

log(format.format(new Date())+” “+“修改客户表关键字

段值为“+report.getCell(i,

(short) 1).getValue().toString()+“的记录,原值

为:“+value1+“,新值为:“+value2+“。“);

                  }

              }

          }

       }

这样可以再后台里打印出 原值与新值

如果想使用该方法的客户可以尝试一下。

本文标签:
发布日期:2011/04/02
本文分类: 设计基础