用友NCUAP单据开发手册.docx

上传人:b****3 文档编号:3804695 上传时间:2022-11-25 格式:DOCX 页数:40 大小:1.61MB
下载 相关 举报
用友NCUAP单据开发手册.docx_第1页
第1页 / 共40页
用友NCUAP单据开发手册.docx_第2页
第2页 / 共40页
用友NCUAP单据开发手册.docx_第3页
第3页 / 共40页
用友NCUAP单据开发手册.docx_第4页
第4页 / 共40页
用友NCUAP单据开发手册.docx_第5页
第5页 / 共40页
点击查看更多>>
下载资源
资源描述

用友NCUAP单据开发手册.docx

《用友NCUAP单据开发手册.docx》由会员分享,可在线阅读,更多相关《用友NCUAP单据开发手册.docx(40页珍藏版)》请在冰豆网上搜索。

用友NCUAP单据开发手册.docx

用友NCUAP单据开发手册

用友NC客户化开发手册

NC-UAP5.7

用友NC-UAP

作者:

***

2012-7-10

初级开发

开发环境搭建

一、配置nchome\bin文件夹下ncSysConfig.bat

1、配置数据源(通常情况下:

design为默认数据源名称,如果有两个数据库以上,需要配置多个数据源)

2、配置端口(这里配置端口参考nchome\conf\server.xml)

maxThreads="150"minSpareThreads="25"maxSpareThreads="75"

enableLookups="false"redirectPort="8443"acceptCount="100"

connectionTimeout="20000"disableUploadTimeout="true"/>

二、配置eclipse开发工具

1、配置MDEDevelopment(Window->Preferences->MDEDevelopment)

选择nchome所在位置、检查数据库连接是否通过、设置数据源为默认数据源、点击ok设置完成。

设置端口(与nchome\bin文件夹下ncSysConfig.bat配置端口一致)

2、配置InstalledJERs

注意:

nchome\ufjdk\jre\lib\plugin.jar和nchome\ufjdk\lib\tools.jar为必选插件,不然启动客户端的时候会报错。

点击确定,完成配置(最好留下当前在用的JERs,其他全部Remove掉)

3、建立ModuleProject(选择ModuleProject->填写ProjectName->ModuleName->点击Finish)

工程建立完成后如下图:

4、配置eclipse内存

-Dnc.exclude.modules=${FIELD_EX_MODULES}

-Dnc.runMode=develop

-Dnc.server.location=${FIELD_NC_HOME}

-DEJBConfigDir=${FIELD_NC_HOME}/ejbXMLDExtServiceConfigDir=${FIELD_NC_HOME}/ejbXMLs

-Xms768m-Xmx768m

表设计(PowerDesigner建模)

建表

tschar(19)nulldefaultconvert(char(19),getdate(),20),特别注意建表时必须加ts和dr

drsmallintnulldefault0

主表建表脚本:

createtabledj_loan(

pk_loanchar(20)notnull,

pk_corpchar(4)null,

pk_busitypechar(20)null,

pk_billtypevarchar(4)null,

vbillstatussmallintnull,

vbillnovarchar(30)null,

dbilldatechar(10)null,

voperatoridchar(20)null,

dmakedatechar(10)null,

vapproveidchar(20)null,

dapprovedatechar(10)null,

vapprovenotevarchar(512)null,

vdealeridchar(20)null,

vdeptidchar(20)null,

vmemovarchar(2048)null,

vdef1varchar(100)null,

vdef2varchar(100)null,

vdef3varchar(100)null,

vdef4varchar(100)null,

vdef5varchar(100)null,

vdef6varchar(100)null,

vdef7varchar(100)null,

vdef8varchar(100)null,

vdef9varchar(100)null,

vdef10varchar(100)null,

vreserve1varchar(100)null,

vreserve2varchar(100)null,

vreserve3varchar(100)null,

vreserve4varchar(100)null,

vreserve5varchar(100)null,

vreserve6varchar(100)null,

vreserve7varchar(100)null,

vreserve8varchar(100)null,

vreserve9varchar(100)null,

vreserve10varchar(100)null,

pk_accountchar(20)null,

pk_hallchar(20)null,

vmknovarchar(30)null,

nloanmnydecimal(20,8)null,

dloandatechar(10)null,

nloanquotadecimal(20,8)null,

nsignquotadecimal(20,8)null,

drepaydatechar(10)null,

vmarkernamevarchar(40)null,

vrepaynamevarchar(40)null,

nrepaymnydecimal(20,8)null,

nrepayinterestmnydecimal(20,8)null,

vsecurityvarchar(40)null,

dtrdatechar(10)null,

iloantypevarchar(20)null,

vhandpersonvarchar(40)null,

iscountchar

(1)null,

isusechar

(1)null,

constraintpkpm_noncontfeeprimarykeynonclustered(pk_loan),

tschar(19)nulldefaultconvert(char(19),getdate(),20),特别注意建表时必须加ts和dr

drsmallintnulldefault0

Go

子表建表脚本:

createtabledj_loan_b(

pk_loan_bchar(20)notnull,

pk_loanchar(20)null,

vmemovarchar(100)null,

vdef1varchar(100)null,

vdef2varchar(100)null,

vdef3varchar(100)null,

vdef4varchar(100)null,

vdef5varchar(100)null,

vdef6varchar(100)null,

vdef7varchar(100)null,

vdef8varchar(100)null,

vdef9varchar(100)null,

vdef10varchar(100)null,

vreserve1varchar(100)null,

vreserve2varchar(100)null,

vreserve3varchar(100)null,

vreserve4varchar(100)null,

vreserve5varchar(100)null,

vreserve6varchar(100)null,

vreserve7varchar(100)null,

vreserve8varchar(100)null,

vreserve9varchar(100)null,

vreserve10varchar(100)null,

vsourcebilltypevarchar(4)null,

vsourcebillidchar(20)null,

vsourcebillrowidchar(20)null,

inumberintnull,

vrepaypersonvarchar(40)null,

nrepaymnydecimal(20,8)null,

nrepayinterestdecimal(20,8)null,

nsurplusmnydecimal(20,8)null,

drepaydatechar(10)null,

dtrdatechar(10)null,

isshareholderchar

(1)null,

pk_mkrepaychar(20)null,

constraintpkpm_costbill_bprimarykeynonclustered(pk_loan_b),

tschar(19)nulldefaultconvert(char(19),getdate(),20),特别注意建表时必须加ts和dr

drsmallintnulldefault0

go

导入数据字典

VO生成

第一步:

二次开发工具->UAP集成开发工具->UAP集成开发工具

第二步:

工具和选项->根据数据源生成VO

第三步:

选择数据库表->把主子表拉到相应位置->点击确定

第四步:

把生成的VO拷贝到eclipse开发工具中(src/public文件夹下)

功能注册

说明:

nc.ui.study.h101.ClientUI为客户端入口类,ClientUI名字一般都是写成这个,nc.ui.study.h101.为每个功能节点对应的包名。

自定义菜单

说明:

新建的节点,系统一般都会把它归纳在其他节点上面去,这样分配权限的时候就找不到对应的节点进行分配权限,所以一般需要在自定义菜单这里点击恢复默认结构,这样在分配权限的时候才能看到对应的节点。

分配权限

说明:

权限管理->权限分配->保存

单据类型注册

说明:

二次开发工具->单据管理->单据类型管理

单据模板生成

说明:

二次开发工具->模板管理->单据模板初始化

第一步:

填写单据模板类型(如果第一次则需要填写,一般跟单据类型一致)、选择主表和子表、点击增加按钮(如果是第一次则点击增加,否则点击修改按钮)

第二步:

选择主表和子表

修改页签项目编辑和项目重新排序

Ctrl+S保存(第一次保存需要填写模板标题和节点号)

查询模板生成

生成查询模板

单据分配查询模板

VO对照

主表

子表

动作脚本

执行动作脚本sql语句

InsertintoPUB_BUSICLASS

(ACTIONTYPE,CLASSNAME,DR,ISBEFORE,PK_BILLTYPE,PK_BUSICLASS,PK_BUSINESSTYPE,PK_CORP,TS)

Values('APPROVE','N_H101_APPROVE',0,'N','H101','0001AA000000000H1011',null,null,'2011-09-0910:

01:

05');

InsertintoPUB_BUSICLASS

(ACTIONTYPE,CLASSNAME,DR,ISBEFORE,PK_BILLTYPE,PK_BUSICLASS,PK_BUSINESSTYPE,PK_CORP,TS)

Values('DELETE','N_H101_DELETE',0,'N','H101','0001AA000000000H1012',null,null,'2011-03-2111:

10:

02');

InsertintoPUB_BUSICLASS

(ACTIONTYPE,CLASSNAME,DR,ISBEFORE,PK_BILLTYPE,PK_BUSICLASS,PK_BUSINESSTYPE,PK_CORP,TS)

Values('UNAPPROVE','N_H101_UNAPPROVE',0,'N','H101','0001AA000000000H1013',null,null,'2011-03-2111:

09:

32');

InsertintoPUB_BUSICLASS

(ACTIONTYPE,CLASSNAME,DR,ISBEFORE,PK_BILLTYPE,PK_BUSICLASS,PK_BUSINESSTYPE,PK_CORP,TS)

Values('EDIT','N_H101_EDIT',0,'N','H101','0001AA000000000H1014',null,null,'2011-03-2111:

09:

53');

InsertintoPUB_BUSICLASS

(ACTIONTYPE,CLASSNAME,DR,ISBEFORE,PK_BILLTYPE,PK_BUSICLASS,PK_BUSINESSTYPE,PK_CORP,TS)

Values('WRITE','N_H101_WRITE',0,'N','H101','0001AA000000000H1015',null,null,'2011-03-2111:

09:

22');

InsertintoPUB_BUSICLASS

(ACTIONTYPE,CLASSNAME,DR,ISBEFORE,PK_BILLTYPE,PK_BUSICLASS,PK_BUSINESSTYPE,PK_CORP,TS)

Values('SAVE','N_H101_SAVE',0,'N','H101','0001AA000000000H1016',null,null,'2011-03-2111:

09:

22');

代码修改

代码copy

聚合VO修改

类名:

nc.vo.ps.bz1002.MyBillVO

publicvoidsetChildrenVO(CircularlyAccessibleValueObject[]children){

if(children==null||children.length==0){

super.setChildrenVO(null);

}else{

//super.setChildrenVO(children);//单表

super.setChildrenVO((StockItemsVO[])children);//主子表

}

}

修改ClientUICtrl

单据类型

publicStringgetBillType(){

return“H101";

}

获取单据VO信息

publicString[]getBillVoName(){

returnnewString[]{

MyBillVO.class.getName(),

StockVO.class.getName(),

StockItemsVO.class.getName()

};

}

子表PK

publicStringgetChildPkField(){

return"pk_stock_id";

}

没子表时返回null

保存主子表

单表头或单表体

publicclassClientUICtrlextendsAbstractManageControllerimplements

ISingleController{

}

主子表

publicclassClientUICtrlextendsAbstractManageController{

}

实现了implementsISingleController接口,只保存单表头或单表体

设置默认值

publicvoidsetDefaultData()throwsException

{

BillFieldfileDef=BillField.getInstance();

UFDatedmakedate=ClientEnvironment.getInstance().getDate();

Stringbilltype=getUIControl().getBillType();

StringpkCorp=ClientEnvironment.getInstance().getCorporation().getPrimaryKey();

fileDef.getField_BillStatus();

//取操作员

Stringpk_manager=ClientEnvironment.getInstance().getUser().getPrimaryKey();

getBillCardPanel().setHeadItem("pk_corp",pkCorp);//公司主键

getBillCardPanel().setHeadItem("vbillstatus",newInteger(IBillStatus.FREE).toString());//单据状态默认为自由态

getBillCardPanel().setHeadItem("voperatorid",pk_manager);//制单人

getBillCardPanel().setHeadItem("dmakedate",dmakedate);//制单日期

getBillCardPanel().setHeadItem("pk_billtype",billtype);//单据类型

}

设置单据号

到这个阶段,单据的增删改查功能操作基本完成。

中级开发

增加自定义按钮

按钮ID

packagenc.ui.ps.bz.button;

/*****************************************************************

*@功能:

公共自定义按钮接口

*

*@创建日期:

2010-6-4创建人:

赖利荣

*

*@修改日期:

*

*@修改内容:

*

*@单位:

珠海用友软件有限公司版本1.0V

*/

publicinterfaceUserDefButton{

/**

*导入按钮2010-6-4

*/

publicfinalstaticintfileInt=510;

/**

*导出按钮2010-6-4

*/

publicfinalstaticintfileOut=511;

/**

*文件管理

*/

publicfinalstaticintfileIO=512;

}

按钮VO

packagenc.ui.ps.bz.button;

importnc.vo.trade.button.ButtonVO;

/*******************************************************************************

*@功能:

*

*@创建日期:

2010-6-4创建人:

赖利荣

*

*@修改日期:

*

*@修改内容:

*

*@单位:

珠海用友软件有限公司版本1.0V

*/

publicclassUserDefButtonVO{

/***************************************************************************

*@功能:

导入按钮

*

*@创建日期:

2010-6-4创建人:

赖利荣

*

*@修改日期:

*

*@修改内容:

*

*@return

*/

publicButtonVOgetFileInt(){

ButtonVObtVO=newButtonVO();

btVO.setBtnNo(UserDefButton.fileInt);

btVO.setBtnCode("导入");

btVO.setBtnName("导入");

btVO.setHintStr("导入");

btVO.setBtnChinaName("导入");

btVO

.setOperateStatus(newint[]{nc.ui.trade.base.IBillOperate.OP_ALL});

btVO.setBusinessStatus(newint[]{nc.vo.trade.pub.IBillStatus.ALL});

returnbtVO;

}

/**

*@功能:

导出按钮

*@创建日期:

2010-6-4创建人:

赖利荣

*@修改日期:

*@修改内容:

*@return

*/

publicButtonVOgetFileOut(){

ButtonVObtVO=newButtonVO();

btVO.setBtnNo(UserDefButton.fileOut);

btVO.setBtnCode("导出");

btVO.setBtnName("导出");

btVO.setHintStr("导出");

btVO.setBtnChinaName("导出");

btVO

.setOperateStatus(newint[]{nc.ui.trade.base.IBillOperate.OP_ALL});

btVO.setBusinessStatus(newint[]{nc.vo.trade.pub.IBillStatus.ALL});

returnbtVO;

}

/**

*@功能:

文件管理按钮

*@创建日期:

2010-6-4创建人:

赖利荣

*@修改日期:

*@修改内容:

*@return

*/

publicButtonVOgetFileIntOut(){

ButtonVObtVO=newButtonVO();

btVO.setBtnNo(UserDefButton.fileIO);

btVO.setChildAry(newint[]{UserDefButton.fileIn

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 管理学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1