关键词不能为空

当前您在: 主页 > 英语 >

EKP表单自定义宝典

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-28 05:48
tags:

-

2021年2月28日发(作者:jpg什么意思)
































蓝凌


EKP-J


表单自定义宝典










































































































































































文档控制


/Document Control
























































修改记录

























































审阅人

























































分发





日期



作者



版本



备注



2010/8/31


叶中奇



1.0


第一个版本








































日期



审阅人



版本



备注
























日期



分发人



分发对象



备注































第一章



导读


.................................................. .......


4



从什么地方开始


.................... ...............................


4



相关资料


.................................................. .......


4



1.1



1.2



第二章



快速入门



............ .........................................


4



第一次使用表单自定义


.............................................


4



表单自定义可以做什么


.............................................


5



表单自定义可以用在什么地方


.......................................


6



表单自定义不能做什么


.............................................


6



2.1



2.2



2.3



2.4



第三章



使用表单自定义



......... .......................................


6



使用表单自定义工具


...............................................


6



表单自定义的版本功能


............................................


1


4



理解表单自定义的数据存储


........................................


1


5



使用表单自定义的高级控件


........................................


1


7



3.1



3.2



3.3



3.4



第四章



扩展表单自定义



......... ......................................


26



扩展表单自定义中的存储事件


......................................


2


6



扩展表单自定义工具中的控件(未展开说明)


........................


3


2



4.1



4.2



第五章



在应用中部署表单自定义



.


.......................................


32



部署说明


....................... .................................


3


2



部署表单模板


..................... ...............................


3


3



部署表单主文档


..................................................


3


5



部署表单存储映射


................................................


4


1



5.1



5.2



5.3



5.4






第一章




导读



1.1


从什么地方开始



?



若您对表单自定义完全不了解,建 议您先查阅“


快速入门


”章节。




?



若您了 解表单自定义的基本概念,


想使用表单自定义来完成您的业务需求,

那建议您查


阅“


使用表单自定义


” 的章节。



温馨提醒:


“使用表单自定 义”


的章节将由浅入深,


告诉您如何使用表单自定义,


当然,


深一点的内容需要有一定的编程基础。




?



当您发 现现有的表单自定义满足不了您的业务需求的时候,


您期望做一些扩展,


那您可


以查阅“


扩展表单自定义


”章节。



温馨提醒:该章节需要有一定的

< br>EKP-J


编程基础。




?



若您期望在一个新的模块能使用表 单自定义的功能,


那请查阅



在应用中 部署表单自定



”章节。


< p>
温馨提醒:该章节需要有一定的


EKP-J


编程基 础。




?



若您是一个表单自定义的使用者,


一个非开发人员,

< p>
建议您查阅本文的所有案例,


了解


通过表单自定义 可以做到什么程度,若您是一个开发人员,建议您通读全文。




1.2


相关资料


< br>本文涉及到公式定义器的相关知识,请参阅详见《公式定义器宝典》



涉及到流程部分的知识,请参阅详见《流程宝典》




第二章




快速入门



2.1


第一次使用表单自定义



我们在费用报 销的时候经常会碰到一个这样的需求,


当报销金额大于


1000 0


元的时候,


需要


高一层的领导进行审 批,然后再交给财务审批。



在不开发新模块的情况下,


我们一般会用审批流程来完成这个需求。


然而,


由于我们需要在


流程里面获取到报销金额的字段,


所以我们不 能采用


RTF


作为审批的内容,


而借助 表单自定


义的功能,可以很好地解决该问题。



自定义表单定义



< br>打开审批流程模块模板定义的界面,切换到审批内容标签,我们可以看到表单自定义工具:



操作按钮区



内容编辑区




我们很快就可以定义出这样的界面:




由于报销金额是数字类型,所以我们在字段的属性中,设置“数据类型”为“数字”





流程定义





在流程定义里面,我们增加了一个条件分支的节点,通过定义公式:


$$


报销金额


$$>10000



作为条件分支的条件公式,


实现当报销金 额大于


10000


元的时候,


需要高一 层的领导进行审


批,然后再交给财务审批的需求。




2.2


表单自定义可以做什么



在普通的应用 中,


每种类型的文档


(或记录)


都会有 自己固有的属性


(如标题、


创建时间等)



若期望添加而外的属性,就必须通过修改代码的方式实现,而


EKP-J


的表单自定义的功能就


是为了打破该限制而产生的 。


通过表单自定义,


我们可以不通过修改代码,


灵活得添加额外


的属性,


并对界面进行排版。


而这些额外添加的属性,


可能会被使用到其它的地方,

< br>如流程


的判定、


统计查询等,


因 此这些数据的存储必须是结构化的


(而不是像


RTF

< p>
一样全部保存)




< /p>


此外,


客户可能已经知道针对不久的将来,


当公司制度发生改革的时候,


某些特定表单的内


容也会随之改 变,客户期望这些表单是“活”的,是可以自己配置的。而这个时候,表单自


定义将是客 户需求的最好解决方案。




2.3


表单自定义可以用在什么地方



目前在 我们的系统中最常使用表单自定义的是审批流程模块,


在该模块中,

用户根据不同的


业务场景,定义不同的表单,满足各种业务需求。

< br>


另外,


比如公文模块,


大部分 客户对公文模块的需求基本上都一致,


许多基础的字段基本上


都 一致,


后台的业务逻辑也大同小异,


最不一样的地方可能就是公 文的展现方式,


每个企业


可能会有自己的公文表单展现习惯,< /p>


或者有几个定制化的字段。


若我们可以在公文模块中启

< p>
用表单自定义的功能,


就可以屏蔽掉企业间的差异,


用一个标准的公文模块通杀所有企业的


公文需求。



还有


HR


的员工信息等,各个企业都会有一些差 异化的字段,这也是一个表单自定义很好的


实战场景。




当然,您可以根据您的实际业务需求,把表单自定义“发扬光 大”





2.4


表单自定义不能做什么



从前面的用途我们基本上发现,


目前我们的表单自定义都是依附于某 个模块实体的


(比如审


批流程、公文等)


,通过表单自定义的功能,我们可以在上面灵活地进行属性的扩充,但它


并不包含增删 查改的功能,


也不包含视图展现等,


更没有在上面直接部署机制 。


所以我们无


法通过自定义表单直接“开发”出一个全新的模块 。



该限制可能在将来的版本中会有所改动,但至少现在的版本 是无法这样做的。




第三章




使用表单自定义



3.1


使用表单自定义工具



我们在审批流程的模块





模板设置





审批内容标签中,可以找到表单自 定义的工具界面,


如下图:



操作按钮区



内容编辑区




3.1.1



表单自定义使用的小窍门



1




使用百分比定义控件宽度。



当我们定 义一个控件的宽度的时候,通过拖拉的方式定义,单位往往是像素,但这样定


义往往适应 不了终端用户的屏幕分辨率,就会导致宽屏终端显示内容太少,或者窄屏用


户出现横向滚 动条等现象,


为了解决该问题,


您可以在属性框中按百分比定义 宽度


(如:




90%




,这样就可以适应各种终 端显示器了。




2




选择界面控件。



通过


Ctrl+


左键,可以选择多个控件。



当是界面的控件很多,难以点选的时候,还可以点击


定位到相应的控件。




3




快速创建多个同类型的控件。



若需要 创建一个单行文本输入框,我们需要在操作按钮区中选择了单行文本输入框,然


后点击内 容编辑区。当我们期望创建多个输入框的时候,我们可以在操作按钮区中选择


单行文本输 入框,


然后按住


shift


键不放,< /p>


在内容编辑区的不同地方点击,


这样就可以连

续创建多个编辑框了,若期望取消,按下


Esc


就可以了。




4




拷贝整个表单。



若我们前面做好了一 个表单,我们可能期望在一个新的表单中使用原来的表单,然后在


新表单里面稍微修改一 下,做为新的表单使用。显然,界面里面一个个控件的拷贝太繁


琐,我们可以这样操作。 点击显示高级控件:


,旁边会显示“编辑表单


HTML


展现控件树,在控件树中快速


代码”


的按钮,< /p>


点击该按钮,


在编辑区域里面就会显示整个表单的


HTML


代码,


这时候,


我们 可以将所有代码拷贝到另外一个表单中使用,


拷贝完毕后,


记得 点击


“设置


HTML



按钮,使您拷贝的


HTML


代码生效。



注意:


除非您对表单的


HT ML


代码非常熟悉,否则不建议您直接通过修改


HTML


代码的


方式修改表单。




3.1.2



控件的属性



在我们双击控件的时候, 会弹出控件的属性窗口,下面是一个单行文本输入框的属性:




在属性界面中,需要注意的有几个地方:



1




数据类型



表单中每个被存储的数据项 都是有数据类型的,


数据类型对于后面的公式计算等方面起


到了 非常重要的地位。下表列出了表单自定义中的各种控件的数据类型:



自定义表单元素



单行输入框



多行输入框



单选按钮



多选按钮



下拉菜单



富文本框



附件



地址本选择框



日期选择框



隐藏字段



字符型



由该控件的“数据类型”属性确定是字符型还是数字型。



字符型,多值用


;


分隔


由该控件的“数据类型”属性确定是字符型还是数字型。



字符型



不参与任何公式计算



组织架构对象类 型(


SysOrgElement




日期时间型(


Date




由该控件的“数据类型”属性确定是字符型、数字型、日期型。



类型确定



由该控件的“数据类型”属性确定是字符型还是数字型。



前端计算控件



数字型



看完了这张表以后,


您可能会对日期时间型



Date




组织架构对象类型


(< /p>


SysOrgElement



的概念还 比较模糊,没关系,在您往后的使用中,我们会详细地介绍它:若您需要在公


式定义器中 使用,那《公式定义器宝典》会有详细描述;若您在扩展表单自定义的章节


中使用它,那 该章节也会为您进行描述。




2




初始值



您可以在初始值输入框中,< /p>


输入该字段的初始值。


直接手工输入的内容不进行公式计算,


若期望初始值通过公式来进行计算,


请点击


“公式定义”


的按钮,


在弹出框中输入公式,

< br>公式输入完毕后,属性框中的初始值被锁定,不能直接输入,同时下面出现“更新时重

新计算”


的选项。


若您期望修改为非公式计算的模式,


那请再次点击


“公式定义”


按钮,


将公式清空后即可。公式定义器的使用,详见《公式定义器宝典》




初始值的计算是有顺序的,顺序是按照界面从上到下,从左到右的 顺序执行。




案例

< br>1


:初始值计算顺序



我们在表单自定义中定义了以下几个字段:




在实际运行中,总额


1


的初始值计算结果为


0


(原因是由于在计算总额


1


的时候,单价


和数量的初始值并未初始化 )


,总额


2


的计算结果为


200





案例


2


:更新时重新计算



在案例


1


中,我们可能期望总额是不能 让用户自己输入的,而且当单价和数量发生改变


的时候,需要重新计算总额这个字段,那 我们就可以在总额字段的属性框中将该字段设


定为“只读”


,而 且是“更新时重新计算”




3




ID


ID


是该控件的唯一标识,修改时请谨慎,否则可能导致引用地 方的错误。




案例

< br>1


:字段改名对公式的影响



问 :


我在流程中使用了公式:



$$


金额


$$>1000



,后来我把“金额”这个字段名称修改为



“报销金额”



可是我忘记修改了流程中的公式,


这时公式 的计算是否还能正常运行?



答:


公式 计算时候引用的是字段的


ID



只要< /p>


ID


没有发生改变,


公式是能够正常运行 的。


但在流程定义的界面中,公式显示的地方可能还是出现“


$$


金额


$$


”这个变量,这只是显


示没有更新而已,重新打开公式定义器的页面就会自动更新名称。但是若您把金额这个

< p>
字段删除了,那公式运行时就会报错。




案例


2


:更换控件的展现形式




:我开始用单行文本输入框定义了一个报销内容的 字段,可用了一段时间后,发现单


行文本输入框太小了,我想把它换成多行文本输入框, 我该如何操作才能兼容以前的数


据显示?


答:


若您直接删除了单行文本输入框,然后再添加一个单行文本输入框,这个时候系 统


会认为这两个是不同的字段,所以旧数据是无法显示在新的多行文本输入框中。要解决


该问题,您可以先将单行文本输入框的


ID

记录下来,再删除单行文本输入框,创建多


行文本输入框后,将原来的


ID


写入到多行文本输入框中,这样系统就会认为这两个字

< br>段是同一个。




3.1.3



控制表单字段级权限



在一个标准的< /p>


EKP


产品模块中,


主文档的数据基本上 都是由起草人进行所有字段的信息输入,


审批人若有“编辑主文档”的权限,那他就可以 进入编辑页面,对文档字段进行修改,但往


往在审批过程中,需要控制到字段级的权限。



下面举个员工转正申请的例子说明表单的权限。



3.1.3.1



例需求



表单内容大概定义如下:




我们需要实现申请人能填写“申请人填写”部分内容,流程中的“部门经理审批”节点处理


人可以填写“部门经理填写”部分内容,流程中的“


HR


经理审批”节点处理人可填写“


HR


经理填写”部分 内容。另外,我们还期望


HR


经理填写的意见,人力资源部和总 裁办的所有


人可以查阅,其它人不可查阅。




3.1.3.2



例实现



第一步:插入权限区段



为了实现这个 需求,我们需要插入权限区段


后的表单的样子如下:



,将特殊权限的区域放入权限区段中。插入


< br>注意上图的红色小方块就是权限区段的作用范围。


其中,


申请人填写部分,


由于跟标准的权


限一致,所以可以不设置权限 区段。




第二步:设置默认权限



定义好区段后 ,点击显示权限设置


按钮,进入权限设置界面:



双击这里可


以修


改区段名称



点击这里可


以切


换场景



点击这里控制阅读状态的可访


问权限,针对所有场景 生效



点击这里切换本场


景下


的隐藏


/


阅读


/


编辑权限




场景说明:



默认权限


:除起草节点外,所有的节点都默认使用


“默认权限”的设定,流程审批通过以 后


也使用“默认权限”的设定。



流程 场景


-


起草节点


:该场景下,所有权限 区段默认都为编辑权限。




由于我们 期望


HR


经理填写的意见,人力资源部和总裁办的所有人可以查 阅,其它人不可查


阅,所以我们可以点击


HR

< br>经理意见区左边的第一个小图标,设置该区段的查看人为人力资


源部和总裁办。< /p>




第三步:设置起草节点的权限



需求: 起草节点不能修改“部门经理填写区”和“


HR


经理填写区”的 内容。



操作:切换到“流程场景





起草节点”场景,将所有区段设置为阅读权限,如下图:




小技巧



在 流程场景中,


权限区段会出现第三个小图标:


随默认权限。


由于这几个区段的默


认权限都是阅读权限,所以我们可以将第三个图 标点亮,这样,将来修改默认权限的时候,


起草节点的权限也会随之改变,减少维护工作 量。




第四步:设置“部门经理审批”节点权限



需求:部门经理可以填写“部门经理填写区”的内容。



操作:切换到“流程场景





部门经理审批”场景,将“部门经 理填写区”的权限修改为编


辑。



< /p>


第五步:设置“


HR


人事经理审批”节点 权限



需求:


HR

经理可以填写“


HR


经理填写区”



和“


HR


经理意见区”的内容。



操作:切换到“流程场景




HR


人事经理审批”场景,将“< /p>


HR


经理填写区”和“


HR


经理意


见区”的权限修改为编辑。




3.1.3.3



例总结



从上面的案例,总结一下权限设置的思路:



1





EKP


的标准应用中,所有的字段都是起草节点可编辑,审批节点不 可编辑。



2




即使您 插入了一个权限区段,这个权限区段默认的设置也遵循上一条规则。



3




您可以 通过切换场景的方式,对特殊的场景加以描述,满足实际的需求。如切换到起草


节点场景 ,将区段的权限设定为阅读,切换到某个审批节点场景,将某个区段设定为编


辑。




另外:



1




通过修 改“默认权限”的场景,您可以修改所有场景的默认权限状态,包括流程结束后


的状态。



2




通过修改可阅读者,


您可以限制某个区段的可阅读者范围

< p>
(为空则不约束可阅读者范围)



可阅读者仅仅是 对阅读权限的扩充,编辑和隐藏权限不受此范围影响。可阅读者将作用


于所有的场景。< /p>



3




权限区段可以控制单个字段(如:



HR


经理意见区”



,也可以控制整个表格(如 :



HR


经理填写区”





4




权限区 段是可以进行嵌套的,


在上面的案例中,


HR


经理意见区”


就嵌入在了


“< /p>


HR


经理


填写区”里面,若“

< p>
HR


经理填写区”不可见,那“


HR


经理意见区”也相应的隐藏了,


但“


HR

< p>
经理填写区”一旦可见,那“


HR


经理意见区”的 具体权限就由该区段的设置决


定。




3.1.3.4



细表的权限控制



我们来看两个例子:



案例


1





由于明细表的行是动态添加的,


所以 当权限区段设定在某个字段的时候,


该权限将扩展到明


细表的该 列的所有同类字段。从上面的案例看,您可以编辑明细表中所有行的“采购数量”


字段。




案例


2





同样的明细表,


但这次我们把权限区 段扩展到了整个明细表,


这时候,


您除了可以编辑明细


表的所有字段外,还可以进行增加、删除、移动行的操作。




3.2


表单自定义的版本功能



当您对一份已 经定义好的表单进行了修改,再次保存的时候会弹出以下提示框:




虽然版本号没有在界面中进行体现,


为了描述的方便,


我还是加上版本号进行说明。


假如该


表单第一次保存的时候,版本号为


V1


,然后进 行了一次修改,选择了保存为新版本,这时


候版本号为


V2


,现在又做了一次修改,最新版本的版本号为


V3

< br>。表单展现的情况如下表:



执行操作



保存为新版本



保存为原版本




举个例子




我们在自定义表单中定义了一个名字为“金额”的字段,然后创建了一份文档


A


,接下来我


们对表单进行修改,



“金额”


字段修改为


“报销金额”

< br>,


这时候,


若我们执行的操作是


“保


存为新版本”


,那打开文档


A


看到的还是“金额”这个名字,但若我们执行的操作是“保存


为原版 本”


,那打开文档


A


看到的就是“报销 金额”这个名字。




一个不能保存为原版本的案例:



我们 在自定义表单里面定义了一个名字为


“金额”


的字段,


由于一开始的疏忽,


所以将金额


的字段设置成了 字符串类型,


结果在创建文档的时候,


不少用户可能就在金额字 段里面直接


写入了“


10


万”




10


万元”这样的 数据。后面我们发现这个金额字段无法用于计算,于是


我们期望把金额字段修改为数字类 型,在输入框后面,我们再加了个“万元”作为单位,提


醒用户的输入,若此时保存为原 版本,那系统在打开旧文档的时候,会将“


10


万”这样的


数据转换成数字类型,


这种转换明显是无法成功的,


系统只能抛出错误,


在这种情况下,



能通过“保存为新版本”方式进行保存。




综上所述




当您期望所做的修改对于旧文档生效的时候,执行“保存为原版本”的操作,否则执行“保


存为新版本”


的操作,


然而当您对数据进行了类型变化的时候 ,


建议还是


“保存为新版本”



以便兼容旧数据。



基于

V1


创建的文档



使用


V1


表单



使用


V1


表单



基于


V2


创建的文档

< br>


使用


V2


表单



使用


V3


表单



当然,以后新建的文档都会基于


V3


创 建。




3.3


理解表单自定义的数据存储



温馨提醒:本章节内容需要有一定编程技术。




3.3.1



表单自定义数据存储方式介绍



在默认 的情况下,表单的数据将以


XML


(详见


3.3.2


章节)的方式,存储到主文档的表中。


这种存储方 式虽然为可以保证表单的变动不会影响到数据库表结构,


但同时也带来了查询的


困难。具体的内容详见


3.3.2


章节。




为了解决查询的问题,表单自定义提供了 另外一种存储的扩展:


表单数据映射


(详见

3.3.3


章节)


。表单数据映射允许您将表单的字段跟< /p>


EKP-J


使用的关系数据库的某张表的字段一一


对应,从而解决了数据的查询问题。




表单数据映射是应查询的需求而产生的,所以加了与


EKP-J


同一数据库的限制。为了突破这


个限制,


系统还提供 了另外两种扩展:


表单存储事件


(详见


4.1


章节)



流程机器人节点


(详


见《流程宝典》相关章节)


,这两种方式 可以通过编程或写


SQL


语句的方式,往异构系统或

< p>
其它数据库中写入表单数据。


其中表单存储事件是随表单保存触发的,


必须通过编程方式实


现;流程机器人节点则在流程流转过程中触发, 适用于在某种特定条件下写入数据的场景,


流程机器人节点可以使用编程或


SQL


语句方式,往其它系统中写入表单数据。




3.3.2



默认存储方式:


XML


表单自定义的 数据始终会在主文档表中一个大文本字段中以


XML


的格式保存 。为了方便数


据的读写,


系统提供了



tadataParser



接口,< /p>


屏蔽了对


XML


数据操作的复杂性,具体 的操作可参阅“


扩展表单自定义中的存储事件


”章


节的案例。




3.3.3



表单数据映射



前面我们已经知道,< /p>


表单数据映射是为查询而产生的需求。


通过表单映射,

< p>
我们可以方便地


通过


SQL


语句,查询到表单自定义中的数据,并进行统计分析。



此外 ,


EKP-J


将来会推出自定义表单数据的查询功能,可以查询 到表单中进行了数据映射的


字段。




什么样的数据适合做数据映射?



一般 的,当我们需要进行查询统计的数据,建议进行数据映射。比如:报销总额、所属区域


等 。对一些描述性的字段,如:出差原因等,不建议做数据映射。




虽然数据映射可以方便查询,


但一旦 将数据写入到数据库表中,


就会受到数据库的字段类型、


长度等 约束,为数据的修改带来很大的困难,所以建议针对“合适”的字段进行映射,对于


可能 经常发生变动的字段,不做数据映射。




如何做数据映射?



案例:将一个项目报销单的所有字段进行数据映射。



报销单如下:




其中,项目成员是多值字段,是多对多的关系。




步骤:



1




我们得 在数据库中创建表,由于上面的表单中有明细表,还有一个多对多的字段,所以


我们需要 创建三张表来进行数据映射,表结构如下:



主表:

< p>
cf_project_cost



字段描述



主键



项目名称



项目经理



报销时间



报销金额



字段描述



主文档


ID


项目成员


ID


字段名



fd_id


fd_name


字段类型



vchar(36)


vchar(200)


备注



唯一主键,跟主文档

< p>
ID


对应



< p>
存储人员的


ID


,可以设置为外键,连

< p>
接到


sys_org_element



fd_id




备注



主键


+


外键,


存储主文档的


ID



关联到


cf_project_cost



fd_id


字段



fd_member_id


vchar(36)

< p>
主键


+


外键,


存储项目成 员的


ID



关联



sys_org_element



fd_id


字段



备注



唯一主键








主< /p>




ID






cf_pr oject_cost



fd_id


字 段



细项名称



报销金额




fd_item_name


vchar(200)


fd_money


double




fd_manager_id


vchar(36)


fd_time


fd_money


字段名



fd_main_id


timestamp


double


字段类型



vchar(36)


项目成员多对多表:


cf_project_menber


报销明细表:


cf_project_cost_detail


字段描述



主键



主文档


ID


字段名



fd_id


fd_main_id


字段类型



vchar(36)


vchar(36)


2




进入表 单自定义所在模板的阅读界面,点击“表单数据映射”按钮,进行数据映射,具


体操作步 骤略。




整个操作中比较麻烦的是建 表的动作,


上述的案例中,


已经包含了字符型、


数字型、


日期型、


组织架构(单值、多值)

< p>
、明细表字段的建表。




在后续的流程表单版本中,会提供自动创建表结构的功能,您只需要在


IE

< p>
界面里面填写表


名和字段名,


系统会自动帮您在数 据库中创建相应的表结构。


由于数据库对字段的类型和长


度的管 理非常严格,删除字段、修改字段类型或长度这些操作可能会导致数据的丢失问题,


所以 系统不提供删除字段、


修改字段类型或长度的功能,


若需要执行 这些操作,


只能是到数


据库中直接操作数据库了。




3.4


使用表单自定义的高级控件



3.4.1



使用前端计算控件



前端计算控件


一般用来做前端的简单计算,如:总额


=


单 价


*


数量,当单价和数量发生改


变的时 候,总额将马上重新计算。



虽然前端计算控件的公式跟公式定 义器非常类似,


但相比起公式定义器来说,


前端计算控件


的功能要弱很多:


参与计算的值只能是日期型和数字型的值

< p>
(对于日期型的数据,


系统会自


动转换成毫秒数)


,而且返回的结果也只能是数字类型的值。但由于前端计算控件能即时地


将运算结果展现给最终用户,


而公式定义器只能在数据提交后才能计算,


所以前端计算控件


给最终用户带来了更好的体验。


前端计算控件的语法完全是


JavaScript


的语法,


不过即使您对


JavaScript


语法不熟悉,


您同样


可以使用里面的简 单功能。




案例

1



使用前端计算控件,计算开始时间和结束时间的时间差 ,返回天数。



( $$


结束时间


$$ - $$


开始时间


$$ ) / ( 1000 * 3600 * 24 )


说明:


开始时间和结束时间在公式运算时会转换成毫 秒,


所以两者相减就是时间差,


单位为


毫秒,再转换为天就可以了。




案例


2


:下面是一个采购申请单的样例,使用了明细表控件。




其中:小计


=< /p>


单价


*


数量,总额为所有小计的总和。< /p>




根据上面的要求,小计字段的计算表达式:


< br>$$


明细表


1.


单价


$$*$$


明细表


1.


数量


$$


总额字段的计算表达式:


< p>
$$


列表


.


求总和


$$($$


明细表


1.


小计


$$)



要理解这两个公式,首先得理解运行的上下文。



第一个公式,


小计字段是在明细表里面的



所以



$$


明细表


1.


单价


$$



的值取的是同一行记录


中的单价字段,是


单值




第二个公式,

总额字段是在明细表外面的



所以



$$


明细表


1.


小计


$$



的取值不是针对单行记


录而言,是针对所有记录而言,是


多值


。故 通过“


$$


列表


.


求总和


$$()


”函数可以将所有的小计


进行求和。




这个案例摘自《公式 定义器宝典》


,其实前端计算控件的语法和原理基本上一样,只是小计

< br>和总额的控件换成前端计算控件而已。




案例


3



表单中有个分数的 字段,


期望通过分数自动计算出等级,


等级和分数的对应关系为 :



90~100


:等级


1


80~90


:等级


2


60~80


:等级


3


40~60


:等级


4


40


以下:等级


5



表达式:



function(){


if ( $$


分数


$$>=90 )




return 1;


if ( $$


分数


$$>=80 )





}()


其实这就是一段简单的


JavaScript


,外面套一层


function(){


??


}()


是为了能写


return


语句。





return 2;


if ( $$


分数


$$>=60 )



return 3;


if ( $$


分数


$$>=40 )



return 4;


return 5;


3.4.2



JSP


片段和隐藏字段简介



小提示



在表单自定义的操作按钮区中点击



就可以看到


JSP


控件


和隐藏字段



按钮。

< p>



表单中的大部分控件都是面向非程序员设计的 ,


这些控件是无法写代码的,


但有些复杂的业

< br>务需求只能通过写部分代码来实现。


为了解决这个问题,


表单自定义提供了一个


JSP


片段的


控 件,


允许您在表单中写入


JSP


代码,


系统会将您的这些代码原封不动地放在最终展现的


JSP


页面中。理论上,您可以通过


JSP


片段的功 能,实现任何界面编程能实现的功能。



表单自定义中的每个字段都会有名字和类型。


虽然您可以通过


JSP


片段来定义一个界面里面


无法实现的字段,但由于


JSP


片段是直接交由


J2EE

< p>
容器解释的,所以我们无法辨别您在表


单中定义了什么样的字段,


字段的类型是什么,


也就导致了这些字段无法正常保存,


也无法


正常参与公式运算。


隐藏字段正是为了这个矛盾 而设计的,


隐藏字段不会在最终的


JSP


中生


成任何代码,


但它可以告诉系统有这个字段,

< p>
字段的类型是什么,


刚好拟补了前面提到的不


足。 通过


JSP


片段


+

隐藏字段,您就可以方便地对扩展界面的字段了。




3.4.3




JSP


片段中编写


JavaScript



温馨提醒:本小节需要有一定的


EK P-J


的开发基础。




3.4.3.1


J


SP


片段中的


JavaScript


简介



既然


JSP


片段是将代码原 封不动地输出到最终的


JSP


页面中,所以您可以借助


JSP


片段来编



Ja vaScript


代码。




在大部分情况下,您可以通过事件的方式触发您的


JS

< br>代码,常用的事件捕获的方法有:



JS


代码样例



Com_AddEventListener(window,




function(){



alert(


加载事件



说明



在窗口加载的时候触发事件。




});


Com_[


表单提交事件,您 可以在这里编写数据校



alert(


表单提交事件



验的方法,


返回


false


则阻止表单正常提交。




return true;


});


(function(value,


domElement){



ale rt(


字段值变化事件



});


当任意字段值发生变化的时候触发,您可


以通过


domElement


对象获取到发生变化


的字段对象


(若为


checkbox


< br>radio


时候为


dom


数组)



通过


value

获取到改变后的值。



AttachXFormValue ChangeEventById(




ID



id


为“字段


ID


”的字段的值发生变化的


function(va lue, domElement){


时候,触发该事件,比上一个方法更加常


alert(


指定字段值变化事件



用。



});


此外,表单自定义为您提供了一系列实用的


JavaScript

< br>函数,您可以通过点击


JSP


片段输入

< br>框右下角的


按钮,查看这些函数的说明。




某些


JavaScript


可能需要在编辑状态下加载,另外一些可能需要在阅读状态下加载,遇到这


种情况,请使用


xform:editShow


标签或


xform:viewShow


标签。如:






说明




上面 代码中,定义了一个


changeHotelEnabled


的 函数,该函数判断若“否需要订酒店”的字


段存在(注意:阅读状态下该字段对象会不存 在)


,若存在则修改“酒店名称”的


disabled


属性。其中,函数


GetXFormFieldById


返回的值为数组。





Com_AddEventListener










到< /p>









< p>



AttachXFormValueChan geEventById


函数绑定到“否需要订酒店”的值改变事件中。



-


-


-


-


-


-


-


-



本文更新与2021-02-28 05:48,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/679060.html

EKP表单自定义宝典的相关文章

  • 爱心与尊严的高中作文题库

    1.关于爱心和尊严的作文八百字 我们不必怀疑富翁的捐助,毕竟普施爱心,善莫大焉,它是一 种美;我们也不必指责苛求受捐者的冷漠的拒绝,因为人总是有尊 严的,这也是一种美。

    小学作文
  • 爱心与尊严高中作文题库

    1.关于爱心和尊严的作文八百字 我们不必怀疑富翁的捐助,毕竟普施爱心,善莫大焉,它是一 种美;我们也不必指责苛求受捐者的冷漠的拒绝,因为人总是有尊 严的,这也是一种美。

    小学作文
  • 爱心与尊重的作文题库

    1.作文关爱与尊重议论文 如果说没有爱就没有教育的话,那么离开了尊重同样也谈不上教育。 因为每一位孩子都渴望得到他人的尊重,尤其是教师的尊重。可是在现实生活中,不时会有

    小学作文
  • 爱心责任100字作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文
  • 爱心责任心的作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文
  • 爱心责任作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文