PowerApps中Toggle勾选自动填充时间戳,查看旧记录保留初始值问题
解决方案
1. 用变量临时存储勾选触发的时间戳
给Toggle控件(DataCardValue12)设置以下属性:
- OnCheck:
Set(varCapturedTime, Now()) - OnUnCheck:
Set(varCapturedTime, Blank())
注:如果取消勾选时想保留已填充的时间,可删除OnUnCheck的赋值逻辑。
2. 配置TextInput的显示逻辑
修改TextInput控件的Value属性,区分新建/编辑/查看场景:
If( Form1.Mode = FormMode.New, // 新建记录:勾选Toggle则显示变量存储的当前时间,否则为空 If(DataCardValue12.Checked, varCapturedTime, Blank()), // 编辑/查看旧记录:直接读取SharePoint中保存的原始时间 thisItem.你的时间字段名 )
请把
你的时间字段名替换成你SharePoint列表中实际存储时间的字段(比如你代码里的Sales如果是时间字段就用它,否则改成正确字段名)
3. 确保保存值的正确性
找到TextInput所在的数据卡片,设置其Update属性:
If( DataCardValue12.Checked, // 勾选状态:优先用变量(新建或编辑时重新勾选的新时间),无变量则用原有记录值 Coalesce(varCapturedTime, thisItem.你的时间字段名), // 未勾选状态:可选择清空字段或保留旧值,根据需求二选一 Blank() // 如果要保留旧值,就替换为 thisItem.你的时间字段名 )
4. 可选:屏幕加载时重置变量
在表单所在屏幕的OnVisible属性中添加初始化逻辑,避免变量残留值影响新记录:
Set(varCapturedTime, Blank())
这样设置后:
- 新建记录:勾选Toggle自动填充当前时间,取消则清空;
- 查看/编辑旧记录:直接显示原始保存的时间,不会自动更新;
- 编辑时重新勾选Toggle,会更新为当前时间,满足修改需求。
内容的提问来源于stack exchange,提问作者Aamante
相关产品推荐
相关产品推荐

