【问题标题】:Acumatica: Getting value of field on header from grid eventAcumatica:从网格事件中获取标题字段的值
【发布时间】:2017-06-14 16:37:12
【问题描述】:

我是 Acumatica 定制开发的新手,我正在尝试做一些我认为非常简单的事情。我在销售订单标题中有一个选择器控件(DataClass:FSServiceOrder,DataField:BranchLocationID),允许用户设置分支位置。下面,在 Inventory 网格中,我只想将新行中的 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 控件,但似乎并非如此。任何帮助表示赞赏。从屏幕上获取值似乎是基本的,但我在文档中找不到任何帮助。谢谢。

【问题讨论】:

  • 这是一项简单的任务,我认为最好的建议是查看 Acumatica 的培训材料。我这么说是因为 RowSelected 不是更新值的地方。了解事件以及何时使用它们将为您省去很多麻烦并提高定制的质量。要获取当前文档的值,您将使用视图名称 Current 属性。示例:销售订单抬头 DAC 的 Document.Current
  • 同意。请理解,我正处于需要“昨天完成”的全新系统和定制的压力之下。现在我已经解决了这个问题,我终于可以花时间沉浸在训练中了。谢谢。
  • 我认为是这样。仅根据我学习 Acumatica 的经验 - 记下这些事件以及何时最好使用它们。祝您的 Acumatica 开发项目好运。

标签: acumatica getvalue


【解决方案1】:

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

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

string BranchLocationID = myDataview.Current.BranchLocationID;

如果您不知道 DataView 名称,请在网站上按住 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" />

【讨论】:

  • 优秀。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-03-09
  • 2020-12-04
  • 1970-01-01
  • 1970-01-01
  • 2020-01-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多