如何在 Temp Table 中插入第二条记录?

How to insert the second record in a Temp Table?

在我的表单中,我在 DataSource 中使用了临时 Table - 属性 TableType: InMemory .

在我的表单中,我有一个简单的代码,如下所示:

public TableTmpTable insertRecords(String _param_I, string _param_II)
{ 
  TableTmpTable myInMemoryTable;

  myInMemoryTable.clear();
  myInMemoryTable.initValue();

  myInMemoryTable.Field_I =  _param_I;
  myInMemoryTable.Field_II = _param_II;

  myInMemoryTable.insert();

  return myInMemoryTable;
}

我需要多次调用此方法。

但是,当我调用该方法时,我丢失了之前的记录。 如何在不同的时间在 InMemory table 中插入更多的记录?

多谢指教!

Scope

An InMemory table is instantiated when the first record is inserted. The instantiated InMemory table continues to exist only while a record buffer variable that references the table exists. The memory or disk space for the InMemory table is de-allocated as soon as the record buffer goes out of scope.

来自 MSDN,Temporary InMemory Tables

您的代码所做的是在每次调用该方法时创建 table 缓冲区的一个新实例。相反,您需要使用表单数据源的 table 缓冲区。

另见 Temporary table as form data source and AX 2012: Using Temporary Table as Form’s Datasource

只需将您的方法一分为二即可。

第一种方法将初始化您的 table,第二种方法将插入您的记录。