0

在 AL 扩展 CodeUnit 中,您如何使用“选择更多”功能遍历用户在列表页面上选择/标记/勾选的记录?例如,某处的数据类型中是否存在 IsMarked / IsSelected / IsTicked 属性?或者,您可以将已经深入的列表传递给代码单元吗?

4

2 回答 2

1

有几种方法可以做到这一点。

你有方法MarkMarkedOnly.

使用标记,您可以Mark记录并且MarkedOnly您只能看到标记的记录。

一旦它们被标记,您可以通过它们并将它们分配给一个临时表,然后您可以将该表传递给 codeunit 方法。或者您可以将 tabla like VAR参数传递给 codeunit 方法,然后执行循环。

这里是 Mark 和 MarkedOnly 的定义

https://docs.microsoft.com/en-us/dynamics365/business-central/dev-itpro/developer/methods-auto/record/record-mark-method

https://docs.microsoft.com/en-us/dynamics365/business-central/dev-itpro/developer/methods-auto/record/record-markedonly-method

于 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 回答