/**
* 刷新editUI 使用反射技术调用收保护方法
* @param ui 单据editUi的对象
* @param id 单据的id eidtData.getId()
*/
public static void refreshEditUI(EditUI ui,BOSUuid id){
try {
ObjectUuidPK pk = new ObjectUuidPK(id);
//使用反射技术访问受保护的方法
/**
* 使用反射技术获取父类的方法
* 1、先获取自己的字节码对象: Class clazz=ui.getClass();
* 2、获取父类的字节码对象: =clazz.getSuperclass();
*/
Method m=null;
Class clazz=ui.getClass();
while(true){
try {
m=clazz.getDeclaredMethod("getValue", new Class[]{IObjectPK.class});
break;
} catch (NoSuchMethodException e) {
clazz=clazz.getSuperclass();
}
}
m.setAccessible(true);
IObjectValue objValue=(IObjectValue) m.invoke(ui, new Object[]{pk});
ui.setDataObject(objValue);
ui.loadFields();
ui.getUIContext().put("ID", pk);
ui.getUIContext().put("InitDataObject", objValue);
} catch (Exception e) {
ui.handUIException(e);
}
}
eas bos editUI 刷新方法 帮助类
最新推荐文章于 2023-11-09 13:59:23 发布