NC开发_基本档案_入门教程.ppt_第1页
NC开发_基本档案_入门教程.ppt_第2页
NC开发_基本档案_入门教程.ppt_第3页
NC开发_基本档案_入门教程.ppt_第4页
NC开发_基本档案_入门教程.ppt_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

行业开发部汪锦辉 实习 1 NC基本档案二次开发流程 注册功能节点 导入数据字典 增加 编辑单据模板 增加单据类型 设计PDM 略 数据传输类VO 控制类AssessAssignCtrl 入口类ClientUI ui vo bs 第一次调试 创建数据库表 前台校验 后台校验 使用参照 使用公式 使用下拉框 使用查询 行业开发部汪锦辉 实习 2 创建数据库表 将train1 pdm中两张表后面加行自己的单据类型 如 你的单据类型为t701就将数据字典改成fdc train t701和fdc train b t701利用PDM导出数据库表创建脚本 以sqlserver数据库为例 在PowerBuilder12 0中选择 Database ChangeCurrentDBMS 在弹出的对话框中选择 MicrosoftSQLServer7 x Generatedatabase 在弹出的对话框中切换选项卡 在options选项卡下createtable和createprimarykey打勾 然后从preview页签下将sql脚本考出 在数据库连接软件中运行建库即可 行业开发部汪锦辉 实习 3 创建数据库表cont 运行数据库连接软件 执行刚才生成的SQL脚本建立相应得数据库表 注意确定是否含有TSDR字段 PD中打补丁后就会自动添加的 3 点击 执行查询 至此 数据库中应该已有表fdc train t70 x和表fdc train b t70 x T70 x为各自的节点号 行业开发部汪锦辉 实习 4 导入数据字典 启动客户端服务器 登录进入系统本地界面 在左侧树型列表中选择 客户化 二次开发工具 系统管理工具 数据字典管理 在左侧树型列表中找到并单击 客户化 二次开发 导入数据字典 注意选择的目录为 新员工培训 在弹出的导入对话框中选择 解析PDM文件 单击 下一步 选择文件 TRAIN1 pdm 单击 下一步 行业开发部汪锦辉 实习 5 导入数据字典cont 4 覆盖方式选择 全部覆盖 并选中 导入到选中目录 复选框 单击 下一步 以继续 选中要导入的两个表 项目档案 项目业态信息 单击 下一步 完成导入 其效果如下 行业开发部汪锦辉 实习 6 注册功能节点 登陆到NC测试环境 在左侧树型列表中选择 客户化 二次开发工具 系统管理工具 功能注册 在弹出的 功能注册 对话框中 从虚节点 N1新员工练习场 N1027月份培训 往下 并单击 新增 设定新的功能节点 各参数如下 功能编码使用默认值即可 功能名称你的名字 如 张三测试 功能性质可执行功能节点对应文件或控件名nc ui train caseT701 ClientUI单击 保存 行业开发部汪锦辉 实习 7 增加单据类型 登陆到NC测试环境系统 客户化 二次开发工具 单据管理 单据类型管理 单击左侧树型列表中的 房地产公共 单击 新增 设定新增单据的各项参数 类型代码两位数字或字母的组合 例如 T701类型名称你的名字单据对应类nc ui train caseT701 ClientUI 似曾相识 节点编号N10201单击 保存 行业开发部汪锦辉 实习 8 增加单据模板 登陆到NC测试环境系统 客户化 模板管理 模板设置 单据模板设置工具 在弹出的 单据模板设置工具 对话框中做如下设置 在 单据类型或非单据类型 中输入T701 为什么是G1 并单击 显示模板 单击 列表显示 将fdc train t70 x选择为主表 fdc train b t70 x选择为子表 系统怎么知道有这两个表 点击 增加 创建一个新的单据模板 行业开发部汪锦辉 实习 9 增加单据模板cont 托拽表头与表体到正确位置 如下图所示 托拽 托拽 行业开发部汪锦辉 实习 10 增加单据模板cont 设置其它字段的属性 根据业务需要 可设置其它字段的一些属性 以隐藏主表主键为例 单击表头字段 主键 在显示属性中 将卡片是否可见 列表是否可见都设置为 否 如下图所示 保存模板 模板操作 保存模板 模板标题填入你的名字 节点号填N10201 为什么填N10201 其它设置用默认值 单击 确定 保存 字段pk pkcont的属性设置 行业开发部汪锦辉 实习 11 ui vo bs 在Eclipse中创建ui vo bs包在Eclipse开发环境中 找到项目fdc train 新建ui包 鼠标右键单击 fdc train 新建 包 设置源文件夹src client名称nc ui train caseT701源文件夹src public 新建vo包 nc vo train caseT701 源文件夹src private 新建bs包 nc bs train caseT701 行业开发部汪锦辉 实习 12 数据传输类VO 生成主子表VO二次开发工具 UAP集成开发工具 UAP表单集成开发中心选择工具和选项下的生成VO 注意在目标文件目录选择时要填写一下包路径不然会出错 行业开发部汪锦辉 实习 13 数据传输类VOcont 将生成的VO类复制到包中 将文件夹c temp nc vo train T70 x 在生成VO时填写的目标文件目录 中的两个文件 本例为CaseContBT70 xVO java与CaseContT70 xVO java 复制到Eclipse相应的包中 为VO类加上ts dr字段和检查VO生成的数据类型是否无误 publicclassCaseContT70 xVOextendsSuperVO publicIntegerdr publicUFDateTimets publicIntegergetDr returndr publicUFDateTimegetTs returnts 注意 在PD中如果C ProgramFiles Sybase PowerDesignerTrial10 ResourceFiles DBMS下覆盖三个文件 生成的数据库将自动含有上面两个字段 此时 自动生成的代码中会含有上面这段代码 行业开发部汪锦辉 实习 14 数据传输类VOcont publicclassCaseContBT70 xVOextendsSuperVO publicIntegerdr publicUFDateTimets publicIntegergetDr returndr publicUFDateTimegetTs returnts 是否需要添加这段代码与上页同 行业开发部汪锦辉 实习 15 数据传输类VOcont 创建聚合VO类 也可以直接使用其父类HYBillVO在Eclipse开发环境中 找到项目fdc train 其下有一个文件夹src public 找到包nc vo train caseT70 x 鼠标右键单击包 nc vo train caseT70 x 在弹出的菜单中选择 新建 类 在弹出的新建Java类对话框中做如下设定 名称AggCaseT70 xVO修饰符public 并取消abstract final复选框超类HYBillVO接口无方法存根选中来自超类的构造函数 继承的抽象方法 行业开发部汪锦辉 实习 16 控制类CaseT70 xCtrl 创建ClientCtrl类在Eclipse开发环境中 找到项目fdc train 其下有一个文件夹src public 找到包nc vo train caseT70 x 鼠标右键单击包 nc vo train caseT70 x 在弹出的菜单中选择 新建 类 在弹出的新建Java类对话框中做如下设定 名称CaseT70 xCtrl修饰符public 并取消abstract final复选框超类nc ui trade bill AbstractManageController接口无方法存根选中来自超类的构造函数 继承的抽象方法 行业开发部汪锦辉 实习 17 控制类CaseT70 xCtrlcont 编辑CaseT70 xCtrl类getBillType 返回单据类型G1return G1 getBusinessActionType 返回业务类型 为 基本档案 returnIBusinessActionType BD getBillVoName 返回聚合VO与主子表VOreturnnewString AggCaseT70 xVO class getName CaseContT70 xVO class getName CaseContBT70 xVO class getName getPkField 返回主表主键return pk cont getChildPkField 返回子表主键return pk cont b 行业开发部汪锦辉 实习 18 控制类CaseWmCtrlcont getCardButtonAry 返回卡片界面要显示的按钮returnnewint IBillButton Add IBillButton Save IBillButton Cancel IBillButton Line IBillButton Refresh IBillButton Return getListButtonAry 返回列表界面要显示的按钮returnnewint IBillButton Add IBillButton Save IBillButton Cancel IBillButton Line IBillButton Query IBillButton Refresh IBillButton Card 行业开发部汪锦辉 实习 19 入口类ClientUI 创建入口类ClientUI在Eclipse开发环境中 找到项目fdc train 其下有一个文件夹src client 找到包nc ui train caseT70 x 鼠标右键单击包 nc ui train caseT70 x 在弹出的菜单中选择 新建 类 在弹出的新建Java类对话框中做如下设定 名称ClientUI修饰符public 并取消abstract final复选框超类nc ui trade manage BillManageUI接口无方法存根选中来自超类的构造函数 继承的抽象方法 行业开发部汪锦辉 实习 20 入口类ClientUIcont 编辑ClientUI类createController 返回界面控制类returnnewCaseT70 xCtrl setDefaultData 设置界面缺省值 设置公司编码getBillCardPanel setHeadItem pk corp getCorpPrimaryKey 行业开发部汪锦辉 实习 21 第一次调试 Debug cont 1 启动中间件 选中项目 右击 运行 NCMiddleWare 2 运行客户端 打开节点调试 3 选中项目 右击 运行 NCClient 4 需要注意MDE环境的正确配置 主要是配置好数据库的连接参数 窗口 首选项 MDE开发 通过 测试连接 即为连接正确 行业开发部汪锦辉 实习 22 使用下拉列表框 业务需求 分配方式只能在 合同类别 合同 中选择 须使用下拉列表框 编辑单据模板 在高级属性中 将分配方式字段的数据类型设为 下拉 保存单据模板 初始化下拉框新增一个私有方法 ClientUI initComboBox privatevoidinitComboBox String strAssignType newString 合同类别 合同 getBillCardWrapper initHeadComboBox iassigntype strAssignType true getBillListWrapper initHeadComboBox iassigntype strAssignType true 行业开发部汪锦辉 实习 23 使用下拉列表框cont 在ClientUI initSelfData 中调用ClientUI initComboBox protectedvoidinitSelfData initComboBox 行业开发部汪锦辉 实习 24 使用查询 创建查询模板登陆NC平台 客户化 二次开发工具 查询模板初始化 在弹出的 查询模板初始化 对话框中 点击 增加 并做如下设置 模板编码G1模板名称考核体系分配查询模板所属节点编码TC02030 x点击 增行 增加两行查询条件 并做如下设定 单击 保存 行业开发部汪锦辉 实习 25 使用查询cont 注册默认模板登陆NC平台 客户华 二次开发工具 系统管理工具 功能节点默认模板设置 在弹出的 功能节点默认模板设置 对话框中 找到并选中你的功能节点号 设置默认的单据模板 点击 单据 添加 在弹出的 选择模板 对话框中 选择单据模板G1 点击 默认模板 模板选择 在弹出的 单据模板参照 对话框中选中系统模板 单击 确定 设置默认的查询模板 点击 查询 添加 在弹出的 选择模板 对话框中 找到你的功能节点号 点击 默认模板 模板选择 在弹出的 单据模板参照 对话框中选中查询模板 单击 确定 保存设置 点击菜单栏上的 保存 行业开发部汪锦辉 实习 26 使用参照 参照的优势用户界面更为友好 一致组件重用 缩短开发周期举例 下拉框就是一个简单的参照参照的分类NC平台上的参照自定义参照使用NC平台上的参照 以表体的部门为例编辑单据模板 将表体部门的数据类型改为 参照 参照类型选择 部门档案 保存单据模板 使用自定义参照 以表头的合同类别为例编辑单据模板 将表头的合同类别的数据类型改为 参照 参照类型输入 保存单据模板 行业开发部汪锦辉 实习 27 使用参照cont 设定其它字段的参照表头合同类别合同表体分部分项编码考核体系编码部门部门档案表尾制单人操作员 行业开发部汪锦辉 实习 28 使用公式 公式的优势灵活 无需修改代码即可设置界面数据提高开发效率举例 一个简单的公式本月收入 工资 奖金公式的分类按执行时机分为显示公式 编辑公式按业务分为表头公式 其编辑公式须显式加载 表体公式 表尾公式显示公式与执行公式的执行时机显示公式在数据被加载 如查询 刷新 时执行 编辑公式在用户输入数据时 当焦点移开某一编辑框时 会触发此编辑框的编辑公式 行业开发部汪锦辉 实习 29 使用公式cont 在表体使用编辑公式 1 需求 选择部门时 自动带出部门主键 编辑单据模板 设定vdeptname的关键字名属性值为 pk deptdoc 部门主键 部门 pk deptdoc vdeptname 技术部 XYZ00992 行业开发部汪锦辉 实习 30 使用公式cont 在表体使用编辑公式 2 业务需求 输入分部分项编码时 自动带出分部分项名称 分部分项分类主键 分部分项分类编码 分部分项分类名称 编辑单据模板 设定vitemcode的关键字名属性值为 pk item编辑单据模板 设定vitemcode的编辑公式属性值 vitemname getColValue pm bd item vname pk item pk item pk itemclass getColValue pm bd item pk itemclass pk item pk item vitemclasscode getColValue pm bd itemclass vcode pk itemclass pk itemclass vitemclassname getColValue pm bd itemclass vname pk itemclass pk itemclass 行业开发部汪锦辉 实习 31 使用公式cont 在表体使用编辑公式 3 业务需求 输入考核体系编码时 自动带出考核体系名称 部门主键 部门名称 金额 编辑单据模板 设定vassesscode的关键字名属性值为 pk assessindex编辑单据模板 设定vassesscode的编辑公式属性值 vassessname getColValue pmdl bd assessindex vname pk assessindex pk assessindex pk deptdoc getColValue pmdl bd assessindex pk deptdoc pk assessindex pk assessindex vdeptname getColValue bd deptdoc deptname pk deptdoc getColValue pmdl bd assessindex pk deptdoc pk assessindex pk assessindex nmoney getColValue pmdl bd assessindex nmoney pk assessindex pk assessindex 行业开发部汪锦辉 实习 32 使用公式cont 公式的执行过程 以vitemcode 分部分项编码 的编辑公式为例公式x getColValue T y 的含义为 x SELECT FROMTWHERE y其中T是数据库中的某个表 是T中的两个字段 x y是单据模版中的两个项目举例 由分部分项主键 pk item 带出分部分项名称 vitemname vitemname getColValue pm bd item vname pk item pk item 从表pm bd item中选择字段vname 当表pm bd item中的pk item字段等于单据模版中pk item的值 将上述查询结果放入单据模版vitemname中 行业开发部汪锦辉 实习 33 SELECTvnameFROMpm bd itemWHEREpk item 00A378UI 使用公式cont 分部分项编码 vitemcode 的编辑公式执行过程 以第一行公式为例 vitemname getColValue pm bd item vname pk item pk item DB 分部分项档案主键 分部分项编码 分部分项名称 pk item vitemcode vitemcodename 001 00A378UI 锦江 行业开发部汪锦辉 实习 34 使用公式cont 在表头使用编辑公式表头的编辑公式须在代码中显式加载 业务需求 选择合同时 自动带出合同类别 编辑单据模板 设定合同的编辑公式属性值 pk conttype getColValue pm cm contract fk conttype pk cont pk cont 行业开发部汪锦辉 实习 35 使用公式cont 覆写ClientUI的afterEdit 方法 编写代码触发表头编辑公式publicvoidafterEdit BillEditEvente Stringkey e getKey 表头if e getPos BillItem HEAD 合同if key equalsIgnoreCase pk cont 显式执行合同编辑公式getBillCardPanel execHeadFormulas getBillCardPanel getHeadItem pk cont getEditFormulas 行业开发部汪锦辉 实习 36 使用公式cont 使用显示公式业务需求分部分项档案主键带出分部分项编码 分部分项名称 分部分项分类主键分部分项分类主键带出分部分项分类编码 分部分项分类名称部门主键带出部门考核体系主键带出考核体系编码 考核体系名称 行业开发部汪锦辉 实习 37 使用公式cont 为考核体系分配主表主键添加显示公式 实现上述功能vitemcode getColValue pm bd item vcode pk item pk item vitemname getColValue pm bd item vname pk item pk item pk itemclass getColValue pm bd item pk itemclass pk item pk item vitemclasscode getColValue pm bd itemclass vcode pk itemclass pk itemclass vitemclassname getColValue pm bd itemclass vname pk itemclass pk itemclass vdeptname getColValue bd deptdoc deptname pk deptdoc pk deptdoc vassesscode getColValue pmdl bd assessindex vcode pk assessindex pk assessindex vassessname getColValue pmdl bd assessindex vname pk assessindex pk assessindex 行业开发部汪锦辉 实习 38 前台校验 业务需求表体分部分项档案主键 考核体系主键 部门主键不能为空 表体分部分项档案主键 考核体系主键 部门主键不能重复 表体数据不能为空 表头分配方式选择 合同类别 时 合同类别不能为空 选择 合同 时 合同不能为空 校验执行类VOChecker 校验规则 ClientCheckRules ICheckRules ICheckRules2 IUniqueRules 校验入口类ClientCHK 自定义校验规则 行业开发部汪锦辉 实习 39 publicICheckRule getHeadCheckRules returnnewCheckRule newCheckRule 分配方式 iassigntype false null null 表头分配方式不能为空 前台校验cont 创建校验规则类ClientCheckRules 在包nc ui train caseT70 x中新建一个类ClientCheckRules 并实现ICheckRules ICheckRules2与IUniqueRules接口 实现ICheckRules的getHeadCheckRules 方法 行业开发部汪锦辉 实习 40 前台校验cont 实现ICheckRules的getItemCheckRules 方法 publicICheckRule getItemCheckRules Stringtablecode returnnewCheckRule newCheckRule 分部分项编码 pk item false null null newCheckRule 考核体系编码 pk assessindex false null null newCheckRule 部门 pk deptdoc false null null 表体分部分项编码 考核体系编码 部门不能为空 行业开发部汪锦辉 实习 41 前台校验cont 实现IUniqueRules的getItemUniqueRules 方法实现ICheckRules2的isAllowEmptyBody 方法 publicIUniqueRule getItemUniqueRules stringtablecode returnnewIUniqueRule newUniqueRule 分部分项编码 考核体系编码 部门三者组合不能重复 newString pk item pk assessindex pk deptdoc 分部分项编码 考核体系编码 部门不能重复 publicbooleanisAllowEmptyBody Stringtablecode returnfalse 不允许表体为空 行业开发部汪锦辉 实习 42 前台校验cont 实现ICheckRules2的getSpecialChecker 方法其中ClientSpecialCHK是我们自己定义的校验规则 publicISpecialCheckergetSpecialChecker if m SpecialCHK null m SpecialCHK newClientSpecialCHK returnm SpecialCHK 行业开发部汪锦辉 实习 43 前台校验cont 创建自定义校验规则类ClientSpecialCHK在包nc ui train caseT70 x中新建一个类ClientSpecialCHK类 并实现ISpecialChecker接口 为ClientSpecialCHK加入私有成员m ErrMsg实现getErrorMessage方法 publicStringgetErrorMessage if m ErrMsg null m ErrMsg newString returnm ErrMsg 不允许表体为空 Stringm ErrMsg null 行业开发部汪锦辉 实习 44 前台校验cont 实现ISpecialChecker check 方法 publicbooleancheck AggregatedValueObjectavo m ErrMsg null StringBufferstrBuf newStringBuffer BdAsassignVOparentVO BdAsassignVO avo getParentVO intiAssignType parentVO getIassigntype intValue if 0 iAssignType if null parentVO getPk conttype 0 parentVO getPk conttype length strBuf append 合同类别不能为空 n 行业开发部汪锦辉 实习 45 前台校验cont 实现ISpecialChecker check 方法cont elseif 1 iAssignType if null parentVO getPk conttype 0 parentVO getPk conttype length strBuf append 合同不能为空 n if strBuf null 行业开发部汪锦辉 实习 46 前台校验cont 创建前台校验入口类ClientCHK在包nc ui train caseT70 x中新建一个类ClientCHK 并继承自父类BeforeActionCHK 覆写BeforeActionCHK的runClass 方法 publicvoidrunClass Containerparent StringbillType StringactionName AggregatedValueObjectvo Objectobj throwsException if VOChecker check vo newClientCheckRules thrownewnc vo pub BusinessException VOChecker getErrorMessage 行业开发部汪锦辉 实习 47 前台校验cont 注册前台校验类登陆到NC测试环境 客户化 二次开发工具 单据管理 单据类型管理 在 单据类型管理 对话框中 找到并选中你的单据类型 点击 修改 在单据的动作执行前类中填入 nc ui train caseT70 x ClientCHK 点击 保存 行业开发部汪锦辉 实习 48 后台校验 培训案例不使用 后台校验类在BS端被调用后台校验类的信息利用可序列化的userObject对象传递给后台业务需求 分部分项 考核体系指标 部门不能重复 行业开发部汪锦辉 实习 49 后台校验cont 创建后台校验规则在包nc vo train caseT70 x中新建类AsAssignUniqueFieldCHK 并实现IUniqueFieldCheck接口 覆写IUniqueFieldCheck getFieldArray 方法覆写IUniqueFieldCheck getNameArray 方法 publicArrayListgetFieldArray ArrayListlist newArrayList list add newString pk item pk assessindex pk deptdoc returnlist publicArrayListgetNameArray ArrayListlist newArrayList list add newString 分部分项 考核体系指标 部门 returnlist 行业开发部汪锦辉 实习 50 后台校验cont 覆写IUniqueFieldCheck isDetail 方法覆写IUniqueFieldCheck isSingleTable 方法 public

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论