在我的表单中,我在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 表中插入更多记录?
感谢您的建议!
答案 0 :(得分:2)
<强>范围强>
插入第一条记录时,将实例化InMemory表。实例化的InMemory表仅在引用该表的记录缓冲区变量存在时继续存在。一旦记录缓冲区超出范围,就会取消分配InMemory表的内存或磁盘空间。
来自MSDN,Temporary InMemory Tables
您的代码所做的是每次调用方法时都会创建表缓冲区的新实例。相反,您需要使用表单数据源的表缓冲区。
另请参阅Temporary table as form data source和AX 2012: Using Temporary Table as Form’s Datasource
答案 1 :(得分:0)
将您的方法从一个分为两个。
第一种方法将初始化您的表,第二种方法将插入您的记录。