如何在临时表中插入第二条记录?

时间:2017-09-11 12:54:27

标签: forms axapta temp-tables dynamics-ax-2012 x++

在我的表单中,我在DataSource中使用了一个临时表 - 属性为 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 表中插入更多记录?

感谢您的建议!

2 个答案:

答案 0 :(得分:2)

  

<强>范围

     

插入第一条记录时,将实例化InMemory表。实例化的InMemory表仅在引用该表的记录缓冲区变量存在时继续存在。一旦记录缓冲区超出范围,就会取消分配InMemory表的内存或磁盘空间。

来自MSDN,Temporary InMemory Tables

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

另请参阅Temporary table as form data sourceAX 2012: Using Temporary Table as Form’s Datasource

答案 1 :(得分:0)

将您的方法从一个分为两个。

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