Axapta 已修改字段Purchtable createorder x+;上出现编辑错误+;
每次我使用这段代码时,我都会收到一个错误“您无法编辑表Purchtable中的记录”。 我不能用它继续订货。我的任务是获取每个站点的默认地址Axapta 已修改字段Purchtable createorder x+;上出现编辑错误+;,axapta,x++,dynamics-365-operations,Axapta,X++,Dynamics 365 Operations,每次我使用这段代码时,我都会收到一个错误“您无法编辑表Purchtable中的记录”。 我不能用它继续订货。我的任务是获取每个站点的默认地址 [ExtensionOf(formdatasourcestr(PurchCreateOrder, PurchTable))] final class PurchCreateOrderGetDefAdress_Extension { [FormDataFieldEventHandler(formDataFieldStr(PurchCreateOrder, P
[ExtensionOf(formdatasourcestr(PurchCreateOrder, PurchTable))]
final class PurchCreateOrderGetDefAdress_Extension
{
[FormDataFieldEventHandler(formDataFieldStr(PurchCreateOrder, PurchTable, OrderAccount), FormDataFieldEventType::Modified)]
public static void OrderAccount_OnModified(FormDataObject sender, FormDataFieldEventArgs e)
{
Formdatasource purchtable_ds = sender.datasource();
PurchTable purchtable = purchtable_ds.cursor();
InventSite inv;
InventLocation invent;
str iid = UserInfoSz::findDefaultSite(curUserId()).InventSiteId;
purchtable.inventsiteid = iid;
purchTable.setAddressFromInventSiteId(iid);
select firstonly invent where invent.inventsiteid == iid && invent.WMSLocationIdDefaultReceipt == "recv";
if(invent.RecId !=0)
{
purchtable.inventlocationid = invent.InventLocationId;
}
else
{
select firstonly invent where invent.inventsiteid == iid;
purchtable.inventlocationid = invent.InventLocationId;
}
}
}
我认为方法
purchTable.setAddressFromInventSiteId(iid)代码>会导致该问题
尝试以下代码:
我认为方法purchTable.setAddressFromInventSiteId(iid)代码>会导致该问题
尝试以下代码:
不,还是不好。我试着调试它,看起来purchtable没有recid。{recid=0}更新帖子,现在不会出现错误。无论如何,试着找出为什么purchtable是空的,以使其正确工作。它现在工作正常。非常感谢。旧的解决方案存在一个问题。你能再帮我一件事吗?我想捕获purchTable.setAddressFromInventSiteId(iid);I设置正确,因为如果我没有连接到inventsite的地址,它会让companyinfo表单上的默认站点地址生效。好的。我从这个方法中得到了我所需要的东西。现在好了不,还是不好。我试着调试它,看起来purchtable没有recid。{recid=0}更新帖子,现在不会出现错误。无论如何,试着找出为什么purchtable是空的,以使其正确工作。它现在工作正常。非常感谢。旧的解决方案存在一个问题。你能再帮我一件事吗?我想捕获purchTable.setAddressFromInventSiteId(iid);I设置正确,因为如果我没有连接到inventsite的地址,它会让companyinfo表单上的默认站点地址生效。好的。我从这个方法中得到了我所需要的东西。现在它可能与PurchCreateOrder
格式、方法orderAccountModified
中的逻辑冲突。尝试扩展该方法。可能与表单PurchCreateOrder
、方法orderAccountModified
中的逻辑冲突。尝试扩展该方法。
[ExtensionOf(formdatasourcestr(PurchCreateOrder, PurchTable))]
final class PurchCreateOrderGetDefAdress_Extension
{
[FormDataFieldEventHandler(formDataFieldStr(PurchCreateOrder, PurchTable, OrderAccount), FormDataFieldEventType::Modified)]
public static void OrderAccount_OnModified(FormDataObject sender, FormDataFieldEventArgs e)
{
Formdatasource purchtable_ds = sender.datasource();
PurchTable purchtable = purchtable_ds.cursor();
InventSite inv;
InventLocation invent;
str iid = UserInfoSz::findDefaultSite(curUserId()).InventSiteId;
ttsbegin;
If(purchtable.recid)
{
purchtable.selectforupdate(true);
purchtable.inventsiteid = iid;
purchTable.setAddressFromInventSiteId(iid);
select firstonly invent where invent.inventsiteid == iid && invent.WMSLocationIdDefaultReceipt == "recv";
if(invent.RecId !=0)
{
purchtable.inventlocationid = invent.InventLocationId;
}
else
{
select firstonly invent where invent.inventsiteid == iid;
purchtable.inventlocationid = invent.InventLocationId;
}
}
ttscommit;
}
}