Acumatica:从网格事件获取标题上的字段值
我是Acumatica自定义开发的新手,我试图做一些我认为非常简单的事情。我在Sales Order标题中有一个Selector控件(DataClass:FSServiceOrder,DataField:BranchLocationID),允许用户设置分支位置。下面,在库存网格中,我只想将新行中的仓库字段设置为等于上述选择器的值。我可以用硬编码值设置仓库,但我不知道如何引用选择或得到它的价值,因为它似乎是通过PXCache对象的范围:Acumatica:从网格事件获取标题上的字段值
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屏幕控件绑定到DataViews。 DataViews包含DAC记录。通常的做法是从绑定的DataView中获取当前DAC记录的值。
使用数据视图的当前对象持有FSServiceOrder DAC记录:
string BranchLocationID = myDataview.Current.BranchLocationID;
如果你不知道的数据视图名称,在网站上举办CTL + Alt键并单击BranchLocationID UI场。将出现一个弹出窗口,显示DataView名称。
充分利用DAC集合当前对象应太,但它最好使用数据视图:
string BranchLocationID = Base.Caches[typeof(FSServiceOrder)].Current.BranchLocationID;
另外,请确保您设置的CommitChanges属性上BranchLocationID表单字段真正在ASPX文件。这可以确保当前对象在值更改时将触发后端的事件。
<px:PXSelector ID="edBranchLocationID" runat="server"
DataField="BranchLocationID" CommitChanges="True" />
非常好。谢谢! – TJP
这是一个简单的任务,我认为最好的建议是审查Acumatica的培训材料。我说这是因为RowSelected不是更新值的地方。了解事件以及何时使用它们将为您节省大量头痛并提高定制质量。要获取当前文档的值,您将使用视图名称Current属性。示例:销售订单表头的Document.Current DAC – Brendan
同意。请理解,我正在用一种全新的系统和定制工具,需要“昨天完成”。现在我已经解决了这个问题,我终于可以花时间沉浸在培训中。谢谢。 – TJP
我认为是这样。仅仅从我学习Acumatica的经验 - 记下事件以及何时最好使用它们。你的Acumatica开发项目祝你好运。 – Brendan