主讲人:蒋童、潘亚彬时空KSOA表单表单工作原理和机制表单编辑器介绍表单编程规范表单应用--移动商务表单调试表单常用函数简介议题表单工作原理和机制表单编辑器介绍表单编程规范表单应用--移动商务表单调试表单常用函数简介议题表单是一个通道,完成对前端IE同后端数据库间的信息交换的支撑,因此在表单正式为用户提供信息服务之前需要完成通道的创建,表单的创建原理基本分为两部分。表单工作原理和机制第一部分是表单的开发部分,该部分主要是遵循表单研发流程,并利用系统提供的表单开发工具,进行表单的研发;第二部分为表单使用部分,当用户发出对表单调用的指令时,前端门户提出请求,表单服务对表单进行提取、解析,返给前端门户。表单工作原理和机制表单工作原理和机制需求调研数据库设计概要设计表单开发界面布局单元测试功能注册数据集定义界面逻辑开发系统测试权限分配表单属性存储逻辑程序发布表单工作原理和机制表单编辑器介绍表单编程规范表单应用--移动商务表单调试表单常用函数简介议题•表单编辑器位置系统控制台→系统应用开发→应用表单→表单定制注:标题栏上的内容为当前链接的数据库表单编辑器——位置1.编辑位置2.表单基本属性3.表单事件4.附加页面5.单据控制6.其他控制7.主菜单(工具栏)表单属性介绍表单开发——表单属性•1、编辑位置–在表单空白处单击鼠标右键,在列表中选择[编辑属性],即可打开表单属性编辑页面。在该页可编辑表单的所有属性。表单开发——表单属性•2、表单基本属性–表单SN:表单的唯一标识,填写时应保持它的唯一。–表单分类:对表单按自定义分类进行管理。–表单名称:表单的中文名称,会显示在表单的标题栏上。–模块编号:当前表单子模块的号码,如人事系统模块为C3,业务系统为A1。–表单类型:控制表单存储逻辑•单据类:对所有数据集中的数据进行维护。如资料维护,业务单据,或一对多数据维护。•表格数据维护:表示此表单上只有第一个表格上的数据需要保存。其他数据不做保存操作。•其它:表示不具有上两种特征的单据,数据不能进行保存,如查询表单。–默认打开状态:表单进入时状态•新增:单据存盘时会产生新的单据编号,每个数据集预留了一条空记录•修改:数据集中的数据都是由数据集展现SQL查询得来的。•展现:功能同修改,只是当前表单不能存盘。且数据改动后关闭单据时不会提示要保存。–自动添加常用菜单:在表单工具栏添加计算器等常用项。表单开发——表单属性•2、表单基本属性–表单SN命名规则•参见《编程规范》–表单分类编号统一使用小写。–表单编号(djsn)命名统一为:系统分类号_子系统分类号_名称的形式。名称的命名方式遵从命名规范,首字母要小写。•例:–人力资源系统的人事管理模块人员修改表单,命名为:»hr_rs_modifyPerson–移动商务系统的统计查询模块商品查询,命名为:»yc_cx_shp表单开发——表单属性•3、表单事件–打开:表单打开时触发事件,执行设定的函数。[uf_onload()]•说明:用户可以在该函数中做一些初始化的工作。–关闭:表单关闭时触发事件,执行设定的函数。[uf_onExit()]•说明:用户可以在该函数中做一些数据或变量清空的工作。–存盘校验:表单存盘之前触发该事件。[uf_saveCheck()]•定义的函数需要有返回值,类型为布尔类型(true/false)。•如果该函数返回true,表示存盘之前得校验成功,继续执行存盘操作。•如果该函数返回false,表示存盘校验失败,将不执行存盘操作。表单开发——表单属性•4、单据控制–表单管理•编号字段:主键字段。•编号标识:为模块编号+单据编号标识。来获得最大编号,和用于生成临单据编号时的前三位字符。例:JHGzda00000001。–也可以只输入三位单据编号标识,则系统会自动提取表单的模块编号标识做为前两位。–例:A1.JHG–单据编号标识的值必须为大写的三个字母组成。•处理过程:此处为存盘时运行的存储过程名,表单在存盘时自动运行该过程。–此存储过程默认带两个输入参数,一个为表单SN,另一个为挂帐ID。•过程参数:存储过程的附加参数。–此处指定存储过程除了表单SN和挂帐ID以外的额外参数。表单开发——表单属性•5、其他控制–表单控制参数:即高级选项,可通过输入表达式设置当前表单的高级选项参数。•获得高级选项的方法为GetCtrlParam()•编写规范:–参数名称1=参数值1–参数名称2=参数值2表单开发——表单属性•6、主菜单(工具栏)–在表单空白处单击鼠标右键,在列表中选择[编辑主菜单],即可打开表单主菜单编辑页面。此处编辑的菜单即为表单打开时上方浮动的工具栏。表单开发——表单属性•7、主菜单(工具栏)–构建菜单:对菜单树状结构进行添加、删除和上下移动操作•操作方法:选中要进行操作的菜单项,并选择相应的操作。–菜单设置:对选中的菜单项进行设置。•名称:菜单的名称。–可以使用名称+(字母)的形式,则其中的字母会设置为快捷键。•快捷方式:功能的快捷键。•执行功能:点击菜单时执行的函数。•图标:当前菜单项的图标。–单击[+]按钮,修改当前菜单的图标。–单击[-]按钮,取消当前菜单的图标显示。–预览:在主菜单编辑界面预览主菜单样式。–确定:保存主菜单设置。–取消:退出主菜单编辑界面。表单开发——数据集1.编辑方法2.基本属性3.数据项4.子数据集5.交叉表表单开发——数据集•1、编辑方法(主数据集)–右键菜单:在表单的空白区域选中表单,然后单击右键选择[编辑数据源]即可打开主数据集编辑界面。–鼠标双击:双击表单空白区域即可打开主数据集编辑界面。表单开发——数据集•1、编辑方法(子数据集)–右键菜单:在SKBILLgrid控件上单击右键选择[编辑数据源]即可打开子数据集编辑界面。–鼠标双击:双击SKBILLgrid控件即可打开子数据集编辑界面。表单开发——数据集•2、基本属性–共有页签:•数据集合:这个页签上的属性主要是设置数据集的整体属性。•数据项:本页签上的属性主要是数据里每个数据项的具体属性设置。•集合事件:设定数据集需要相应的事件。表单开发——数据集•2、基本属性–数据集合页:•英文名称:数据集的英文标识,系统自动生成,一般不要修改。•中文名称:数据集的中文说明,用于设计万能打印方案时能看到的中文名。除主数据集不需要定义,其他子数据集都需要设定。•临时表:表单存盘时服务器上生成本数据集临时表的名字。主要作用为提供给表单存储过程使用。–系统自动生成,不能修改名称。–配合使用[使用临时表],设定在存盘时是否在临时表中插入临时数据。–临时表的字段为数据集中所有数据项及GZID•存储目标表设置:在此设定数据集中的数据保存到后台数据库表的名称。–注:子数据集的存储目标表后面会有条件选项,可以设定字段为特定值的记录才存盘。表单开发——数据集•2、基本属性–单据展现SQL•单据展现SQL:给此数据集展现数据的SQL语句。可带下面的关键字:–[:get_userid]取当前用户内码–[:get_jgid]取当前用户所在机构标识–[:get_bmid]取当前用户所在部门内码–[:get_date]取当前日期–[:get_time]取当前时间–[:get_datetime]取当前日期时间–[:ds.fieldname]表示取此字段的当前记录的值,ds为数据集名称,可以为当前表单的数据集,也可以为pubDataSet。表单开发——数据集•2、基本属性–数据集控制:控制数据集存盘和删除数据时的设置。•编号字段:数据集存储时的主键字段。•编号标识:为模块编号+单据编号标识。来获得最大编号,和用于生成临单据编号时的前三位字符。例:JHGzda00000001•处理过程:此处为存盘时运行的存储过程名,表单在存盘时自动运行该过程。–此存储过程默认带两个输入参数,一个为表单SN,另一个为挂帐ID。•过程参数:存储过程的附加参数。•标识删除:选中后,当数据集中的数据删除后,不会在数据库中删除数据而是将后面设置的标识删除字段update为标识值。•标识删除字段:进行标记的字段,例如beactive•标识值:标识删除时的值,例如:否表单开发——数据集•3、数据项表单开发——数据集•3、数据项–字段维护窗口•上下移动按钮:调整字段排列顺序。直接影响字段展现的顺序。或者选中要调整的字段按住Alt键的同时按键盘的上下箭头键。•“增加”按钮:在数据集中增加一个字段。•“批增加”按钮:点击后会出现一个字段选择窗口,可以多选批量增加字段。•“删除”按钮:子数据集中删除一个数据项。•“查重”按钮:检查数据集中是否有字段。上下移动按钮表单开发——数据集•3、数据项–字段属性•字段:字段的英文名。在后边的编辑框中双击可以弹出字段选择框。或输入字段名后按[Enter]键,可提取字段类型长度等信息•描述:字段中文名。在子数据集中,此名称可以支持超级链接,设置格为:–%%•数据类型:字段的数据类型。•长度:字段的长度。•小数位:数值型字段的小数位数设定。表单开发——数据集•3、数据项–字段属性•类型:–常规字段:可在[默认值]处设置为常量的默认值。–临时计算项:根据在默认值处输入的函数对数据集中该条记录的一些字段进行计算。»例:在默认值处输入getdate()表示取当前日期;输入shul*dj表示此字段等于shl字段值*dj字段值。–实际计算项:计算方法和临时计算项一致,但是实际计算项在存盘时会保存到数据库表中,临时计算项则不会。–汇总项:可以对数据集中的所有数据的某些字段进行汇总计算。»例:avg(je*shl*shul-5)表示此字段自动为je*shl*shul-5的平均值;»其他函数:sum,avg,count,min,max•默认值:字段的默认值。在不修改字段的数据值时,该字段存储的为当前设定的默认值。表单开发——数据集•3、数据项–字段属性•表现格式:当字段值为数字或实数时有效,例如:000,000,000.00•编辑格式:暂无效•焦点去向字段:编辑单前字段后,光标自动跳转到这里所添的字段。例如:编辑商品编号选择商品后,跳转到数量字段,即可在spbh字段将该数值设置为shl。表单开发——数据集•3、数据项–字段属性•显示:设置该字段是否显示。•只读:设置该字段是否只读。•唯一:只对表格数据集起作用.选中表示此列值应唯一。•过程校验:只对表格数据集起作用–选中表示在保存单据时此字段将会调用名称为dj_sub_valid的存储过程进行校验。•排序:如果选中,此字段定义为排序字段。•不能为空:如果选中,表单存盘时会检测字段值是否为空。如果字段为空,无法存盘。•主键:所有选中该选项的字段将一起用作主键。当表单控制选为表格数据维护时,至少要选择一个字段为主键。–利用它可以对有联合主键的表进行保存。•加密存储:数据在存储时会经过加密处理。处理后的字段长度计算方法:数据库字段长度=向上取整(可填写长度/8)*16•数据合并:展现数据时,如果前列数据和当前数据相同,则数据合并显示。表单开发——数据集•3、数据项–响应事件•表现数据:当字段从数据集中获取数据内容时触发事件。•回写数据:当把字段内容写入数据集合中时触发事件。•进入:当光标进入数据表格该字段时触发事件•退出当光标离开数据表格该字段时触发事件•按键:在按下键盘[Enter]键时执行的函数•鼠标单击:鼠标在此字段上单击时执行的函数。•鼠标双击:鼠标在此字段上双击时执行的函数。表单开发——数据集•4、集合事件–用户对表单的操作动作,或表单本身的动作。例如:鼠标双击、表单关闭•数据集事件列表框:列出了所有数据集事件和其事件发生时执行的动作函数。•事件:当你选中一个事件后,事件的名称会显示在此位置。•处理函数:选中事件发生时要执行的函数。•保存:选中要进行修改的事件,并在动作框中添好函数名,点击保存按钮,该事件执行的操作设置就会保存。表单开发——数据集•4、集合事件–事件具体说明•打开之前:数据集在用Open()