在另一个图表中调用操作,如何传递适配器

时间:2018-03-14 16:00:26

标签: acumatica

我的目标是,从给定的屏幕: - 在付款和广告的“调整”标签中添加行。应用图 - 发布

我试着这样做:

override public void createLettering(List<ARRegister> lines)
        {
            string refNbr = "";
            foreach (ARRegister line in lines)
            {
                if (line.DocType == "PMT") refNbr = line.RefNbr;
            }

            // Get the paymententry graph, and add the invoice
            ARPaymentEntry graphPmt = PXGraph.CreateInstance<ARPaymentEntry>();
            ARPayment pmt = PXSelect<ARPayment, Where<ARPayment.refNbr, Equal<Required<ARPayment.refNbr>>,
                                And<ARPayment.docType, Equal<Required<ARPayment.docType>>>>>
                                    .Select(this,refNbr, "PMT");
            graphPmt.Document.Current = pmt;
            if (pmt == null) throw new PXException(Constantes.errNotFound);
            //pmt.CuryOrigDocAmt = 0m;
            //graphPmt.Document.Update(pmt);
            ARAdjust adj = new ARAdjust();
            foreach(ARRegister line in lines)
            {
                if (line.DocType == "INV")
                {
                    adj = new ARAdjust();
                    adj.AdjdDocType = line.DocType;
                    adj.AdjdRefNbr = line.RefNbr;
                    graphPmt.Adjustments.Insert(adj);

                }
            }
            PXAdapter adapter = new PXAdapter(new PXView(graphPmt,true, graphPmt.Document.View.BqlSelect));
            graphPmt.Persist();
            graphPmt.Release(adapter);
        }

我的问题是我认为我的适配器获得了每一个ARPayment,因此试图释放它们。 (此函数的输出是:处理时间过长,然后告诉我&#39; PaymentMethod不能为空,但是当我签入调试时,我的graphPmt.Document的paymentMethod不为空。)< / p>

那么如何从我的另一个自定义图表中将正确的PXAdapter传递给PaymentEntry图表的Release(PXAdapter适配器)方法?

1 个答案:

答案 0 :(得分:1)

我认为你应该可以调用诸如......之类的动作。

graphPmt.release.Press();

我没有对此进行过测试,但我记得在过去的其他行动中做了类似的事情。