版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、此文件受到UFIDA的保护,并已在保护中心 注册,外泄必纠! UFIDA GUID1162153F0-8B62-6E8D-1D46-54499B5 A622B UFIDA GUID131C26706-1290-5BDE-DD7D-D594B80 4C93C NC单据开发初学者手册 编写者:NC-UAP 薄奇 赖宏伟 用友软件股份有限公司 二零零六年四月 - ii - 目录 第一章 概述 . 1 1.1 基本概念 1. 1.2 单据开发主要流程 1. 第二章 搭建开发环境 . 1 2.1 本文软件开发环境 1. 2.2 给 PD 打补丁 1. 2.3 建立数据库 1. 2.4 建立开发工程 2.
2、 第三章数据库表pdm及SQL脚本的生成3 3.1 数据模型 3. 3.2 生成 pdm 步骤 3. 3.3 生成 SQL 脚本步骤 7. 第四章 生成数据字典 . 11 1.1. 4.1 步骤 第五章 生成 VO15 5.1 准备工作 1.5. 5.2 生成 VO1.8. 第六章 第一个单据 . 20 6.3 步骤一、建立单据模板 2.0 6.4 步骤二、建立工程包结构 2.5 6.5 步骤三、定制界面控制类 2.5 6.6 步骤四、定制界面 UI 类 2.6. 6.7 步骤四、连接模板到 NC 集成辅助开发工具中查看效果 26 第七章 参照 . 28 7.3 什么是参照 2.8. 7.4
3、建立参照类 2.8. 7.5 在单据模板上设置参照 2.9 第八章 单据模板中的公式使用 . 33 8.1 什么是公式 3.3. 8.2 给单据模板设置公式 3.3. 第九章 参考文献 . 36 第一章概述 第一章概述 1.1基本概念 单据:比如报销时的报销单,一般由表头和表体组成(有些时候还含有表尾)。 表头中包含了单据的主信息,比如日期、部门、预算项目;表体包含了单据的明 细信息,比如具体的事项和金额; 单据类型:一个业务系统为了使结构更清晰,通常也是分层的。比如,供应 链系统包含了采购、库存等子系统,每个子系统都具有一个系统类型,而每个子 系统都会具有很多张单据,为了区分这些单据,为每张
4、单据命名一个单据类型, 作为唯一标识; 模板:单据开发涉及到三大模板(单据模板、查询模板、打印模板) 。单据 模板定义了单据的显示外观和基本框架,查询模板定义了单据的查询对话框,打 印模板定义了单据信息打印到打印机的样式和格式; V0:值对象,用作传输数据的载体 聚合V0:单据一般由表头和表体构成,因此单据的数据表通常设计成主表 和子表。聚合V0是对单据数据的抽象,它用于装载主表 V0和一组子表V0.; UI工厂:虽然能通过三大模板定义出单据的显示,但每张单据都有一些公 共的或特殊的行为。UI工厂是一种单据开发框架,它将常用单据抽象成了很多 类型,因此,UI工厂相当于是单据开发的代码模板,预置
5、了单据的各种公共行 为,比如增、删、改、查,并且可以连接到 NC流程平台,支持审批、单据驱动 等应用。 12单据开发主要流程 NC平台对开发过程进行很多抽象和封装,使得单据开发变得非常容易。一 般地,开发环境中,开发一个单据主要包括以下步骤: 第一步、PowerDesigner中建立单据的物理模型(数据库表),保存成pdm 文件(xml); 第二步、利用PowerDesigner生成单据的建表脚本(SQL语句),在数据库中 执行此脚本建立数据库表结构; 第三步、利用NC集成辅助工具中的数据字典生成工具导入pdm文件,生 成相应的数据字典; 第四步、利用NC集成辅助工具中的CodeSeedVO工
6、具利用odbc连接数据 库,将单据涉及的数据表生成 VO对象; 第五步、以UI工厂为基础,应用Template模式,编写自己的单据类。 下面,我们以一个简单的员工信息管理系统分别介绍这几个步骤。 -2 - 第二章搭建开发环境 第二章搭建开发环境 2.1本文软件开发环境 1 操作系统: Win dows 2000 Server 2、数据库设计工具:Sybase PowerDesigner Version 9.5.0.648 以下简称 PD) 为了给数据表自动生成时间戳(ts)、删除标志(dr)字段,需给PD打上插件 补丁: db2cs7.xdb, oracl8i2.xdb,sqlserv7.xd
7、b 3、数据库:MS SQL Server 2000 4、开发工具:Eclipse 3.1.1 2.2给PD打补丁 将三个补丁文件全部拷贝到 PD的安装目录的 Resource FilesDBMS下即可 2.3建立数据库 因为NC本身使用了很多数据库表,所以我们建立的数据库中必须包含NC 系统表和其中的某些数据,而不是简单新建库。本文以SQL Server 2000为例。 第一步、建立数据库v5test 第二步、在v5test数据库名上右键选择导入数据,根据其它已经建好的库来 生成库。或者根据数据库的备份和还原操作来建库。 这样,我们就建立起包含NC系统表的数据库,在此基础上,我们建立自己 的
8、数据表进行开发。 2.4建立开发工程 现在已经存在NC_UAP_UIFactory工程,其中包含了部分 UI工厂源码和依 赖的jar包,依此工程建立我们自己的 eclipse工程。 第一步、打开eclipse,新建java工程(在V5中则新建MDE工程) 第二步、设置工程名,本例为UIFactoryV5,选择从存在的资源中创建工程, 选择NC_UAP_UIFactory文件夹,依次确定建立工程。 -2 - 第三章 数据库表pdm及SQL脚本的组成 -14 - 第三章数据库表pdm及SQL脚本的生成 PD是一种高端的数据建模工具,使用它可以很方便的建立数据库、导出SQL 脚本,其物理模型文件的后
9、缀名为 pdm,所以,NC辅助开发工具多处依赖 PD 来完成数据库相关操作。 3.1数据模型 我们的员工信息管理系统包括员工的基本信息, 员工的类别信息,员工工资, 为了增强系统的可扩展性,从员工基本信息中独立出员工的家庭住址信息, 街道 信息。下图显示了实体间的关系。 is cataloged by 1.1 石工井类冉 A20 H賞容丼VA20 兌节点A20 K*y_1 tn 1Bn 1.1 A20 VA20 SI A1 A40 A20 刖肚宝晨检工焙启 1.1 A20 VA20 VA10 VA2D 1J Key1 -1cm ttr遇 VA20 I Key_1 Key_1 3.2生成pdm步
10、骤 第一步、打开PD文件夹中的可执行文件pdshell9.exe启动PD,会出现如 下界面,选择新建一个物理模型。 第二步、我们以MS SQL Server数据库为例,选择数据库为 Miscrosft SQL Server 7.x,注意,由于补丁文件只针对 SQL Server 7.x版本,所以,无论我们用 SQL Server 7.x还是2000或以上版本,此处的 DBMS都要选择SQL. Server.7x 第三步、确定后左侧面板中会出现一个节点,双击弹出如下对话框,设置此 模型的name,code等 c e |+!无 Physi c Database: Local Reposi tory
11、 default diagram: I gg Phj-sicalDiuETam_2 j= *确逗 1 莊消 1 应用 | 帮助 | 卩T抚h;測盘子芸-蔚工工彊 Script C-eneiat ion compl eted irePLertt ion successful ugag e: (1)Co to the di recto iy E: i: est (2)Run th蠱script! 第四步、在新建节点上点击右键选择New -Table TJoikspace User Dofnain Table Storage Proceduire View Test Data Profile Ref
12、erence View Reference Package Physical Diagram Multidimensional Diagram Business Rule Save Ctrl+5 Save As. .h o於 Ctrl+Alt+F4 Detach From Workspace Find Objects., Ctrl+F Check Model Comfe Model Merge Model Model Options List aF New Con Number: Generate:丽 确呈 | 取消 | 殛用 |_帮勒_ 第六步、在Columns选项卡中定义列,列的中文描述。
13、注意此处列的数据类 型,一般地,主键前缀为pk_,数据类型为char(20), boolean类型的列前缀为b, 数据类型为char(1),日期类型前缀为d,数据类型为char(10),等等,更多数据 库表字段命名规范参照附录开发规范文档。 疋义表宇显喪苴| Exindad Dtptndtnciti 1 Vtriiu Info I Frtvi| 恥 pping Notts Gtner 第三步、重载getBillVoName()方法,关联VO类,控制单据数据的获得。 public String getBillV oName() return new Strin g HYBillVO.class.
14、getName(), TestEmployeeVO.class.getName(), TestAddressVO.class.getName() ; 第四步、重载 getBusi nessActio nType(方法,设置单据是否走流程平台。 IbusinessActionType为常量接口,BD表明单据不走流程平台。 public int getBus in essAct ion Type() return IBusi nessActio nType.BD; 这样,就完成了 Controller类 6.6步骤四、定制界面UI类 第一步、在nc.ui.mytest包中建立MyTestUI类,继
15、承自BillCardUI类 public class MyTestUI exte nds BillCardUI / 第二步、重载createController()方法,关联界面控制类,此处返回刚刚创建 的 MyTestController 类。 protected ICardC on troller createC on troller() return new MyTestC on troller(); 这样,就完成了 UI类 6.7步骤四、连接模板到NC集成辅助开发工具中查看效果 第一步、从 Eclipse 的 package explore打开 NC_HOME/ierp/ Develo
16、pToolConfig.xml 文件 E-鼻 NC_HOME 申fint I?- O bin E- B conf E- u? ejb i+ L.匕 ejbXMLs E- B external It - framework 白凸ierp FE LS? bin m ifj 1:1k iDevelopToolCo |ig, xml 第二步、在其自定义菜单位置,添加一个新的子菜单,并将className设置 为我们编写的UI类。 menultemName的单据模板 vclassName n c.ui.mytest.MyTestUI 第三步、启动NC集成开发工具,会在自定义菜单项下发现我们刚刚添加的 菜
17、单项“我的单据模板”,选择此菜单项,就会弹出如下界面。 我的第一十模扳 是否党员 年齢 入职日期 外健 街道 门牌 豐录单位:用友软件脸份公司 傑作员|讪 2000-03-30 尊用左软件 第七章参照 7.3什么是参照 参照录入,是一种辅助的数据输入方式,通常弹出界面的形式提供可以参考 的数据,比如在录入省份信息时,提供一个全国省份列表以供选择。单据开发中, 有很多输入字段存在类似的需求。NC系统中预置了很多种常见参照(基本覆盖 了所有的基本档案,比如人员参照,存货参照),如果要自定义一种参照,则需 要简单的开发工作。 下面我们对员工家庭住址中的街道做一个参照,方便街道信息的录入。 7.4建立
18、参照类 步骤一、建立自己的参照类,定制被参照的数据及其显示样式及格式。 我们 用 nc.ui.mytest.ref 包来存放参照类,新建 RoadRefModel 继承 DefaultRefModel 类,用于录入员工数据。 public class RoadRefModel exte nds DefaultRefModel / 步骤二、设置存储参照信息的数据库表名,及其关键字字段名 public Stri ng getTableName() return uap_test_road; public String getPkFieldCode() return pk_road; 步骤三、分别重
19、载getFieldCode(和getFieldName()方法,设置需要参照的字 段(数据库表中的列名),及其显示名称 public Strin g getFieldCode() return new String vname, vdescription; public String getFieldName() return new String 街道名称,描述信息; 步骤四、设置参照弹出对话框的标题 public Stri ng getRefTitle() return 道路参照; 这样,就完成了参照类,下面将单据模板中的某些字段设置上参照 7.5在单据模板上设置参照 如果在第六章建立的单
20、据模板中添加一条员工家庭住址信息, 输入住址所在 街道时需要输入街道数据表对应记录的主键, 这是添上参照,使得用户录入员工 家庭住址时,可以通过选择街道来填充对应的街道字段 步骤一、启动NC集成辅助开发工具,在模板管理- 单据模板设置工具 菜 单中,修改之前建立的“ T01 ”单据模板。 步骤二、为了给用户更加直观的感受,我们给表体增加“街道名称”列,并 将这列作为参照录入的列。在表体上按下右键菜单,选择“增加自定义项目”。 曙加当前表 灌加当前表选定项目 増加表到新页签 灌加表项目到新瓦签 曙加自定义项目到新贞签 删晾页签 预目重新诉二 页签项目编辑 噌加共亭页签1 步骤三、此时会弹出如下对
21、话框 第四步、每一列都有一个标识,输入列标识后按下确定。这时,表体增加 road name列,单击列头右边的属性窗口会显出出项目主键和显示名称。 1 显示厘性 高级属性 road namE 厲性 值 项目主键 roadname 显示名称 Iroadnanne 显于顺序 5 mn 第五步、修改显示名称为“街道名称” 称 z显示雇性 高级雇性 |属性 值 项目主键 naadname 街if若称 显示顺序 5 控件宽度 W0 4 第六步、选择高级属性选项卡,将数据类型设置为“参照”,参照类型设置 为我们建立的参照类,放到“ ”中,即为“ ”。 设置关键字名为主键所在列的road,这是因为,员工地址表
22、中关联的是街道主键, 当客户在参照中选择了某个街道,需要将这条数据的主键带到界面中的road字 段; 显示屋性z 高级犀性 值 数据类型 曙照 蕃照类型 nc.ui.myte. 曰八二 显不公式 輪辑公式 验证公式 龍否修跤屋性 是 能否修改編 是 能否修改显 呈 关龍宇名 road 第七步、此时,点击每行的街道名称单元格时,单元格中会显示出一个按钮, 提示此格数据可以选择录入。 街道 街道名称 第八步、按下按钮,弹出如下对话框 选择某一条纪录按下确定,表体对应的单元格中就会显示出相应的数据 第八章 单据模板中的公式使用 8.1什么是公式 单据模板中的公式为数据的展现提供了很多灵活性,比如可定
23、义字段。=字 段A+字段B,最常用的公式还是通过主键查询数据表中其它描述字段信息的公 式,比如员工家庭地址中的街道字段存储着街道详细信息表中对应记录的主键, 打开单据界面时,客户不希望看到一堆难以理解的主键而是更加直观的信息,如 街道名称,街道描述信息等。同样的,选择一个街道名称后,对应的街道描述信 息和街道主键也应该相应的。公式就定义了表体中各列间数据的依赖关系,主要 有显示公式、编辑公式,显示公式在界面初始化或刷新时会自动运算,编辑公式 在修改列数据时自动运算。 8.2给单据模板设置公式 下面我们就用公式实现此功能。 第一步、修改单据模板,给表体添加自定义表项:街道描述信息“ road info” 第二步、选中街道名称列
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 飞机型架装配工安全宣贯水平考核试卷含答案
- 电极丝制造工岗前班组协作考核试卷含答案
- 聚丁烯装置操作工岗前实操操作考核试卷含答案
- 铸管喷漆工岗前工艺分析考核试卷含答案
- 汽机辅机检修工安全强化知识考核试卷含答案
- 2026年新科教版初中八年级道德与法治下册第一单元宪法至上意识卷含答案
- 2026年人教版初中八年级语文上册说明文语言准确性卷含答案
- 翻车机工岗前班组考核考核试卷含答案
- 日间手术用药指导标准化
- 文化落地:从理念到行动的关键步骤
- 国家开放大学《课程与教学论》形考任务1-4参考答案
- 北京玉渊潭中学初一新生分班(摸底)数学模拟考试(含答案)【6套试卷】
- 知识竞赛模板(含有计时器)
- 南方少数民族传统合唱精讲智慧树知到期末考试答案章节答案2024年四川音乐学院
- 食材配送投标方案技术标
- 清酒知识讲座
- JCT170-2012 E玻璃纤维布标准
- 宁夏固原古雁岭唐宋墓墓发掘简报
- 真实世界中医临床研究方法与实践
- BIM技术在项目全生命周期管理中应用价值研究
- 香菇常见病虫害及防治
评论
0/150
提交评论