程式資訊
- 程式 ID:
QRY_PROFIT_NOGI - 所屬子系統:M.主管資訊
- 狀態:stable
毛利率分析¶
版本狀態
本功能(程式 ID QRY_PROFIT_NOGI,選單代號 M-160)新版 TsERP(C#/WPF)已完成移植,提供出貨明細與產品/客戶/業務/客戶類別/日期/單號/群組七個彙總頁籤,並可列印兩張毛利彙總報表(見列印)。查詢條件、彙總邏輯與計算方式沿用 VFP 舊版(class qry_profit_nogi),下列說明對兩版皆適用;新版目前仍在 runtime 驗收階段,實際畫面文字若有微調以程式為準。
功能簡介¶
「毛利率分析」把一段期間內的出貨明細(出貨單、出貨退回單)逐筆抓出本幣未稅金額與成本,算出每一筆的利潤與整體毛利率,再從產品、客戶、業務員、客戶類別、日期、單號、群組七個面向做彙總排名。適合業務/財會主管回答:哪些產品、客戶、業務員最賺錢、哪些賠錢,以及整體毛利率水準。
資料來源是出貨交易主檔 trsama + 明細 trsade,只取交易別碼為 SA(出貨)、SB(出貨退回)、SF 的明細;退回單(SB)的數量與金額會轉成負數參與彙總。利潤的定義是 本幣未稅 − 成本,毛利率=利潤 ÷ 出貨金額 × 100。
此功能同時提供一條標準成本對照線:依「標準成本單號」帶入各品號的標準單位成本,算出標準成本與標準利潤,並可用「標準單位成本差異%」篩出實際成本與標準成本落差過大的明細。
前置需求¶
- 權限:M.主管資訊 →
M-160 毛利率分析的瀏覽(與列印)權限。 - 基礎資料:查詢結果的完整度取決於下列資料的維護狀況——
| 資料 | 影響的結果 |
|---|---|
出貨交易(trsama/trsade,交易別碼 SA/SB/SF) |
出貨明細的每一列、所有彙總與毛利率 |
客戶主檔(cudata) |
客戶簡稱/名稱、客戶類別、區域、經銷商、集團簡稱、送貨地點 |
品號主檔(invent)與群組主檔(grpm) |
品名、單位、容量、群組代號與群組說明 |
業務員主檔(salesmen) |
業務員姓名(含最新業務員與歷史業務員) |
標準成本(coststd_m/coststd_d1) |
標單位成本/標準成本/標準利潤,以及差異篩選 |
成本來自交易明細
每筆明細的成本/單位成本直接取自出貨明細 trsade 既有的成本欄位(出貨當下結轉的成本),不是本表單即時重算。若某筆出貨的成本為 0,利潤會等於整筆未稅金額,毛利率偏高,請回頭檢查該出貨單的成本是否正確結轉。
操作步驟¶
步驟① 設定查詢條件¶
在左側條件面板輸入篩選條件:
- 輸入客戶代號起訖(預設起
空白~訖zzzz,即不限制)。 - 輸入交易日期起訖(預設起=當月 1 日、訖=今天)。
- 輸入品號起訖(預設起
空白~訖zzzz)。 - 輸入業務員起訖(預設起
空白~訖zzzz)。 - 視需要輸入集團代號、隸屬倉庫、稅別做進一步篩選。
- 勾選要納入的單據類型:出貨單、出貨退回單(兩者預設皆勾)。
- 業務別(
最新業務員=取客戶主檔目前掛的業務員/歷史業務員=取出貨當下記的業務員):在 VFP 原版此選項預設為歷史業務員且畫面上隱藏(Visible=.F.),一般使用者看不到也改不到,實際固定以歷史業務員計算。 - 視需要勾選
客戶彙總依隸屬客戶(不含"A"開頭之品號勾選框雖在面板上,但舊版查詢程式並未讀取,目前不影響結果)。 - 確認標準成本單號:當你離開「起始日期」欄位時,系統會依該月份自動帶入最新的標準成本單號(見欄位連動與附加功能),也可手動修改。
步驟② 執行查詢¶
按條件面板的 查詢 鈕,系統清空舊結果後重新抓出貨明細,逐筆算出利潤與標準利潤,並同時建立七種彙總,結果分別顯示在右側八個頁籤(見結果頁籤主要欄位)。畫面下方同時顯示出貨總額(未稅)/成本總額/利潤總額/毛利率四個合計欄。
步驟③ 切換報表種類與篩選¶
- 各彙總頁籤上方的報表種類可切
名次(依利潤由大到小排名)或該頁的維度代號(第二顆選項標籤即該頁名稱,如產品/客戶/業務/類別…,實際按鍵值代號排序)。 - 在「出貨明細」頁,輸入標準單位成本差異%後按
篩選,只保留實際單位成本與標準單位成本落差達該百分比的明細(差異%填0=取消篩選)。
步驟④ 列印與匯出¶
新版列印報表
新版 TsERP 提供兩張標準彙總報表 M160-1 客戶毛利率分析表與 M160-2 品項毛利率分析表,詳見列印一節。下列 PFIT1_x 等套表對照為 VFP 舊版的明細列印慣例,供對照參考。
- 「出貨明細」頁的列印鈕上方有報表選擇(
客戶/產品/日期/單號/業務),決定列印明細時的排序與套表(PFIT1_1~PFIT1_5,VFP 舊版)。 - 按
預覽/列印/Email即依所選報表輸出;按Excel匯出成「毛利分析表」。 - 各彙總頁籤亦有各自的列印鈕與 Excel 名稱(如產品彙總、客戶彙總、族群彙總等)。
- 若資料表有對應的樞紐分析表範本,可按
樞紐分析表開啟 Excel 樞紐(見欄位連動與附加功能)。
欄位說明¶
查詢條件¶
| 欄位 | 必填 | 說明/格式/預設 |
|---|---|---|
| 客戶代號(起/訖) | — | 預設 空白~zzzz(不限制) |
| 交易日期(起/訖) | ✔ | 格式 yyyy/MM/dd;預設起=當月 1 日、訖=今天 |
| 品號(起/訖) | — | 預設 空白~zzzz |
| 業務員(起/訖) | — | 預設 空白~zzzz;依「業務別」決定比對最新或歷史業務員 |
| 集團代號 | — | 填入時加上 集團代號= 條件,產品彙總會帶集團代號/簡稱 |
| 隸屬倉庫 | — | 填入時只取該倉庫的出貨 |
| 稅別 | — | 填入時只取該稅別的出貨 |
| 標準成本單號 | — | 離開起始日期欄位時自動帶該月最新 A% 開頭成本單號,可手改 |
| 出貨單 | — | 勾選=納入交易別碼 SA(預設勾) |
| 出貨退回單 | — | 勾選=納入交易別碼 SB(預設勾,退回金額轉負數) |
| 業務別 | — | 最新業務員(cudata)/歷史業務員(trsama,預設);VFP 原版此控制項 Visible=.F. 隱藏,實務上固定走歷史業務員 |
| 不含"A"開頭之品號 | — | 條件面板上的勾選框,但 VFP 原版查詢程式並未讀取此值(勾選與否目前不影響結果,屬未啟用控制項) |
| 客戶彙總依隸屬客戶 | — | 勾選時客戶彙總改以集團(隸屬)客戶為單位彙總 |
| 標準單位成本差異% | — | 出貨明細篩選用,預設 10;填 0 取消篩選 |
結果頁籤主要欄位¶
| 頁籤 | 主要欄位 | 說明 |
|---|---|---|
出貨明細(profit1) |
客戶代號/簡稱、交易日期、倉單號、序號、品號/品名、數量、單價、原幣未稅、本幣未稅、單位成本、成本、利潤、標單位成本、標準成本、標準利潤、幣別、匯率、稅別、稅額、發票號碼、客戶品號、客戶類別、業務員、集團、經銷商、送貨地點 | 每筆出貨明細逐列;退回單金額已轉負 |
| 產品彙總(毛利產品別) | 名次、品號、品名、群組代號、出貨金額、出貨成本、利潤、毛利率、集團代號/簡稱 | 依品號彙總 |
| 客戶彙總(毛利客戶別) | 名次、客戶代號、客戶簡稱、業務員編號、姓名、出貨金額、出貨成本、利潤、毛利率 | 依客戶彙總(可改依隸屬客戶) |
| 業務彙總(毛利業務員別) | 名次、業務員編號、姓名、出貨金額、出貨成本、利潤、毛利率 | 依業務員彙總 |
| 類別彙總(毛利客戶類別) | 名次、客戶類別、出貨金額、出貨成本、利潤、毛利率 | 依客戶類別彙總 |
| 日期彙總(毛利日期別) | 名次、交易日期、星期幾、出貨金額、出貨成本、利潤、毛利率 | 依交易日期彙總 |
| 單號彙總(毛利單號別) | 名次、交易別碼、交易日期、客戶代號/簡稱、倉單號、出貨金額、出貨成本、利潤、毛利率 | 依倉單號彙總 |
| 群組彙總(毛利族群別) | 名次、群組代號、說明、出貨金額、出貨成本、利潤、毛利率 | 依群組(族群)彙總 |
頁面下方合計欄¶
| 欄位 | 說明 |
|---|---|
| 出貨總額(未稅) | 出貨明細本幣未稅加總 |
| 成本總額 | 出貨明細成本加總 |
| 利潤總額 | 出貨明細利潤加總(=未稅−成本) |
| 毛利率 | 利潤總額 ÷ 出貨總額 × 100(四捨五入 2 位;金額為 0 時顯示 0) |
欄位連動與附加功能¶
下列行為源自 VFP 原始碼、新版已一併實作,兩版邏輯一致。
起始日期離開 → 自動帶標準成本單號¶
- 當你輸入完起始日期並離開該欄位,系統會以該日期的年月(
yyyy/MM)去coststd_m找出最新一筆A%開頭的成本單號(MAX(成本單號),且銷貨年月=該月),自動填入標準成本單號欄位;查不到則清空。 - 你仍可手動覆寫標準成本單號,查詢時以欄位內的值為準。
按「查詢」時系統做的事¶
當你按 查詢,系統依序執行:
- 清空出貨明細(
profit1)與七個彙總暫存表。 - 依標準成本單號到
coststd_m/coststd_d1撈各組件的標準單位小計,建立標準成本對照索引。 - 用條件面板的值組出 SQL,從
trsama+trsade出發,LEFT JOIN 客戶(cudata,含集團)、業務員(salesmen)、品號(invent)、群組(grpm)撈出貨明細。固定條件是交易別碼IN ('SA','SB','SF')且日期/客戶/品號落在區間。 - 逐筆處理每一列明細:
- 空值轉 0(
U_NULLTOREAL)後計算。 - 業務別=最新業務員時,業務員編號/姓名改用客戶主檔目前掛的業務員(
最新業務)。 - 交易別碼為
SB(退回) 時,把數量、其他金額、原幣未稅/含稅、本幣未稅/含稅、成本全部變號為負。 - 利潤=本幣未稅 − 成本。
- 依品號 SEEK 標準成本:標單位成本=標準成本單號帶來的單位小計;標準成本=數量 × 標單位成本(四捨五入到指定小數位數);標準利潤=本幣未稅 − 標準成本。
- 空值轉 0(
- 依七個面向
GROUP BY出彙總(產品/客戶/業務員/客戶類別/日期/單號/群組),每個彙總都:- 算 毛利率=利潤 ÷ 出貨金額 × 100(出貨金額為 0 時毛利率 0)。
- 依利潤由大到小給名次(前 999 名給 0001~0999,第 1000 名以後皆顯示 1000)。
- 日期彙總另外算出該日的星期幾。
- 算出畫面下方四個合計欄並重整所有頁籤。
退回與出貨抵銷的方式
出貨退回單(SB)不是另列一筆正數退回,而是把該列的數量與金額直接轉成負數併入彙總。因此某產品/客戶若退貨多於出貨,其出貨金額、利潤可能為負,毛利率也會是負值。
業務別:最新業務員 vs 歷史業務員¶
- 歷史業務員(預設):以出貨單當下記錄的業務員(
trsama.業務員編號)為準,業務員區間也比對它。 - 最新業務員:改以客戶主檔目前掛的業務員(
cudata.業務員編號)為準,業務員彙總會跟著改用最新業務員。
業務別在 VFP 原版隱藏
業務別 選項在舊版的 Visible 設為 .F.(畫面上看不到),預設值固定在 歷史業務員,因此實務上一律以歷史業務員計算。新版移植時若要讓使用者切換,需把此控制項顯示出來。
客戶彙總依隸屬客戶¶
勾選 客戶彙總依隸屬客戶 後,客戶彙總頁不再以下單客戶為單位,而是改用集團(隸屬)客戶代號/簡稱做 GROUP BY,方便看整個集團的毛利。其餘頁籤不受影響。
標準單位成本差異篩選¶
- 在「出貨明細」頁輸入標準單位成本差異%後按
篩選:- 系統對每筆明細算
ABS((標單位成本 − 單位成本) / 單位成本 × 100),只保留達到或超過你設定百分比的明細,並把差異%標在「篩選」欄。 - 單位成本或標單位成本為 0 的明細,標記為
(標準)單位成本=0一併列出(提醒成本可能漏設)。
- 系統對每筆明細算
- 差異%填
0即清除篩選、顯示全部明細。
報表選擇與列印套表¶
- 「出貨明細」頁列印鈕上方的報表選擇決定明細列印的排序與套表:
客戶→PFIT1_1、產品→PFIT1_2、日期→PFIT1_3、單號→PFIT1_4、業務→PFIT1_5。 - 切換報表選擇會即時改變「出貨明細」頁的排序(客戶別/產品別/交易日期別/單號別/業務別)。
- 列印前若無資料會跳「無資料可列印」。
列印/預覽/Email/Excel¶
- 各頁籤的列印工具列提供預覽、列印、Email、Excel 四種輸出。
- Excel 匯出名稱:出貨明細=「毛利分析表」、產品彙總/客戶彙總/業務彙總/類別彙總/日期彙總/單號彙總=各頁名稱、群組彙總=「族群彙總」;彙總頁籤套表依序為
PFIT12(產品)、PFIT13(客戶)、PFIT14(業務)、PFIT15(類別)、PFIT16(日期)、PFIT17(單號)、PFIT18(群組)。
樞紐分析表¶
- 若該資料表設定了對應的樞紐分析表範本(
LCL樞紐分析表),「出貨明細」頁的樞紐下拉會列出可用範本,按樞紐分析表會把目前資料 COPY 到暫存目錄、開啟 Excel 範本並RefreshAll重新整理樞紐。 - 範本檔不存在時跳「查無樞紐分析表之檔案」。
包含金額選項
舊版另有一個 包含金額 勾選,只有當程式參數(IS_備註)含「單價」時才會顯示並預設勾選,一般情況隱藏,不影響毛利計算。
列印¶
新版 TsERP 在毛利率分析下提供兩張標準彙總報表(FastReport,A4),供財務部月報使用;兩張皆可加入自訂查詢面板的彙整列印,與其他月報查詢合併成單一 PDF。
| 報表編號 | 報表名稱 | 資料來源 | 內容與排序 |
|---|---|---|---|
| M160-1 | 客戶毛利率分析表 | 客戶彙總 | 只列毛利率低於 10% 的客戶,依毛利率由低到高排序,用於挑出低毛利客戶檢討 |
| M160-2 | 品項毛利率分析表 | 產品彙總 | 依品號(產品層)彙總,依毛利率由低到高排序,全品項皆列 |
兩張報表的表頭都會帶入查詢條件的交易日期起訖(報表期間)。
毛利率低於 10% 以紅字標示
兩張報表中毛利率低於 10% 的資料列,毛利率欄位會自動以紅字呈現(FastReport 原生 Highlight 條件格式),方便一眼看出低毛利的客戶與品項。M160-1 因為本身只收錄 <10% 的客戶,整份清單都是紅字。
操作方式:查詢出結果後,於工具列的列印/預覽入口選擇 M160-1 客戶毛利率分析表 或 M160-2 品項毛利率分析表,即可預覽、列印或匯出 PDF。
需先查出資料才能列印
列印前請先按 查詢 帶出資料;出貨明細為空時系統視為無可列印資料。
常見問題¶
查不到任何出貨資料?
請確認:交易日期區間(預設只有「當月」)內確實有出貨;且至少勾選了出貨單或出貨退回單其中一項。固定只抓交易別碼 SA/SB/SF 的明細,其他單別不在此報表範圍。
毛利率特別高或某筆利潤等於整筆金額?
利潤=本幣未稅 − 成本,成本取自出貨明細既有的成本欄位。若該出貨的成本為 0(漏結轉),利潤會等於整筆未稅、毛利率偏高。可用標準單位成本差異篩選把 (標準)單位成本=0 的明細挑出來檢查。
標準成本/標準利潤是 0?
標準成本來自標準成本單號。請確認:起始日期那個月有 A% 開頭的標準成本單(系統會自動帶入),且該品號在 coststd_d1 內有對應的標準單位小計。找不到標準單號時整欄會是 0。
某客戶或某產品的金額是負的?
出貨退回單(SB)的數量與金額會轉成負數併入彙總。若該客戶/產品的退貨大於出貨,金額、利潤與毛利率都會是負值,屬正常結果。
業務員彙總跟我認知的不一樣?
視業務別設定而定:歷史業務員(預設)用的是出貨當下記的業務員;最新業務員改用客戶主檔目前掛的業務員。兩者在客戶換業務後會不同。
列印出來的毛利率為什麼有些是紅字?
這是刻意的提醒:報表中毛利率低於 10% 的資料列,毛利率欄位會以紅字標示(FastReport 條件格式),方便挑出低毛利的客戶(M160-1)與品項(M160-2)檢討。
M160-1 客戶毛利率分析表為什麼只有幾筆?
M160-1 依設計只列出毛利率低於 10% 的客戶(依毛利率由低到高排序),是低毛利客戶檢討清單。若要看全部客戶的毛利,請改看畫面上的「客戶彙總」頁籤;若要看各品項毛利,請印 M160-2 品項毛利率分析表。
相關功能¶
需補截圖清單
待新版 runtime 驗收後補拍,放入 docs/M-EIS/images/:
qry_profit_nogi-step1.png— 查詢條件面板(客戶/日期/品號/業務/集團/倉庫/稅別/標準成本單號)qry_profit_nogi-step2.png— 出貨明細頁與下方合計欄(出貨總額/成本總額/利潤總額/毛利率)qry_profit_nogi-step3.png— 八個彙總頁籤切換(建議以產品彙總「名次」排序為主畫面)qry_profit_nogi-step4.png— 標準單位成本差異篩選與列印/Excel 工具列qry_profit_nogi-print-m160-1.png— M160-1 客戶毛利率分析表列印預覽(毛利率 <10% 紅字)qry_profit_nogi-print-m160-2.png— M160-2 品項毛利率分析表列印預覽(毛利率 <10% 紅字)