Online二次开发 === 智能表单的页面和业务逻辑增强采用JS增强和Sql增强实现。 ![输入图片说明](https://static.oschina.net/uploads/img/201804/16160615_vmDw.jpg "在这里输入图片标题") ## 1.JS增强 功能说明: JS增强通过写JS方法可以对页面表单效果进行任意处理,比如弹出提示信息。 代码示例一:alert('hello jeecgjs增强'); ![输入图片说明](https://static.oschina.net/uploads/img/201804/16160638_A9TR.jpg "在这里输入图片标题") 演示效果:(JS注入到表单页面中执行) ![输入图片说明](https://static.oschina.net/uploads/img/201804/16160413_LnMA.jpg "在这里输入图片标题") 代码示例二 ![输入图片说明](https://static.oschina.net/uploads/img/201804/16160355_b3aB.jpg "在这里输入图片标题") 演示效果:(通过JS在页面中追了一个按钮[SQL解析],输入sql会自动生成字段) ![输入图片说明](https://static.oschina.net/uploads/img/201804/16160345_ow7J.jpg "在这里输入图片标题") 代码示例三: 控制弹出窗口大小 使用方式 js增强 list添加 ``` $(document).ready( function(){ {你的ID}Fw = 900; {你的ID}Fh = 500; }); ``` ## 2.SQL增强 ### 1.基本用法 SQL增强语法:update set day_num = day_num + 1 where id = #{id} 关联表单数据的字段采用#{id}写法 通过增强SQL,可以关联修改业务数据 ![输入图片说明](https://static.oschina.net/uploads/img/201804/16160050_xeXP.jpg "在这里输入图片标题") ### 2.系统变量用法 系统当前用户上下文变量用法: | 变量名称| 变量释义| | -------- | ----- | ---- | | #{sys.sys_user_code}| 登陆用户的ID| | #{sys.sys_org_code}| 登陆用户所属机构编码| | #{sys.sys_company_code}| 登陆用户所属公司编码| | #{sys.sys_date}| 系统日期"yyyy-MM-dd"| | #{sys.sys_time}| 系统时间"yyyy-MM-dd HH:mm"| | #{sys.sys_user_name}| 登录用户真实姓名| 在SQL增强语句中使用系统变量#{sys.sys_user_name}。 ![输入图片说明](https://static.oschina.net/uploads/img/201804/16155904_USih.png "在这里输入图片标题") 如果{}前面加了#符号,不带sys,则表示该变量是列表所选数据中的字段。 配置好之后,在界面点击自定义按钮“审核”,效果如图。 ![输入图片说明](https://static.oschina.net/uploads/img/201804/16155847_wR1w.png "在这里输入图片标题") 生成的SQL如下: ``` update test_person set conets = '管管理员' where id ='c200b011-5771-4271-978c-f96872c025cb' ``` ## 3.自定义按钮 通过自定义按钮功能,可以为智能表单列表添加按钮,实现扩展功能。 #### ①表单维护界面点击“自定义按钮”按钮。 ![输入图片说明](https://static.oschina.net/uploads/img/201804/16155818_Mop9.png "在这里输入图片标题") #### ②进入按钮配置界面如图,在此维护界面可以对选择的表单进行按钮配置。 ![输入图片说明](https://static.oschina.net/uploads/img/201804/16155804_xGo5.png "在这里输入图片标题") #### ③ 详细配置信息 ![输入图片说明](https://static.oschina.net/uploads/img/201804/16155747_aWPF.png "在这里输入图片标题") **按钮编码:**该编码在一个智能表单配置中唯一,该编码同时是按钮触发的JS函数名。例如:按钮编码设为audit。则该按钮点击触发的函数名为 function audit(); **按钮名称:**按钮上面显示的文本。 **按钮样式:**可选button/link。 button:即生成的按钮显示在导航工具栏上; link:显示在每一条数据的操作列。 **动作类型:**可选action/js。 action:该按钮会触发通用入口,挂接到SQL增强上(前提是SQL增强配置中配置了按钮编码对应的sql语句)。 Js:该按钮会触发JS增强中类型为“list”的配置中编写了函数名为按钮编码的函数。 **显示表达式:暂无说明。** **显示图标样式:**按钮的图标样式。 #### ④效果演示 ![输入图片说明](https://static.oschina.net/uploads/img/201804/16155638_MjGt.png "在这里输入图片标题") ## 4.Java增强 通过此功能可在表单的增加、修改、和删除数据时实现额外的功能,类似spring中的后置通知。 首先,实现CgformEnhanceJavaInter接口,execute方法将被调用,其参数为表单数据。例如,定义如下类: ![输入图片说明](https://static.oschina.net/uploads/img/201804/16155616_usam.png "在这里输入图片标题") 点击java增强 ![输入图片说明](https://static.oschina.net/uploads/img/201804/16155535_Q5W3.png "在这里输入图片标题") ![输入图片说明](https://static.oschina.net/uploads/img/201804/16155546_fpds.png "在这里输入图片标题") 表单编辑保存时便调用execute方法,如下: ![输入图片说明](https://static.oschina.net/uploads/img/201804/16155511_qQ7o.png "在这里输入图片标题") ## 5.表单导出导入