如何从AX 2012 Retail POS中的代码加载屏幕上的事务

时间:2014-05-09 17:22:05

标签: axapta dynamics-ax-2012 dynamics-ax-2012-r2

我们要求用户在COPY Transaction屏幕上为用户提供Show Journal按钮,点击此按钮将在主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.posTransaction = transaction;,但它不起作用。

然后我尝试暂停事务并检索挂起的事务,我可以从以下代码成功挂起事务:

this.Application.BusinessLogic.SuspendRetrieveSystem.SuspendTransaction(transaction);

但无法使用以下代码检索此事务:

this.Application.BusinessLogic.SuspendRetrieveSystem.RetrieveTransaction(transaction.TransactionId);

我知道我可以逐个阅读项目并将它们添加到交易中,但如果对交易应用了折扣或者交易是忠诚度交易,那么我必须重新加载确切的交易。

1 个答案:

答案 0 :(得分:1)

你试过吗?

if (!string.IsNullOrEmpty(this.selectedTransactionId)) {
    application.RunOperation(PosisOperations.RecallTransaction, this.selectedTransactionId);
}