用友NC二次开发一些经验以及处理的问题.doc
文本预览下载声明
用友NC二次开发一些经验以及处理的问题
SQL数据结构UI
1. 参照开发
?
? ? ? ?系统参照的用法
? ? ? ?UIRefPane? ref = new UIRefPane();
Ref.setRefNodeName(nc.vo.bd.ref.RefNodeNameConst.DEPTDOC);
nc.ui.bd.ref.IBusiType这个类里定义了参照对应的具体类
自定义参照
自己定义的参照类一般都继承自nc.ui.bd.ref.AbstractRefModel这个抽象类
下面列举一些常用的方法:
public String[] getFieldCode() ? // 返回参照字段对应的表字段编码
public String[] getFieldName() ?//返回参照字段对应的显示名称
public String getPkFieldCode() ?//返回主键字段编码
public String getRefTitle() ? ? ? ? //返回参照名称
public String getTableName() ?//返回查询的表名称,可以是表连接语句
public String[] getHiddenFieldCode() //返回参照的隐藏字段
public int getDefaultFieldCount() ? ? //返回参照的默认字段数量
public String getWherePart()? ?//返回查询条件
如果需要实现一些特殊的参照,比如树结构的参照,则应该继承AbstractRefTreeModel类
?
2. ?ClientUI类常用方法
?
protected ManageEventHandler createEventHandler() //返回UI的事件处理类
protected AbstractManageController createController() //返回UI画面的控制类
protected BusinessDelegator createBusinessDelegator() ?//返回UI的业务处理类
protected void initSelfData() ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //初始化UI界面,比如设置精度
protected void initEventListener() ? ? ? ? ? ? ? ? //初始化单据监听,比如:BillCardBeforeEditListener
public abstract void setDefaultData() throws Exception //设置界面默认数据
?
3. ? 多表的树结构(比如说,显示部门下的人员)
? ? ? NC的树结构一般都是单表,那么parentid在数据表里也是对应的主键值。那么多表的时候只需在返回数据vo的时候, ? ? ? 手动把父节点的数据添加进去就可以了。
? ? ? 比如说:部门和人员的树结构
? ? ? 在自己定义的TreeData中的getTreeVO方法中:
?
Java代码 ?
public?SuperVO[]?getTreeVO()?{??
????????PsndocVO[]?result?=?null;??
????????DeptdocVO[]?deptdocvos?=?null;??
????????try?{??
????????????BusinessDelegator?business?=?new?BusinessDelegator();??
????????????String?sql?=??isnull(dr,0)=0;??
??
????????????result?=?(PsndocVO[])?business??
????????????????????.queryByCondition(PsndocVO.class,?sql);??
????????????deptdocvos?=?(DeptdocVO[])?business??
????????????????????????.queryByCondition(DeptdocVO.class,?null);??
??????????????
????????}?catch?(Exception?e)?{??
????????????e.printStackTrace();??
????????}??
????????PsndocVO[]?results?=?new?PsndocVO[result.length?+?deptdocvos.length?];??
????????for?
显示全部