场景示例
示例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
场景描述
动态改变数据库连接,在比较复杂的业务逻辑下,可能要求同一张填报表在不同的时候往不同的数据库里提交。需要在填报预处理类里动态改变数据库的连接。
改变数据源的连接有三种方式:
- 指定数据源名,改变到另一个系统已配置的数据源上
- 指定一个自定义的数据源工厂
- 传入一个con对象
代码示例
//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
客户化示例\报表运算客户化\填报监听类