我有一個帶有兩個網格的窗體。每個網格都有自己的數據源。 欲瞭解更多信息,請看附圖。AX2012 - 通過創建獲取新的主表字段值
依賴於我在第一個網格中選擇哪條線,第二個網格的內容將會改變。
現在我的問題: 如果我在第一個網格上創建一個新的行,我無法在第二個網格中輸入值,因爲ax不給我一個新的「組合ID」(主域,INT)
我該如何解決這個問題?
我有一個帶有兩個網格的窗體。每個網格都有自己的數據源。 欲瞭解更多信息,請看附圖。AX2012 - 通過創建獲取新的主表字段值
依賴於我在第一個網格中選擇哪條線,第二個網格的內容將會改變。
現在我的問題: 如果我在第一個網格上創建一個新的行,我無法在第二個網格中輸入值,因爲ax不給我一個新的「組合ID」(主域,INT)
我該如何解決這個問題?
這看起來像一個親子形式,其中上面的網格是你的「標題」,而下面是你的「線條」。
如果CombinationID
是您的主鍵,它應該可能是通過數字序列或獨特的方式生成的。
在窗體上,數據源MDISSearchDimensions
的屬性JoinSource
應設置爲MDISAccountSearchTerms
。它將使用表格關係,但您需要指定它們已加入。
然後,一旦你從頭文件中設置了CombinationID
,你只需要確保線條得到它。在表MDISSearchDimensions
上,添加名爲initFromMDISAccountSearchTerms(MDISAccountSearchTerms _MDISAccountSearchTerms)
的方法,該方法設置CombinationID
並在MDISSearchDimensions.initValue()
內調用此方法。
感謝您的回答!我爲CombinationID製作一個數字序列。我使用以下步驟https://community.dynamics.com/gp/b/dynamics101trainingcentergp/archive/2014/09/24/creating-custom-number-sequences-in-microsoft-dynamics-ax-2012 – JamesnxD
當我創建一個系統顯示新消息:「由於CS01-00001尚未保存或刪除,因此無法分配新號碼。」當我打開並關閉窗體或按Ctrl + S時,它工作正常。有沒有辦法自動保存行? – JamesnxD
試試https://dynamicsuser.net/ax/f/developers/84652/solution-to-solve-number-sequence-problem-for-the-error-a-new-number-cannot-be-assigned-because都具有一個 - 不被保存的,或缺失 –
您應該禁用第二個數據源的InsertIfEmpty
屬性。
所述第二數據源的方法initValue
初始化CombinationId
字段(提供適當的關係),以主CombinationId
數據源值,但現在它這樣做之前,主數據源字段具有一個值。
如果您想離開,您還有其他選擇;手動設置在所述第二數據源的validateWrite
:
public boolean validateWrite()
{;
MDISAccountDimension.CombinationId = MDISAccountSearchTerms.CombinationId;
return super();
}
因此,將不再會由於Mandatory
被設置。
您應該在第二個網格中隱藏CombinationId
以避免用戶錯誤。
你如何在第一個網格中填充組合ID?按數字順序排列嗎?無論如何,在超級插入第一個網格表的方法之後,在第二個網格表中插入一個帶有組合ID的新記錄,如同第一個網格表中一樣。 –