




已阅读5页,还剩47页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
NC5系列开发培训1 说明1.1 主题本次实战培训选择开发一个简单的学生管理系统,主要为了体现在NC中如何开发管理系统。学生管理系统大致功能为:功能界面类型说明课程信息维护列表型档案学生信息管理管理型档案学生选修课程申请管理型审批流程1.2 目标:1) 了解NC UAP开发平台2) 了解数据模型的设计规范3) 了解单据开发的操作步骤4) 了解界面的具体技术细节1.3 环境要求NC版本:NC56,可以只安装UAP客户化,完整系统路径中严禁包含中文或空格。Eclipse: 培训时必须使用我提供的Eclipse3.7,完整系统路径中严禁包含中文或空格。JDK:Win7、Win8用户建议使用JDK1.6,其他1.5、1.6均可。严禁使用低于1.5、高于1.6 的JDK/JRE同时建议配置JAVA_HOME到用户的环境变量中,而非系统变量。2 数据模型设计2.1 数据设计规范NC5系列大部分使用PowerDesigner进行数据模型设计,也有使用元数据设计数据模型。本文暂时介绍PowerDesigner的设计方法。NC中的常用的数据类型大致为:类型数据库类型备注档案主键Char(20)公司主键Char(4)字段名称为pk_corp日期Char(10)2013-08-22日期时间Char(19)2013-08-22 13:19:09逻辑型Char(1)Y,N整数Int数字、金额型Decimal(20,4)长度为20,小数占4位文本型Varchar(200)大文本Varchar(4000)短文本Char、Varchar视长度而定在设计数据模型的时候每张表都必须设计tsChar(19)、drint、pk_corpchar(4)三个字段,分别表示记录的最后操作时间、删除标记、公司标记。如果单据需要走审批流或业务流推式、拉式生成单据,则必须加上如下几个字段(如原单据已经考虑到则不需要添加):编码名称类型备注pk_corp公司主键char(4)审批流单据必须字段pk_billtype单据类型varchar(10)vbillstatus单据状态intvapproveid审批人IDchar(20)dapprovedate审批日期char(10)voperatorid操作人idchar(20)doperatdate制单日期char(10)vapprovenote审批批语varchar(300)vbillno单据号varchar(50)pk_busitype业务类型varchar(50)vbusicode业务编码varchar(50)vlastbilltype下游单据类型char(20)vlastbillid下游单据IDchar(20)vlastbillrowid下游行IDchar(20)vsourcebilltype源头单据类型char(20)vsourcebillid源头单据char(20)vsourcebillrowid源头单据行IDchar(20)2.2 数据模型课程信息(bd_course)编码名称类型备注pk_courseid课程主键char(20)coursecode课程编码varchar(100)coursename课程名称varchar(100)maxstunum最大选修人数intmemo课程简介varchar(300)classroom教室varchar(100)campus所属校区varchar(100)major限定专业varchar(100)credit学分intcreditcour学时intpk_corp公司char(4)ts时间戳char(19)dr删除标记int学生信息(bd_student)编码名称类型备注pk_student主键char(20)stuno学号varchar(20)stuname姓名varchar(20)age年龄intstuid身份证号varchar(20)birthplace户口所在地varchar(20)address现住址varchar(50)sex性别char(1)telephone联系电话varchar(20)email邮箱varchar(20)birthday出生日期char(10)classname班级名称varchar(50)indate入学时间char(10)isgraduate是否毕业char(1)Y、Noutdate毕业时间char(10)voperatorid创建人char(20)doperatdate创建日期char(10)vmodifierid修改人char(20)dmodifytime修改时间char(19)pk_corppk_corpchar(4)tstschar(19)drdrint学生信息子表紧急联系人(bd_contact)编码名称类型备注pk_contact主键char(20)pk_student学生主键char(20)name姓名varchar(20)mobile电话varchar(20)phone家庭电话varchar(20)unitname联系人单位varchar(50)address联系人地址varchar(50)relation关系int父亲、母亲、配偶、亲人、朋友、同事、同学tstschar(19)drdrint选修课程申请(st_courseapply)编码名称类型备注pk_courseapply主键char(20)classname所属班级varchar(50)pk_student申请学生char(20)teacher班主任varchar(50)voperatorid申请人char(20)doperatdate申请日期char(10)vmodifierid修改人char(20)dmodifydate修改时间char(19)vapproveid审批人char(20)dapprovedate审批日期char(10)pk_billtype单据类型varchar(10)vbillstatus单据状态intvbillno申请单号varchar(50)pk_corppk_corpchar(4)tstschar(19)drdrint选修课程(st_courseapply_b)编码名称类型备注pk_courseapply_b主键char(20)pk_courseapply申请单主键char(20)pk_course课程IDchar(20)credit学分intmemo备注varchar(300)tstschar(19)drdrint2.3 PowerDesigner 建模1) 使用PowerDesigner 新建物理数据模型,点击菜单栏新建按键,弹出如下界面:在界面中选择【Physical Data Model】, 右边的DBMS选择【Microsoft SQL Server 2005】。强烈建议选择SQLServer2005。后续使用PDM文件生成表结构时会用到。选择完毕后点击确定。2) 在Palette中选择表格后在空白区域点击,创建一个表对象,之后点击指针切换回鼠标界面。3) 双击table会打开详细设计界面,在界面中填写对象中文名称与表名称4) 点击旁边的Columns 页签,在该页签下添加详细的字段信息,如当前表有主键,请参考红框处设置表主键。5) 以此类推完成其他几张表的设计工作。完成后注意保存模型文件,后缀为.pdm。6) 导入数据字典,进入NC,客户化二次开发工具数据字典管理, 打开后新建一个文件夹,可以命名为:开发培训7) 使用工具下面的导入数据字典进行数据导入,详见下图3 单据开发向导3.1 开发前准备1) 启动Eclipse,点击菜单栏 Window Preferenecs MDE Development ,在该界面中选择NC相关环境。2) 选择后,DriverList中会默认生成一个design的数据源,在列表中选择一个你配置的数据源,点击As design 即可。注意:请保证该列表的数据中3) 点击菜单栏新建,弹出窗口选择 Module Project。4) 确定后在在界面中输入Java工程名称及在NC中的模型名称,完成后Finish即可。5) 在工程下创建一个文件夹,命名为pdm,将设计好的PDM文件拷贝到该目录。6) 双击打开PDM,在弹出的界面点击右上角的小人,解析表结构,检查一下表名有没有正常解析,选择左下解的Oracle选项,然后导出建表脚本。7) 导出建表脚本后,需要选择工程右键刷新,可以看到工程下存在ncscript 目录,该目录中包含Oracle、sqlserver的建表脚本。使用相应的SQL脚本在数据库中创建表。3.2 列表型档案界面课程信息维护3.2.1 生成单据VO1) 双击打开PDM文件,解析数据后,选择要生成VO的表,点击右方向箭头,将其移运到主表名称中,在包名称中输入包路径,点击生成VO即可。2) 生成完成后,选择工程右键刷新,即可在Public目录下看到刚刚生成的代码。3.2.2 创建UI代码1) 工程右键 选择NC Plugin单据开发。2) 在弹出界面中填写生成代码的包路径、单据类型、界面模型等。包路径最少为4层,单据类型编码为4个字符长度,代码模板选择列表界面。3) 完成后点击Next确认要生成的文件,点击Finish完成即可生成代码,生成代码后请右键刷新工程,即可显示刚刚生成的代码。4) 生成的文件大致会有三个,功能描述如下:类名称备注ClientCtrl负责配置界面ClientEventHandler负责管理界面的按钮事件ClientUI负责提供统一入口,同时管理界面字段的修改事件5) 打开ClientCtrl类文件,列表界面需要在实现一个接口:nc.ui.trade.bill.ISingleController,并修改其生成的方法isSingleDetail() 返回值为true。6) 设置单据使用的VO对象,修改CilentCtrl的getBillVoName() 方法,将返回值改为:return new StringHYBillVO.class.getName(),CourseVO.class.getName(),CourseVO.class.getName();nc.vo.trade.pub.HYBillVO 为NC产品使用的通用聚合VO对象,这个结构可以理解成:【聚合VO,表头VO,表体VO1,表体VO2】7) 为界面添加按钮,实现public int getCardButtonAry()方法,该方法为卡片界面下的按钮数据8) 查看一下生成的几个类中的方法,部分有注释,也可以从字面意思上猜出一部分。3.2.3 功能注册1) 在开发环境中启动NC服务端,右键工程Run asNC Middleware。等控制台打出Server startup in XXXX ms 的时候说明服务器端已经启动成功。现在就可以启动客户端程序了, 启动客户端使用:Run AsNC Client。2) 进入到NC 集团下。打开功能注册的节点:客户化二次开发工具系统管理工具功能注册。 选择左边树形的根目录(功能注册)点击增加,右边的数据参考下图。左边选择刚刚添加的【开发培训】,点击增加,增加一个二级目录【学生管理系统】选择【学生管理系统】增加可执行的功能节点,也就就是刚刚生成的ClientUI类名称全路径。可以在Eclipse中打开类文件,选择类的名称,然后右键选择Copy Qualified Name即可拷贝全路径。3) 注意在NC中二次开发出来的功能,为了逃避授权的限制,默认第3位为H,否则部署到客户机会提示超过最大授权数。 4) 功能注册完成后需要注册一下模块信息、平台信息等,打开客户化二次开发工具UAP集成开发工具,点击第一个图标 会弹出一个界面,左边树形菜单选择业务组件,点击上方的 + 按钮,增加模块信息。模块分类信息为刚刚在功能注册添加的一级模块名称。 选中子模块 添加子模块信息,注意子模块的名称在右边的下拉菜单中选择,下拉菜单中列出的为 NC Modules下的模块信息,也就是我们创建工程时填写的模块信息。模块信息注册完毕后,还需要在系统类型定义中添加模块的信息。5) 注意新增加模块还需要在sm_codetocode表中添加一条记录,否则无法将功能分配到公司下。INSERT INTO sm_codetocode(DISPCODE, DR, FUNCCODE, ISLEAF, MODULETYPE, PK_CODETOCODE, SUBFUNCCODE, TS) VALUES(NULL, 0, HZ, Y, 1, demo, NULL, 2013-08-23 17:16:00)FUNCCODE:为刚刚新增加的一级菜单名。PK_CODETOCODE:为功能下主模块名称。6) 模块信息在将来的开发过程中,不会频繁增加,大部分项目只需要注册了功能节点就可以了。3.2.4 模板配置1) 打开客户化二次开发工具模板管理 下的单据模板初始化,在该功能下添加单据模板2) 在单据类型框中填入刚刚生成类文件时填写的单据类型,此处为“ST01”,点击显示模板,由于系统中不存在ST01的单据,所以右边的增加按钮变成可点击状态。选择左边的表前缀过滤,在文本框中输入也查找的表名称,点击列表显示,即可过滤出我们要使用的表数据,这里选择课程信息表,此处添加到主表。添加完成后点击增加。3) 将表对象拖到中间的栏位中最终结果为:4) 完成后点击菜单栏的模板操作保存模板,会弹出如下对话框,在框中输入标题与节点号(刚刚注册的功能节点号),点击确定即可5) 在菜单栏点击生成查询模板,在弹出框中选择生成到的功能节点。6) 完成后点击确定,在弹出的对话框中输入查询模板的名称。7) 关联单据的默认模板。在二次开发工具下的功能节点默认模板设置,找到对应的功能节点,添加单据模板、查询模板。8) 点击分配按钮,选择单据模板复选框,点击下面的添加,在弹出界面的左边找到刚刚添加的单据模板,右边选择默认模板,模板选择点击放大镜,选择默认模板,确定即可。9) 在点击查询模板,点击添加弹出查询模板的分配界面,左边找到该功能节点,右边选择模板后,确定即可。10) 最终分配完成后的界面如下图,完成后注意保存数据。11) 以上操作完成后,分配一下功能权限就可以看到界面了。3.2.5 深入了解1) 在单据模板初始化中输入单据模板编码,点击显示模板,在点击下方修改按钮,进入到界面修改状态。2) 选择表体框架,右键弹出菜单栏中点击【页签项目编辑】3) 弹出的界面为表体字段的详细配置界面。4) 可以通过点击表体的某个字段,在右边的属性页签中配置。5) 不同的数据类型,可以进行不同的类型设置。整数类型:可以设置最大最小值、字体颜色、千分位等。小数类型:可以设置小数的精度,其余跟整数类型一致。参照类型:可以设置参照的界面对象下拉类型:可以设置下拉列表的显示值及选中后的存储值。自定义项档案类型:可以参照到自定义档案列表中的东西。6) 在模板块中右键,选择“项目重新排序”,可以变更项目的顺序,也可以使用拖拽。7) 单据模板中的 主键、外键、pk_corp、ts、dr 等字段,必须设置为卡片列表不显示、不可编辑、非必输项。8) 了解编辑公式与显示公司的作用。9) 在查询模板初始化中调整默认生成的查询模板,操作符编码与名称为查询对话框中显示用的字符及生成SQL时使用的操作符号,需要适当调整一下,如果日期型、数字型的,不建议使用包含操作符。字符型的,则不建议使用大于等于、小于等于这样的操作符号。是否缺省显示为是否默认显示到查询模板的对话框中,一般缺省显示的会列在中间,是否使用的会列在左边的树形中。调整后的界面,如图:10) 在3.3 管理型档案界面学生信息维护3.3.1 生成单据VO生成单据VO,解析完PDM文件,将主表选择到主表,子表选择到子表框中。添加一个包名称,如有需要可以修改一下主子表VO名称。点击生成VO,刷新一下工作空间即可。3.3.2 创建UI代码右键工程,创建UI代码,注意该代码模板选择管理界面3.3.3 功能注册3.3.4 模板配置输入要增加的模板类型,点击显示显示模板,左边选择学生信息主表、与联系人子表,点击增加。将创建日期、创建人、修改人、修改日期移动到表尾,操作是在字段上右键,选择移动项目到表尾,移动完成后的效果如下图。操作人、创建人的数据类型改为参照,类型设置中选择参照的数据为:操作员,并配置显示公式。getColValue(sm_user, user_name, cuserid, voperatorid),主要在列表状态下翻译创建人,将创建人由主键转换为名称。 修改人按上述规则调整,注意显示公式规则不同。性别字段修改成下拉类型,数据类型设置成下拉,类型设置点击浏览,弹出界面中录入下图所示的东西。表体的关系字段同样修改成下拉,在类型设置中按下图结构增加。模板修改完成后,生成一下查询模板,然后将两个模板分配到功能节点上。3.3.5 深入了解3.3.5.1 增加数据时使用缺省值1) 模板中配置缺省值 在单据模板中,选中性别字段,从下拉列表中选择“男”,保存即可。则新增单据时性别默认为“男”。1删除标记:0为未删除、1为删除,则可以在删除标记字段默认填写0 。NC的逻辑型字段,有两个值:Y、N,未勾选时为N。实际上,如果未编辑过模板上的字段,则保存的时候该值为空,我们可以在模板上点击勾选,在点击取消,这样后台存储的时候就为N了。2) 代码中填写缺省值 如果是表头表尾,则可以写到ClientUI中 setDefaultData()。getBillCardPanel().getHeadItem(pk_corp).setValue(_getCorp().getPrimaryKey();/设置公司主键getBillCardPanel().getTailItem(voperatorid).setValue(_getOperator();/为表尾的创建人赋值。可以通过这种方式,为公司、创建人、创建时间 等字段赋上当前登录公司、操作人等信息。 如果是表体的字段,则必须重写ClientEventHandler下的onboAddline()方法,在增行的时候赋上值(仅适用于单表体)。getBillCardPanelWrapper().getBillCardPanel().getBillModel().setValueAt(缺省值, getBillCardPanelWrapper().getBillCardPanel().getRowCount()-1, 字段);3.4 管理型审批单据选修课程审批单3.4.1 生成单据VO3.4.2 创建UI代码生成完代码需要刷新工作空间,此单据生成的代码如下图:完成后需要修改Ctrl类的 getBillVOName()方法,添加刚刚生成的两个VO类。Ctrl类的getBusinessActionType()返回值为IBusinessActionType.PLATFORM ,表示该单据是走审批流的,与上面讲的两个单据返回值是不同的,需要注意。 注意审批流单据需要将public boolean isExistBillStatus() 的返回值设置为true。3.4.3 脚本注册3.4.3.1 功能注册3.4.3.2 单据信息注册1) 在客户化二次开发工具单据管理单据类型管理 节点注册单据信息,选择左边的开发培训节点,新增单据类型。 类型代码:创建UI类时填写的单据类型,此处为“ST03”。 类型名称:单据的名称, 功能节点编号:HZH103,该单据对应的功能节点。 审批节点编号: +功能节点编码HZH103,注意一定要以“”打头,否则会出错。 审批流检查类:默认使用:nc.bs.trade.business.HYSuperDMO,如需修改请参考该类。填完保存即可。3.4.3.3 VO对照注册在VO对照管理中配置单据界面的信息,打开客户化二次开发工具单据管理单据类型管理,在单据类型中输入刚刚注册的单据类型编码,然后回车,在界面中填写与单据相关的数据。主表需要填写的信息为: 主子VO类名称:主表VO的全路径,对应Ctrl类getBillVOName() 数组的第二个字符串。 单据VO类名称:聚合VO的全路径,对应Ctrl类getBillVOName() 数组的第一个字符串。 主表的关键字段:主表VO的主键。 审批人:主表VO中设计的审批人字段 制单人:主表VO中设计的制单人字段 单据ID:主表VO的主键 对应数据库表:主表对应的表结构 单据编号:主表设计的单据号字段 单据类型:主表设计的单据类型字段埴写完成后注意点击保存,详细参考下图:点击子表单选框,该界面需要填写的内容为: 主子VO类名称:子表的VO全路径,对应Ctrl类getBillVOName() 数组的第3个字符串 单据VO类名称:聚合VO类全路径, 对应Ctrl类getBillVOName() 数组的第1个字符串 主表在子表的字段:子表VO的public String getParentPKFieldName() 返回的值,一般为主表的主键 对应数据库表:子表VO的表名称。 配置完成后注意点击保存,详细情况,参考下图:3.4.3.4 动作脚本注册复制动作脚本类中注释的SQL脚本,执行SQL语句(一共6个类,12行SQL语句)。打开客户化二次开发工具单据管理单据动作执行脚本 在树形中找到ST03 可以看到多出6个脚本。打开客户化二次开发工具单据管理单据动作管理 可以看到有6个动作3.4.4 模板配置增加模板单据,命名为“ST03”调整一下模板保存模板细节省略。3.4.5 深入了解其他参考技术红皮书4 补丁安装盘制作开发工作已经全部完成,将开发成果部署到客户的环境中去就需要制作安装文件。4.1 创建安装盘目录1) 在工程右
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工程项目物流方案(3篇)
- 城市照明节能改造实施方案与照明节能技术应用推广策略研究报告
- 工程行业资源对接方案(3篇)
- 2025年执业药师考试基础知识试题及答案
- 2025有担保的借款合同范本
- 2025年药品召回管理办法培训试题及答案
- 2025年1月份护士VTE相关知识考卷及答案
- 2025年卫生应急知识与技能试题库(含答案)
- 儿童消化不良饮食建议
- 2 做月饼(教学设计)苏教版二年级下册综合实践活动
- 人员外出安全培训内容课件
- 2025年法官入额遴选政治理论真题及答案
- 2025至2030中国土豆行业产业运行态势及投资规划深度研究报告
- 2025年交通安全知识测试题含答案详解
- 露天矿山项目资金预算与成本控制
- (正式版)DB15∕T 2590.1-2022 《毛茛科草种质资源描述和数据采集规范 第1部分:金莲花》
- 依法服兵役课件
- 电商客服理论考试复习题库(含答案)
- GB/T 26480-2011阀门的检验和试验
- 一年级上《人与自然》
- 高等有机化学PPT精品课程课件全册课件汇总
评论
0/150
提交评论