如何将多选组合框数据保存到SharePoint列表搜索列?
问题与解决方案
已实现功能说明
目前已通过以下代码完成表单字段保存,同时将全局变量varIDRegistro写入列表的'ID TURNO'列,新增、编辑记录功能正常:
Patch( 'REGISTROS DO LIVRO DE TURNO'; If( Formulário.Mode = FormMode.New; Defaults('REGISTROS DO LIVRO DE TURNO'); Galeria.Selected ); Patch( Formulário.Updates; { 'ID TURNO': varIDRegistro } ) );;
注:varIDRegistro存储自动生成的记录ID,表单无对应字段,通过直接赋值完成写入。
多选人员组合框保存方案
针对另一个表单中多选人员组合框保存到SharePoint列表搜索列的需求,分两种场景处理:
场景1:目标列是多值人员类型列
若SharePoint目标列配置为允许多选的人员类型列,直接传递组合框的选中项集合即可,代码示例:
Patch( '目标SharePoint列表名称'; If( 目标表单.Mode = FormMode.New; Defaults('目标SharePoint列表名称'); 对应数据源.Selected ); Patch( 目标表单.Updates; { '目标多值人员列名称': DataCardValue_MultiPeople.SelectedItems } ) );;
前置要求:
- 组合框需开启允许多选(
AllowMultipleSelections = true) - 组合框的
Items属性需指向人员数据源(如Office365Users.SearchUser({searchTerm: DataCardValue_MultiPeople.SearchText}))
场景2:目标列是文本类型搜索列
若目标列是**文本类型(含多值文本)**的可搜索列,需将选中人员信息转换为文本格式:
- 单值文本列(用分隔符拼接所有选中人员):
{ '单值文本搜索列名称': Concat(DataCardValue_MultiPeople.SelectedItems, DisplayName, "; ") }
- 多值文本列(保存为独立文本项):
{ '多值文本搜索列名称': ForAll(DataCardValue_MultiPeople.SelectedItems, {Value: DisplayName}) }
内容的提问来源于stack exchange,提问作者Alex Boorjs
相关产品推荐
相关产品推荐

