表=表与表.数据(表)

Ant*_*ake 6 x++ axapta dynamics-ax-2009

下面这两个陈述有什么区别?

newTable = orginalTable
Run Code Online (Sandbox Code Playgroud)

要么

newTable.data(originalTable)
Run Code Online (Sandbox Code Playgroud)

我怀疑.data()方法有一个性能优势,因为它在标准AX中更常用.

dem*_*mas 9

试试这个:

newTable = originalTable;
info(strfmt('%1 %2', newTable.recId, originalTable.recId);

newTable.data(originalTable);
newTable.insert();
info(strfmt('%1 %2', newTable.recId, originalTable.recId);
Run Code Online (Sandbox Code Playgroud)

您将看到第一个语句只是创建另一个指向现有记录的指针.第二个创建现有记录的新副本.

  • +1.我要补充一点,如果你不想将系统字段从一个记录复制到另一个记录但只有具有功能意义的字段(即你可以在AOT中看到的字段),请使用buf2buf()而不是data(). (8认同)
  • 啊好吧,引出了一个问题,为什么它不被称为像 .copy() 这样明显的东西 (2认同)