方法和接口说明
接口名
填报监听抽象类:com.runqian.report4.usermodel.input.AbstractInputListener
接口说明
使用填报表进行数据填报的整个过程中,填报监听器的监听过程如下:
(1)在填报表页面中填写数据并触发提交 -> (2)填报数据提交至系统服务器 -> (3)调用监听器的beforeSave()方法 -> (4)将填报数据提交至数据库(尚未commit) -> (5)调用监听器的afterSave()方法 -> (6)将填报数据最终向数据库commit
因此,开发者可以自行定义填报监听类,继承监听抽象类AbstractInputListener,并实现beforeSave()、afterSave()方法,保存数据前、后的客户化处理代码分别写在这两个方法中。
监听器类中可以使用session对象、request对象、response对象、报表运行环境对象context、获得前端提交的数据、修改前端提交的数据,因此可以检查用户登录信息、操作权限、数据有效性或其他信息。
接口方法
beforeSave()
语法:public void beforeSave() throws Exception
功能说明:填报数据保存到数据库前的处理方法,此方法由用户类覆盖,系统自动调用此方法。执行此方法出现异常时,将不再执行将后续的数据保存至数据库、afterSave()、commit提交等处理。
afterSave()
语法:public void afterSave()throws Exception
功能说明:填报数据保存到数据库后但执行commit前的处理方法,此方法由用户类覆盖,系统自动调用此方法。执行此方法出现异常时,将终止数据保存,已经提交到数据库的数据会进行事务回滚。
getInputSql()
语法:public InputSQL[] getInputSql()
功能说明:可以获得填报保存数据时生成的SQL语句的信息,返回保存数据时生成的InputSQL对象数组。
返回值:保存数据时生成的InputSQL对象数组
delete()
语法:public void delete( Object[] params )
参数说明:
-
params - 参数数组,系统根据用户在更新属性中的设置,将所需要的参数以数组的方式传送过来
功能说明:用于行式报表,实现数据的删除,数据提交时调用。
重要变量
填报监听类中有以下变量,开发者可以直接使用这些对象:
protected Context context; //保存报表时的上下文环境
protected HttpServletRequest request; //WEB应用中的Request对象
protected HttpServletResponse response; //WEB应用中的Response对象
protected IReport report; //填报提交后的报表对象
protected String tableId; //多表填报时,当前要保存报表在网页中的ID名
protected ArrayList sqls = new ArrayList(); //保存数据时生成的InputSQL对象列表
protected HashMap conMap; //保存数据时产生的数据源与数据库连接映射表