9.12 自定义更新类

定义了自定义更新类,则在数据修改完毕点击填报按钮时,后台通过调用用户自定义的更新类来操作数据,报表内置的数据集更新方式则不起作用,在数据提交前会调用更新辅助类中beforeSave方法,在提交后会调用更新辅助类中afterSave方法。

接口扩展方式

这是为用户扩展UniEAP Report提供的功能,如果选择<自定义类提交>方式,将不需要定义逻辑主格,自定义提交类需要实现com.neusoft.report.engine.datainput.CustomDataInput接口,该接口定义如下:

 package com.neusoft.report.engine.datainput;
 import com.neusoft.report.engine.Report;    

 public interface CustomDataInput {
     public static final int UPDATA_RECORD_UNKNOW = -1;
     public int update(Report report);
 }

仅需要实现update方法,在该方法中实现自定义的数据更新逻辑;输入参数Report为报表对象,返回值为数据更新的记录数,如果更新记录数未知,则返回UPDATA_RECORD_UNKNOW。

  • 更新辅助类
    更新辅助类是一个监听类,该类中可以使用session对象、request对象、response对象、报表运行对象、获得前端提交的数据、修改前端提交的数据,可以检查用户登录信息、操作权限、数据有效性或其他信息。该功能是UniEAP Report提供的一个扩展接口,定义更新辅助类需要实现com.neusoft.report.engine.datainput. DataInputListener接口。该接口定义如下:

    package com.neusoft.report.engine.datainput;
    import java.util.Map;
    
    public interface DataInputListener {
      public void beforeSave(Map dataInputContext);
      public void afterSave(Map dataInputContext);
    }
    

    beforeSave(Map dataInputContext)在报表数据更新之前执行,afterSave(Map dataInputContext)在报表数据更新之后执行。

    输入参数Map dataInputContext中可以得到5个对象。分别使用如下常量获得: com.neusoft.report.engine.datainput.DataInputer接口

    • DataInputer.CONTEXT_HTTP_REQUEST
      获取httpRequest对象的常量
    • DataInputer.CONTEXT_HTTP_RESPONSE
      获取httpResponse对象的常量
    • DataInputer.CONTEXT_REPORT
      获取Report对象的常量
    • DataInputer.CONTEXT_UID
      获取当前用户ID的常量
    • DataInputer.CONTEXT_RID
      获取当前报表定义ID的常量

    更新辅助类的demo实现如下:

    package com.neusoft.report.sample.datainput;
    import java.util.Map;    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import com.neusoft.report.engine.Report;
    import com.neusoft.report.engine.datainput.DataInputListener;
    import com.neusoft.report.engine.datainput.DataInputer;
    
    public class MyInputListener implements DataInputListener {
    public void afterSave(Map dataInputContext) {
        HttpServletRequest request = (HttpServletRequest)
    dataInputContext.get(DataInputer.CONTEXT_HTTP_REQUEST);
        HttpServletResponse response = (HttpServletResponse)
    dataInputContext.get(DataInputer.CONTEXT_HTTP_RESPONSE);
        Report report =
     (Report)dataInputContext.get(DataInputer.CONTEXT_REPORT);
        String rid =
     (String)dataInputContext.get(DataInputer.CONTEXT_RID);
        String uid =
    (String) dataInputContext.get(DataInputer.CONTEXT_UID);
    ……
    

    使用方式

    在填报提交中插入自定义提交,并绑定自定义提交类和更新辅助类。

    写入更新辅助类的全路径

    1

    写入自定义提交类的全路径

    2

results matching ""

    No results matching ""

    results matching ""

      No results matching ""