Groovy代码示例

一、数据更新事件-函数编写模板:

(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;

2024-10-22
12 151