Dynamics NAV 2018如何仅循环页面中选中的记录?
你可以通过两种方式实现仅遍历并修改页面中选中的记录:
方法一:使用SETSELECTIONFILTER结合FINDSET
修正后的代码如下:
// 先判断是否有选中记录,避免无效操作 IF CurrPage.SELECTEDCOUNT = 0 THEN EXIT; // 将选中记录设置为当前记录的筛选条件 CurrPage.SETSELECTIONFILTER(Rec); // 加载选中的记录集合 IF Rec.FINDSET THEN REPEAT Rec.App := TRUE; Rec.MODIFY; UNTIL Rec.NEXT = 0;
原代码的问题在于执行SETSELECTIONFILTER后,没有调用FINDSET来定位到选中的记录集合,直接使用REPEAT...UNTIL会遍历所有符合页面当前筛选的记录,而非仅选中的部分。
方法二:直接遍历选中记录(更直观)
使用SELECTEDRECORD和NEXTSELECTEDRECORD专门处理选中项:
WHILE CurrPage.SELECTEDRECORD(Rec) DO BEGIN Rec.App := TRUE; Rec.MODIFY; // 切换到下一条选中记录 CurrPage.NEXTSELECTEDRECORD(Rec); END;
这种方法无需依赖筛选设置,直接逐个获取页面上选中的记录,逻辑更清晰,也能确保只修改选中项。
内容的提问来源于stack exchange,提问作者kuhi
相关产品推荐
相关产品推荐

