首页 文章

Acumatica:从网格事件获取 Headers 的字段值

提问于
浏览
0

我是Acumatica定制开发的新手,我正在尝试做一些我认为非常简单的事情 . 我在Sales Order Headers 中有一个Selector控件(DataClass:FSServiceOrder,DataField:BranchLocationID),允许用户设置Branch Location . 下面,在库存网格中,我只想将新行中的Warehouse字段设置为等于上述选择器的值 . 我可以使用硬编码值设置Warehouse,但我不知道如何引用选择器或获取它的值,因为它似乎超出了传递的PXCache对象的范围:

protected void FSSODetPart_RowSelected(PXCache cache, PXRowSelectedEventArgs e)
{      
  string BranchLocationID = "" // Not sure how to get this value

  var row = (FSSODetPart)e.Row;
  cache.SetValueExt(row, "SiteID", BranchLocationID);
}

我希望我可以简单地引用类似于ASP.NET的所有UI控件,但似乎并非如此 . 任何帮助表示赞赏 . 从屏幕获取值似乎是基本的,但我在文档中找不到任何帮助 . 谢谢 .

1 回答

  • 2

    在Acumatica中,屏幕控件绑定到DataViews . DataViews包含DAC记录 . 通常的做法是从绑定的DataView中获取当前DAC记录的值 .

    使用DataView的当前对象持有FSServiceOrder DAC记录:

    string BranchLocationID = myDataview.Current.BranchLocationID;
    

    如果您不知道DataView名称,请在WebSite上按住Ctl Alt并单击BranchLocationID UI字段 . 将出现一个弹出窗口,显示DataView名称 .

    从DAC集合中获取当前对象也应该有效,但最好使用DataView:

    string BranchLocationID = Base.Caches[typeof(FSServiceOrder)].Current.BranchLocationID;
    

    还要确保在Aspx文件中的BranchLocationID表单字段上将CommitChanges属性设置为true . 这可确保当前对象在值更改时触发后端中的事件 .

    <px:PXSelector ID="edBranchLocationID" runat="server" 
                        DataField="BranchLocationID" CommitChanges="True" />
    

相关问题