跳轉到

程式資訊

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

群組表列印

功能簡介

「群組表列印」是 群組設定(群組分類碼) 主檔的列印伴隨頁,用來把已維護好的群組資料輸出成報表(報表編號 B080-1,報表抬頭「群組表」)。它本身不是一支獨立的維護程式,而是從群組設定主檔工具列按 列印 時跳出的條件對話框:你在這裡指定要印哪一段群組代號,系統就把該區間內的群組(含各層分類與自訂內容)排版成 A4 報表供預覽或列印。

適用對象是需要把編碼結構交付給現場、稽核或外部單位的管理人員。實際的群組新增、修改、6 層分類與串聯編號規則,請回到主檔 群組設定(群組分類碼) 操作。

與主檔共用程式

本頁的 ViewModel(GrpmPrintViewModel)掛在群組設定主檔(ProgramClass.GRPM)的列印框架下,因此沒有自己的主選單入口;它只能從群組設定工具列的 列印 開啟。

前置需求

  • 權限:B.基礎資料 → B-080 群組設定列印權限(沿用主檔 GRPM 的權限,沒有獨立的列印權限項目)。
  • 基礎資料:報表內容完全來自群組主檔,下列資料的維護狀況決定印出來有沒有東西——
資料 影響的結果
群組主檔(群組代號、說明) 報表列出的群組與其說明;沒有群組就印不出內容
群組 6 層分類(分類1~分類6) 報表中各群組的分類結構
群組自訂內容(明細:序號/選項/內容) 報表中每個群組底下的明細列

操作步驟

  1. 群組設定(群組分類碼) 主檔,先用工具列移動到任一筆群組(讓畫面上有「目前群組代號」)。
  2. 按主檔工具列的 列印,系統開啟「群組表列印」條件視窗。
  3. 視窗預設已把目前這筆群組代號同時帶進起始群組代號截止群組代號,並自動帶出對應的群組說明(唯讀)。若只想印這一筆,直接進下一步即可。
  4. 要印一段區間時,點起始群組代號截止群組代號旁的搜尋方塊,從群組清單挑選起、迄代號;選定後右側唯讀欄會即時顯示該群組的說明
  5. 確認區間無誤後,按列印框架的 預覽列印
    • 預覽:在畫面上開啟報表預覽,可再決定是否實際送印或匯出。
    • 列印:直接送至印表機。
  6. 列印完成後關閉視窗回到群組設定主檔。

小技巧

起始與截止可以填同一個群組代號,代表只印單一群組;若要印全部,把起始留最小、截止填到最大的群組代號即可。

欄位說明

欄位 必填 說明/格式/預設
列印條件(Group Code) 單選鈕,固定為「群組代號(DocumentNo)」條件;本報表只支援依群組代號區間列印,沒有其他條件可選
起始群組代號 區間起點。開窗時預設=主檔目前群組代號;可用搜尋方塊改選。最長 20 碼
截止群組代號 區間終點。開窗時預設=主檔目前群組代號;可用搜尋方塊改選。最長 20 碼
起始說明 唯讀,依起始群組代號自動帶出該群組的「說明」
截止說明 唯讀,依截止群組代號自動帶出該群組的「說明」

起訖必須都有值才會印

系統會檢查起始群組代號截止群組代號是否都已填寫;只要有一邊空白,列印框架會判定「沒有報表資料」而不產出報表(對應程式 HaveReportData)。

欄位連動與附加功能

這一節把「輸入某欄位/按某按鈕後系統會做什麼」整理出來,全部來源於實際程式碼(GrpmPrintViewModelGrpmViewModel.GetPrintViewModelGrpmPrint.xaml)。

  • 開窗時自動帶起訖(來自主檔目前資料):從群組設定主檔按 列印 開啟本頁時,系統把主檔目前那筆的群組代號同時填入起始截止,並各自呼叫群組說明查詢把起始說明/截止說明一併帶出。因此一開窗預設就是「印目前這一筆群組」。

  • 搜尋方塊選代號後,說明即時更新:起始/截止旁的搜尋方塊使用群組搜尋(GroupSearch)樣式,挑到群組後會把該群組的說明回填到旁邊的唯讀欄位。此搜尋方塊不檢核輸入值是否存在CheckDataExist=False),代表可手動鍵入代號;但若鍵入的代號在群組主檔查不到,說明欄就會是空白。

  • 列印條件固定為群組代號:畫面上的單選鈕綁定 Condition,預設且唯一可選的就是「群組代號」(PrintConditionEnum.DocumentNo)。本報表沒有提供依日期、群組別等其他維度列印的選項。

  • 送印時帶入的報表參數:按列印時,系統把起始群組代號截止群組代號當作報表參數(BeginningDocumentNoEndingDocumentNo)傳給報表引擎,由報表依此區間撈取群組資料。

  • 報表清單(可印的報表):本頁提供一份報表——

    報表編號 報表名稱 報表抬頭 尺寸 區域
    B080-1 Grpm 群組表 A4 TW

    報表資料來源對應 SQLite 報表資料表 rpt_b080_grpm_report1

  • 起訖必填檢核(擋空白列印):列印前框架會呼叫 HaveReportData(),只要起始或截止群組代號為空白即回傳「無資料」,不會送印。

報表內的明細排版由 .frx 決定

群組的 6 層分類與自訂內容(序號/選項/內容)是否完整呈現在報表上,取決於 B080-1 報表範本(.frx)的設計與其對應的查詢;本條件頁只負責決定「印哪一段群組代號」。

常見問題

按了列印卻沒有出現報表,畫面也沒反應?

多半是起始或截止群組代號為空白。本報表規定起訖都要有值才會產出(程式以 HaveReportData 檢查)。請確認兩個欄位都已填或選取群組代號後再按一次列印。

起訖旁的說明欄是空白?

說明欄是依群組代號去群組主檔查「說明」回填的。若手動鍵入了一個主檔不存在的群組代號,或該群組根本沒填說明,旁邊就會是空白。由於搜尋方塊未開啟存在性檢核(CheckDataExist=False),建議改用搜尋方塊挑選,避免打錯代號。

為什麼起訖一開窗就自動帶了代號,不是空的?

這是設計行為:從群組設定主檔按 列印 時,系統把主檔目前那一筆的群組代號同時帶進起始與截止,方便你「印目前這一筆」。要印區間時再用搜尋方塊改起訖即可。

找不到「群組表列印」的主選單入口?

它沒有獨立入口。本頁是 群組設定(群組分類碼) 的列印伴隨頁,只能從群組設定主檔工具列的 列印 開啟。

可以依日期或群組別列印嗎?

目前不行。本報表的列印條件固定為「群組代號」區間(PrintConditionEnum.DocumentNo),沒有提供其他維度的篩選。

相關功能


需補截圖清單

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

  1. grpmprint-step1.png — 從群組設定主檔工具列按「列印」的位置
  2. grpmprint-step2.png — 群組表列印條件視窗(起訖群組代號 + 說明)全貌
  3. grpmprint-step3.pngB080-1 群組表 報表預覽畫面