




免费预览已结束,剩余39页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精品此文件受到UFIDA的保护, 并已在保护中心注册, 外泄必纠!UFIDA GUID1162153F0-8B62-6E8D-1D46-54499B5A622BUFIDA GUID131C26706-1290-5BDE-DD7D-D594B804C93CNC单据开发初学者手册编写者: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第五章 生成VO155.1 准备工作155.2 生成VO18第六章 第一个单据206.3 步骤一、建立单据模板206.4 步骤二、建立工程包结构256.5 步骤三、定制界面控制类256.6 步骤四、定制界面UI类266.7 步骤四、连接模板到NC集成辅助开发工具中查看效果26第七章 参照287.3 什么是参照287.4 建立参照类287.5 在单据模板上设置参照29第八章 单据模板中的公式使用338.1 什么是公式338.2 给单据模板设置公式33第九章 参考文献36感谢下载载精品感谢下载载精品第一章 概述1.1 基本概念单据:比如报销时的报销单,一般由表头和表体组成(有些时候还含有表尾)。表头中包含了单据的主信息,比如日期、部门、预算项目;表体包含了单据的明细信息,比如具体的事项和金额;单据类型:一个业务系统为了使结构更清晰,通常也是分层的。比如,供应链系统包含了采购、库存等子系统,每个子系统都具有一个系统类型,而每个子系统都会具有很多张单据,为了区分这些单据,为每张单据命名一个单据类型,作为唯一标识;模板:单据开发涉及到三大模板(单据模板、查询模板、打印模板)。单据模板定义了单据的显示外观和基本框架,查询模板定义了单据的查询对话框,打印模板定义了单据信息打印到打印机的样式和格式;VO:值对象,用作传输数据的载体聚合VO:单据一般由表头和表体构成,因此单据的数据表通常设计成主表和子表。聚合VO是对单据数据的抽象,它用于装载主表VO和一组子表VO.;UI工厂:虽然能通过三大模板定义出单据的显示,但每张单据都有一些公共的或特殊的行为。UI工厂是一种单据开发框架,它将常用单据抽象成了很多类型,因此,UI工厂相当于是单据开发的代码模板,预置了单据的各种公共行为,比如增、删、改、查,并且可以连接到NC流程平台,支持审批、单据驱动等应用。1.2 单据开发主要流程NC平台对开发过程进行很多抽象和封装,使得单据开发变得非常容易。一般地,开发环境中,开发一个单据主要包括以下步骤:第一步、PowerDesigner中建立单据的物理模型(数据库表),保存成pdm文件(xml);第二步、利用PowerDesigner生成单据的建表脚本(SQL语句),在数据库中执行此脚本建立数据库表结构;第三步、利用NC集成辅助工具中的数据字典生成工具导入pdm文件,生成相应的数据字典;第四步、利用NC集成辅助工具中的CodeSeedVO工具利用odbc连接数据库,将单据涉及的数据表生成VO对象;第五步、以UI工厂为基础,应用Template模式,编写自己的单据类。下面,我们以一个简单的员工信息管理系统分别介绍这几个步骤。精品第二章 搭建开发环境2.1 本文软件开发环境1、操作系统:Windows 2000 Server2、数据库设计工具:Sybase PowerDesigner Version 9.5.0.648(以下简称PD)为了给数据表自动生成时间戳(ts)、删除标志(dr)字段,需给PD打上插件补丁:db2cs7.xdb,oracl8i2.xdb,sqlserv7.xdb3、数据库:MS SQL Server 20004、开发工具:Eclipse 3.1.12.2 给PD打补丁将三个补丁文件全部拷贝到PD的安装目录的 Resource FilesDBMS 下即可2.3 建立数据库因为NC本身使用了很多数据库表,所以我们建立的数据库中必须包含NC系统表和其中的某些数据,而不是简单新建库。本文以SQL Server 2000为例。第一步、建立数据库v5test第二步、在v5test数据库名上右键选择导入数据,根据其它已经建好的库来生成库。或者根据数据库的备份和还原操作来建库。这样,我们就建立起包含NC系统表的数据库,在此基础上,我们建立自己的数据表进行开发。2.4 建立开发工程现在已经存在NC_UAP_UIFactory工程,其中包含了部分UI工厂源码和依赖的jar包,依此工程建立我们自己的eclipse工程。第一步、打开eclipse,新建java工程(在V5中则新建MDE工程)第二步、设置工程名,本例为UIFactoryV5,选择从存在的资源中创建工程,选择NC_UAP_UIFactory文件夹,依次确定建立工程。精品第三章 数据库表pdm及SQL脚本的生成PD是一种高端的数据建模工具,使用它可以很方便的建立数据库、导出SQL脚本,其物理模型文件的后缀名为pdm,所以,NC辅助开发工具多处依赖PD来完成数据库相关操作。3.1 数据模型我们的员工信息管理系统包括员工的基本信息,员工的类别信息,员工工资,为了增强系统的可扩展性,从员工基本信息中独立出员工的家庭住址信息,街道信息。下图显示了实体间的关系。 3.2 生成pdm步骤第一步、打开PD文件夹中的可执行文件pdshell9.exe,启动PD,会出现如下界面,选择新建一个物理模型。第二步、我们以MS SQL Server数据库为例,选择数据库为Miscrosft SQL Server 7.x,注意,由于补丁文件只针对SQL Server 7.x版本,所以,无论我们用SQL Server 7.x还是2000或以上版本,此处的DBMS都要选择SQL. Server.7.x。第三步、确定后左侧面板中会出现一个节点,双击弹出如下对话框,设置此模型的name,code等第四步、在新建节点上点击右键选择 New-Table第五步、在General选项卡中,设置表名,表的中文描述第六步、在Columns选项卡中定义列,列的中文描述。注意此处列的数据类型,一般地,主键前缀为pk_,数据类型为char(20),boolean类型的列前缀为b,数据类型为char(1),日期类型前缀为d,数据类型为char(10),等等,更多数据库表字段命名规范参照附录开发规范文档。第七步、保存到指定目录,便得到pdm文件3.3 生成SQL脚本步骤第一步、选择菜单项 Database - Generate Database 第二步、在弹出界面中,设置生成脚本文件的存放路径,并对Tables & Views选项卡做如下设置第三步、对Keys & Indexs 选项卡做如下设置,注意,取消除主键外的所有选项,因为此时我们没有这些选项信息第四步、取消 Database 选项卡中的所有选项第五步、按下确定按钮后,便生成了SQL脚本精品第四章 生成数据字典数据字典是NC二次开发工具中探测数据库表结构的数据基础,而不是采用每次需要数据都连接数据库的方式。数据字典由上一步骤生成的pdm文件生成,NC二次开发工具提供了相应的生成工具。4.1 步骤第一步、启动NC集成辅助开发工具,选择菜单 系统管理工具 - 数据字典管理第二步、在弹出的界面中,选择菜单项 工具 - 导入数据字典第三步、选择数据字典导入文件类型,此处选择 解析PDM文件第四步、在弹出的界面中点击 选择 按钮,选择上一章生成的PDM文件第五步、选择覆盖方式,一般地,选择 全部覆盖第六步、在弹出的窗口左侧会出现可供选择的数据表,选中需要导入的数据库表加到右边的窗口中第七步,会出现如下窗口,此时便完成了数据字典的导入精品第五章 生成VOVO值对象是数据传递的载体,其结构和数据库表结构紧密相关。一般我们在一个专门的包中存放VO对象,VO对象命名规则表现为类名以VO结尾。NC二次开发工具中也提供了相应的工具,用于生成数据库表的VO类。5.1 准备工作VO类通过ODBC连接数据库探测数据库表结构生成,所以,我们首先要建立起数据库表结构和ODBC连接源。第一步、在SQL Server 2000查询分析器中执行第二章生成的SQL脚本,生成数据库表第二步、选择 控制面板 - 管理工具 - 数据源(ODBC) ,弹出如下界面第三步、选择 SQL Server 驱动模式第四步、指定数据源名称和数据库服务器第五步、在弹出的界面中,按下图进行设置第六步、选择刚才建立的数据库,此处为v5test第七步、在弹出的界面采用默认设置第八步、测试数据库连接,如果出现如下信息,则表明建立的数据源有效5.2 生成VO建立起数据库和ODBC数据源之后,我们就可以开始生成VO对象。第一步、启动NC集成辅助开发工具,选择菜单 向导工具 - codeseedVO 第二步、设置我们刚刚生成的ODBC数据源,数据库访问的用户名和密码,如果数据库表很多,可以勾选上“表前缀过滤”选项,输入需要表的前缀,按下“列表”按钮后会在界面的左边列表框中列出所有符合前缀条件的表名,选择一个主表,其它需要生成VO的表选作子表。在右边设置生成VO对象的存储路径和VO类的包名及创建者,按下“为当前表生成文件”按钮,这样就在目标路径下生成了VO类。精品第六章 第一个单据在以上准备工作的基础上,我们现在着手开发第一个单据。6.3 步骤一、建立单据模板第一步、启动NC集成辅助开发工具,选择菜单项 模板管理 - 单据模板设置工具第二步、在弹出的界面中,输入新单据模板标识,如T01,然后按下“显示模板”按钮,如果此模板已经存在,会显示出已经设置好的信息,如果此模板不存在,右侧的“增加”按钮会变亮,表明可添加此模板。然后,通过表前缀过滤器,列出需要的数据表,主表只能选一个,子表可多选,本例我们选择员工信息作为主表,员工家庭住址作为子表,按下“增加”按钮。第三步、弹出的界面的右上是我们刚才选择的数据表,左上为表头部分,左中为表体部分。第四步、接下来我们设置表头和表体的显示内容,左键单击选中主表(uap_test_employee)不放,拖动到表头区域松开,此时会弹出如下对话框。第五步、采用默认设置,确定,同样操作,将子表(uap_test_address)拖动到表体区域,此时界面变成如下样子。第六步、我们可以修改具体显示字段的排列顺序,在表头/表体区域按下鼠标右键,会弹出下图右键菜单。第七步、选择“项目重新排序”菜单,通过上移下移改变排列顺序。第八步、我们还可以去掉一些不需要显示的字段,在不需要显示的字段上按下鼠标右键,弹出如下右键菜单,选择“删除项目”菜单,就完成字段的删除。第九步、保存编辑完的模板,选择菜单项 模板操作 - 保存模板第十步、输入模板的显示标题和节点标识,便完成了模板的设置。6.4 步骤二、建立工程包结构首先、建立自己的模板包,此处包名为nc.ui.mytest。其次、建立VO对象包,将我们第五章生成的VO包拷贝到工程的src目录下即可。6.5 步骤三、定制界面控制类第一步、在nc.ui.mytest包中新建MyTestControler类,实现ICardController接口。public class MyTestController implements ICardController / 第二步、重载getBillType()方法,其返回值为单据类型。本例中为T01。public String getBillType() return T01;第三步、重载getBillVoName()方法,关联VO类,控制单据数据的获得。public String getBillVoName() return new StringHYBillVO.class.getName(),TestEmployeeVO.class.getName(),TestAddressVO.class.getName();第四步、重载getBusinessActionType()方法,设置单据是否走流程平台。IbusinessActionType为常量接口,BD表明单据不走流程平台。public int getBusinessActionType() return IBusinessActionType.BD;这样,就完成了Controller类6.6 步骤四、定制界面UI类第一步、在nc.ui.mytest包中建立MyTestUI类,继承自BillCardUI类public class MyTestUI extends BillCardUI /第二步、重载createController()方法,关联界面控制类,此处返回刚刚创建的MyTestController类。protected ICardController createController() return new MyTestController();这样,就完成了UI类6.7 步骤四、连接模板到NC集成辅助开发工具中查看效果第一步、从Eclipse的package explore打开NC_HOME/ierp/DevelopToolConfig.xml文件第二步、在其自定义菜单位置,添加一个新的子菜单,并将className设置为我们编写的UI类。我的单据模板nc.ui.mytest.MyTestUI第三步、启动NC集成开发工具,会在自定义菜单项下发现我们刚刚添加的菜单项“我的单据模板”,选择此菜单项,就会弹出如下界面。第七章 参照7.3 什么是参照参照录入,是一种辅助的数据输入方式,通常弹出界面的形式提供可以参考的数据,比如在录入省份信息时,提供一个全国省份列表以供选择。单据开发中,有很多输入字段存在类似的需求。NC系统中预置了很多种常见参照(基本覆盖了所有的基本档案,比如人员参照,存货参照),如果要自定义一种参照,则需要简单的开发工作。下面我们对员工家庭住址中的街道做一个参照,方便街道信息的录入。7.4 建立参照类步骤一、建立自己的参照类,定制被参照的数据及其显示样式及格式。我们用nc.ui.mytest.ref包来存放参照类,新建RoadRefModel继承DefaultRefModel类,用于录入员工数据。public class RoadRefModel extends DefaultRefModel / 步骤二、设置存储参照信息的数据库表名,及其关键字字段名public String getTableName() 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 getRefTitle() return 道路参照; 这样,就完成了参照类,下面将单据模板中的某些字段设置上参照。7.5 在单据模板上设置参照如果在第六章建立的单据模板中添加一条员工家庭住址信息,输入住址所在街道时需要输入街道数据表对应记录的主键,这是添上参照,使得用户录入员工家庭住址时,可以通过选择街道来填充对应的街道字段步骤一、启动NC集成辅助开发工具,在 模板管理 - 单据模板设置工具 菜单中,修改之前建立的“T01”单据模板。步骤二、为了给用户更加直观的感受,我们给表体增加“街道名称”列,并将这列作为参照录入的列。在表体上按下右键菜单,选择“增加自定义项目”。步骤三、此时会弹出如下对话框。第四步、每一列都有一个标识,输入列标识后按下确定。这时,表体增加roadname列,单击列头右边的属性窗口会显出出项目主键和显示名称。第五步、修改显示名称为“街道名称”第六步、选择高级属性选项卡,将数据类型设置为“参照”,参照类型设置为我们建立的参照类,放到“”中,即为“”。设置关键字名为主键所在列的road,这是因为,员工地址表中关联的是街道主键,当客户在参照中选择了某个街道,需要将这条数据的主键带到界面中的road字段;第七步、此时,点击每行的街道名称单元格时,单元格中会显示出一个按钮,提示此格数据可以选择录入。第八步、按下按钮,弹出如下对话框。选择某一条纪录按下确定,表体对应的单元格中就会显示出相应的数据。第八章 单据模板中的公式使用8.1 什么是公式单据模板中的公式为数据的展现提供了很多灵活性,比如可定义字段C=字段A+字段B,最常用的公式还是通过主键查询数据表中其它描述字段信息的公式,比如员工家庭地址中的街道字段存储着街道详细信息表中对应记录的主键,打开单据界面时,客户不希望看到一堆难以理解的主键而是更加直观的信息,如街道名称,街道描述信
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 摄影色彩基础知识培训课件
- 摄影后期初期课件
- 期货技术考试试题及答案
- 2025合同终止劳动赔偿标准
- 《2025年解除合同协议书范本》
- 2025年物流行业合同法若干关键问题
- 2025设备租赁和维护管理合同协议书
- 公司防洪避险知识培训课件
- 公司金融知识培训大纲课件
- 搬运工培训课件
- 2025年人才发展常识试题及答案
- 肌肉骨骼疾病防治课件
- 信访驻京人员管理办法
- 窗口服务礼仪培训大纲
- 2025年版三子女财产债务处理离婚协议书示范文本
- 餐饮店品牌授权使用合同范本
- 2025年《治安管理处罚法》新修订课件
- 学堂在线 走进医学 章节测试答案
- 蔬菜温室大棚项目可行性研究报告书书
- 国家建设工程项目施工安全生产标准化工地
- 闵行区2024-2025学年下学期七年级数学期末考试试卷及答案(上海新教材沪教版)
评论
0/150
提交评论