程式資訊
- 程式 ID:
GINVBOOK - 所屬子系統:C.總務管理
- 狀態:stable
庫存帳冊¶
功能簡介¶
「庫存帳冊」是一支純查詢程式,把同一個品號在一段期間內的期初存量 → 每一筆進出異動 → 結餘完整攤開,讓倉管、成本與稽核人員能逐筆核對庫存的來龍去脈。它提供兩種看資料的角度,放在兩個頁籤:
- 分類進出帳(上半主表+下半明細):以「倉庫/倉儲/品號/工程/批號」為一條帳,先彙總出每條帳的期初、入庫、出庫、盤差、期末數量與金額,再展開該條帳區間內的逐筆異動與逐筆結餘。
- 日記帳:以單據為單位,把區間內每一張進出單據(含幣別、匯率、交易對象、金額)平鋪列出,並可只篩「進貨」相關單據。
它在流程中的位置是「庫存異動之後的檢視端」——所有入庫(如暫收單 等)、出庫、調撥、盤點異動寫進庫存後,這支報表把它們按品號彙整核帳。資料來源是後端 SP DARB_GINVBOOK(分類進出帳)與 DARB_GINVBOOK1(日記帳),期初、結餘、盤差的計算則在前端依舊版 VFP 邏輯重算。
本程式只查不改
庫存帳冊不會新增、修改或刪除任何庫存資料,兩個頁籤都是唯讀。要更正帳務需回到原始異動單據處理。
前置需求¶
- 權限:C.總務 →
C-100 庫存帳冊的瀏覽(查詢)權限;列印需要列印權限。 - 基礎資料:查詢結果的完整度取決於下列資料的維護狀況——
| 資料 | 影響的結果 |
|---|---|
| 倉庫主檔(隸屬倉庫 / 倉儲代號) | 條件面板的起迄倉庫預設值、主表的倉庫歸屬;查無倉庫資料無法查詢 |
| 品號主檔(品名、單位、群組代號、分類) | 主表/明細的品名、單位;以群組代號查詢時的範圍 |
| 月成本結帳資料(gcostm / gcostd) | 每條帳的期初數量/期初金額(取最近一次成本月份) |
| 庫存異動單據(trgama / trgade) | 期前異動、明細的入出庫、日記帳的每一筆 |
| 幣別/匯率 | 日記帳的幣別、匯率、金額(金額取本幣未稅) |
尚未提供的兩項功能(規劃中)
舊版 VFP 的報表格式選擇(明細 / 彙總 / 模具表三種 .frx)與樞紐分析(匯出本機 Excel 樞紐檔)在新版尚未移植。新版改以共用框架提供列印與 Excel 匯出,模具/尺寸分析所需的分類欄位資料雖已備齊(隨 Excel 一併匯出),但專屬報表版型仍規劃中。
操作步驟¶
庫存帳冊的兩個頁籤共用上方同一組查詢條件,但由不同按鈕觸發查詢:分類進出帳用工具列的 查詢,日記帳用條件區右側的 日記帳查詢 按鈕。
一、設定查詢條件(兩頁籤共用)¶
-
設定起迄倉庫:開窗時系統自動帶入倉庫主檔的第一個隸屬倉庫到起、迄兩格。
起迄倉庫的連動
在起始倉庫輸入一個非空白的倉庫後,系統會自動把同一個值帶到截止倉庫,方便只查單一倉庫。要查多倉再手動把截止倉庫改大即可。詳見欄位連動與附加功能。
-
視需要縮小範圍,填起迄倉儲(儲位代號)、起迄品號、起迄群組、起迄儲位、起迄日期。截止類欄位預設帶哨兵值
zzzzzz(代表「到最大」、不設上限),日期預設為今天。 - 用三個核取方塊控制彙整顆粒度:
- 不分儲位:勾選後同一倉庫下不同儲位合併成一條帳。
- 不分工程:勾選後忽略途程序號/工程代號的差異。
- 不分批號:勾選後忽略批號別/批號的差異。
- 勾選 期末不為0 可只保留期末數量不為零的帳(過濾掉已出清的品項)。
- 選條件別:以
品號或群組代號作為品項範圍的篩選依據(決定上面起迄品號/起迄群組哪一組生效)。 - (僅日記帳用)選單據別:
ALL查全部,進貨只查單號開頭為RC/RD/MG的進貨/退貨/雜收單據。
二、查詢「分類進出帳」¶
- 條件設好後,按工具列的
查詢。 - 上半部主表列出每條帳的彙總(期初 / 入庫 / 出庫 / 盤差 / 期末 的數量與金額)。
- 點選主表任一列,下半部明細即顯示該條帳的逐筆異動,第一列固定是標記為「期初」的起始結餘,其後每列帶逐筆結餘數量與金額。
- 用主表上方的 索引別 切換排序:
倉庫排序(預設,倉庫→倉儲→品號)或品號排序(品號→倉庫→倉儲)。切換後主表立即重排,不需重新查詢。
三、查詢「日記帳」¶
- 切到 日記帳 頁籤(條件沿用同一組)。
- 按條件區右側的
日記帳查詢按鈕。 - 系統以單據為單位列出區間內每一筆進出,含倉單號、交易日期、幣別、匯率、交易對象、數量、單價、金額等。退貨單(單號
RD開頭)的數量與金額會自動以負值顯示。
四、列印與匯出¶
- 列印:當分類進出帳已有資料時,可用工具列列印功能輸出報表。
- 匯出 Excel:工具列的 Excel 匯出會一次匯出三個工作表——分類進出帳(主表)、進出明細(所有明細)、日記帳——檔名
ginvbook。
查詢前的兩道檢核
無論按哪個查詢,系統都會先檢查:(1) 起、迄倉庫不可同時為空,否則提示「請先輸入起迄倉庫代號 !!!」;(2) 起迄倉庫範圍內必須有倉庫資料,否則提示「查無隸屬倉庫資料 !!!」。
欄位說明¶
查詢條件¶
| 欄位 | 必填 | 說明 / 格式 / 預設 |
|---|---|---|
| 起始倉庫 / 截止倉庫 | ✔ | 隸屬倉庫範圍。預設帶入倉庫主檔第一筆;起始倉庫輸入後自動帶到截止倉庫 |
| 起始倉儲 / 截止倉儲 | — | 儲位(倉儲)代號範圍。截止預設 zzzzzz(不設上限) |
| 起始品號 / 截止品號 | — | 品號範圍(條件別=品號時生效)。截止預設 zzzzzz |
| 起始群組 / 截止群組 | — | 群組代號範圍(條件別=群組代號時生效)。截止預設 zzzzzz |
| 起始儲位 / 截止儲位 | — | 儲位文字範圍。截止預設 zzzzzz |
| 起始日期 / 截止日期 | — | 異動查詢區間,格式 yyyy/MM/dd,預設皆為今天 |
| 不分儲位 | — | 勾選=同倉庫合併不同儲位(預設不勾) |
| 不分工程 | — | 勾選=忽略途程序號/工程代號(預設不勾) |
| 不分批號 | — | 勾選=忽略批號別/批號(預設不勾) |
| 期末不為0 | — | 勾選=只留期末數量≠0 的帳(預設不勾) |
| 條件別 | ✔ | 品號 或 群組代號,決定品項範圍依據。預設 品號 |
| 單據別 | — | ALL / 進貨,僅日記帳生效。預設 進貨 |
| 索引別 | — | 倉庫排序 / 品號排序,僅分類進出帳主表。預設 倉庫排序 |
分類進出帳—主表欄位¶
| 欄位 | 說明 |
|---|---|
| 隸屬倉庫 / 倉儲代號 / 品號 | 帳的歸屬鍵;勾「不分儲位」時倉儲代號=隸屬倉庫 |
| 途程序號 / 工程代號 / 批號別 / 批號 | 帳的細分鍵;勾對應「不分」核取方塊時清空或歸 0 |
| 品名 / 單位 | 取自品號主檔 |
| 期初數量 / 期初金額 | 期初基準(最近成本月份 + 成本截止日至起始日的期前異動加總) |
| 入庫 / 出庫數量、金額 | 區間內非盤點單(單號非 AA 開頭)異動的入、出庫合計 |
| 盤差數量 / 盤差金額 | 區間內盤點單(單號 AA 開頭)的入庫減出庫淨額 |
| 期末數量 / 期末金額 | =期初+入庫-出庫+盤差(自動計算) |
| 品號結尾 | 同一品號群組的最後一列為 .T.(報表分組用) |
| 其他鍵 | 途程序號+工程代號+批號別+批號 組成的細分鍵 |
分類進出帳—明細欄位¶
| 欄位 | 說明 |
|---|---|
| 倉單號 / 單號 | 該筆異動的倉庫單號與來源單號 |
| 交易日期 | 異動日期;期初列固定顯示「期初」標記 |
| 交易部門 / 交易簡稱 / 交易別碼 | 異動對象與交易類別 |
| 入庫 / 出庫數量、金額 | 該筆異動的進出量與金額 |
| 結餘數量 / 結餘金額 | 逐筆累計:期初起,每列=前一列結餘+入庫-出庫 |
| 單位成本 | 該筆異動的單位成本 |
| 備註 | 異動備註 |
日記帳欄位¶
| 欄位 | 說明 |
|---|---|
| 倉單號 / 單號 | 單據編號 |
| 交易日期 | 單據日期 |
| 幣別 / 匯率 | 原幣別與匯率 |
| 隸屬倉庫 / 轉入倉儲 / 轉出倉儲 | 倉庫與調撥方向 |
| 交易部門 / 交易簡稱 / 需求部門 / 部門簡稱 | 交易與需求單位 |
| 品號 / 品名 / 途程序號 / 工程代號 / 批號別 / 批號 | 品項與細分鍵 |
| 數量 / 單位 / 單價 | 異動數量與單價(RD 退貨列為負) |
| 其他金額 / 金額 | 金額取本幣未稅;RD 退貨列為負 |
| 採購單pkid | 來源採購單關聯鍵 |
欄位連動與附加功能¶
這一節把「輸入某欄位 / 按某按鈕後系統實際會做什麼」逐條列出,全部來自程式碼。
開窗時的初始化¶
- 起迄倉庫自動帶入:開啟視窗時,系統讀倉庫主檔(gstkbas)所有隸屬倉庫,取排序後第一個同時填入起始倉庫與截止倉庫。若倉庫主檔為空,兩格留白。
- 截止欄位帶哨兵值:起迄倉儲/品號/群組/儲位的「截止」欄一律預設
zzzzzz,日期欄預設今天。這是為了在你不設上限時,範圍查詢自然「查到最大」。
起始倉庫 → 截止倉庫(LostFocus 連動)¶
- 當你在起始倉庫輸入一個非空白的倉庫後,系統會自動把同一個值複製到截止倉庫。用意是「預設只查單一倉庫」;要跨多倉時,輸入起始倉庫後再手動把截止倉庫改大。
索引別 → 主表即時重排¶
- 在分類進出帳頁切換 索引別(倉庫排序/品號排序)時,只要主表已有資料,系統會立即就地重排主表,不會清掉結果、也不需要再按查詢。
倉庫排序:隸屬倉庫 → 倉儲代號 → 品號 → 其他鍵。品號排序:品號 → 隸屬倉庫 → 倉儲代號 → 其他鍵。
選主表列 → 帶出對應明細¶
- 點選主表任一列時,系統用該列的帳鍵(倉庫+倉儲+品號+工程+批號)到明細字典取出對應該條帳的逐筆異動填入下方明細格。沒有選取或查無對應時明細清空。
按「查詢」(分類進出帳)會做的事¶
- 先做兩道檢核(起迄倉庫不可全空、範圍內須有倉庫)。
- 對範圍內每一個隸屬倉庫各呼叫一次
DARB_GINVBOOK,帶入品號(或群組)+儲位範圍條件、起迄倉儲、起迄日期;每次回傳 5 個結果集(期初成本、期前異動、區間交易、倉儲組合、品號分類)。 - 在前端重算:
- 期初=最近成本月份的期初 +(成本截止日~起始日)期前異動的入庫減出庫。
- 明細逐筆結餘=沿異動順序累加(期初列在最前)。
- 盤差:單號
AA開頭的異動歸入盤差數量/金額(入庫減出庫),其餘歸入庫/出庫。 - 不分儲位/工程/批號 勾選時,在組鍵階段就把對應欄位清空或歸 0,使多列合併成一條帳。
- 過濾主表:勾「期末不為0」時刪除期末數量=0 的列;未勾時刪除「所有數量皆 0 且只有一筆期初明細」的列(保留有實際異動的帳)。
- 回填品名/單位/分類,標記每個品號群組的「品號結尾」,最後依索引別排序。
按「日記帳查詢」會做的事¶
- 同樣先做兩道倉庫檢核。
- 呼叫
DARB_GINVBOOK1,帶入起迄倉庫、品號(或群組)+儲位範圍、起迄倉儲、起迄日期。 - 若單據別=進貨,額外加上
LEFT(單號,2) IN ('RC','RD','MG')只取進貨/退貨/雜收單據。 - 回傳後,把單號
RD開頭(退貨)列的數量、其他金額、金額取負,最後依品號排序顯示。
Excel 匯出(IExcel)¶
- 工具列的 Excel 匯出會把三份資料一次輸出到同一個活頁簿的三個工作表:分類進出帳(主表彙總)、進出明細(所有條帳的明細合併)、日記帳(日記帳結果),檔名
ginvbook。主表雖然畫面上不顯示分類 1~6/尺寸,但這些欄位有備齊並隨 Excel 匯出,供模具/尺寸分析使用。
列印與工作流程紀錄¶
- 列印:本程式有報表資料時(主表有列)才允許列印;目前以新版共用列印框架輸出。
- 工作流程紀錄:繼承自共用查詢框架,可把本次查詢登錄為一筆紀錄(需有資料才能登錄)。
規劃中:報表版型與樞紐分析
舊版可選「明細 / 彙總 / 模具表」三種報表格式,以及把結果丟進本機 Excel 樞紐檔做樞紐分析。新版尚未移植這兩項;模具表所需的分類資料已保留在匯出資料中,但專屬版型仍規劃中。
常見問題¶
按查詢出現「請先輸入起迄倉庫代號 !!!」?
起始倉庫與截止倉庫同時為空就會被擋。正常情況開窗會自動帶入第一個倉庫;若被清空,請至少在起始倉庫填一個倉庫(系統會自動帶到截止倉庫)。
按查詢出現「查無隸屬倉庫資料 !!!」?
代表你設定的起迄倉庫範圍內找不到任何倉庫。請確認倉庫代號拼字正確、起始倉庫不大於截止倉庫,且該倉庫存在於倉庫主檔。
查詢結果是空的,但庫存明明有東西?
依序確認:(1) 日期區間——預設起訖都是「今天」,要看歷史異動請把起始日期往前調;(2) 截止欄位——若手動清掉 zzzzzz 又留空,範圍上限會變成空字串而查不到資料,建議保留 zzzzzz;(3) 條件別——選「品號」卻填了群組範圍(或相反)不會生效;(4) 未勾「期末不為0」時,全程沒有異動且期初為 0 的帳會被自動濾掉。
期初數量/金額看起來不對,或是 0?
期初是用最近一次成本月份的期初,再加上「成本截止日到查詢起始日」之間的期前異動算出來的。若該品號尚未跑過月成本結帳,或成本月份與查詢起始日之間缺異動資料,期初就可能為 0 或與預期不符。
日記帳查不到某些單據?
單據別預設是「進貨」,只會撈單號開頭 RC/RD/MG 的單據。要看全部進出單據,請把單據別改成 ALL 再按一次 日記帳查詢。
日記帳裡退貨單的數量/金額是負的,正常嗎?
正常。系統刻意把單號 RD 開頭(退貨)的數量、其他金額、金額以負值呈現,方便和正向進貨抵銷後得到淨額。
切換索引別後資料沒變?
索引別只重排已查出的分類進出帳主表。若主表還沒有資料(尚未按查詢),切換不會有任何效果;請先查詢再切排序。
相關功能¶
- 庫存資料查詢(GINVENT) — 即時庫存量查詢,與本帳冊互為「現況」對「異動歷程」
- 盤點單(GINVREC) — 期末盤點差異調整來源之一
- 暫收單(GPURAMA) — 採購暫收入庫
- G出貨單(GTRSAMA) — 雜項出貨/出庫異動來源
- 成本查詢(GCOST) — 期初成本與單位成本的來源
- 總務模組首頁
- 庫存模組
- 成本模組
需補截圖清單
以下截圖待功能 runtime 驗收後補拍(放 docs/C-GeneralAffair/images/):
ginvbook-step1.png— 條件面板全貌(起迄倉庫、不分儲位/工程/批號、條件別/單據別)ginvbook-step2.png— 分類進出帳頁籤:上方索引別+主表+下方明細(含期初列與逐筆結餘)ginvbook-step3.png— 日記帳頁籤查詢結果(含退貨列負值)