0 开发环境
UAP-STUDIO:6.5.0.2
NCHOME:NC65
DB:Oracle 11g
1 最终效果
2 参考代码
2.1 自己实现一个BillListPanel,用于加载模版,模版需要现在pub_billtemplet表注册,再在单据模版初始化里进行初始化配置
public class RespListView extends BillListPanel{
public void initUI()
{
this.loadTemplet();
}
public void loadTemplet()
{
BillTempletVO billTempletVO = new BillTempletVO();
billTempletVO = BillUIUtil.getDefaultTempletStatic("DEPTRESPL", null,
null, null, null, null);
BillListData billListData = new BillListData(billTempletVO);
this.setListData(billListData);
this.getParentListPanel().setTotalRowShow(true);
this.getHeadBillModel().setEnabled(true);
this.updateUI();
}
}
2.2 继承DeptHAppModel,拓展部门树点击事件
public class MyDeptHAppModel extends DeptHAppModel{
private IUAPQueryBS query = NCLocator.getInstance().lookup(IUAPQueryBS.class);
private RespListView respListView;
public void setSelectedData(Object selection)
{
super.setSelectedData(selection);
if(selection==null)
return;
ResponsibilityVO[] respVOs = getRespVOs(selection);
respListView.getHeadBillModel().setBodyDataVO(respVOs);
}
private ResponsibilityVO[] getRespVOs(Object selection){
ResponsibilityVO[] rets = null;
String pk_dept = ((DeptVO)selection).getPk_dept();
String querysql = String.format("select pk_resp from bd_deptresp where dr=0 and pk_dept='%s'"
, pk_dept);
List<Object[]> pks = null;
try
{
pks = (List<Object[]>) query.executeQuery(querysql, new ArrayListProcessor());
List<ResponsibilityVO> listRespVO = new ArrayList<ResponsibilityVO>();
for(Object[] objs : pks)
{
String pk_resp = (String) objs[0];
ResponsibilityVO respVO = (ResponsibilityVO) query.retrieveByPK(ResponsibilityVO.class, pk_resp);
listRespVO.add(respVO);
}
rets = listRespVO.toArray(new ResponsibilityVO[listRespVO.size()]);
}
catch(Exception ex)
{
ExceptionUtils.wrappException(ex);
Logger.warn(ex);
}
return rets;
}
public RespListView getRespListView() {
return respListView;
}
public void setRespListView(RespListView respListView) {
this.respListView = respListView;
}
}
一样需要调整xml文件来加载自己继承的类