跳轉到

程式資訊

  • 程式 IDUNITBA
  • 所屬子系統:B.基本資料
  • 狀態:stable

單位表

功能簡介

「單位表」維護整套系統會用到的計量單位(Unit of Measurement)主檔,例如 PCSKGM公升 等。每一個品號(料件、半成品、成品)在建檔時都要指定計量單位,之後的銷售訂單、採購單、進銷存異動、生產領料等單據都沿用這個單位來計數。

這是一支單純的設定主檔,由資訊或基礎資料管理人員在系統導入初期建立,日後僅在新增單位時才會用到。除了單位代號與說明,每個單位還可設定小數位數,控制使用該單位的數量在各單據上要顯示/允許輸入到小數第幾位。

名稱說明

本程式在舊版程式對照表(programmap)中標示為「單位轉換表」,但目前的 C# 版本只維護單一計量單位主檔,沒有兩種單位互相換算的功能。實際畫面與報表抬頭都是「單位表」,故本頁以「單位表」為準。若需要不同單位間的換算,請於品號主檔以各自的單位與數量分別記錄。

前置需求

  • 權限:B.基礎資料 → B-010 單位表 的瀏覽權限(列印另需列印權限)。
  • 基礎資料:本表本身是其他主檔的前置資料,沒有上游相依的主檔;但它的下游影響很廣——
資料 影響的對象
單位代號 品號主檔(料件 / 成品)的計量單位欄位;單據上的數量單位顯示
小數位數 使用該單位之品號,其數量在銷售訂單採購單庫存異動生產等單據上的小數顯示與輸入精度

注意

單位代號一旦被品號或單據引用,就不應再隨意刪除或改碼,否則既有單據的數量單位會找不到對應。建議只「新增」單位,不要回頭刪改已使用的單位。

操作步驟

本表是標準的主檔維護畫面,畫面上方工具列提供新增、修改、刪除、查詢、列印等動作。

新增單位

  1. 按工具列的 新增,畫面進入新增狀態,游標自動停在 單位 欄(程式以 IsFocused 將焦點帶到單位代號輸入框)。
  2. 輸入 單位 代號(主鍵,例 PCSKG)。此欄為 TsPrimaryKeyTextBox,新增後即為該筆資料的識別鍵。
  3. 輸入 說明(單位的中文/文字說明,例 公斤)。
  4. 輸入 小數位數(0~9 的單一數字,預設不填為 0),決定使用此單位的數量要顯示/允許到小數第幾位。
  5. 儲存 寫入。

修改單位

  1. 在資料中找到要修改的單位(可用 查詢 縮小範圍)。
  2. 修改,調整 說明小數位數
    • 主鍵 單位 代號通常不建議變更(見上方注意事項)。
  3. 儲存

刪除單位

  1. 選取要刪除的單位。
  2. 刪除、確認。

    注意

    若該單位已被品號或單據引用,刪除後相關資料的單位會失去對應。刪除前請先確認沒有任何品號仍掛在這個單位上。

查詢與列印

  1. 查詢 依條件篩選單位清單。
  2. 列印/報表,可印出 單位表(報表編號 B010-1),列出系統內所有計量單位(本程式實作 IPrintSource,報表來源 rpt_b010_unitba_report1)。

欄位說明

欄位 必填 說明/格式/預設
單位 計量單位代號,主鍵。字串最長 20 碼。新增後作為品號與單據引用的識別鍵
說明 單位的文字說明。字串最長 50 碼。預設空字串
小數位數 使用此單位之數量的小數顯示位數。型別為 byte,輸入框 MaxLength=1(僅一位數字 0~9),預設 0

審核欄位

本 Source 另含建檔日期、審核人員、審核日期、已審核、工作流程等系統審核欄位,但畫面上未提供審核操作介面——單位表屬基礎設定主檔,新增即生效,毋須跑簽核流程。

欄位連動與附加功能

這支表單邏輯極為單純,沒有金額計算或欄位互算;但仍有幾個由程式行為驅動的連動點要留意:

  • 新增時自動聚焦單位欄:按 新增 後,VM 透過 FocusExtension.IsFocused 綁定,把鍵盤焦點直接帶到 單位 輸入框,可立即輸入代號不必用滑鼠點。
  • 單位是主鍵、會即時驗證單位 欄使用 TsPrimaryKeyTextBox,綁定設了 ValidatesOnExceptions,輸入重複或空白的代號時會觸發驗證錯誤紅框,擋下不合法的主鍵。
  • 小數位數限一位數小數位數 欄是 TsNumericTextBoxMaxLength=1PlaceEnum=Zero,所以只能輸入單一個位數(0~9),不會出現雙位數。這個值是給下游單據讀取、設定使用該單位之數量的小數呈現精度,這支表單本身只負責存值、不做任何計算。
  • 列印報表(GetReports:VM 提供 GetReports(),回傳一筆報表定義——報表編號 B010-1、抬頭「單位表」、台灣區 A4、資料來源 SQLite rpt_b010_unitba_report1。按工具列列印即印出此清單報表。
  • 多語系標籤(DisplayMeta):畫面三個欄位標籤(單位 / 說明 / 小數位數)走 DisplayMeta 多語系,對照檔在 Common/Lang/Xaml/Unitba.json,理應支援繁中/英/日/越。但本表單的綁定 key 與語系檔 key 全部對不上(見下方警示),實際上三個標籤目前都不會跟著語系切換翻譯。

已知標籤對應問題(三個標籤皆受影響)

本表單 XAML 的三個標籤都用中文字串當索引鍵——DisplayMeta[單位]DisplayMeta[描述]DisplayMeta[小數位數];但語系檔 Unitba.json 內的 key 是英文——UnitOfMeasurementUnitOfMeasurementDescriptionDecimalLengthDisplayMeta 字典是以語系檔的 key(英文)建立的(見 JsonDisplayNameService.GetDisplayDictionary),因此三個中文索引鍵全部查不到對應,索引器(DisplayMetaDicViewModel.this[key])在查無 key 時會回傳索引鍵字串本身。結果:

  • 三個標籤都不是落到 XAML 的 FallbackValue,而是顯示「索引鍵本身」(剛好都是中文字串「單位」「描述」「小數位數」,所以畫面看起來像正常中文)。
  • 切換語系(英/日/越)時,三個標籤都不會翻譯,永遠停在中文索引鍵。
  • 其中「說明」欄的標籤鍵是「描述」,與語系檔內該欄繁中值「單位說明」也不一致,即使修對 key,顯示字也會從「描述」變「單位說明」。

這是 Unitba.json 沿用英文 key、未跟其他表單一樣改成中文 key 造成的(多數表單語系檔 key 直接用中文字串,例如 Greqma.json"單位")。屬待修項目,不影響資料存取,只影響標籤文字與多語系翻譯。

規劃中/尚未提供

舊系統名稱暗示的「單位換算(多單位互相轉換)」功能,目前 C# 版本沒有實作——沒有換算率、沒有來源/目標單位欄位。本頁只描述既有的單一單位主檔維護。

常見問題

「說明」欄的標籤為什麼顯示「描述」而不是「單位說明」?切語系也不變?

這是 XAML 綁定 key 與語系檔 key 不一致所致:本表單三個標籤都用中文字串當索引鍵(描述單位小數位數),但 Unitba.json 的 key 是英文(UnitOfMeasurementDescriptionUnitOfMeasurementDecimalLength)。DisplayMeta 字典以英文 key 建立,查無中文索引鍵時索引器會直接回傳索引鍵字串本身,所以三個標籤都顯示中文索引鍵、切語系也不會翻譯(不只「說明」這一個受影響)。詳見欄位連動與附加功能的已知標籤對應問題。不影響資料,只影響標籤字面與翻譯。

小數位數可以填到 2 位以上嗎(例如要到 0.001)?

不行。小數位數MaxLength=1,只允許單一個位數字(0~9)。若品號需要更細的精度,須在系統允許範圍內設定,本欄上限為一位數。

這裡找得到單位換算(例如 1 箱 = 12 個)的設定嗎?

目前沒有。雖然舊版對照表把本程式標為「單位轉換表」,但現行版本只維護單一計量單位清單,沒有單位間換算功能。需要換算請於品號或單據以各自單位的數量分別記錄。

刪不掉某個單位?

多半是該單位已被品號或既有單據引用。請先確認沒有品號掛在這個單位上再刪;建議已使用的單位只保留不刪改,新增需求時改建新單位。

新增時游標跑到哪?要先填哪一欄?

新增 後游標會自動停在 單位(代號)欄,這是主鍵,必須先填且不可重複;接著再填說明與小數位數。

相關功能


需補截圖清單

以下截圖待 runtime 驗收後補拍(放 docs/B-BasicData/images/):

  1. unitba-step1.png — 單位表主畫面(單位 / 說明 / 小數位數 三欄)
  2. unitba-step2.png — 新增狀態下游標停在「單位」欄
  3. unitba-step3.png — 單位表報表(B010-1)列印預覽