В этом примере создается документ переноса с подробной строкой и выделением.Вы можете заменить Transfer
деталь на Receipt
, она использует почти идентичные шаблоны:
INTransferEntry transferEntry = PXGraph.CreateInstance<INTransferEntry>();
// Document Header
INRegister register = transferEntry.CurrentDocument.Insert();
register.DocType = INDocType.Transfer;
register.SiteID = [???];
register.ToSiteID = [???];
register.BranchID = Accessinfo.BranchID;
register.TranDesc = "Description";
register.TotalQty = 1M;
// Transactions Detail line
INTran inTran = new INTran();
inTran.DocType = INDocType.Transfer;
inTran.RefNbr = register.RefNbr;
inTran = transferEntry.transactions.Insert(inTran);
inTran.BranchID = Accessinfo.BranchID;
inTran.LocationID = [???];
inTran.ToLocationID = [???];
inTran.InventoryID = inventoryItem.InventoryID;
inTran.TranDesc = inventoryItem.Descr;
inTran.TranType = INTranType.Transfer;
inTran.UOM = inventoryItem.BaseUnit;
inTran.Qty = 1M;
// Lot/Serial number allocations
INTranSplit tranSplit = transferEntry.splits.Insert();
tranSplit.Qty = 1M;
tranSplit.LocationID = [???];
tranSplit.LotSerialNbr = [???];
tranSplit.UOM = inventoryItem.BaseUnit;
transferEntry.splits.Update(tranSplit);
transferEntry.Actions.PressSave();
Чтобы заполнить строки детализации Receipt
из Transfer
, вам нужно вызвать обработчик событияполя INRegister.TransferNbr
.Это можно сделать с помощью метода SetValueExt
, который вызывает события FieldUpdated
:
graphINReceiptEntry.transactions.Cache.SetValueExt<INRegister.transferNbr>(register, transferNbr)
При установке TransferNbr
с помощью SetValueExt
он вызовет обработчик событий INRegister_TransferNbr_FieldUpdated
графика INReceiptEntry
, которыйвведите в квитанции строки с информацией о переводе.