跳轉到

程式資訊

  • 程式 IDCOMPLAIN
  • 所屬子系統:J.品質管理
  • 狀態:stable

客訴單

功能簡介

「客訴單」用來逐月記錄並追蹤客戶抱怨——以「年度月份」為單據主鍵,明細逐筆登錄某個客戶、聯絡人、抱怨事項、責任單位、處理情形與是否結案。主要使用者是品管人員與品管主管,位於品質管理流程的後段:

客戶反映 → 客訴(Complain)→ 維修(Repair)→ 出貨(E)

實務上,品管把同一個月份收到的客戶抱怨集中登在同一張客訴單上,依責任單位分派處理、追蹤處理情形,待問題解決後逐列勾選結案。

與營業模組「抱怨單」的區別

本頁是品質管理(J)的客訴單(程式代號 COMPLAIN,View 為 Twork_jqc_vw_complainm/d)。系統另有一支營業收款(E)的抱怨單(程式代號 CMPLAIN,選單 E-210),兩者來自相同的 VFP 來源(cmplain),欄位語意相近,但屬於兩支獨立程式、各自的資料表與單據編號規則,請勿混用。

前置需求

  • 權限:品質管理 → 客訴單 的新增/修改/刪除/瀏覽權限。
  • 基礎資料:明細的客戶連動需要下列主檔先維護完整——
資料 影響的結果
客戶主檔(客戶資料,含聯絡人 1/聯絡 1 電話) 明細輸入客戶代號後自動帶出的主要聯絡人、聯絡電話
客戶代號正確性 找不到客戶代號時相關欄位會留空

操作步驟

新增客訴單

  1. 開啟「客訴單」進入畫面,按工具列 新增
  2. 輸入 Year And Month(年度月份):格式 YYYY/MM(遮罩 YearAndMonth),例如 2026/06。這是本單據的主鍵。
  3. Document No(單號)Created Date(建檔日期) 由系統產生、唯讀,不需手動輸入(單號於存檔時自動帶為年度月份,詳見欄位連動與附加功能)。
  4. 視需要填寫 Notes(備註)
  5. 在下方明細格線逐筆登錄抱怨:
    1. 輸入 客戶代號Customer Code 欄)。系統自動帶出主要聯絡人(Primary Contact)與聯絡電話(Primary Contact Tel)
    2. 填寫 單號資料、抱怨事項、責任單位、處理情形
  6. 確認無誤後按工具列 儲存

明細日期欄目前為唯讀(已知缺口)

明細的 Date(日期) 欄在格線中設為唯讀(ForceReadOnly),新版尚未提供日期輸入或自動帶入的途徑(VFP 原版會把表頭年度月份帶入明細日期,新版該段對應程式碼 AfterAddNew 目前被註解停用)。但存檔檢核仍要求每列明細的日期月份等於表頭年度月份,因此此表單在新版尚未完整可用——詳見欄位連動與附加功能

修改與追蹤處理情形

  1. 用工具列的 查詢/上一筆/下一筆(MoveRecord)找到要追蹤的客訴單。
  2. 修改,更新明細的處理情形責任單位等欄位。
  3. 問題處理完成後,勾選該明細列的 Is Closed(是否結案) 核取方塊。
  4. 儲存

刪除空白明細

若某一列明細的日期抱怨事項都留白,存檔時系統會自動把該列視為刪除(不會存成空列),不需手動刪行。

刪除明細/整張單據

  • 刪除單列明細:選取明細列後刪除;存檔即移除。
  • 刪除整張客訴單:找到該單後按工具列 刪除

匯出明細

明細格線支援以右鍵匯出 Excel。

列印功能尚未移植

VFP 原版 cmplain 設有客訴單報表(印 = CMPLAIN_P,SCX_ORDP),但新版 ComplainViewModel 未實作列印介面(沒有 IPrintViewModel),工具列也未提供可用的列印動作。需要紙本時請先以明細格線右鍵匯出 Excel。

欄位說明

表頭(Master)

欄位 必填 說明/格式/預設
Document No(單號) 系統產生、唯讀;存檔時自動帶為年度月份字串
Year And Month(年度月份) 格式 YYYY/MM;本單據主鍵,未輸入無法存檔
Created Date(建檔日期) 系統產生、唯讀
Notes(備註) 最長 80 字

明細(Detail)

欄位 必填 說明/格式/預設
Line No(序號) 明細序號
Date(日期) 格式 YYYY/MM/DD;格線中唯讀ForceReadOnly),新版無輸入途徑。存檔檢核要求其月份等於表頭年度月份;日期與抱怨事項皆空白的列存檔時自動刪除
客戶代號(Customer Code) 透過客戶查詢欄(TsCustomerSeekGridViewColumn)輸入;輸入後自動帶出主要聯絡人與聯絡電話
Customer Name(客戶簡稱) 對應 DB 欄位;新版輸入客戶代號時並不會自動帶入此欄(見下方說明)
Primary Contact(主要聯絡人) 輸入客戶代號後自動帶出(客戶主檔的「聯絡人 1」)
Primary Contact Tel(聯絡電話) 輸入客戶代號後自動帶出(客戶主檔的「聯絡 1 電話」)
單號資料 相關單號(最長 20 字)
抱怨事項 抱怨內容描述(最長 80 字)
責任單位 負責處理的單位(最長 10 字)
處理情形 處理進度/結果(最長 20 字)
Is Closed(是否結案) 核取方塊,勾選=已結案;未勾選預設為未結案

欄位連動與附加功能

這一節說明「輸入某欄位後系統會做什麼」「按某動作會發生什麼」,全部依新版 C# 程式碼(ComplainViewModel / ComplainSave / Twork_jqc_vw_complaind­Source)與 VFP 原版 cmplain 行為整理。

明細輸入客戶代號 → 自動帶聯絡人與電話

當你在明細的客戶代號欄(CustomerCodeBinding)輸入並離開時,系統會用該代號查客戶主檔(Context.DescriptionHelper.GetCustomer),若查得到,會帶入兩欄:

  • Primary Contact(主要聯絡人) ← 客戶的「聯絡人 1」
  • Primary Contact Tel(聯絡電話) ← 客戶的「聯絡 1 電話」

客戶簡稱(Customer Name)目前不會自動帶入

與 VFP 原版不同,新版 CustomerCodeBinding 的 setter 只設定主要聯絡人與聯絡電話,並未回寫 Customer Name。客戶查詢欄(TsCustomerSeekGridViewColumn)雖設了 DescriptionBindingPath="客戶簡稱",但本明細 Source 的對應屬性名為 CustomerName(英文),description 回寫指向不存在的 客戶簡稱 屬性而靜默失效,因此客戶簡稱欄通常會留空。VFP 原版 sql_cuno1.Valid 則會一併帶出客戶名稱/簡稱,查無代號時跳「查無客戶代號」提示;新版查無代號時不另跳提示,相關欄位維持原值。

存檔前處理:單號自動帶年度月份

存檔時(HandleDataBeforeEndEdit),系統會把表頭的 Document No(單號)自動設為 Year And Month(年度月份)。因此單號不必、也無法手動輸入。

與營業版抱怨單的編碼差異

營業(E)版抱怨單的單號是「公司代碼 + 年度月份 + 流水」;本品質版客訴單的單號直接等於年度月份,沒有公司代碼前綴,畫面上也沒有「公司代碼」欄位。

存檔檢核(AllowSave)

按儲存時會依序檢查,任何一項不過就擋下並提示:

  1. 年度月份必填:未輸入時提示請輸入年度月份。
  2. 年度月份須為合法日期:把「年度月份 + /01」嘗試解析為日期,無法解析(例如 2026/13)時提示日期格式錯誤。
  3. 明細日期須落在表頭月份:每一列未標記刪除的明細,其日期的年月(前 7 碼)必須等於表頭年度月份,否則以「序號 + 日期格式錯誤」提示並擋存。

空白明細自動刪除

明細若抱怨事項與日期都空白,存檔時該列會被視為刪除(NeedDeleteFunction),不會留下空列——對應 VFP 原版「日期為空且抱怨事項為空 → 標記增刪修 = D」的邏輯。

移動單據(上一筆/下一筆)

本程式支援單據逐筆瀏覽(IMoveRecord);移動到不同單據時會重新載入該單的表頭與明細。

其他 1 按鈕目前非客訴功能(規劃中)

程式內 其他 1ExtendedFunction1)目前的動作是開啟採購暫收英文版(Purama_E)視窗,這是從品質模組其他表單沿用過來的樣板殘留,與客訴單用途無關,並非可用的客訴功能。維修單(Repair)也有相同的殘留。請暫時不要使用此按鈕;正式的客訴延伸功能仍在規劃中。

常見問題

按了儲存,卻跳「請輸入年度月份」或日期格式錯誤?

年度月份是必填主鍵,且必須是合法的年月(格式 YYYY/MM)。系統會把「年度月份 + /01」當日期驗證,像 2026/13 這種不存在的月份會被擋下。請確認年度月份輸入正確。

存檔時提示某序號「日期格式錯誤」?

明細每一列的日期月份必須和表頭年度月份相同。例如表頭是 2026/06,明細日期就必須是 2026/06/xx。把該列日期改成同月份即可,或若該列是誤填的空列,把日期與抱怨事項都清空、存檔時會自動刪除。

明細輸入客戶代號後,聯絡人/電話沒帶出來?

主要聯絡人與聯絡電話是依客戶代號客戶主檔自動帶入的。若帶不出來,請確認:該客戶代號存在於客戶主檔,且客戶主檔有維護「聯絡人 1」「聯絡 1 電話」。代號錯誤或客戶未建檔時欄位會留空。請注意客戶簡稱(Customer Name)在新版並不會自動帶入(屬於已知缺口,見欄位連動與附加功能)。

明細列空白,存檔後消失了?

這是預期行為。日期與抱怨事項都空白的明細列,存檔時會被自動刪除,避免留下無意義的空列。要保留某列請至少填入日期或抱怨事項。

「其他 1」按鈕開出來的是採購暫收視窗,是壞掉了嗎?

那是樣板沿用造成的殘留,與客訴單無關(維修單也有同樣情況),並非可用功能。請勿使用該按鈕,正式的客訴延伸功能仍在規劃中。詳見欄位連動與附加功能

為什麼單號不能自己打?

單號由系統在存檔時自動帶為「年度月份」,刻意設為唯讀。需要區分不同客訴單時,請以年度月份來分。

相關功能


需補截圖清單

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

  1. complain-step1.png — 客訴單整體畫面(表頭年度月份/備註 + 明細格線)
  2. complain-step2.png — 明細輸入客戶代號後自動帶出主要聯絡人/聯絡電話
  3. complain-step3.png — 勾選「是否結案」核取方塊的明細列