NC单据开发初学者手册.docx
- 文档编号:2897743
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:28
- 大小:1.18MB
NC单据开发初学者手册.docx
《NC单据开发初学者手册.docx》由会员分享,可在线阅读,更多相关《NC单据开发初学者手册.docx(28页珍藏版)》请在冰豆网上搜索。
NC单据开发初学者手册
此文件受到UFIDA的保护,并已在保护中心注册,外泄必纠!
UFIDAGUID1{162153F0-8B62-6E8D-1D46-54499B5A622B}
UFIDAGUID1{31C26706-1290-5BDE-DD7D-D594B804C93C}
NC单据开发初学者手册
编写者:
NC-UAP
薄奇赖宏伟
用友软件股份有限公司
二零零六年四月
第一章概述
一.3基本概念
单据:
比如报销时的报销单,一般由表头和表体组成(有些时候还含有表尾)。
表头中包含了单据的主信息,比如日期、部门、预算项目;表体包含了单据的明细信息,比如具体的事项和金额;
单据类型:
一个业务系统为了使结构更清晰,通常也是分层的。
比如,供应链系统包含了采购、库存等子系统,每个子系统都具有一个系统类型,而每个子系统都会具有很多张单据,为了区分这些单据,为每张单据命名一个单据类型,作为唯一标识;
模板:
单据开发涉及到三大模板(单据模板、查询模板、打印模板)。
单据模板定义了单据的显示外观和基本框架,查询模板定义了单据的查询对话框,打印模板定义了单据信息打印到打印机的样式和格式;
VO:
值对象,用作传输数据的载体
聚合VO:
单据一般由表头和表体构成,因此单据的数据表通常设计成主表和子表。
聚合VO是对单据数据的抽象,它用于装载主表VO和一组子表VO.;
UI工厂:
虽然能通过三大模板定义出单据的显示,但每张单据都有一些公共的或特殊的行为。
UI工厂是一种单据开发框架,它将常用单据抽象成了很多类型,因此,UI工厂相当于是单据开发的代码模板,预置了单据的各种公共行为,比如增、删、改、查,并且可以连接到NC流程平台,支持审批、单据驱动等应用。
一.4单据开发主要流程
NC平台对开发过程进行很多抽象和封装,使得单据开发变得非常容易。
一般地,开发环境中,开发一个单据主要包括以下步骤:
第一步、PowerDesigner中建立单据的物理模型(数据库表),保存成pdm文件(xml);
第二步、利用PowerDesigner生成单据的建表脚本(SQL语句),在数据库中执行此脚本建立数据库表结构;
第三步、利用NC集成辅助工具中的数据字典生成工具导入pdm文件,生成相应的数据字典;
第四步、利用NC集成辅助工具中的CodeSeedVO工具利用odbc连接数据库,将单据涉及的数据表生成VO对象;
第五步、以UI工厂为基础,应用Template模式,编写自己的单据类。
下面,我们以一个简单的员工信息管理系统分别介绍这几个步骤。
第二章搭建开发环境
二.3本文软件开发环境
1、操作系统:
Windows2000Server
2、数据库设计工具:
SybasePowerDesignerVersion9.5.0.648(以下简称PD)
为了给数据表自动生成时间戳(ts)、删除标志(dr)字段,需给PD打上插件补丁:
db2cs7.xdb,oracl8i2.xdb,sqlserv7.xdb
3、数据库:
MSSQLServer2000
4、开发工具:
Eclipse3.1.1
二.4给PD打补丁
将三个补丁文件全部拷贝到PD的安装目录的ResourceFiles\DBMS下即可
二.5建立数据库
因为NC本身使用了很多数据库表,所以我们建立的数据库中必须包含NC系统表和其中的某些数据,而不是简单新建库。
本文以SQLServer2000为例。
第一步、建立数据库v5test
第二步、在v5test数据库名上右键选择导入数据,根据其它已经建好的库来生成库。
或者根据数据库的备份和还原操作来建库。
这样,我们就建立起包含NC系统表的数据库,在此基础上,我们建立自己的数据表进行开发。
二.6建立开发工程
现在已经存在NC_UAP_UIFactory工程,其中包含了部分UI工厂源码和依赖的jar包,依此工程建立我们自己的eclipse工程。
第一步、打开eclipse,新建java工程(在V5中则新建MDE工程)
第二步、设置工程名,本例为UIFactoryV5,选择从存在的资源中创建工程,选择NC_UAP_UIFactory文件夹,依次确定建立工程。
第三章数据库表pdm及SQL脚本的生成
PD是一种高端的数据建模工具,使用它可以很方便的建立数据库、导出SQL脚本,其物理模型文件的后缀名为pdm,所以,NC辅助开发工具多处依赖PD来完成数据库相关操作。
三.3数据模型
我们的员工信息管理系统包括员工的基本信息,员工的类别信息,员工工资,为了增强系统的可扩展性,从员工基本信息中独立出员工的家庭住址信息,街道信息。
下图显示了实体间的关系。
三.4生成pdm步骤
第一步、打开PD文件夹中的可执行文件pdshell9.exe,启动PD,会出现如下界面,选择新建一个物理模型。
第二步、我们以MSSQLServer数据库为例,选择数据库为MiscrosftSQLServer7.x,注意,由于补丁文件只针对SQLServer7.x版本,所以,无论我们用SQLServer7.x还是2000或以上版本,此处的DBMS都要选择SQL.Server.7.x。
第三步、确定后左侧面板中会出现一个节点,双击弹出如下对话框,设置此模型的name,code等
第四步、在新建节点上点击右键选择New->Table
第五步、在General选项卡中,设置表名,表的中文描述
第六步、在Columns选项卡中定义列,列的中文描述。
注意此处列的数据类型,一般地,主键前缀为pk_,数据类型为char(20),boolean类型的列前缀为b,数据类型为char
(1),日期类型前缀为d,数据类型为char(10),等等,更多数据库表字段命名规范参照附录开发规范文档。
第七步、保存到指定目录,便得到pdm文件
三.5生成SQL脚本步骤
第一步、选择菜单项Database->GenerateDatabase…
第二步、在弹出界面中,设置生成脚本文件的存放路径,并对Tables&Views选项卡做如下设置
第三步、对Keys&Indexs选项卡做如下设置,注意,取消除主键外的所有选项,因为此时我们没有这些选项信息
第四步、取消Database选项卡中的所有选项
第五步、按下确定按钮后,便生成了SQL脚本
第四章生成数据字典
数据字典是NC二次开发工具中探测数据库表结构的数据基础,而不是采用每次需要数据都连接数据库的方式。
数据字典由上一步骤生成的pdm文件生成,NC二次开发工具提供了相应的生成工具。
四.3步骤
第一步、启动NC集成辅助开发工具,选择菜单系统管理工具->数据字典管理
第二步、在弹出的界面中,选择菜单项工具->导入数据字典
第三步、选择数据字典导入文件类型,此处选择解析PDM文件
第四步、在弹出的界面中点击选择按钮,选择上一章生成的PDM文件
第五步、选择覆盖方式,一般地,选择全部覆盖
第六步、在弹出的窗口左侧会出现可供选择的数据表,选中需要导入的数据库表加到右边的窗口中
第七步,会出现如下窗口,此时便完成了数据字典的导入
第五章生成VO
VO值对象是数据传递的载体,其结构和数据库表结构紧密相关。
一般我们在一个专门的包中存放VO对象,VO对象命名规则表现为类名以VO结尾。
NC二次开发工具中也提供了相应的工具,用于生成数据库表的VO类。
五.3准备工作
VO类通过ODBC连接数据库探测数据库表结构生成,所以,我们首先要建立起数据库表结构和ODBC连接源。
第一步、在SQLServer2000查询分析器中执行第二章生成的SQL脚本,生成数据库表
第二步、选择控制面板->管理工具->数据源(ODBC),弹出如下界面
第三步、选择SQLServer驱动模式
第四步、指定数据源名称和数据库服务器
第五步、在弹出的界面中,按下图进行设置
第六步、选择刚才建立的数据库,此处为v5test
第七步、在弹出的界面采用默认设置
第八步、测试数据库连接,如果出现如下信息,则表明建立的数据源有效
五.4生成VO
建立起数据库和ODBC数据源之后,我们就可以开始生成VO对象。
第一步、启动NC集成辅助开发工具,选择菜单向导工具->codeseedVO
第二步、设置我们刚刚生成的ODBC数据源,数据库访问的用户名和密码,如果数据库表很多,可以勾选上“表前缀过滤”选项,输入需要表的前缀,按下“列表”按钮后会在界面的左边列表框中列出所有符合前缀条件的表名,选择一个主表,其它需要生成VO的表选作子表。
在右边设置生成VO对象的存储路径和VO类的包名及创建者,按下“为当前表生成文件”按钮,这样就在目标路径下生成了VO类。
第六章第一个单据
在以上准备工作的基础上,我们现在着手开发第一个单据。
六.3步骤一、建立单据模板
第一步、启动NC集成辅助开发工具,选择菜单项模板管理->单据模板设置工具
第二步、在弹出的界面中,输入新单据模板标识,如T01,然后按下“显示模板”按钮,如果此模板已经存在,会显示出已经设置好的信息,如果此模板不存在,右侧的“增加”按钮会变亮,表明可添加此模板。
然后,通过表前缀过滤器,列出需要的数据表,主表只能选一个,子表可多选,本例我们选择员工信息作为主表,员工家庭住址作为子表,按下“增加”按钮。
第三步、弹出的界面的右上是我们刚才选择的数据表,左上为表头部分,左中为表体部分。
第四步、接下来我们设置表头和表体的显示内容,左键单击选中主表(uap_test_employee)不放,拖动到表头区域松开,此时会弹出如下对话框。
第五步、采用默认设置,确定,同样操作,将子表(uap_test_address)拖动到表体区域,此时界面变成如下样子。
第六步、我们可以修改具体显示字段的排列顺序,在表头/表体区域按下鼠标右键,会弹出下图右键菜单。
第七步、选择“项目重新排序”菜单,通过上移下移改变排列顺序。
第八步、我们还可以去掉一些不需要显示的字段,在不需要显示的字段上按下鼠标右键,弹出如下右键菜单,选择“删除项目”菜单,就完成字段的删除。
第九步、保存编辑完的模板,选择菜单项模板操作->保存模板
第十步、输入模板的显示标题和节点标识,便完成了模板的设置。
六.4步骤二、建立工程包结构
首先、建立自己的模板包,此处包名为nc.ui.mytest。
其次、建立VO对象包,将我们第五章生成的VO包拷贝到工程的src目录下即可。
六.5步骤三、定制界面控制类
第一步、在nc.ui.mytest包中新建MyTestControler类,实现ICardController接口。
publicclassMyTestControllerimplementsICardController{
//……
}
第二步、重载getBillType()方法,其返回值为单据类型。
本例中为T01。
publicStringgetBillType(){
return"T01";
}
第三步、重载getBillVoName()方法,关联VO类,控制单据数据的获得。
publicString[]getBillVoName(){
returnnewString[]{
HYBillVO.class.getName(),
TestEmployeeVO.class.getName(),
TestAddressVO.class.getName()
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- NC 单据 开发 初学者 手册