动态单据框架使用总结(3)
'xfhd9HkOdrfgeYd654dI1e','Opd9Kxfhdg3dqC7P0oL','ehuPVk6hrwejfhjXeId','yw3g4hjYah055Zh64j',4) ; INSERT INTO T_BAS_BarItemLink(FID,FMenuID,FBarItemID,FParentID,FIndex) VALUES (
'xfhd9HkOdrfgeYd654dI1f','Opd9Kxfhdg3dqC7P0oL','3yku6Ceq0k56gfhfi73s','yw3g4hjYah055Zh64j',5) ;
/****** 最后,在T_BAS_FormActionList表中定义按钮功能,我们在这调用了序时簿的删除、编辑和刷新功能,调用了单据的保存,提交和关闭功能 ******/
DELETE T_BAS_FormActionList WHERE FFormID='svlnODODSJOEAYSjEzgWzpp+rpI=';
INSERT INTO T_BAS_FormActionList
(FID,FFormID,FLayoutID,FObjectKey,FObjectType,FActionID,FDefineType,FActionType,FParaments,FExpression,FSeq) VALUES ('58r8iss5oUqzjHdfgnTopHeI0khw','svlnODODSJOEAYSjEzgWzpp+rpI=', 'TNI5T/hQQZugRZCaiziSKZp+rpI=','mnuEditDelete',5,28,0,'ClickActions','[Delete]',N' ',0) ; INSERT INTO T_BAS_FormActionList
(FID,FFormID,FLayoutID,FObjectKey,FObjectType,FActionID,FDefineType,FActionType,FParaments,FExpression,FSeq) VALUES ('CRp+NUTCSj64nAizbMr4Fpp+rpI=','svlnODODSJOEAYSjEzgWzpp+rpI=', 'TNI5T/hQQZugRZCaiziSKZp+rpI=','FbtnSubmit',3,23,0,'ClickActions','[\INSERT INTO T_BAS_FormActionList
(FID,FFormID,FLayoutID,FObjectKey,FObjectType,FActionID,FDefineType,FActionType,FParaments,FExpression,FSeq) VALUES ('gj64whs5oUqzjHdfghkFJ56I0kd4','svlnODODSJOEAYSjEzgWzpp+rpI=', 'TNI5T/hQQZugRZCaiziSKZp+rpI=','mnuEditModify',5,28,0,'ClickActions','[Edit]',N' ',0) ; INSERT INTO T_BAS_FormActionList
(FID,FFormID,FLayoutID,FObjectKey,FObjectType,FActionID,FDefineType,FActionType,FParaments,FExpression,FSeq) VALUES ('hjk644k5oUqzjHdfhhkFJ56t7od3','svlnODODSJOEAYSjEzgWzpp+rpI=', 'TNI5T/hQQZugRZCaiziSKZp+rpI=','mnuDataRefesh',5,28,0,'ClickActions','[Refresh]',N' ',0) ; INSERT INTO T_BAS_FormActionList
(FID,FFormID,FLayoutID,FObjectKey,FObjectType,FActionID,FDefineType,FActionType,FParaments,FExpression,FSeq) VALUES ('IfHxJ2scTpmOPPaPjcfviJp+rpI=','svlnODODSJOEAYSjEzgWzpp+rpI=', 'TNI5T/hQQZugRZCaiziSKZp+rpI=','FbtnSave',3,23,0,'ClickActions','[\INSERT INTO T_BAS_FormActionList
(FID,FFormID,FLayoutID,FObjectKey,FObjectType,FActionID,FDefineType,FActionType,FParaments,FExpression,FSeq) VALUES ('wF1Lr9wcTi+0fVENvrNHtZp+rpI=','svlnODODSJOEAYSjEzgWzpp+rpI=', 'TNI5T/hQQZugRZCaiziSKZp+rpI=','FbtnClose',3,23,0,'ClickActions','[\
下面还给出了添加打开弹出窗口的调用自定义功能的SQL语句 INSERT INTO T_BAS_FormActionList
(FID,FFormID,FLayoutID,FObjectKey,FObjectType,FActionID,FDefineType,FActionType,FParaments,FExpression,FSeq) VALUES ('hr9ZuT4yt83rror9tyu68dy+rpI=','kSdMyUmYQKC7tzo9xr0XV5p+rpI=',
'NUjG3OnGQ9a8fP5andTIS5p+rpI=','mnuFlowMap',5,30,0,'ClickActions',N'[\easweb/workflow/approveHistory.jsf\审批意见\INSERT INTO T_BAS_FormActionList
(FID,FFormID,FLayoutID,FObjectKey,FObjectType,FActionID,FDefineType,FActionType,FParaments,FExpression,FSeq) VALUES ('Eujv7yIOT6WHZx/f4+OXMJp+rpI=','kSdMyUmYQKC7tzo9xr0XV5p+rpI=', 'NUjG3OnGQ9a8fP5andTIS5p+rpI=','mnuFilePrint',5,36,0,'ClickActions','[\打印','L2':'打印','L3':'打印'}\ 相信有了上面对表结构的认识和示例,我们对工具条应该已经用得得心应手了。
2)、为序时簿和编辑页面注册插件
通过上面的配置,我们已经看到了一个比较完整的序时簿和单据编辑(或查看)页面了,其间我们没
有写过一行代码,我们要做的只是使用设计器设计单据,再对数据库做相应配置即可,动态单据框图架是不是很强大?但是我们的单据目前还只有系统内置的功能,如保存,删除,打开弹出窗口等。假如我们要在序时簿中对单据做导入导出成Excel文件,在编辑页面发邮件,那我们刚刚配出来的单据就无法完成了,别担心,框架早已考虑到了这些,并为我们提供了相应的支持。 前面提到了,当在T_BAS_FormActionList表中将FActionID配置为36时,是调用的自定义功能,自定义功能的扩展性比较强,能实现相当复杂的操作,当然这个得我们自己来写代码实现,框架只是给我们提供了一个调用的接口,插件就给我们提供了这样一种通用的手段。 编写插件并不复杂,我们只需要写一个类从相应的基类派生即可。一般有2种插件,序时簿插件和编辑页面插件,编辑页插件从AbstractBillPlugin派生,序时簿插件从ListPlugin派生,这里强调一下命名规范,编辑页面插件一般以***Plugin的形式命名,序时簿插件则一般以***ListPlugin的形式命名。如下示例:
public class BillMessagePlugin extends com.kingdee.eas.base.form.plugin。AbstractBillPlugin {}
public class BillQueryListPlugin extends
com.kingdee.eas.base.form.model.list.ListPlugin {}
这样就写好插件了,当然这个插件并不具备什么功能,我们将在下面介绍如何写插件以实现功能。但是这样写好插件,框架并不知道我们这个插件是为哪个Form写的,我们还需要为Form注册插件才行,只有注册之后的插件,在运行时才会被框架调用,才能起作用。 注册插件要用到T_BAS_FormPlugin表,表的主要字段如下: FFormID 插件对应的formID FDesc 描述 FClassName 插件对应的类名,要有包名 FSeq 插件顺序,一个Form可以有多个插件,按这个顺序调用,从0开始 FType 插件类型,1为单据插件,2为序时簿插件,跟之前的工具条表一样 清楚了表结构,我们也就知道该如何注册插件了,以下给出一个示例SQL:
DELETE T_BAS_FormPlugin WHERE FFormID='kSdMyUmYQKC7tzo9xr0XV5p+rpI=';
/**********注册一个编辑页面插件**********/
INSERT INTO T_BAS_FormPlugin(FID,FFormID,FDesc,FClassName,FSeq,FType) VALUES (
'HU6GJi6XROulKc14mbVix5p+rpI=','kSdMyUmYQKC7tzo9xr0XV5p+rpI=',null,'com.kingdee.eas.cp.wfm.plugins.BillMessagePlugin',0,1) ;
/**********注册一个序时簿插件***********/
INSERT INTO T_BAS_FormPlugin(FID,FFormID,FDesc,FClassName,FSeq,FType) VALUES (
'r76GJi6XROulKc14mbVix5p+rpI=','kSdMyUmYQKC7tzo9xr0XV5p+rpI=',null,'com.kingdee.eas.cp.wfm.plugins.BillQueryListPlugin',0,2) ;
3)、如何编写插件
[1]编辑页面插件
插件也是使用事件驱动的方式来编程,AbstractBillPlugin中定义了很多方法,分别会在不同的事件发生时执行。如onLoad方法会在页面加载时被调用,dataChanged会在页面控件数据发生改变时被调用。比方说我们要在页面加载时给某个控件设一个默认值,除了前面说的在设计时配置外,还可以在onLoad方法中写上这么一句:
application.setValue(\, getCompany(), 0);
其中,basedataCompany是设计时该控件的标识,ge …… 此处隐藏:6344字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [资格考试]机械振动与噪声学部分答案
- [资格考试]空调工程课后思考题部分整合版
- [资格考试]电信登高模拟试题
- [资格考试]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年整理乡镇城乡环境综合治理工作总
- 广西民族大学留学生招生简章越南语版本
- 故宫旧称紫禁城简介




