如何在PowerApps自定义SharePoint表单中实现历史备注追加功能?
核心思路
通过SharePoint字段存储结构化的历史备注,结合PowerApps的HTML文本控件格式化显示,再通过提交逻辑自动追加用户、时间和新评论,还原默认表单的视觉和功能。
步骤1:配置SharePoint列表字段
在目标列表中新增一个多行文本类型字段(建议命名为CommentHistory),设置为「仅允许文本」,用来存储完整的历史备注内容(包含用户、时间、评论的结构化信息)。
步骤2:搭建PowerApps表单布局
- 在自定义表单中添加一个垂直容器,模拟默认表单的备注区域,顶部添加标签「备注」;
- 在容器内先放置一个HTML文本控件,用于展示历史备注,设置其
HtmlText属性为:
这段代码会把每条记录的「用户-时间」部分加粗,同时将文本换行转为HTML换行,匹配默认表单的显示格式;Substitute( Substitute(ThisItem.CommentHistory, " - ", "<strong> - </strong>"), Char(10), "<br>" ) - 在HTML文本控件下方添加一个多行文本输入框(命名为
txtNewComment),供用户输入新的备注内容。
步骤3:设置提交逻辑
在表单的提交按钮OnSelect事件中,添加以下代码(替换「你的列表名称」为实际列表名):
// 追加新备注到历史字段 Patch( 你的列表名称, ThisItem, { CommentHistory: If( IsBlank(ThisItem.CommentHistory), User().FullName & " - " & Text(Now(), "yyyy/mm/dd hh:mm:ss") & Char(10) & txtNewComment.Text, ThisItem.CommentHistory & Char(10) & Char(10) & User().FullName & " - " & Text(Now(), "yyyy/mm/dd hh:mm:ss") & Char(10) & txtNewComment.Text ) } ); // 清空输入框 Reset(txtNewComment)
这段代码会自动判断历史字段是否为空,为空则写入第一条记录,否则追加新记录,用空行分隔每条备注,和默认表单的排版一致。
步骤4:匹配视觉样式
- 给HTML文本控件设置背景色为
#f3f2f1,边框为浅灰色(#e1e1e1),圆角设为4px,内边距设为10px,还原默认表单的备注区域样式; - 调整多行输入框的边框、圆角、内边距,和默认表单的输入控件保持一致。
内容的提问来源于stack exchange,提问作者W Yap
相关产品推荐
相关产品推荐

