【问题标题】:Is there a way to work with records that you marked in table on X++?有没有办法处理您在 X++ 上的表中标记的记录?
【发布时间】:2021-05-14 03:28:14
【问题描述】:

我想使用选中(标记)的表记录,例如 - 我在表中有 10 条记录,我标记了其中的 5 条。预期 - 当我使用选定的记录时,它应该只查看那 5 条记录,而不是整个 10 条。

到目前为止,我有这段代码可以选择所有记录:

while select Table
                where table.JournalId == table.JournalId

有没有办法让它只选择标记的记录,而不是全部? 该选择是在课堂上编写的。我需要将那些标记的记录放入写入该选择的那个类中......

【问题讨论】:

  • 当您写“标记”时,您的意思是在网格中的用户界面中选择记录?如果是,答案取决于您使用的应用程序的版本。假设您使用的是dynamics-ax-2012 或更高版本,请查看MultiSelectionHelper 类(有关更多信息,请参阅metinemreenglish.blogspot.com/2016/01/axapta-why-sometimes.html)。请edit您的问题提供新信息,而不是发表评论。这将增加您收到答案的机会。

标签: select axapta multi-select x++


【解决方案1】:

您需要将 formdatasource 对象传递给正在选择记录的类,然后使用 MultiSelectionHelper 循环遍历 formdatasource 上的选定记录。

在下面的示例中,对象salesTableFormDataSource 需要从表单传递到您正在使用的类。显然,用您需要的任何数据源/表替换它。

MultiSelectionHelper selection = MultiSelectionHelper::construct();
selection.parmDatasource(salesTableFormDataSource);
SalesTable salesTable = selection.getFirst();

while (salesTable)
{
    //do something with your table buffer.
    salesTable = selection.getNext();
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-08
    • 2015-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多