Axapta 如何从AX 2012零售POS中的代码在屏幕上加载交易
我们要求在Axapta 如何从AX 2012零售POS中的代码在屏幕上加载交易,axapta,dynamics-ax-2012,dynamics-ax-2012-r2,Axapta,Dynamics Ax 2012,Dynamics Ax 2012 R2,我们要求在显示日记帐屏幕上为用户提供复制交易按钮,点击此按钮将在主POS屏幕上加载所选交易的准确信息,出纳可以进行投标和结算 我在表单上创建了一个按钮,在按钮的单击事件中,我使用以下代码加载并启动了事务对象: if (gridView1.SelectedRowsCount > 0) { DataRow Row = gridView1.GetDataRow(gridView1.GetSelectedRows()[0]);
显示日记帐
屏幕上为用户提供复制交易
按钮,点击此按钮将在主POS屏幕上加载所选交易的准确信息,出纳可以进行投标和结算
我在表单上创建了一个按钮,在按钮的单击事件中,我使用以下代码加载并启动了事务对象:
if (gridView1.SelectedRowsCount > 0)
{
DataRow Row = gridView1.GetDataRow(gridView1.GetSelectedRows()[0]);
selectedTransactionId = (string)Row["TRANSACTIONID"];
selectedStoreId = (string)Row["STORE"];
selectedTerminalId = (string)Row["TERMINAL"];
PosTransaction transaction = LoadTransaction(selectedTransactionId, selectedStoreId, selectedTerminalId);
}
this.Application.BusinessLogic.SuspendRetrieveSystem.SuspendTransaction(transaction);
this.Application.BusinessLogic.SuspendRetrieveSystem.RetrieveTransaction(transaction.TransactionId);
现在我找不到将此事务加载到主屏幕的方法,我已尝试设置this.posTransaction=transaction代码>但它不起作用
然后我尝试挂起事务并检索挂起的事务,我可以通过以下代码成功挂起事务:
if (gridView1.SelectedRowsCount > 0)
{
DataRow Row = gridView1.GetDataRow(gridView1.GetSelectedRows()[0]);
selectedTransactionId = (string)Row["TRANSACTIONID"];
selectedStoreId = (string)Row["STORE"];
selectedTerminalId = (string)Row["TERMINAL"];
PosTransaction transaction = LoadTransaction(selectedTransactionId, selectedStoreId, selectedTerminalId);
}
this.Application.BusinessLogic.SuspendRetrieveSystem.SuspendTransaction(transaction);
this.Application.BusinessLogic.SuspendRetrieveSystem.RetrieveTransaction(transaction.TransactionId);
但无法使用以下代码检索此事务:
if (gridView1.SelectedRowsCount > 0)
{
DataRow Row = gridView1.GetDataRow(gridView1.GetSelectedRows()[0]);
selectedTransactionId = (string)Row["TRANSACTIONID"];
selectedStoreId = (string)Row["STORE"];
selectedTerminalId = (string)Row["TERMINAL"];
PosTransaction transaction = LoadTransaction(selectedTransactionId, selectedStoreId, selectedTerminalId);
}
this.Application.BusinessLogic.SuspendRetrieveSystem.SuspendTransaction(transaction);
this.Application.BusinessLogic.SuspendRetrieveSystem.RetrieveTransaction(transaction.TransactionId);
我知道我可以逐个读取项目并将其添加到交易中,但如果对交易应用了折扣,或者交易是忠诚交易,那么我必须重新加载准确的交易。您尝试过吗
if (!string.IsNullOrEmpty(this.selectedTransactionId)) {
application.RunOperation(PosisOperations.RecallTransaction, this.selectedTransactionId);
}