背景
在 Model-driven App 中,原生的 Lookup 字段只支持单选。当需要实现多选记录关联时,可以借助社区优秀的 PCF 控件来扩展。本文记录使用 Víctor Sánchez 开发的 Multiselect Records PCF 控件时,字段配置过程中遇到的关键问题。
配置要点
1. 绑定字段类型选择
不要直接绑定 Lookup 字段。 需要新建一个 Multiple Lines of Text(多行文本)类型字段来承载 PCF 控件的数据。
字段类型:Multiple Lines of Text → Text Area
绑定方式:将该字段拖入表单 → 配置为 PCF 控件这样 PCF 控件会将选中的记录 ID 序列化存储在该文本字段中。
2. Field Filter Values 写法
如果 Filter 条件绑定的是表单上的自定义 Lookup 字段,参数写法需要在字段名后加 _value 后缀:
// 自定义 Lookup 字段「新客户」的 filter 参数
_new_accountid_value
// 而非
_new_accountid这是因为 Lookup 字段在 DOM 中的实际值存储在 _value 属性中。
3. Columns 参数格式
配置 Columns(显示列)时,Display Name 和 fieldName 缺一不可,且格式必须严格:
[
{
"Display Name": "客户名称",
"fieldName": "name"
},
{
"Display Name": "客户编号",
"fieldName": "accountnumber"
},
{
"Display Name": "城市",
"fieldName": "address1_city"
}
]⚠️ 注意是
Display Name和fieldName,不能写成displayName或display_name。
参考资源
- Multiselect Records PCF - GitHub
- Víctor Sánchez 的原始实现
总结
三个关键点:
| 问题 | 正确做法 |
|---|---|
| 绑定字段 | 使用 Multiple Lines of Text,非 Lookup |
| Filter 参数 | 自定义 Lookup 加 _value 后缀 |
| Columns 配置 | 严格使用 Display Name 和 fieldName |
这些细节文档较少,踩坑后记录下来供参考。
💬 评论区
🍌 评论系统正在配置中(Giscus)。如需交流,欢迎通过 邮件 或 GitHub 联系我。