2017-06-14 72 views
0

我是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控件,但似乎並非如此。任何幫助表示讚賞。從屏幕獲得價值似乎很重要,但我無法在文檔中找到任何幫助。謝謝。

+0

這是一個簡單的任務,我認爲最好的建議是審查Acumatica的培訓材料。我說這是因爲RowSelected不是更新值的地方。瞭解事件以及何時使用它們將爲您節省大量頭痛並提高定製質量。要獲取當前文檔的值,您將使用視圖名稱Current屬性。示例:銷售訂單表頭的Document.Current DAC – Brendan

+0

同意。請理解,我正在用一種全新的系統和定製工具,需要「昨天完成」。現在我已經解決了這個問題,我終於可以花時間沉浸在培訓中。謝謝。 – TJP

+0

我認爲是這樣。僅僅從我學習Acumatica的經驗 - 記下事件以及何時最好使用它們。你的Acumatica開發項目祝你好運。 – Brendan

回答

2

在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" /> 
+0

非常好。謝謝! – TJP

相關問題