场景示例- 填报监听类-报表展现标签与API
目录

场景示例

示例1

场景描述

获取网页提交上来的单元格值,填报前的处理方法里,常常需要获取网页上提交上来的单元格值,进行各种处理,例如判断数据的合法性、或者是自行进行数据的提交等等

代码示例

获取用户录入的单元格值(包括非录入的隐藏格):

int colNum = report.getColCount(); //report是填报监听类里固有的变量,可以直接调用

int rowNum = report.getRowCount();

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

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

INormalCell iCell = report.getCell(i,j); //逐行逐列获取单元格对象

Object value = iCell.getValue(); //逐行逐列获取单元格值

System.out.println("第"+i+"行第"+j+"列的值是:"+iCell.getValue());

//…… //其它主体代码

}

}

 

示例2

场景描述

动态改变数据库连接,在比较复杂的业务逻辑下,可能要求同一张填报表在不同的时候往不同的数据库里提交。需要在填报预处理类里动态改变数据库的连接。

改变数据源的连接有三种方式:

代码示例

//1、指定另一个系统已配置的数据源

context.setDefDataSourceName( dataSource );

//2、设置自定义连接池工厂,其中connectionFactory这个类必须实现IConnectionFactory接口,并且实现他的getConnection()方法

context.setConnectionFactory(dataSource,connectionFactory)

DataSourceConfig dsoc = new DataSourceConfig(DBTypes.UNKNOWN, true, "GBK", "GBK", false);

context.setDataSourceConfig( dataSource , dsoc);

//3、传入一个con对象

context.setConnection( dataSource ,con);

DataSourceConfig dsoc = new DataSourceConfig(DBTypes.UNKNOWN, true, "GBK", "GBK", false);

context.setDataSourceConfig( dataSource , dsoc);

 

示例3

场景描述

获取用户录入的单元格的原值与新值,在填报提交后处理方法里,最常见的业务处理是写入日志文件,此时往往需要判断哪些记录的数据有修改,哪些没有修改,有修改的才需要写入日志文件。因此需要调用API接口获得单元格的原值和新录入的值,并进行比较。

代码示例

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 value = iCell.getValue();

 //获取单元格的原值

Object value2 = iCell.getInputValue();

 //获取单元格填报后的值

log("第"+i+"行第"+j+"列原值是:"+value+" 填报后的值是:"+value2);

……

//主体代码,例如比较原值和新值是否相同、写入日志文件等

}

}

}

 

参考DEMO

客户化示例\报表运算客户化\填报监听类