动态单据框架使用总结
动态单据框架使用总结
1、引言
最近我们协同系统部办公自动化组开发了一个流程管理模块,使用了最新的动态单据框架,现在这个模块已基本完成了一期的发布。整个开发过程,也是一个摸索和学习的过程,由于是一个新框架,说明文档和参考资料也不是很多,其间我们也遇到过不少问题,也走了一些弯路,现在将我在整个开发过程中的体会记录下来,以供自己和初次使用动态框架的同事参考。
2、动态框架简介
动态单据框架是直接基于JSF和ExtJS开发的,而不是在WAF框架之上开发的,所以在性能方面相对要好很多。动态单据框架主要功能是让我们可以通过设计器拖放和做一些配置来生成序时簿页面和单据编辑页面,而不需要像以前那样手工写bill.xhtml页面和后台管理的BillBean,这些工作框架都帮我们做好了,如果要做一些通用功能之外的自定义操作,我们也只需要写一个插件,并将操作写在插件中就可以实现了。这样就极大的简化了开发单据的过程,提高了开发效率。
3 、动态框架的使用
1>、动态单据的基本用法
首先,创建所需实体。然后打开金碟EAS客户端,在功能菜单中选系统平台,再双击动态单据配置,如图:
然后再选择要放到哪个子系统之下,确定之后出现如下界面:
这就是我们设计动态单据的主界面了(做过Winform的朋友一定看出来了,这和Winform非常相似,也为我们提供相当易用的人机界面,包括工具栏上的一系列布局按钮,让我们使用起来相当方便),右边的子系统区域显示了刚才所选的子系统下的所有动态单列表,我们可以在这修改已存在的单据,也可以新建一个动态单据。点新建按钮,选择一个模板,确定就根据模板生成了一张新的动态单据,我们也可以创建自已的模板,过程和新建单据基本一致,只要最后修改一下数据库记录即可,后面会谈到这个。 设计单据的过程比较简单,从工具箱里拖出控件,在属性面板中修改相应的属性,再保存,就可以了,这里只是重点提一下单据和控件的绑定,其它的在这不多涉及。
首先要给单据绑定实体,选定单据(注意:不是选定控件,要选择最外面的框),然后在属性面板中点绑定实体右边的按钮(如左图),弹出选择业务对象对话框,在这里我们选择最开始创建的实体,确定,就完成了单据和实体的绑定。这样我们的这张动态单据的序时簿和编辑界面就可以显示和修改所绑定的实体的属性了。 然后点下面的操作列表,定义这张单可以执行的据所有操作(如下图)。这里框架给我们提供了20多种内置的操作。我们在这选了单据所具有的操作功能(比如说保存操作),后面才能在给按钮事件添加Action时调用单据的保存功能,这也包括在工具条上的按钮要调用单据功能的情况。
操作列表里的权限是指执行某一操作所必须的权限项,如果为某个操作配了权限项,则框架在执行这个操作之前会先验权,如果有相应权限则执行,没有则抛出异常并终止执行操作。检查工作流是指在执行操作前是否要先检查该记录有没有在工作流之中,如设置为检查则当该记录已在工作流中时给出提示并取消操作,不在工作流中才往下执行。
单据中的控件都要和实体的一个属性绑定,这样才能在单据编辑页面读出实体的属性值或在保存时将控件的值存入实体相应属性里。对于文本框和日期框等,当我们点绑定实体属性右边的安钮时,会自动找出该单据所绑定实体的所有字符属性或日期属性。下拉列表框则会找出所有枚举属性供选择。对于基础资料控件,除了绑定实体属性外,还要选择基础资料类型和关联的基础资料字段名,实际上就是指定当点击这个F7控件时,要去找哪个基础资料实体的哪个字段的值显示在控件上。
另外提一下默认值的问题,我们可以给单据的某个或几个字段设置默认值,这样当新建单据时会自动为这个字段给上默认值,这对于一些不能让用户修改的字段如创建人等特别有用。设置默认值只需要选中控件,在缺省值中填入要取的值即可。目前框架还没有提供让我们直接选择就能设好默认值的方法。我们只能手工输入表达式来达到这个目的,下面是几种常用的默认值表达式写法(照下面的输入即可,不用改动):
getUser(@CONTEXT, Person) 取当前登录的职员 getUser(@CONTEXT, User) 取当前登录的用户 getBillNumber(@CONTEXT,@THIS,@MAINORG) 自动生成单据编号 getDate() 取当前日期 getOrgUnit(@CONTEXT, LoginOrg, @MAINORGTYPE) 取当前登录组织 在创建并保存了单据之后,我们就可以看到单据的序时簿界面和单据编辑界面了。键入以下地址就可以查看了:http://localhost:6888/easweb/dynform/demo.jsf
如上图,就是刚刚创建的“导出测试”单据的序时簿界面,连快速查询都帮我们生成了,同时我们也可以在左侧的单据中找到“导出测试”的单据编辑界面。动态单据框架真是强大,我们没有写一行代码就配出了序时簿和编辑界面,基本功能也都有了,如果摸熟了肯定会让开发效率上一台阶的。
2>、动态单据框架使用进阶
上面所说的只是动态单据框架的基本用法,我们要实现一些自定义的功能或其他操作,还要做这几件事:给序时簿添加工具条,为序时簿和编辑页面写插件,在插件中实现我们的功能,将插件注册到单据。
1)、给序时簿添加工具条
按照以上步骤做出来的单据序时簿页面是没有如上图中的查看,删除,刷新等工具按钮的,因为我们还没有做相关配置。但是我们都知道,序时簿页面的主要功能是要靠工具按钮来实现的,如果没有工具条,那我们在序时簿就只能简单的查看一下记录,做不了更多的事,这样的序时簿显然是不实用的。
接下来我们就来让工具条现身。很愦憾,目前框图架还没有提供设计界面来配置工具条(但是我们相信,动态框架很快就支持这个功能的),我们只能以手工方式来配置数据库来达到这个目的。以下就详细介绍如何配置数据库来添加工具条,其中可能牵涉了多张表,因而会多花一些篇幅来介绍表的结构和各表之间的关系。我们或许可以认为既然框架马上就会提供设计界面来支持工具条了,那为什么还要花时间去了解这些表结构呢,因为我们相信一个开发人员如果能更多的了解某个框架的底层技术细节,那么他所开发出来的程序不管是在运行效率上,还是在逻辑架构和扩展性方面,都会比一个完全不清楚框架的程序员所写的程序要完善很多,同时了解框架构成也有助于我们在开发时调错。
整个动态单据框架中最基础的表要算T_BAS_Form表了,我们每创建一张动态单据,都会在这个表里写入一条记录,包括动态单据的模板,也是在这张表里记录着。它的主要字段如下:
FID 主键,唯一标识,一个28位的字符串,在整个EAS系统中都是唯一
FName_L1 FElementTypeID
的,这也是其它表中所频繁使用的FormID。
动态单据名称或模板名称,FName_L2和FName_L3是多语言的名称 Form类型,一般我们创建的单据(在这也可以称Form)这个字段的值是100,如果我们在保存了单据之后,再手工把单据的这个字段改成-100(或是小于0的其它整数),那么这张单就会成为模板,我们在上面第二张图的子系统里将不会再看到FElemetTypeID为负数的单据,而是会在点设计器的新建时会看到这张单已经显示在右边的模板里面了,(如下图)
小技巧:当我们开发时要做2张或2张以上比较相似的单据,只有少量字段不同,我们可以 …… 此处隐藏:1981字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [资格考试]机械振动与噪声学部分答案
- [资格考试]空调工程课后思考题部分整合版
- [资格考试]电信登高模拟试题
- [资格考试]2018年上海市徐汇区中考物理二模试卷(
- [资格考试]坐标转换及方里网的相关问题(椭球体、
- [资格考试]语文教研组活动记录表
- [资格考试]广东省2006年高应变考试试题
- [资格考试]LTE学习总结—后台操作-数据配置步骤很
- [资格考试]北京市医疗美容主诊医师和外籍整形外科
- [资格考试]中学生广播稿400字3篇
- [资格考试]CL800双模站点CDMA主分集RSSI差异过大
- [资格考试]泵与泵站考试复习题
- [资格考试]4个万能和弦搞定尤克里里即兴弹唱(入
- [资格考试]咽喉与经络的关系
- [资格考试]《云南省国家通用语言文字条例》学习心
- [资格考试]标准化第三范式
- [资格考试]GB-50016-2014-建筑设计防火规范2018修
- [资格考试]五年级上册品社复习资料(第二单元)
- [资格考试]2.对XX公司领导班子和班子成员意见建议
- [资格考试]关于市区违法建设情况的调研报告
- 二0一五年下半年经营管理目标考核方案
- 2014年春八年级英语下第三次月考
- 北师大版语文二年级上册第十五单元《松
- 2016国网江苏省电力公司招聘高校毕业生
- 多渠道促家长督导家长共育和谐 - 图文
- 2018 - 2019学年高中数学第2章圆锥曲线
- 竞争比合作更重要( - 辩论准备稿)课
- “案例积淀式”校本研训的实践与探索
- 新闻必须客观vs新闻不必客观一辩稿
- 福师大作业 比较视野下的外国文学
- 新编大学英语第二册1-7单元课文翻译及
- 年产13万吨天然气蛋白项目可行性研究报
- 河南省洛阳市2018届高三第二次统一考试
- 地下车库建筑设计探讨
- 南京大学应用学科教授研究方向汇编
- 2018年八年级物理全册 第6章 第4节 来
- 毕业论文-浅析余华小说的悲悯性 - 以《
- 2019年整理乡镇城乡环境综合治理工作总
- 广西民族大学留学生招生简章越南语版本
- 故宫旧称紫禁城简介




