eas bos editUI 刷新方法 帮助类

来源:互联网 发布:数学网络课程哪个好 编辑:程序博客网 时间:2024/06/05 18:52

在业务单据  审核或者反审核时,常用到以下的地方 重新加载这个界面的修改后的数据


  1. /**  
  2.  * 刷新editUI 使用反射技术调用收保护方法  
  3.  * @param ui 单据editUi的对象  
  4.  * @param id  单据的id eidtData.getId()  
  5.  */  
  6. public static void refreshEditUI(EditUI ui,BOSUuid id){  
  7.     try {  
  8.         ObjectUuidPK pk = new ObjectUuidPK(id);  
  9.     //使用反射技术访问受保护的方法   
  10.   
  11.         /**  
  12.          * 使用反射技术获取父类的方法  
  13.          * 1、先获取自己的字节码对象: Class clazz=ui.getClass();  
  14.          * 2、获取父类的字节码对象: =clazz.getSuperclass();  
  15.          */  
  16.         Method m=null;  
  17.         Class clazz=ui.getClass();  
  18.         while(true){  
  19.             try {  
  20.                  m=clazz.getDeclaredMethod("getValue", new Class[]{IObjectPK.class});  
  21.                  break;  
  22.             } catch (NoSuchMethodException e) {  
  23.                 clazz=clazz.getSuperclass();  
  24.             }  
  25.         }  
  26.         m.setAccessible(true);  
  27.         IObjectValue objValue=(IObjectValue) m.invoke(ui, new Object[]{pk});  
  28.         ui.setDataObject(objValue);  
  29.         ui.loadFields();  
  30.         ui.getUIContext().put("ID", pk);  
  31.         ui.getUIContext().put("InitDataObject", objValue);  
  32.     } catch (Exception e) {  
  33.         ui.handUIException(e);  
  34.     }  
  35. }  

0 0
原创粉丝点击