以下是庫存中的一個設計文件:
程式代號: INVB11
程式名稱: 批號結案作業
資料檔案: INVME (R/W) 品號批號資料單頭檔
INVMF (R/W) 品號批號資料單身檔
INVMB (R/O) 品號基本資料檔
輸入畫面:
選擇結案狀態
⊙結案 ○取消結案
選擇品號 ~
選擇批號 ~
選擇批次入庫日期 ~
ˇ 當庫存量不等於零者結案
欄位說明 :
1.選擇結案狀態(C 1)
* DEFAULT 結案
2.品號 (INV.ME001)
* [F2]品號資料查詢(INVMB-01)
* 空白表全部
3.批號 (INV.ME002)
* 空白表全部
4.入庫日期 (C 08)
* CHECK DATE
* 空白表全部
5.當庫存量不等於零者結案 (C 01)
* DEFAULT 'N'
* ONLY Y/N
* IF 選擇狀態="取消結案",則此選項應SHOW "當庫存量不等於零者取消結案?"
資料處理 :
1."選擇結案狀態"=結案
1-1.選出單頭符合品號、批號、入庫日期區間且結案碼為'N'者
1-2.選「當庫存量不等於零者結案」=Y -> 單頭符合條件者結案碼更新為'Y'
1-3.選「當庫存量不等於零者結案」=N -> 單身的『入庫(+1)總計 = 出庫(-1)總計』者
→SUM(數量*MF008)=0 才將單頭結案碼更新為'Y'
關連 品號批號資料單頭.品號+批號(INV.ME001+ME002) = 品號批號資料單身.品號+批號(INV.MF001+MF002)
條件 品號批號資料單頭.品號(INV.ME001) = 符合輸入品號區間
品號批號資料單頭.批號(INV.ME002) = 符合輸入批號區間
品號批號資料單頭.結案碼(INV.ME007) = 'N'
品號批號資料單頭.最早入庫日(INV.ME003) = 符合輸入入庫日期區間
IF 選項「當庫存量不等於零者結案」='Y'
UPDATE 品號批號資料單頭.結案碼(INV.ME007)='Y'
else
選項「當庫存量不等於零者結案」='N'
IF SUM 數量(INV.MF010)*I/O別(INV.MF008)=0
=>依Counter.QtyAdd 傳入品號(ME001)、數量(INV.MF010)*I/O別(INV.MF008)、累計數量、''
UPDATE 品號批號資料單頭.結案碼(INV.ME007)='Y'
GROUP BY 品號批號資料單身.品號+批號(INV.MF001+MF002)
2."選擇結案狀態"=取消結案
2-1.選出單頭符合品號、批號、入庫日期區間且結案碼為'Y'者
2-2.選「當庫存量不等於零者取消結案」=Y -> 單頭符合條件者結案碼更新為'N'
2-3.選「當庫存量不等於零者取消結案」=N -> 單身的『入庫(+1)總計 = 出庫(-1)總計』者→SUM(數量*MF008)=0
才將單頭結案碼更新為'N'
關連 品號批號資料單頭.品號+批號(INV.ME001+ME002) = 品號批號資料單身.品號+批號(INV.MF001+MF002)
條件 品號批號資料單頭.品號(INV.ME001) = 符合輸入品號區間
品號批號資料單頭.批號(INV.ME002) = 符合輸入批號區間
品號批號資料單頭.最早入庫日(INV.ME003) = 符合輸入入庫日期區間
品號批號資料單頭.結案碼(INV.ME007) = 'Y'
IF 選項「當庫存量不等於零者取消結案」='Y'
UPDATE 品號批號資料單頭.結案碼(INV.ME007)='N'
else
選項「當庫存量不等於零者取消結案」='N'
IF SUM 數量(INV.MF010)*I/O別(INV.MF008)=0
=>依Counter.QtyAdd 傳入品號(ME001)、數量(INV.MF010)*I/O別(INV.MF008)、累計數量、''
UPDATE 品號批號資料單頭.結案碼(INV.ME007)='N'
GROUP BY 品號批號資料單身.品號+批號(INV.MF001+MF002)