ImageVerifierCode 换一换
格式:DOCX , 页数:33 ,大小:1.18MB ,
资源ID:11528832      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-11528832.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(NC单据开发初学者手册.docx)为本站会员(b****3)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

NC单据开发初学者手册.docx

1、NC单据开发初学者手册NC单据开发初学者手册编写者:NC-UAP 薄奇 赖宏伟用友软件股份有限公司二零零六年四月目 录第一章 概述 11.1 基本概念 11.2 单据开发主要流程 1第二章 搭建开发环境 12.1 本文软件开发环境 12.2 给PD打补丁 12.3 建立数据库 12.4 建立开发工程 2第三章 数据库表pdm及SQL脚本的生成 33.1 数据模型 33.2 生成pdm步骤 33.3 生成SQL脚本步骤 7第四章 生成数据字典 114.1 步骤 11第五章 生成VO 155.1 准备工作 155.2 生成VO 18第六章 第一个单据 206.3 步骤一、建立单据模板 206.4

2、步骤二、建立工程包结构 256.5 步骤三、定制界面控制类 256.6 步骤四、定制界面UI类 266.7 步骤四、连接模板到NC集成辅助开发工具中查看效果 26第七章 参照 287.3 什么是参照 287.4 建立参照类 287.5 在单据模板上设置参照 29第八章 单据模板中的公式使用 338.1 什么是公式 338.2 给单据模板设置公式 33第九章 参考文献 36第一章 概述一.3 基本概念单据:比如报销时的报销单,一般由表头和表体组成(有些时候还含有表尾)。表头中包含了单据的主信息,比如日期、部门、预算项目;表体包含了单据的明细信息,比如具体的事项和金额;单据类型:一个业务系统为了使

3、结构更清晰,通常也是分层的。比如,供应链系统包含了采购、库存等子系统,每个子系统都具有一个系统类型,而每个子系统都会具有很多张单据,为了区分这些单据,为每张单据命名一个单据类型,作为唯一标识;模板:单据开发涉及到三大模板(单据模板、查询模板、打印模板)。单据模板定义了单据的显示外观和基本框架,查询模板定义了单据的查询对话框,打印模板定义了单据信息打印到打印机的样式和格式;VO:值对象,用作传输数据的载体聚合VO:单据一般由表头和表体构成,因此单据的数据表通常设计成主表和子表。聚合VO是对单据数据的抽象,它用于装载主表VO和一组子表VO.;UI工厂:虽然能通过三大模板定义出单据的显示,但每张单据

4、都有一些公共的或特殊的行为。UI工厂是一种单据开发框架,它将常用单据抽象成了很多类型,因此,UI工厂相当于是单据开发的代码模板,预置了单据的各种公共行为,比如增、删、改、查,并且可以连接到NC流程平台,支持审批、单据驱动等应用。一.4 单据开发主要流程NC平台对开发过程进行很多抽象和封装,使得单据开发变得非常容易。一般地,开发环境中,开发一个单据主要包括以下步骤:第一步、PowerDesigner中建立单据的物理模型(数据库表),保存成pdm文件(xml);第二步、利用PowerDesigner生成单据的建表脚本(SQL语句),在数据库中执行此脚本建立数据库表结构;第三步、利用NC集成辅助工具

5、中的数据字典生成工具导入pdm文件,生成相应的数据字典;第四步、利用NC集成辅助工具中的CodeSeedVO工具利用odbc连接数据库,将单据涉及的数据表生成VO对象;第五步、以UI工厂为基础,应用Template模式,编写自己的单据类。下面,我们以一个简单的员工信息管理系统分别介绍这几个步骤。第二章 搭建开发环境二.3 本文软件开发环境1、操作系统:Windows 2000 Server2、数据库设计工具:Sybase PowerDesigner Version 9.5.0.648(以下简称PD)为了给数据表自动生成时间戳(ts)、删除标志(dr)字段,需给PD打上插件补丁:db2cs7.x

6、db,oracl8i2.xdb,sqlserv7.xdb3、数据库:MS SQL Server 20004、开发工具:Eclipse 3.1.1二.4 给PD打补丁将三个补丁文件全部拷贝到PD的安装目录的 Resource FilesDBMS 下即可二.5 建立数据库因为NC本身使用了很多数据库表,所以我们建立的数据库中必须包含NC系统表和其中的某些数据,而不是简单新建库。本文以SQL Server 2000为例。第一步、建立数据库v5test第二步、在v5test数据库名上右键选择导入数据,根据其它已经建好的库来生成库。或者根据数据库的备份和还原操作来建库。这样,我们就建立起包含NC系统表的

7、数据库,在此基础上,我们建立自己的数据表进行开发。二.6 建立开发工程现在已经存在NC_UAP_UIFactory工程,其中包含了部分UI工厂源码和依赖的jar包,依此工程建立我们自己的eclipse工程。第一步、打开eclipse,新建java工程(在V5中则新建MDE工程)第二步、设置工程名,本例为UIFactoryV5,选择从存在的资源中创建工程,选择NC_UAP_UIFactory文件夹,依次确定建立工程。第三章 数据库表pdm及SQL脚本的生成PD是一种高端的数据建模工具,使用它可以很方便的建立数据库、导出SQL脚本,其物理模型文件的后缀名为pdm,所以,NC辅助开发工具多处依赖PD

8、来完成数据库相关操作。三.3 数据模型我们的员工信息管理系统包括员工的基本信息,员工的类别信息,员工工资,为了增强系统的可扩展性,从员工基本信息中独立出员工的家庭住址信息,街道信息。下图显示了实体间的关系。 三.4 生成pdm步骤第一步、打开PD文件夹中的可执行文件pdshell9.exe,启动PD,会出现如下界面,选择新建一个物理模型。第二步、我们以MS SQL Server数据库为例,选择数据库为Miscrosft SQL Server 7.x,注意,由于补丁文件只针对SQL Server 7.x版本,所以,无论我们用SQL Server 7.x还是2000或以上版本,此处的DBMS都要选

9、择SQL. Server.7.x。第三步、确定后左侧面板中会出现一个节点,双击弹出如下对话框,设置此模型的name,code等第四步、在新建节点上点击右键选择 New-Table第五步、在General选项卡中,设置表名,表的中文描述第六步、在Columns选项卡中定义列,列的中文描述。注意此处列的数据类型,一般地,主键前缀为pk_,数据类型为char(20),boolean类型的列前缀为b,数据类型为char(1),日期类型前缀为d,数据类型为char(10),等等,更多数据库表字段命名规范参照附录开发规范文档。第七步、保存到指定目录,便得到pdm文件三.5 生成SQL脚本步骤第一步、选择菜

10、单项 Database - Generate Database 第二步、在弹出界面中,设置生成脚本文件的存放路径,并对Tables & Views选项卡做如下设置第三步、对Keys & Indexs 选项卡做如下设置,注意,取消除主键外的所有选项,因为此时我们没有这些选项信息第四步、取消 Database 选项卡中的所有选项第五步、按下确定按钮后,便生成了SQL脚本第四章 生成数据字典数据字典是NC二次开发工具中探测数据库表结构的数据基础,而不是采用每次需要数据都连接数据库的方式。数据字典由上一步骤生成的pdm文件生成,NC二次开发工具提供了相应的生成工具。四.3 步骤第一步、启动NC集成辅助

11、开发工具,选择菜单 系统管理工具 - 数据字典管理第二步、在弹出的界面中,选择菜单项 工具 - 导入数据字典第三步、选择数据字典导入文件类型,此处选择 解析PDM文件第四步、在弹出的界面中点击 选择 按钮,选择上一章生成的PDM文件第五步、选择覆盖方式,一般地,选择 全部覆盖第六步、在弹出的窗口左侧会出现可供选择的数据表,选中需要导入的数据库表加到右边的窗口中第七步,会出现如下窗口,此时便完成了数据字典的导入第五章 生成VOVO值对象是数据传递的载体,其结构和数据库表结构紧密相关。一般我们在一个专门的包中存放VO对象,VO对象命名规则表现为类名以VO结尾。NC二次开发工具中也提供了相应的工具,

12、用于生成数据库表的VO类。五.3 准备工作VO类通过ODBC连接数据库探测数据库表结构生成,所以,我们首先要建立起数据库表结构和ODBC连接源。第一步、在SQL Server 2000查询分析器中执行第二章生成的SQL脚本,生成数据库表第二步、选择 控制面板 - 管理工具 - 数据源(ODBC) ,弹出如下界面第三步、选择 SQL Server 驱动模式第四步、指定数据源名称和数据库服务器第五步、在弹出的界面中,按下图进行设置第六步、选择刚才建立的数据库,此处为v5test第七步、在弹出的界面采用默认设置第八步、测试数据库连接,如果出现如下信息,则表明建立的数据源有效五.4 生成VO建立起数据

13、库和ODBC数据源之后,我们就可以开始生成VO对象。第一步、启动NC集成辅助开发工具,选择菜单 向导工具 - codeseedVO 第二步、设置我们刚刚生成的ODBC数据源,数据库访问的用户名和密码,如果数据库表很多,可以勾选上“表前缀过滤”选项,输入需要表的前缀,按下“列表”按钮后会在界面的左边列表框中列出所有符合前缀条件的表名,选择一个主表,其它需要生成VO的表选作子表。在右边设置生成VO对象的存储路径和VO类的包名及创建者,按下“为当前表生成文件”按钮,这样就在目标路径下生成了VO类。第六章 第一个单据在以上准备工作的基础上,我们现在着手开发第一个单据。六.3 步骤一、建立单据模板第一步

14、、启动NC集成辅助开发工具,选择菜单项 模板管理 - 单据模板设置工具第二步、在弹出的界面中,输入新单据模板标识,如T01,然后按下“显示模板”按钮,如果此模板已经存在,会显示出已经设置好的信息,如果此模板不存在,右侧的“增加”按钮会变亮,表明可添加此模板。然后,通过表前缀过滤器,列出需要的数据表,主表只能选一个,子表可多选,本例我们选择员工信息作为主表,员工家庭住址作为子表,按下“增加”按钮。第三步、弹出的界面的右上是我们刚才选择的数据表,左上为表头部分,左中为表体部分。第四步、接下来我们设置表头和表体的显示内容,左键单击选中主表(uap_test_employee)不放,拖动到表头区域松开

15、,此时会弹出如下对话框。第五步、采用默认设置,确定,同样操作,将子表(uap_test_address)拖动到表体区域,此时界面变成如下样子。第六步、我们可以修改具体显示字段的排列顺序,在表头/表体区域按下鼠标右键,会弹出下图右键菜单。第七步、选择“项目重新排序”菜单,通过上移下移改变排列顺序。第八步、我们还可以去掉一些不需要显示的字段,在不需要显示的字段上按下鼠标右键,弹出如下右键菜单,选择“删除项目”菜单,就完成字段的删除。第九步、保存编辑完的模板,选择菜单项 模板操作 - 保存模板第十步、输入模板的显示标题和节点标识,便完成了模板的设置。六.4 步骤二、建立工程包结构首先、建立自己的模板

16、包,此处包名为nc.ui.mytest。其次、建立VO对象包,将我们第五章生成的VO包拷贝到工程的src目录下即可。六.5 步骤三、定制界面控制类第一步、在nc.ui.mytest包中新建MyTestControler类,实现ICardController接口。public class MyTestController implements ICardController / 第二步、重载getBillType()方法,其返回值为单据类型。本例中为T01。public String getBillType() return T01;第三步、重载getBillVoName()方法,关联VO类,控

17、制单据数据的获得。public String getBillVoName() return new String HYBillVO.class.getName(), TestEmployeeVO.class.getName(), TestAddressVO.class.getName() ;第四步、重载getBusinessActionType()方法,设置单据是否走流程平台。IbusinessActionType为常量接口,BD表明单据不走流程平台。public int getBusinessActionType() return IBusinessActionType.BD;这样,就完成了

18、Controller类六.6 步骤四、定制界面UI类第一步、在nc.ui.mytest包中建立MyTestUI类,继承自BillCardUI类public class MyTestUI extends BillCardUI /第二步、重载createController()方法,关联界面控制类,此处返回刚刚创建的MyTestController类。protected ICardController createController() return new MyTestController();这样,就完成了UI类六.7 步骤四、连接模板到NC集成辅助开发工具中查看效果第一步、从Eclipse

19、的package explore打开NC_HOME/ierp/DevelopToolConfig.xml文件第二步、在其自定义菜单位置,添加一个新的子菜单,并将className设置为我们编写的UI类。 我的单据模板 nc.ui.mytest.MyTestUI第三步、启动NC集成开发工具,会在自定义菜单项下发现我们刚刚添加的菜单项“我的单据模板”,选择此菜单项,就会弹出如下界面。第七章 参照七.3 什么是参照参照录入,是一种辅助的数据输入方式,通常弹出界面的形式提供可以参考的数据,比如在录入省份信息时,提供一个全国省份列表以供选择。单据开发中,有很多输入字段存在类似的需求。NC系统中预置了很多

20、种常见参照(基本覆盖了所有的基本档案,比如人员参照,存货参照),如果要自定义一种参照,则需要简单的开发工作。下面我们对员工家庭住址中的街道做一个参照,方便街道信息的录入。七.4 建立参照类步骤一、建立自己的参照类,定制被参照的数据及其显示样式及格式。我们用nc.ui.mytest.ref包来存放参照类,新建RoadRefModel继承DefaultRefModel类,用于录入员工数据。public class RoadRefModel extends DefaultRefModel / 步骤二、设置存储参照信息的数据库表名,及其关键字字段名public String getTableName(

21、) return uap_test_road;public String getPkFieldCode() return pk_road;步骤三、分别重载getFieldCode()和getFieldName()方法,设置需要参照的字段(数据库表中的列名),及其显示名称public String getFieldCode() return new String vname, vdescription;public String getFieldName() return new String 街道名称, 描述信息 ;步骤四、设置参照弹出对话框的标题 public String getRefTi

22、tle() return 道路参照; 这样,就完成了参照类,下面将单据模板中的某些字段设置上参照。七.5 在单据模板上设置参照如果在第六章建立的单据模板中添加一条员工家庭住址信息,输入住址所在街道时需要输入街道数据表对应记录的主键,这是添上参照,使得用户录入员工家庭住址时,可以通过选择街道来填充对应的街道字段步骤一、启动NC集成辅助开发工具,在 模板管理 - 单据模板设置工具 菜单中,修改之前建立的“T01”单据模板。步骤二、为了给用户更加直观的感受,我们给表体增加“街道名称”列,并将这列作为参照录入的列。在表体上按下右键菜单,选择“增加自定义项目”。步骤三、此时会弹出如下对话框。第四步、每一

23、列都有一个标识,输入列标识后按下确定。这时,表体增加roadname列,单击列头右边的属性窗口会显出出项目主键和显示名称。第五步、修改显示名称为“街道名称”第六步、选择高级属性选项卡,将数据类型设置为“参照”,参照类型设置为我们建立的参照类,放到“”中,即为“”。设置关键字名为主键所在列的road,这是因为,员工地址表中关联的是街道主键,当客户在参照中选择了某个街道,需要将这条数据的主键带到界面中的road字段;第七步、此时,点击每行的街道名称单元格时,单元格中会显示出一个按钮,提示此格数据可以选择录入。第八步、按下按钮,弹出如下对话框。选择某一条纪录按下确定,表体对应的单元格中就会显示出相应

24、的数据。第八章 单据模板中的公式使用八.3 什么是公式单据模板中的公式为数据的展现提供了很多灵活性,比如可定义字段C=字段A+字段B,最常用的公式还是通过主键查询数据表中其它描述字段信息的公式,比如员工家庭地址中的街道字段存储着街道详细信息表中对应记录的主键,打开单据界面时,客户不希望看到一堆难以理解的主键而是更加直观的信息,如街道名称,街道描述信息等。同样的,选择一个街道名称后,对应的街道描述信息和街道主键也应该相应的。公式就定义了表体中各列间数据的依赖关系,主要有显示公式、编辑公式,显示公式在界面初始化或刷新时会自动运算,编辑公式在修改列数据时自动运算。八.4 给单据模板设置公式下面我们就

25、用公式实现此功能。第一步、修改单据模板,给表体添加自定义表项:街道描述信息“roadinfo”。第二步、选中街道名称列头,打开其高级属性,单击编辑公式项。第三步、在弹出的对话框中输入公式,本例公式为:roadname -getColValue(uap_test_road,vname,pk_road , road);roadinfo-getColValue(uap_test_road,vdescription,pk_road,road);公式左边为模板中要置值项的项目主键,getColValue公式的第一个参数为数据库表名称,第二个参数为数据库表中要返回的列名称,第三个参数为数据库表主键,第四个

26、参数为从当前模板中那个字段中取数按下确定按钮后,就完成了编辑公式的定义。在单据模版定义窗口,在“街道名称”字段通过上一章的参照选择某条道路信息后,“街道”和“街道信息”字段会自动填充相应信息。同理,建立显示公式。第一步、选择“街道”列头,打开高级属性,选择“显示公式”第二步、设置关联字段的值这样,在界面显示时,街道名称和街道描述就会自动显示出来。第九章 参考文献1、 更多UI工厂单据开发,请参阅UI模式化开发手册,刘剑、赖宏伟2、 更多参照和公式使用细节,请参阅“NC230培训-模板管理”3、 更多公式细节,请参阅“新版公式解析器使用指南”,程操红4、 更多数据库命名规范,请参阅“数据库设计手册_V230_1.0试行版”5、 更多Java编码规范,请参阅“Java编码规范-v230-0.9”

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2