在 AL 扩展 CodeUnit 中,您如何使用“选择更多”功能遍历用户在列表页面上选择/标记/勾选的记录?例如,某处的数据类型中是否存在 IsMarked / IsSelected / IsTicked 属性?或者,您可以将已经深入的列表传递给代码单元吗?
问问题
1217 次
2 回答
1
有几种方法可以做到这一点。
你有方法Mark
和MarkedOnly
.
使用标记,您可以Mark
记录并且MarkedOnly
您只能看到标记的记录。
一旦它们被标记,您可以通过它们并将它们分配给一个临时表,然后您可以将该表传递给 codeunit 方法。或者您可以将 tabla like VAR参数传递给 codeunit 方法,然后执行循环。
这里是 Mark 和 MarkedOnly 的定义
于 2021-01-08T13:49:39.273 回答
0
要将给定页面上的选择传递给代码单元或过程,请使用该SetSelectionFilter
函数。此函数将当前选择复制到另一个记录变量,然后您可以对其进行迭代或作为参数传递。
在下面的示例中,假设相关页面将Sales Line
表格作为其源:
local procedure CallMyCodeunit();
var
SalesLine: Record "Sales Line";
MyCodeunit: Codeunit "My Codeunit";
begin
CurrPage.SetSelectionFilter(SalesLine);
MyCodeunit.DoSomething(SalesLine);
end;
于 2021-01-10T15:50:33.420 回答