新建物料组!
關于庫存物料這一塊:
在新建物料的時候會有5個必輸字段:物料編號,物料組,物料類型,庫存模型組,維度組。
下面研究一下新建物料組時相關問題:必須得創建一個物料組,這就是創建物料的前提條件。
在新建物料組的時候,看上去蠻簡單,一般我們需要填寫的就兩個,物料組和名稱字段。
物料組的主表是inventItemGroup但是會發現在窗體上很多字段都沒在表字段里面,都是在表edit方法中得到的,在AX系統中會有兩個比較特殊的方法,display方法和edit方法,一般是用來得到不能直接從數據源字段中得到的數據。
在一般窗體數據源中都會出現creat,insert這樣方法,但奇怪的是這個窗體中沒得。更奇怪的是在把斷點放在表方法中的setLedgerAccount中,在點擊新建按鈕時候不會觸發,但是在切換tabpage時候就會跳到這里面斷點中來。
這里面給各種科目賦值涉及到的表和方法:
在表inventItemGroup中有一個公用的方法setLedgerAccount,給不同的會計科目類型賦值(InventAccountType)
他在這個方法里面直接調用表inventPosting(庫存,分類賬日記賬表)里面的方法item,不知道為什么直接跳到這個表來了。兩個表有如下關系:InventPosting.ItemCode == 1 && InventPosting.ItemRelation == InventItemGroup.ItemGroupId .......InventPosting表中的ItemCode擴展子自枚舉類型
TableGroupAll,TableGroupAll::GroupId == 1,也就是ItemCode為組!
InventItemGroup.ItemGroupId也就是該表的名稱字段。
在item方法中又涉及一個表InventPostingParameters(庫存交易記錄組合表)!這個表只有一條記錄,分別判斷里面的“表,組,所有”的物料關系是否啟動。再做相應的判斷!
在item方法里面三個參數(InventAccountType,ItemId,ItemGroupId)第一個科目類型,第二個物料編號此時調用物料編號都是空的,第三個編號組也就是當前的物料名稱)
在setLedgerAccount里面調用也就是把當前科目類型,物料編號為空,當前物料組名稱傳進去。
在item方法里面,往inventPosting中循環找到相應的科目編號!
一般第一次創建的時候tableGroup為All,然后找到相應的科目編號。
新建物料組后還沒有在表inventPosting里面創建記錄。待考察。。。。
轉載于:https://www.cnblogs.com/boydg123/archive/2011/08/10/2133912.html
總結
- 上一篇: POJ2262Goldbach's Co
- 下一篇: HDU-1016 Prime Ring