我对PowerApps很陌生,所以希望我的问题很清楚。我有一个名为colGridData的集合,它将我在colGridData中创建的新记录补丁到在线Sharepoint列表。一般来说,当记录已经存在于Sharepoint列表中时,这工作得很好(也就是说,编辑记录似乎工作得很好)。但是,当我尝试添加时删除duplicate记录被创建。不寻常的是它们并不总是被创建,但似乎更多的是在随机被创建。. 例如,在某些情况下,我可以添加一条记录,然后在其他情况下,我添加或删除一条记录,并且多个现有记录在集合中被复制。最终,由于记录从未被加载到Sharepoint中,当我向集合添加新记录或在应用程序中切换时,重复的记录就会消失。一种猜测是,colGridData可能在更改发生之前更新/刷新得太快了。我已经将我的文本字段设置为延迟更新= true。
下面是我在向集合中添加记录时使用的代码:
Set(varNumber,varNumber+1);
Collect(
colGridData,
Patch(varNewRecord,{ID:varNumber}
)
)
然后在添加记录并更新字段后,Iexit
:If(
varGridEdit,
Patch(
Nominations,
UpdateIf(colGridData,Created = Blank(),{ID:Blank()}
)
)
);
Remove(Nominations,colDelete);
Clear(colDelete);
Select(btnLoadData);
Set(varGridEdit,!varGridEdit);
最后,下面是btnLoadData中的代码:
ClearCollect(
colGridData,
Filter(
Nominations,
StartsWith(Title,txtEmployeeID.Text)
&& StartsWith('Preferred Name',txtName.Text)
&& StartsWith(Status.Value,txtStatus.Text)
)
);
当添加错误记录时,似乎ID是空白的,并且"Created"Value也是空白。有人知道如何阻止错误记录的添加吗?我是否需要添加一些代码来"停止"?创建额外的空白id ?在我学习如何在PowerApps中工作时,您提供的任何指导都将非常感谢。谢谢你!
我不完全清楚你为什么使用colGridData。我猜你想在将更新全部刷新到SharePoint之前存储更新。然而,这种设计导致两组相同的行被加载到用户设备的内存中。包括未更新的行。
我强烈建议您将提名直接绑定到图库,而不是集合。物品属性。一个按钮可以直接在SharePoint上创建一个空记录,它会自动出现在你的图库中。用户可以像编辑其他行一样编辑新行的详细信息。如果您的保存编辑逻辑是为每行单独实现,还是先修补colUpdates集合,然后批量更新SP,这取决于您。
这种方法还为您省去了混淆ID和Created的痛苦。