NC开发流程一览表.doc
文本预览下载声明
单表体的卡片型单据制作
单表体的单据:指装载界面数据的聚合VO表头为空,只存在一组表体VO。UI工厂设计了借口ISingleController,单表体单据界面控制类应实现此借口,并实现isSingleDetail方法。
前期准备:单据注册,模板初始化等等,在构造好类框架后要修改界面控制类。
注册单据类型
注册VO对象 如下:
public String[] getBillVoName(){
Return new String[]{
SampleVo.class.getName(),
SampleHeadVO.class.getName(),
SampleHeadVo.class.getName(),
};
}
public String getPKField(){
Return “pk_sample”;
}
public String getChildPKField(){
Return “pk_sample”;
}
注意此时的表头,表体的VO类一致。
3.是否走平台
public int getBusinessActionType(){
Return nc.ui.trade.businessaction.IBusinessActionType.BD;
}
4.注册按钮
public int[] getCardButtonAry(){
Return new int[]{
IBillButton.Query,
IBillButton.Add,
IBillButton.Edit,
IBillButton.Line,
IBillButton.Save,
IBillButton.Cancel,
IBillButton.Refresh,
};
}
最重要的一步,实现isSingleDetail方法。
public Boolean isSingleDetail(){
//单表体
Return true;
}
ISingleController用来支持但表头或单表体的单据,因此,当isSingleDetail方法返回true时,单据为单表体;当返回false时,单据为但表头。
单表头的卡片型单据制作
除了显示有很大差异外,单表头于单表体的唯一区别在于isSingleDetail方法的返回值。另外,在单表头界面增加浏览按钮和去掉行操作按钮。
虚拟主子表的卡片型单据制作
虚拟主子表单据:指的是那种数据来源于一张表,却根据(自定义的)特定规则虚拟主子表的结构,将一部分放到表头,剩下的字段放到表体的单据。它通常用于数据的分组,即把数据根据(自定义的)特定字段的值进行分组。字段值相等的数据自然的被归为一类,然后,把特定字段放到表头显示,属于它的一组数据在表体列表显示,形成了标准主子表的结构。
由于数据分组的特定规则取决于业务,因此UI工厂无法做缺省的实现。但加载数据库数据一般都在查询时完成,所以可以定制查询事件的行为,这需要为单据创建按钮事件处理器,并重载查询时基类调用的方法。加载数据的步骤如下:
第一步,与前面的步骤一样,并配置好界面控制器类。
在UI类重载按钮事件处理器类的方法,如下:
Protected CardEventHandler createEventHandler(){
Return new SampleCardEventHandle(this.getUIControl());
}
构造按钮事件处理器类,重载onBoQuery方法。如下:
Protected void onBoQuery() throws Exception{
UIDialog querydialog = getQueryUI();
If(querydialog.showModel())==(INormalQuery)querydialog;
String strWhere=query.getWhereSql();
If(strWhere==null)
strWhere=”1=1”;
strWhere=”(”+strWhere+”) and (isnull(dr,0)=0)”;
//将查询对话框条件加到整个查询条件后
If(getHeadCondition()!=null)
strWhere=strWhere+”and”+getHeadCondition();
//查询数据表数据
SuperVO[] queryVos=getBusinessAction().queryHeadAllData(
Class.forName(getUIController().getBillVoName()[1]),
getUIController().getBillTy
显示全部