PowerApp提交表单时邮件无法携带表单内容问题求助
PowerApp考勤登记邮件内容修复方案
核心问题分析
你的代码存在两个关键错误,导致邮件无法正确显示考勤内容:
- 字符串拼接错误:
Office365Outlook.SendEmailV2的正文参数必须是完整字符串,你用逗号分隔多个文本片段的写法无法被PowerApps识别,需用&符号连接所有内容。 - 切换控件状态获取错误:Toggle控件的出勤状态通过
Value属性获取(返回true/false布尔值),而非Selected.Value,需要将布尔值转换为"出勤"或"缺勤"这类可读文字。
修正后的代码(两种可选方案)
方案1:为每个用户单独发送考勤邮件
ForAll( Gallery1.AllItems, Office365Outlook.SendEmailV2( "address@domain.com", "Deck Log - 考勤记录", "姓名: " & DataCardValue2.Text & ", 出勤状态: " & If(Toggle控件名称.Value, "出勤", "缺勤") ) ); Notify("Attendance submitted!", NotificationType.Success)
注意:将代码中的
Toggle控件名称替换为你实际添加的切换控件的名称(可在PowerApp编辑器右侧属性面板查看)。
方案2:将所有考勤汇总成一封邮件发送(更实用)
若不想收到大量单独邮件,可把所有考勤内容整合成列表一次性发送:
// 拼接所有考勤记录为HTML格式列表 Set( AttendanceSummary, Concat( Gallery1.AllItems, "<p>姓名: " & DataCardValue2.Text & " | 出勤状态: " & If(Toggle控件名称.Value, "出勤", "缺勤") & "</p>" ) ); // 发送汇总邮件 Office365Outlook.SendEmailV2( "address@domain.com", "Deck Log - 今日考勤汇总", "<h3>今日考勤记录如下:</h3>" & AttendanceSummary, {IsHtml: true} // 开启HTML格式,让邮件排版更清晰 ); Notify("Attendance submitted!", NotificationType.Success)
操作提示
只需将代码中的Toggle控件名称替换为你应用里切换控件的实际名称,即可正常生成包含考勤内容的邮件。
内容的提问来源于stack exchange,提问作者Stephen Ferns
相关产品推荐
相关产品推荐

