单据开发步骤

0. 做单据(字段不能变):
    名称 编码 数据库模型
 公司主键 pk_corp CHAR(4)
 单据号         vbillno CHAR(20)
 数据权限 datalimit CHAR(20)
 制单人         voperatorid CHAR(20)
 制单日期 doperatordate CHAR(10)
 审批人         vapproveid CHAR(20)
 审批日期 dapprovedate CHAR(10)
 审核批语 vapprovenote VARCHAR(250)
 最后修改人 vrevisorid CHAR(20)
 最后修改日期 drevisedate CHAR(10)
 备注         vnote VARCHAR(250)
 单据类型 pk_billtype CHAR(20)
 单据状态 vbillstatus SMALLINT
 业务类型 pk_busitype CHAR(20)


1. 在【单据管理】-【单据动作管理】增加数据

2. 在【单据动作组管理】增加数据

3. 在【VO对照管理】增加数据

4. 在【单据类型管理】增加数据

5. 在【单据动作执行脚本】写脚本

5. 生成单据号,
   //初始化单据号   在UI中覆盖这个方法即可
 @Override
 protected String getBillNo() throws Exception {
  //初始化单据号
  String vbillno = HYPubBO_Client.getBillNo(getUIControl().getBillType(),
          getClientEnvironment().getCorporation().getPrimaryKey(), null, null);
  return vbillno;
 }

6. 新增时
  getBillCardPanel().setHeadItem(JoinSaleHVO.VBILLSTATUS, IBillStatus.FREE);//初始化时单据状态为自由态

    // 初始化单据状态下拉
   @Override
 protected void initSelfData() {

  IConstEnum[] status= new DefaultConstEnum[]{
               new DefaultConstEnum(IBillStatus.FREE, "自由态"),
               new DefaultConstEnum(IBillStatus.COMMIT, "提交态"),
               new DefaultConstEnum(IBillStatus.CHECKGOING, "审批进行中"),
               new DefaultConstEnum(IBillStatus.CHECKPASS, "审批通过"),
               new DefaultConstEnum(IBillStatus.NOPASS, "审批不通过"),
               new DefaultConstEnum(IBillStatus.DELETE, "作废状态"),
               new DefaultConstEnum(IBillStatus.CX, "冲销状态"),
               new DefaultConstEnum(IBillStatus.ENDED, "终止(结算)态"),
               new DefaultConstEnum(IBillStatus.FREEZE, "冻结状态"),
               };
  
  BillPanelUtils.initComboBox(getBillListPanel(), IBillItem.HEAD, null,JoinSaleHVO.VBILLSTATUS, status, false);
        BillPanelUtils.initComboBox(getBillCardPanel(), IBillItem.HEAD, null,JoinSaleHVO.VBILLSTATUS, status, false);
  
 }

7. 在nc.bs.pub.action包中增加几个按钮脚本类(拷贝脚本文件夹中的类改名即可)
  N_单据类型_APPROVE
  N_单据类型_DELETE
  N_单据类型_EDIT
  N_单据类型_SAVE
  N_单据类型_UNAPPROVE
  N_单据类型_WRITE
 

你可能感兴趣的:(开发)