跳轉到

程式資訊

  • 程式 IDPROJECTCOST
  • 所屬子系統:K.成本管理
  • 狀態:stable

專案成本查詢

功能簡介

「專案成本查詢」把同一個專案(依「專案代號+收貨地址」配對)底下的收入、成本與其他費用從相關單據彙總起來,算出每個專案的毛利,並可往下展開到單據層級的明細。適合成本會計、財務人員或專案負責人回答:

  1. 這個專案總共出了多少貨(收入)?
  2. 為這個專案進了多少料、成本是多少(成本,含製成品的報價成本)?
  3. 還掛了哪些其他費用(其他成本)?
  4. 結算下來這個專案賺不賺錢(毛利)?

查詢來源是 SP TWORK_QRY_PROJECTCOST,它一次回傳四份資料:出貨明細(收入)、進貨明細(成本)、費用申請明細(其他成本),以及製成品的報價單價(用來補算報價成本)。畫面上半部是專案彙總,下半部是選定專案的單據明細,最後一列自動加上合計

「專案」的識別方式

本查詢以「專案代號 + 收貨地址(ShipToAddress)」當作一個專案的識別鍵。也就是說,同一個專案代號若對應到不同收貨地址,會被視為不同的彙總列分開計算。

前置需求

  • 權限:K.成本管理 → 專案成本查詢 的瀏覽權限(列印需另有列印權限)。
  • 基礎資料:查詢結果的完整度取決於下列單據是否已正確填上專案代號——沒有填專案代號的單據不會被歸入任何專案。
資料 影響的結果
出貨/銷貨單據(TRSAMA,需有專案代號) 收入(Revenue) 與明細的出貨列
進貨單據(TRRAMA,需有專案代號) 成本(Costs) 與明細的進貨列
費用申請單據(PAYAPPLY,需有專案代號) 其他成本(OtherCosts) 與明細的費用列
製成品報價(SPPDT,依品號帶單價) 製成品(製成品類別=10)的報價成本
專案主檔(A 系統/基本資料的專案維護) 條件面板專案搜尋的名稱、可挑選的專案範圍

操作步驟

本表單為查詢報表,主要動作是「設條件 → 查詢 → 看彙總與明細 →(選用)列印/樞紐分析」,不提供新增、修改、刪除。

步驟① 設定查詢條件

  1. 輸入年度月份起訖(格式 YYYY/MM)。預設為當年度 當年/01 ~ 當年/12。系統實際比對的期間會把起日補成該月 1 號、訖日補成該月 31 號(例如 2026/01 ~ 2026/12 等同 2026/01/01 ~ 2026/12/31)。
  2. 輸入專案起訖代號(可用右側搜尋鈕挑選,挑到後右邊欄會顯示專案名稱)。
    • 起始專案預設空白、截止專案預設 zzz,等於涵蓋全部專案。
    • 若起始專案填 ALL、或起訖任一欄留空,系統會自動視為全部專案(起=空、訖=zzzzzz)。

步驟② 執行查詢

  1. 按工具列的 查詢
  2. 上半部專案彙總格線列出每個「專案代號+收貨地址」的收入、成本、其他成本與毛利,並依專案代號、收貨地址排序。
  3. 最後自動附一列 合計,把所有專案的各金額加總。

步驟③ 檢視單據明細

  1. 在上半部點選任一專案列。
  2. 下半部明細格線會同步顯示該專案底下的所有來源單據(出貨、進貨、費用、以及製成品的報價成本列)。
  3. 點選合計列時,下半部會顯示所有專案的全部明細。

步驟④(選用)列印 / 樞紐分析 / 匯出

  1. 工具列的 列印 可把查詢結果送進報表列印流程。
  2. 工具列的樞紐分析會把明細資料丟進樞紐(PivotSource)讓你自由拖拉維度做交叉分析。
  3. 格線本身(上半部彙總、下半部明細)皆可在格線右鍵選單匯出 Excel

小技巧

改了條件(年度月份或專案範圍)後,直接再按一次 查詢 即可重算;切換上半部不同專案列只會換下半部明細,不需重查。

欄位說明

查詢條件

欄位 必填 說明 / 格式 / 預設
年度月份(起) 格式 YYYY/MM;預設 當年/01,查詢時補成該月 1 號
年度月份(訖) 格式 YYYY/MM;預設 當年/12,查詢時補成該月 31 號
專案(起) 預設空白;填 ALL 或留空=全部專案
專案(訖) 預設 zzz;留空時系統改用 zzzzzz(全部)

專案彙總格線(上半部)

欄位 說明
專案代號(Project Code) 專案的識別碼;合計列顯示「合計」
收貨地址(Ship To Address) 與專案代號合併成彙總鍵
收入(Revenue) 該專案所有出貨單據小計(AmountSubtotal)加總,本幣
成本(Costs) 該專案所有進貨單據小計加總 + 製成品報價成本,本幣
其他成本(Other Costs) 該專案所有費用申請單據小計加總,本幣
毛利(Gross Profit) = 收入 + 成本 + 其他成本(成本/其他成本在內部已轉為負值,故實際等同「收入 − 成本 − 其他費用」)

單據明細格線(下半部)

欄位 說明
單據類別(Document Type) 來源別;製成品自動補算的列為「成本」
單號(Document No) 來源單號;報價成本列顯示報價單號
單據日期(Document Date) 來源單據日期;報價成本列顯示報價日期
專案代號 / 收貨地址 與上半部彙總鍵對應
品號(SKU)/ 品名(SKUDescription) 該明細的品號與品名
數量(Quantity) 該明細數量(兩位小數)
單價(Unit Price) 該明細單價;報價成本列為製成品報價單價(兩位小數)
未稅金額(Amount Without Tax) 未稅金額;進貨與費用列已轉為負值
其他金額(Other Amount) 明細的其他金額
調整未稅金額(Adjust Amount Without Tax) 調整未稅金額;進貨與費用列已轉為負值
金額小計(Amount Subtotal) = 未稅金額 + 調整未稅金額(彙總列的收入/成本/其他成本即由此加總)
說明(Description) 明細說明;報價成本列固定為「報價成本」
SKU 1 / 起點 / 終點 / 日期1 / 數量1 / 數量2 SP 回傳的附帶欄位(依單據來源填入,部分明細可能為空)

金額正負與「成本」的呈現

為了讓「收入 + 成本 + 其他成本」一條公式就能得到毛利,系統在彙總時把進貨費用的金額轉成負數再加總。因此明細裡這些列的金額會顯示為負值,這是設計上的正負約定,不是資料錯誤。

欄位連動與附加功能

這是本頁最關鍵的一節,說明「輸入某欄位後系統會做什麼」「按某按鈕會發生什麼」,全部來自實際程式碼。

條件預設值(開窗即帶)

  • 開啟表單時,年度月份自動帶入 當年/01 ~ 當年/12(取系統當年)。
  • 截止專案預設帶 zzz起始專案預設空白,等於「不限專案、全部查」。

專案範圍的「全部」判定

當你按 查詢 時,系統會先判斷專案範圍:

  • 起始專案輸入 ALL(不分大小寫),或起訖任一欄留空 → 系統自動把範圍改成「空 ~ zzzzzz」,等於查全部專案。
  • 否則就照你輸入的起訖代號區間查。

年度月份的自動補日

  • 查詢時系統把起月補成「該月 /01」、訖月補成「該月 /31」再送進 SP。所以你只需填到月份,不需填日。

查詢 後系統做的彙總運算

查詢 後,系統呼叫 SP TWORK_QRY_PROJECTCOST 取回四份資料,再依「專案代號+收貨地址」逐一彙整:

  1. 收入:把該鍵的所有出貨明細金額小計加總。
  2. 成本:把該鍵的所有進貨明細金額小計加總(進貨金額已轉負),再加上製成品的報價成本
  3. 其他成本:把該鍵的所有費用申請金額小計加總(費用金額已轉負)。
  4. 毛利:= 收入 + 成本 + 其他成本(內部負值約定使其等同收入扣成本扣費用)。
  5. 彙總列依專案代號、收貨地址排序,最後再追加一列合計

製成品的「報價成本」自動補列

  • 對於出貨明細製成品類別(SKUCategory)=10 的品號,系統會去查該品號的報價單價(SPPDT)
  • 找得到報價時,系統用「出貨數量 × 報價單價(四捨五入至整數)」算出一筆報價成本,加進該專案的成本,並在下半部明細補一列「單據類別=成本、說明=報價成本」的列,方便你看到成本是怎麼來的。
  • 找不到該品號報價時,就不會有報價成本列,該製成品的成本不計報價成本。

上下格線連動

  • 上半部專案彙總與下半部單據明細是主從連動:下半部 DataContext 綁定上半部選取列的 Details點哪個專案就看哪個專案的明細
  • 點選合計列時,下半部顯示的是所有專案明細的彙整(合計列的 Details 收納了全部明細)。

工具列附加功能

  • 查詢:執行上述彙總,結果灌進上下兩個格線。
  • 列印:本表單實作列印介面(IUpdatePrint),可把查詢結果送入報表列印。
  • 樞紐分析:本表單實作樞紐來源(IPivotSource);按樞紐時會把所有明細(PivotSource)寫進暫存 SQLite 再丟進樞紐工具,讓你自訂列/欄/值做交叉分析。
  • 工作流程紀錄:基底提供的查詢工作流程紀錄功能;無資料時會提示「無資料」。
  • 匯出 Excel:兩個格線皆可由右鍵選單匯出。

報表版型尚未提供

目前程式碼僅實作通用列印介面,未內建專屬的報表版型(.frx)。實際列印效果以系統內建通用報表為準;若需專屬版型請另行需求。

常見問題

為什麼某張單據沒被歸到任何專案?

本查詢以單據上的專案代號配對。出貨、進貨、費用申請單據若沒有填專案代號,就不會出現在任何專案的彙總與明細裡。請回到原單據補上專案代號後重查。

同一個專案怎麼出現了好幾列?

彙總鍵是「專案代號+收貨地址」。同一專案代號若對應多個收貨地址,會被拆成多列分別計算。若要看整個專案的合計,請參考最後一列合計,或自行用樞紐分析以專案代號彙總。

為什麼成本/其他成本是負數?

這是設計上的正負約定:為了用「收入 + 成本 + 其他成本」一條式子算出毛利,系統把進貨與費用金額轉成負值。明細看到負數屬正常,毛利數字才是最終要看的結果。詳見欄位連動與附加功能

某個製成品沒有出現「報價成本」列?

報價成本只對製成品類別=10 的出貨品號補算,而且該品號要在報價(SPPDT)中查得到單價。若該品號不是製成品、或沒有維護報價,就不會產生報價成本列,成本也不含這筆。

查不到任何資料?

請依序確認:(1) 年度月份起訖區間內確實有出貨/進貨/費用單據;(2) 專案範圍沒有把目標專案排除(不確定時把起始專案填 ALL 查全部);(3) 單據確實有填專案代號。

改了年度月份卻沒變化?

年度月份與專案範圍屬於查詢條件,改完要再按一次 查詢 才會重新取數。切換上半部專案列只是換下半部明細,不會重查。

相關功能


需補截圖清單

以下截圖待功能 runtime 驗收後補拍(放 docs/K-Cost/images/):

  1. projectcost-step1.png — 條件面板(年度月份起訖、專案起訖搜尋)
  2. projectcost-step2.png — 上半部專案彙總格線(含收入/成本/其他成本/毛利與合計列)
  3. projectcost-step3.png — 下半部單據明細格線(含製成品「報價成本」列)