Axapta 如何使数据源真正不可更改?

Axapta 如何使数据源真正不可更改?,axapta,Axapta,我有一个由代码创建的表单上的数据源 formBuildDataSource = form.addDataSource("My_table"); 然后我打开了一个细节,其中包含来自同一个表、动态链接和同一数据行的数据源。当我改变一些细节,然后运行 getFirstSelection(formCaller.dataSource(1)); 我不获取旧数据,而是新修改的数据。有没有办法在修改之前从基本表单中获取旧数据?如何使旧表单上的数据源不可更改(对于整个表单的存在) 当我设定 formBuil

我有一个由代码创建的表单上的数据源

 formBuildDataSource = form.addDataSource("My_table");
然后我打开了一个细节,其中包含来自同一个表、动态链接和同一数据行的数据源。当我改变一些细节,然后运行

getFirstSelection(formCaller.dataSource(1));
我不获取旧数据,而是新修改的数据。有没有办法在修改之前从基本表单中获取旧数据?如何使旧表单上的数据源不可更改(对于整个表单的存在)

当我设定

formBuildDataSource.autoQuery(false);    
formBuildDataSource.autoSearch(false);
我在第一张表格上看不到任何数据。因此,做以下事情会很好:

formBuildDataSource.getData();
formBuildDataSource.autoQuery(false);    
formBuildDataSource.autoSearch(false);
Args.record(…)用于其他用途,因此最好不用它


我正在使用AX 2012。

不太清楚您想要实现什么目标。如果在修改记录后,您希望检查其字段在更改之前的值(“在进行此修改之前,是否有方法从基本表单获取旧数据”),您可以在进行更改之前复制原始记录,例如

MyTable myTableOrig = myTable.data();
或者,如果不需要系统字段,则

MyTable myTableOrig;
buf2Buf(myTable, myTableOrig);

之后,您可以始终比较当前myTable字段值和复制到myTableOrig的原始字段值。

整个过程都是用x++代码完成的,我不知道如何将变量添加到form=new form()创建的表单中;我不知道如何访问form=new form(“form”)创建的form的类定义中创建的变量;