日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

实现pick和reigister

發布時間:2023/11/30 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 实现pick和reigister 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

實現PickReigister

AX有個問題是很多功能都跟表現層窗體綁定在一起,要用代碼直接實現某個功能就需要看窗體中的代碼是如何處理的并將其剝離出來。
比如領料和登記功能,它都封裝到了窗體InventTransPick和InventTransRegister中,雖然也是通過類InventTransWMS,InventTransWMS_Pick和InventTransWMS_Register實現相應的功能,但如果要通過代碼直接實現Pick和Register功能就需要看一下它們的處理邏輯,并將其改造一下。
1.InventTransWMS_PickInventTransWMS_Register分別增加movement方法,代碼可以從相應的窗體上粘過來:
InventTransWMS_Pick:

? ? ? ? ? ? ? ? ? ? ? ? static InventMovement movement(Common _record)
{
InventMovement movement;
InventQuarantineOrder inventQuarantineOrder;
;

if (_record.TableId == tablenum(InventQuarantineOrder))
{
inventQuarantineOrder = _record;

if (inventQuarantineOrder.Status == InventQuarantineStatus::Created)
{
movement = InventMovement::construct(inventQuarantineOrder,InventMovSubType::TransferReceipt);
}
}

if (! movement)
{
movement = InventMovement::construct(_record);
}


return movement;
}

InventTransWMS_Resigter:

static InventMovement movement(Common _record)
{
InventMovement movement;
InventQuarantineOrder inventQuarantineOrder;

if (_record.TableId == tablenum(InventQuarantineOrder))
{
inventQuarantineOrder = _record;

if (inventQuarantineOrder.Status == InventQuarantineStatus::Created)
{
movement = InventMovement::construct(inventQuarantineOrder,InventMovSubType::None);
}
else
{
movement = InventMovement::construct(inventQuarantineOrder,InventMovSubType::TransferReceipt);
}
}
else
{
movement = InventMovement::construct(_record);
}

if (movement.newMovement_TransferReceipt())
{
movement = movement.newMovement_TransferReceipt();
movement = movement.newMovement_TransferIssueReceive() ? movement.newMovement_TransferIssueReceive() : movement;
movement = movement.newMovement_TransferReceipt() ? movement.newMovement_TransferReceipt() : movement;
}


return movement;
}

2.給兩個類分別增加PickRegiste方法:
InventTransWMS_Pick:

static void pick(Common _cursor,TmpInventTransWMS _tmpInventTransWMS)
{
InventTransWMS_Pick inventTransWMS_Pick = new InventTransWMS_Pick(InventTransWMS_Pick::movement(_cursor),_tmpInventTransWMS);
;
InventTransWMS_Pick::updateInvent(inventTransWMS_Pick,_tmpInventTransWMS);

}

InventTransWMS_Register:

static void register(Common _cursor,TmpInventTransWMS _tmpInventTransWMS)
{
InventTransWMS_Register inventTransWMS_register = new InventTransWMS_Register(InventTransWMS_Register::movement(_cursor),_tmpInventTransWMS);
;
InventTransWMS_register::updateInvent(inventTransWMS_register,_tmpInventTransWMS);

}

3.調用示例:
將某行轉移單明細做領料動作


inventDim.InventLocationId = 'GW';
tmpInventTransWMS.InventQty = 1;
tmpInventTransWMS.InventDimId = InventDim::findOrCreate(inventDim).inventDimId;
tmpInventTransWMS.insert();

inventDim.InventLocationId = 'GW';
tmpInventTransWMS.InventQty = 1;
tmpInventTransWMS.InventDimId = InventDim::findOrCreate(inventDim).inventDimId;
tmpInventTransWMS.insert();

InventTransWMS_Pick::pick(inventTransferLine,tmpInventTransWMS);

將某行采購單明細做登記動作:

tmpInventTransWMS.InventQty = 1;

inventDim.InventLocationId = 'MW';
inventDim.inventBatchId = '001';

tmpInventTransWMS.InventDimId = InventDim::findOrCreate(inventDim).inventDimId;
tmpInventTransWMS.insert();

tmpInventTransWMS.InventQty = 1;
inventDim.InventLocationId = 'MW';
inventDim.inventBatchId = '002';
tmpInventTransWMS.InventDimId = InventDim::findOrCreate(inventDim).inventDimId;
tmpInventTransWMS.insert();
//Insert End

InventTransWMS_Register::register(purchLine,tmpInventTransWMS);

?

轉載于:https://www.cnblogs.com/yuankang/archive/2012/04/10/2440314.html

總結

以上是生活随笔為你收集整理的实现pick和reigister的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。