6-CCERP表单原理及表单开发流程_第1页
6-CCERP表单原理及表单开发流程_第2页
6-CCERP表单原理及表单开发流程_第3页
6-CCERP表单原理及表单开发流程_第4页
6-CCERP表单原理及表单开发流程_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

1、CCERP表单概要,表单概述 表单和单据的关系 表单工作原理 表单研发基本流程,什么是表单? 表单是一个界面(页面) 表单是一个容器(控件的容器) 表单是一个功能(单据、查询、统计分析、报表) 表单是一个通道 表单是一个方案 表单是一个课题 表单是一个载体,表单概述,表单概述 表单和单据的关系 表单工作原理 表单研发基本流程,父子继承关系 兄弟关系(共同提供功能平台) 发展关系(能力的发展),表单和单据的关系,表单概述 表单和单据的关系 表单工作原理 表单研发基本流程,表单创建原理 表单数据逻辑 表单存盘逻辑 常用的表单设计模式,表单工作原理,表单工作原理创建逻辑,表单开发,表单解析,表单展现

2、,应用方案,表单工作原理数据逻辑,表单解析,表单展现,应用方案,页面控件,数据集合,ZIP,数据包,数据库,HTTP,SQL,表单工作原理总体存盘逻辑,表单工作原理单据存盘逻辑,表单工作原理数据集存盘逻辑,常用的表单设计模式,常用的表单设计模式 单据类型:抬头(主数据集)明细(子数据集)。 表格数据维护:单个数据集存盘 其他: 自定义sql语句存盘: 使用InsertSql()函数操作数据库。 查询: 抬头为查询条件,明细数据集为查询结果。,表单概述 表单和单据的关系 表单工作原理 表单研发基本流程,主题,沟通 设计 开发 流程图,表单研发基本流程,需求沟通 界面逻辑沟通 处理逻辑沟通,表单研

3、发基本流程沟通,沟通 设计 开发 流程图,表单研发基本流程,数据库表设计 界面逻辑设计 处理逻辑设计,表单研发基本流程设计,沟通 设计 开发 流程图,表单研发基本流程,表单规划(名称、标识) 数据集定义 界面逻辑实现 处理逻辑实现 脚本处理逻辑 数据存储逻辑 功能注册,添加菜单 权限分配 单元测试,表单研发基本流程开发,沟通 设计 开发 流程图,表单研发基本流程,表单开发流程流程图,需求调研,数据库设计,概要设计,表单开发,界面布局,单元测试,功能注册,数据集定义,界面逻辑,开发,系统测试,程序发布,权限分配,表单属性,存储逻辑,公共函数 概念:将经常使用的功能做成函数,在表单中进行调用。 好

4、处: 节省开发成本; 代码易维护;,表单相关概念,开发注意点: 表单类型: 单据类:数据集存盘 表格数据维护:单据存盘 其他:查询等 表单调试,1. 读取当前操作员 不需要调用SqlToField从后台去读取,现在可以直接GetCookie(dzyname)获取用户名称。 例如:单据中普遍的 主数据集 操作员的默认值挂的函数 var username = SqlToField(select dzyname from zhiydoc where dzyid=+GetCookie(dzyid)+) 这种方式可以使用GetCookie(dzyname)放在主数据集的默认值中就可以。 还有一点要注意的

5、是 “操作员”不应该是实际计算项,应该是有默认值的普通的数据项。 实际计算项会在该记录行任何一个子段修改后都会重新计算一下。,开发注意点,开发注意点,2.资料选择方案统一使用 ZlSelectImpl,以后禁止使用ZlSelect。 如:往来单位,部门,业务员选择 3. 单据提取方案统一使用 DjSelect,以后禁止使用GetDjReferAll、 GetDjReferHzMx、 GetDjRefer、 GetMxRefer,主题内容,4. ZlSelectImpl和DjSelect调用必须判断其返回值 true/false。如果调用该方法后用户点了取消,后续的逻辑却不判断它的返回值,而直接

6、进行一系列的复制将使数据混乱! 5.不再使LoadMod(printdesign); LoadMod(addbill) 这种方式调用,改成相应的普通的js函数调用,如PrintDesign(), AddBill(), PrintPreview()等。 原则上以后禁用LoadMod方法,这个属于内部方法。,开发注意点,6. 声明变量时,请都给初始值! 尽量不要出现: var lssl; /零散数量 var bzsl; /包装数量 而应该是: var lssl = 0; /零散数量 var bzsl = 0; /包装数量,开发注意点,7. 避免不必要的数据库连接操作。 var sql = “sel

7、ect shl,dj from spkfk where spid=SPH00000002”; var table = new DataTable(); table.Open(sql); for(var i = 0; i table.RecordCount; i+) for(var j = 0; j table.FieldCount; j+) alert(table.GetValueAt(i, j); ,开发注意点,8.实现表单之间传递数据。 (1)DjOpen传递数据集对象,pubDataSet 如: 表单1:DjOpen(“yc_xs_kp”, dssub1,”修改”); 表单2:var d

8、jbh = pubDataSet.Field(djbh).Value; / pubDataSet就是表单1传递过来的dssub1 (2)SetPara;GetPara 如: 表单1:SetPara(“hr_gztid”, “GZT00000001”); 表单2:var gztid = GetPara(“hr_gztid”);,开发注意点,9.尽量不要直接使用组件的值,而是使用该组件绑定的数据集字段。 如:if (SKDBedit1.value 0) alert(“数量不能是负数!”); return; 代码应该这样写: if (dssub1.Field(shl).Value 0) alert(

9、“数量不能是负数!”); return; ,表单调试,表单调试: 定位语法错误: 检查字符串是否结束,方法名是否正确(区分大小写) 注释代码 alert函数 定位逻辑错误 alert函数 CopyToPub函数 visual studio,表单编程规范,不要使用文档化注释规则,注释尽量做到言简意赅。 JavaScript会输出到客户端浏览器,从保密原则还是数据传输量等因素考虑,可以不需要遵守文档化注释规则。注释尽量做到言简意赅(但不是说不需要注释)。 JavaScript的所有变量都是变体类型(Variant),甚至不声明就可以使用。但我们要求,每个要用到的变量,都必须使用var 明确声明。,

10、表单编程规范,表单分类编号统一使用小写 表单编号统一命名为:系统分类号_子系统分类号_名称的形式。名称的命名方式遵从命名规范,首字母要小写。 例如:人力资源系统的人事管理模块人员修改表单,命名为:hr_rs_modifyPerson。其中系统分类号和子系统分类号长度为2位或者3位。,表单编程规范,表单中的数据集必须明确设定有意义的中文名称,不允许为空 如果整个表格仅仅为数据展现,需要设定整个表格只读,而不是逐项设定所有数据字段只读 如果表格的数据项不需要提交,必须设定该字段为只读字段。,表单编程规范,每个表单中的主要功能尽量不要使用按钮(Button),而应该把该功能加到主菜单中 表单中写的扩展JavaScript的自定义函数命名统一以 uf_ 开头 公共函数统一以pf_开头,并且有对其所实现功能的

温馨提示

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

评论

0/150

提交评论