nc开发经验总结【v10】【单据部分】_第1页
nc开发经验总结【v10】【单据部分】_第2页
nc开发经验总结【v10】【单据部分】_第3页
nc开发经验总结【v10】【单据部分】_第4页
nc开发经验总结【v10】【单据部分】_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

NC 开发经验总结 【V1.0】 钟磊 2009-6-27 NC 开发涉及到的知识点多且琐碎,鉴于用友本身没有非常详细的文档且 UAP 平台本 身的缺陷,造成我们开发人员经常会碰到许多莫名其妙的错误。解决这些错误又非常耗费 时间和经历。因此,我个人总结了一些单据开发过程中的心得与大家共享,希望能对各位 的开发产生帮助。 NC 单据的开发分为以下几步: 1、建数据库表; 2、导入数据字典; 3、选择 GUI 界面类型; 4、绑定数据模型; 设置主子表 设置值对象关系 5、 使用表单设计器设计表单; 6、定义表单程序的按钮; 选择系统预制按钮 建立自定义按钮并选择 7、定义业务动作脚本; 8、校验规则设定; 9、生成及部署代码; 下面对每步开发过程中可能会碰到的疑难问题做下总结。 1、建数据库表: 1.1 此步操作会在数据库中注册相应的节点信息。 1.2 命名规范: 建议主表名称使用 projectname_tablename_h,主表主键使用 pk_tablename_h 建议子表名称使用 projectname_tablename_b,子表主键使用 pk_tablename_b 主表必须存在公司主键且公司主键必须使用 pk_corp,数据库数据类型为 CHAR(4) 单据必须有 ts、dr 字段,对应数据库数据类型分别为 CHAR(19)、SMALLINT 下面是业务中用到的数据模型在数据库及 NC 中的对应模型: 业务模型 数据库模型 NC 数据类型 主键型数据 CHAR(20) String pk_corp CHAR(4) String Boolean 类型 CHAR(1) UFBoolean 日期类型 CHAR(10) UFDate 时间类型(ts) CHAR(19) UFDateTime dr SMALLINT Integer 整数型 INT Integer 浮点型 DECIMAL(20,8) UFDouble 普通字符串 VARCHAR(250) String 1.3 建 PDM 的时候要注意不要遗漏主键标志,否则会造成单据保存时莫名的错误。 子表中必须包含主表主键,且名称必须同主表主键名称 pk_tablename_h 2、导入数据字典: 1.4 此步操作会将数据字典以大字段的形式保存入数据库中的数据字典表中。 1.5 数据字典和单据模板中的字段并不是引用的关系,而是借助数据字典的内容自动 生成的模板,因此数据字典变化不会引起单据模板变动,这点需要认知清楚。 1.6 建议导入数据字典时导入到选定的目录里,不要放在根目录下。 1.7 导入过程中如碰到点击下一步没有反应,请首先检查 PDM 中信息是否有问题,比 如 DataType 是否还是之类的问题。 3、选择 GUI 界面类型: 1.8 此步操作未在数据库中储存关键性脚本,所有配置均用于生成框架代码。 。 1.9 卡片界面、列表界面、管理界面的 UI 继承的类不同,一般单据管理界面即可。 1.10 如无审批流则建议使用基本档案单据。业务单据中必须另外包含以下字段: 单据主表: 名称 编码 数据库模型 公司主键 pk_corp CHAR(4) 单据号 vbillno CHAR(20) 数据权限 datalimit CHAR(20) 制单人 voperatorid CHAR(20) 制单日期 doperatordate CHAR(10) 审批人 vapproveid CHAR(20) 审批日期 dapprovedate CHAR(10) 审核批语 vapprovenote VARCHAR(250) 最后修改人 vrevisorid CHAR(20) 最后修改日期 drevisedate CHAR(10) 备注 vnote VARCHAR(250) 单据类型 pk_billtype CHAR(20) 单据状态 vbillstatus SMALLINT 业务类型 pk_busitype CHAR(20) 单据子表: 名称 编码 数据库模型 来源单据类型 vsourcebilltype CHAR(20) 来源单据 ID vsourcebillid CHAR(20) 来源单据行 ID vsourcebillrowid CHAR(20) 上层单据类型 vlastbilltype CHAR(20) 上层单据 ID vlastbillid CHAR(20) 上层单据行 ID vlastbillrowid CHAR(20) 4、绑定数据模型: 1.11 此步操作会在数据库 dev_votable 中注册 VO 的对应关系,但此部分信息与移植无 太大关系。 1.12 选择完主子表模型后如果子表关联主表主键名称处没有正常带出主表主键,则一 般原因为子表中主表主键名称与主表中的主表主键不一致或主表中主键为设置 为 primary key; 1.13 第一次绑定数据模型后如果删除重做,则会出现“主表值对象类”中 VO 路径为 灰色不能修改的情况,这是因为第一次注册的时候在 dev_votable 表中写入了信 息,将此表中相关信息删除后重新打开即可; 由于整个 UAP 开发平台利用缓存处理的情况较多,如果暂时显示未生效,请重 启客户端。 5、使用表单设计器设计表单: 1.14 此步操作中的所有信息均记录在数据库对应表中,与单据中代码无关。 1.15 开启表头编辑公式: 在 UI 的 initSelfData()方法中增加 this.getBillCardPanel().setAutoExecHeadEditFormula(true); 1.16 开启卡片界面显示公式: 在 Ctrl 类里的 isLoadCardFormula()方法返回值设置为 true 1.17 增加新页签时应当注意,新增的页签顺序总是在最后,增加时应提前整理好思路 按照显示的顺序逐次添加页签。 1.18 BillItem 的高级属性中的数据类型为小数型时,在参照类型处输入数字为控制小数 点后位数。 BillItem 的高级属性中的数据类型为参照型时,在参照类型处输入自定义参照需 用【UAP 集成开发工具】- 【系统管理工具 】-【自定义菜单 】 ,点击“修改模块内结构” ,会在“其他节 点”中找到刚才导入的节点,通过调整位置可以将节点还原回原本位置。如果 正式环境中原本没有做过节点位置的个性化调整,则直接使用“恢复默认结构” 即可。 1.35 在 Eclipse 中生成 EJB 时发现框中是空的,应当如何处理,如下: 这个问题一般是由于 Eclipse 所在项目代码中的.module 文件或 module.xml 文件 与当前引用的 nchomemodules模块名下的.module 文件或 module.xml 文件中的 不一致造成的。比如大小写不一致。 Eclipse 在每次启动的时候 MDE 插件都会自动将当前 Eclipse 里所有 MDE 项目的 module 与 MDE 指向的 nchome 中的 modules 进行匹配,如果在 nchome 中不存 在该 module 信息,则会将项目中的 module 信息自动复制一份到 nchome 下, 存在则不操作。因此如果当前 MDE 项目在建

温馨提示

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

评论

0/150

提交评论