转移单的装运和收货
正如前文所說的,AX的很多功能與窗體綁定了,需要剝離出來,有一些類提供了供其他代碼直接調(diào)用的方法,比如PurchFormLetter及SalesFormLetter的Update方法,它們就幫忙處理了Parm*等一系列的表,并自動過賬,于是客戶段代碼可以很方便地調(diào)用它們。但也有一些類沒有提供類似的方法,就需要我們自己去處理Parm*表,比如轉(zhuǎn)移單的裝運和收貨,本文仿照PurchFormLetter的方式給轉(zhuǎn)移單對應(yīng)的類添加方法,以期實現(xiàn)類似的效果,供客戶端類調(diào)用。
1.給類InventTransferUpdate添加構(gòu)造方法:
static?InventTransferUpd?construct(InventTransferUpdateType?_InventTransferUpdateType)
{
????;
????switch(_InventTransferUpdateType)
????{
????????case?InventTransferUpdateType::PickingList:
????????{
????????????if?(InventParameters::logisticsRegistrationEnabled())
????????????????return?InventTransferUpdPick_Journal::construct();
?
????????????return??InventTransferUpdPick_Pick::construct();
????????????break;
????????}
????????case?InventTransferUpdateType::Shipment:
????????????????????return?InventTransferUpdShip::construct();
????????????????????break;
????????case?InventTransferUpdateType::Receive:
????????????????????return?InventTransferUpdReceive::construct();
????????????????????break;
????????default:
????????????break;
????}
}
????????????InventTransferShipUpdateQty?????_inventTransferShipUpdateQty,???????//Ship?Qty?the?value?is?Enum:InventTransferShipUpdateQty
????????????InventTransferEditLines?????????_editLines??????=?NoYes::No,
????????????InventTransferAutoReceiveQty????_autoReceiveQty?=?NoYes::No,
????????????NoYes???????????????????????????_printTransferPickingList?=?NoYes::No,//print?pick?list
????????????NoYes???????????????????????????_printTransferReceipt?????=?NoYes::No,//print?transfer?receipt
????????????NoYes???????????????????????????_printTransferShip????????=?NoYes::No,//print?transfer?ship
????????????TransDate???????????????????????_transDate??????=?SystemDateGet())
{
????InventTransferParmTable?????localInventTransferParmTable;
????;
????localInventTransferParmTable.skipTTSCheck(true);
????localInventTransferParmTable.TransferId?????????????????=?_inventTransferId;
????localInventTransferParmTable.AutoReceiveQty?????????????=?_autoReceiveQty;
????localInventTransferParmTable.ShipUpdateQty??????????????=?_inventTransferShipUpdateQty;
????localInventTransferParmTable.EditLines??????????????????=?_editLines;
????localInventTransferParmTable.TransDate??????????????????=?_transDate;
????localInventTransferParmTable.PrintTransferPickingList???=?_printTransferPickingList;
????localInventTransferParmTable.PrintTransferReceipt???????=?_printTransferReceipt;
????localInventTransferParmTable.PrintTransferShipment??????=?_printTransferShip;
????localInventTransferParmTable.ParmBuffer::initParmId();
????localInventTransferParmTable.write();
????this.parmParmBuffer(localInventTransferParmTable);
????this.run();
}
void?updateReceive(InventTransferId????????????????_inventTransferId,??????????????????//InventTransfer?Order?Number
????????????InventTransferReceiveUpdateQty?????_inventTransferReceiveUpdateQty,???????//Ship?Qty?the?value?is?Enum:InventTransferShipUpdateQty
????????????InventTransferEditLines?????????_editLines??????=?NoYes::No,
????????????InventTransferAutoReceiveQty????_autoReceiveQty?=?NoYes::No,
????????????NoYes???????????????????????????_printTransferPickingList?=?NoYes::No,//print?pick?list
????????????NoYes???????????????????????????_printTransferReceipt?????=?NoYes::No,//print?transfer?receipt
????????????NoYes???????????????????????????_printTransferShip????????=?NoYes::No,//print?transfer?ship
????????????TransDate???????????????????????_transDate??????=?SystemDateGet())
{
????InventTransferParmTable?????localInventTransferParmTable;
????;
????localInventTransferParmTable.skipTTSCheck(true);
????localInventTransferParmTable.TransferId?????????????????=?_inventTransferId;
????localInventTransferParmTable.AutoReceiveQty?????????????=?_autoReceiveQty;
????localInventTransferParmTable.ReceiveUpdateQty???????????=?_inventTransferReceiveUpdateQty;
????localInventTransferParmTable.EditLines??????????????????=?_editLines;
????localInventTransferParmTable.TransDate??????????????????=?_transDate;
????localInventTransferParmTable.PrintTransferPickingList???=?_printTransferPickingList;
????localInventTransferParmTable.PrintTransferReceipt???????=?_printTransferReceipt;
????localInventTransferParmTable.PrintTransferShipment??????=?_printTransferShip;
????localInventTransferParmTable.ParmBuffer::initParmId();
????localInventTransferParmTable.write();
????this.parmParmBuffer(localInventTransferParmTable);
????this.run();
}
inventTransferUpd.update('00031_080',InventTransferShipUpdateQty::PickedQty); 收貨:
Code
//Receive
????????????inventTransferUpd?=?InventTransferUpd::construct(InventTransferUpdateType::Receive);
????????????inventTransferUpd.updateReceive(transferId,InventTransferReceiveUpdateQty::Registered);
1.給類InventTransferUpdate添加構(gòu)造方法:
static?InventTransferUpd?construct(InventTransferUpdateType?_InventTransferUpdateType)
{
????;
????switch(_InventTransferUpdateType)
????{
????????case?InventTransferUpdateType::PickingList:
????????{
????????????if?(InventParameters::logisticsRegistrationEnabled())
????????????????return?InventTransferUpdPick_Journal::construct();
?
????????????return??InventTransferUpdPick_Pick::construct();
????????????break;
????????}
????????case?InventTransferUpdateType::Shipment:
????????????????????return?InventTransferUpdShip::construct();
????????????????????break;
????????case?InventTransferUpdateType::Receive:
????????????????????return?InventTransferUpdReceive::construct();
????????????????????break;
????????default:
????????????break;
????}
}
2.給類InventTransferUpdate添加updateShip和updateReceive方法:
發(fā)貨:
????????????InventTransferShipUpdateQty?????_inventTransferShipUpdateQty,???????//Ship?Qty?the?value?is?Enum:InventTransferShipUpdateQty
????????????InventTransferEditLines?????????_editLines??????=?NoYes::No,
????????????InventTransferAutoReceiveQty????_autoReceiveQty?=?NoYes::No,
????????????NoYes???????????????????????????_printTransferPickingList?=?NoYes::No,//print?pick?list
????????????NoYes???????????????????????????_printTransferReceipt?????=?NoYes::No,//print?transfer?receipt
????????????NoYes???????????????????????????_printTransferShip????????=?NoYes::No,//print?transfer?ship
????????????TransDate???????????????????????_transDate??????=?SystemDateGet())
{
????InventTransferParmTable?????localInventTransferParmTable;
????;
????localInventTransferParmTable.skipTTSCheck(true);
????localInventTransferParmTable.TransferId?????????????????=?_inventTransferId;
????localInventTransferParmTable.AutoReceiveQty?????????????=?_autoReceiveQty;
????localInventTransferParmTable.ShipUpdateQty??????????????=?_inventTransferShipUpdateQty;
????localInventTransferParmTable.EditLines??????????????????=?_editLines;
????localInventTransferParmTable.TransDate??????????????????=?_transDate;
????localInventTransferParmTable.PrintTransferPickingList???=?_printTransferPickingList;
????localInventTransferParmTable.PrintTransferReceipt???????=?_printTransferReceipt;
????localInventTransferParmTable.PrintTransferShipment??????=?_printTransferShip;
????localInventTransferParmTable.ParmBuffer::initParmId();
????localInventTransferParmTable.write();
????this.parmParmBuffer(localInventTransferParmTable);
????this.run();
}
收貨:
Codevoid?updateReceive(InventTransferId????????????????_inventTransferId,??????????????????//InventTransfer?Order?Number
????????????InventTransferReceiveUpdateQty?????_inventTransferReceiveUpdateQty,???????//Ship?Qty?the?value?is?Enum:InventTransferShipUpdateQty
????????????InventTransferEditLines?????????_editLines??????=?NoYes::No,
????????????InventTransferAutoReceiveQty????_autoReceiveQty?=?NoYes::No,
????????????NoYes???????????????????????????_printTransferPickingList?=?NoYes::No,//print?pick?list
????????????NoYes???????????????????????????_printTransferReceipt?????=?NoYes::No,//print?transfer?receipt
????????????NoYes???????????????????????????_printTransferShip????????=?NoYes::No,//print?transfer?ship
????????????TransDate???????????????????????_transDate??????=?SystemDateGet())
{
????InventTransferParmTable?????localInventTransferParmTable;
????;
????localInventTransferParmTable.skipTTSCheck(true);
????localInventTransferParmTable.TransferId?????????????????=?_inventTransferId;
????localInventTransferParmTable.AutoReceiveQty?????????????=?_autoReceiveQty;
????localInventTransferParmTable.ReceiveUpdateQty???????????=?_inventTransferReceiveUpdateQty;
????localInventTransferParmTable.EditLines??????????????????=?_editLines;
????localInventTransferParmTable.TransDate??????????????????=?_transDate;
????localInventTransferParmTable.PrintTransferPickingList???=?_printTransferPickingList;
????localInventTransferParmTable.PrintTransferReceipt???????=?_printTransferReceipt;
????localInventTransferParmTable.PrintTransferShipment??????=?_printTransferShip;
????localInventTransferParmTable.ParmBuffer::initParmId();
????localInventTransferParmTable.write();
????this.parmParmBuffer(localInventTransferParmTable);
????this.run();
}
?
3.調(diào)用示例:
發(fā)貨:
InventTransferUpd???????inventTransferUpd?=?InventTransferUpd::construct(InventTransferUpdateType::Shipment);inventTransferUpd.update('00031_080',InventTransferShipUpdateQty::PickedQty); 收貨:
Code
//Receive
????????????inventTransferUpd?=?InventTransferUpd::construct(InventTransferUpdateType::Receive);
????????????inventTransferUpd.updateReceive(transferId,InventTransferReceiveUpdateQty::Registered);
轉(zhuǎn)載于:https://www.cnblogs.com/Farseer1215/archive/2008/04/13/1151598.html
總結(jié)
- 上一篇: (转)我的座驾见谁灭谁!
- 下一篇: [BTS]6912,5641,5773,