Acumatica:从网格更改事件获取标题的字段值

问题描述 投票:0回答:1

我想我有一个相当简单的问题,但我是Acumatica的新手。我想在销售订单(SO.30.10.00)的标题上设置一个自定义字段,以对网格上的商品价格产生一些影响。因此,我需要两件事。

1)我需要网格从标题中读取一个值。我看了另一个类似的请求,但我似乎无法使它工作。在SO上,看起来这段代码应该读取当前订单号的值,但我得到“当前上下文中不存在名称'文档'”

string TestString = Document.Current.OrderNbr;

2)当该字段发生变化时,是否可以重新计算所有行?我实际上认为这可能是最简单的部分,但是因为我问第一部分,我想我也把它扔在这里。

提前致谢!

acumatica
1个回答
0
投票

操作从Header Field流向Grid Rows字段。修改标题字段后,更新行。在你的问题中,这将是#2。

在#1中,您的问题是文档数据视图是SOOrderEntry图的成员,而不是您创建的SOOrderEntry图扩展的成员。在图形扩展上下文中,您可以使用Base属性访问基本图形属性,这样您就可以查看Base.Document

对于实现,首先您希望头字段在修改时引发事件。这是通过将ASPX控件CommitChanges属性设置为true来实现的:

enter image description here

接下来,您要声明一个FieldUpdated事件处理程序来挂钩标头字段修改并根据标头字段修改细节行:

using PX.Data;

namespace PX.Objects.SO
{
    public class SOOrderEntry_Extension : PXGraphExtension<SOOrderEntry>
    {
        public void SOOrder_OrderDesc_FieldUpdated(PXCache sender, PXFieldUpdatedEventArgs e)
        {
            SOOrder order = e.Row as SOOrder;

            if (order != null)
            {
                foreach (SOLine line in Base.Transactions.Select())
                {
                    line.TranDesc = order.OrderDesc;
                }
            }
        }
    }
}

在修改标题字段之前:enter image description here

修改标题字段后:enter image description here

我使用简单的=赋值来设置细节线的值。当你想要分配引发事件时,你可以使用SetValue方法或SetValueExt。使用SetValueExt将引发FieldUpdated事件。

© www.soinside.com 2019 - 2024. All rights reserved.