一、数据更新事件-函数编写模板:
(1)在新建/编辑页,当某一字段修改(值改变且失焦)时,触发自定义函数来更新主对象或从对象的数据
Groovy:
// 获取当前页面标识 Add:新建页面,Edit:编辑页面
context.actionPage
//新建UIEvent事件
UIEvent event = UIEvent.build(context) {
//把字段设置为只读、隐藏、必填
editMasterFields "field_I18ri__c" readOnly(true) hidden(true) required(true)
//设置提醒消息
remind Remind.Text("感叹号提醒")
//设置提醒消息
remind Remind.Alert("弹窗提醒")
//主对象修改数据
editMaster("name": "test", "b": 2)
//是否自动计算主对象和从对象的计算字段和默认值
doCalculate(true)
//添加一条从对象,添加从对象,必须指定业务类型,而且是当前布局展示的业务类型
//如果业务类型不匹配.从对象无法添加
addDetail "detailApiName" set("record_type": "default__c", "name": "demo001")
//根据条件删除 从对象, 删除为where中返回为true的从对象
removeDetail "detailApiName" where { x -> (x["a"] as Integer) > 0 }
//根据条件编辑从对象 和上同理只会处理where 中返回为true的从对象数据
editDetail "detailApiName" set("a": 1, "b": 2) where { x -> (x["a"] as Integer) > 0 }
//removeDetail和editDetail 都可以不添加where这样会直接作用于所有数据
//set的内容和editMaster的内容要保证是map也就是key:valued的形式
removeDetail "detailApiName"
editDetail "detailApiName" set("a": 1, "b": 2)
// 将apiName为object_0uyAd__c的从对象隐藏 (注:从对象隐藏后,保存数据时会将隐藏的从对象数据清空,切记谨慎使用,可通过keepData来自定义是否保留数据。默认为false)
editObject 'object_0uyAd__c' hidden(true) keepData(true) // keepData默认为false
// 从对象隐藏业务类型
editDetailRecordType "object_qep6N__c" recordType("defaultA__c") hidden(true)
// 选项值隐藏
editOption "object_qep6N__c" fieldApiName("field_y210t__c") option("wwxJqgnO4") hidden(true)
// 隐藏批量编辑按钮field_y1XV1__c
editDetailButton "object_qep6N__c" recordType("defaultA__c") hiddenButton(ButtonAction.BATCH_UPDATE, true)
// 隐藏批量删除按钮
editDetailButton "object_qep6N__c" recordType("defaultA__c") hiddenButton(ButtonAction.BATCH_DELETE, true)
// 隐藏批量复制按钮
editDetailButton "object_qep6N__c" recordType("defaultA__c") hiddenButton(ButtonAction.BATCH_CLONE, true)
// 隐藏通用添加一行按钮
editDetailButton "object_qep6N__c" recordType("defaultA__c") hiddenButton(ButtonAction.SINGLE_ADD_ONE, true)
// 隐藏通用按钮--从对象查找关联
editDetailButton "object_qep6N__c" recordType("defaultA__c") lookupFieldApiName("field_y1XV1__c") hiddenButton(ButtonAction.BATCH_LOOKUP_CREATE, true)
// 隐藏单条删除操作
editDetailButton "object_qep6N__c" recordType("defaultA__c") hiddenButton(ButtonAction.SINGLE_DELETE, true) where { x -> (x["a"] as Integer) > 0 }
// 隐藏单条复制操作
editDetailButton "object_qep6N__c" recordType("defaultA__c") hiddenButton(ButtonAction.SINGLE_CLONE, true) where { x -> (x["a"] as Integer) > 0 }
// 从对象字段只读隐藏支持单条 (无where条件时表示所有数据隐藏、只读、必填)
editDetailFields "object_qep6N__c" fieldApiName("field_jt9F4__c") hidden(true) readOnly(true) required(true) where { x -> (x["a"] as Integer) > 0 }
editDetailFields "object_qep6N__c" fieldApiName("field_y220t__c") hidden(true) readOnly(true) required(true) where { x -> (x["a"] as Integer) > 0 }
//获取被删除的从对象方式一
if (context.arg != null) {
def deletedDetails = (context.arg as Map)["deletedDetails"] as Map
}
//获取被删除的从对象方式二
Map currentDeletedDetail = event.getCurrentDeletedDetail()
}
return event
(2)在主从同时新建/编辑页,当新建/编辑/删除从对象时,触发自定义函数来更新主对象/从对象的数据
Groovy:
UIEvent event = UIEvent.build(context) {
//主对象、从对象数据修改,详见上
}
//获取当前操作的从对象数据
Map currentData = event.getCurrentDetail()
//修改当前操作的从对象数据(主要用于新建明细和编辑明细的场景下)
currentData.put("从对象字段的ApiName","该字段需要变更的值为")
currentData.put("从对象字段1的ApiName","该字段1需要变更的值为")
//获取当前新增的从对象数据
List currentData = event.getCurrentAddDetail()
//获取当前批量操作的从对象数据(兼容单条)
Map currentBatchDetails = event.getCurrentBatchDetails();
return event
(3)返回错误信息到页面示例:
Fx.message.throwErrorMessage("错误信息");
return null;
二、页面加载事件-函数编写模板:
参考数据更新事件
三、校验事件-函数编写模板:
Groovy:
//红字提醒
Remind remind = Remind.Text("Text");
//弹窗提醒
Remind remind = Remind.Alert("Text");
//设置提醒消息
remind Remind.builder()
.remindText("name", "主属性名称重复")
.remindText("field_y2k46__c", "字段不能包含test")
.build()
//清除提醒消息
remind Remind.builder()
.remindText("name", "")
.remindText("field_y2k46__c", "")
.build()
return remind;