跳轉到

程式資訊

  • 程式 IDGTRLIMAPRINT
  • 所屬子系統:C.總務管理
  • 狀態:stable

領料單列印

功能簡介

「領料單列印」是領料單 / 倉庫異動單(GTRLIMA)的列印伴隨頁,用來把已建立的領料/倉庫異動單據以 FastReport 報表格式輸出。它本身不建立資料,只負責指定一段倉單號(WHTransactionNo)範圍,把對應的單據送進報表預覽、印表機、Excel 或 Email。

倉管或總務人員在領料單表單按工具列的列印鈕後,系統就會切到本頁,並以母表單畫面上第一筆單據的倉單號自動帶入起訖條件,按一下即可印出。

目前實作狀態

本頁的條件面板(By WH TransactionNo 選項、倉單號起訖)與「目前單據自動帶入」已可運作;但實際的報表取數邏輯在程式碼中尚被註解保留、未啟用——對應的報表取數 SP DARB_RPT_GTRLIMA 呼叫整段被註解掉(GetData() 不會真的查資料庫)。在此之前,列印面板可開啟、可輸入範圍,但報表內容尚未接上。下方各區塊提及「目前停用/保留」者,即屬此類尚未提供的行為。

與母表單的關係

本頁是一支獨立的程式(ProgramClass GTRLIMAPRINT),但沿用領料單主檔 GTRLIMA 的選單編號 C-080、並共用其資料與報表來源。新增、修改、刪除、異動明細等操作都在母表單領料單 / 倉庫異動單完成;本頁只處理「印什麼範圍」。

前置需求

  • 權限:C.總務 → 領料單列印(C-080)的列印權限;通常與領料單的瀏覽/列印權限一併開放。
  • 資料:要列印的領料/倉庫異動單必須已存在。
資料 影響的結果
領料單 / 倉庫異動單 已建檔(含倉單號) 沒有對應倉單號的單據會印不出內容
領料單報表取數(資料庫 SP DARB_RPT_GTRLIMA 報表內容的資料來源(目前在程式中保留、尚未啟用)
系統報表設定(報表清單 LCLRptdat 預覽/列印時可選的報表項目與套版

操作步驟

  1. 領料單 / 倉庫異動單表單中,先用查詢把要列印的單據帶到畫面。
  2. 按表單工具列的列印鈕,系統切換到本「領料單列印」頁。
  3. 確認列印條件:
    • 列印方式固定選 By WH TransactionNo(依倉單號)。
    • WHTransactionNo 起訖:系統已自動帶入母表單第一筆倉單號到「起」與「迄」兩格;要印一段範圍時,直接改「迄」即可。
  4. 在外層列印工具列選擇輸出方式:
    • 預覽:開啟報表預覽視窗。
    • 列印:直接送印表機。
    • 匯出Excel:把報表資料輸出成 Excel 並開啟。
    • Email:以報表附件寄送。

小技巧

領料單按列印進來時,起訖倉單號預設都是同一張單(母表單第一筆),等於「只印那一張」。要連印多張時,把「迄」改成範圍結尾的倉單號即可。

欄位說明

欄位 必填 說明/格式/預設
列印方式(Condition) 目前僅 By WH TransactionNo(依倉單號)一種,預設即選此項
WHTransactionNo(起)(BeginningWHTransactionNo) 倉單號區間起點;由母表單帶入目前單據的倉單號,預設空字串
WHTransactionNo(迄)(EndingWHTransactionNo) 倉單號區間終點;由母表單帶入時與「起」相同,預設空字串

規劃中的條件

XAML 中保留了「Form Type(單據別 DocumentPrefix,ProgramClass TRLIMA)」一段版面,但目前整段被註解、未啟用。「Date(日期)」僅以列舉值(GtrlimaPrintCondition.Date)存在於程式中,畫面並無對應輸入欄位。本頁實際只支援倉單號範圍,日期與單據別條件尚未提供。

欄位連動與附加功能

  • 進入本頁時自動帶入倉單號:列印頁是由領料單GetPrintViewModel() 建立。當母表單有資料時,系統取第一筆(MasterData.FirstItem倉單號同時填入起、迄兩格(BeginningWHTransactionNo = EndingWHTransactionNo = 倉單號)。因此一進來通常就是「印第一張」。

  • 列印方式單選連動:畫面上的 By WH TransactionNo 單選鈕綁定 Condition(列印條件),預設值為 WHTransactionNo。程式內另定義了 Date(日期)列舉選項,但畫面(XAML)並未提供對應的日期輸入版面,故實務上只支援倉單號方式。

  • 列印前的資料檢核(HaveReportData):按下任何輸出動作前,系統會先檢查「起倉單號」是否為空——若起倉單號空白,視為沒有可印資料而中止,不會開啟預覽或送印。

    目前的限制

    本頁的報表資料抓取程式(GetData(),原規劃依倉單號區間呼叫 DARB_RPT_GTRLIMA 取單據)目前在程式中整段被註解、未啟用,因此資料檢核僅判斷「起倉單號是否填了」,不會真的去資料庫取數或確認該範圍有無單據。換言之:只要起倉單號不空,HaveReportData() 一律回傳「有資料」並進入後續列印流程,但實際報表取數尚未接上。報表內容的完整支援待後續啟用。

  • 預覽 / 列印 / Excel / Email(共用列印工具列):四種輸出由外層 SqlPrint 框架統一處理——

    • 預覽:載入報表並開啟報表預覽視窗。
    • 列印:備妥報表後送預設印表機;若報表為「中一刀」格式,會先跳出印表機設定對話框。
    • 匯出Excel:把報表轉成 Excel 暫存檔並用系統預設程式開啟。
    • Email:把報表當附件寄出。
  • 報表資料落地(ExportToSqlite):輸出前,系統會先把報表所需資料寫進本機 SQLite 暫存庫,再交給 FastReport 套版,最後複製報表到輸出目的地。這層由共用列印框架負責,使用者無須介入。

  • 多份報表選擇:若領料單在系統報表清單中登錄了多張報表版型,輸出工具列會列出可選的報表項目供挑選;若只登錄一張,則直接使用該張。

常見問題

按了列印 / 預覽卻沒有反應或被擋下來?

本頁規定起倉單號不可空白。若起倉單號是空的,系統會判定沒有可列印資料而直接中止。請確認上方「WHTransactionNo(起)」有值——正常從領料單按列印進來時會自動帶入。

預覽出來是空白 / 印不出任何單據?

本頁的報表取數邏輯(DARB_RPT_GTRLIMA)目前在程式中尚被註解、未啟用,報表內容待後續接上(見開頭「目前實作狀態」)。在啟用前,即使輸入存在的倉單號也可能無內容。功能上線後,若仍空白,請確認輸入的倉單號確實存在於領料單 / 倉庫異動單、且起訖範圍涵蓋到該單。

想用日期或單據別(Form Type)來印一批單,找得到條件嗎?

目前不提供。畫面上保留了單據別(DocumentPrefix)的版面但已被註解、停用;日期則只是程式裡的列舉值、畫面沒有對應欄位。本頁實際只支援倉單號範圍,要印一段請改用倉單號的起訖。

起訖倉單號為什麼一進來就一樣?

因為列印頁是從領料單母表單第一筆單據帶過來的,系統把同一個倉單號填進起、迄兩格,預設就是「印第一張」。要印多張時手動把「迄」改大即可。

相關功能


需補截圖清單

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

  1. gtrlimaprint-step1.png — 列印條件面板(含 By WH TransactionNo 單選與倉單號起訖)
  2. gtrlimaprint-step2.png — 從領料單按列印進入、倉單號已自動帶入的畫面
  3. gtrlimaprint-step3.png — 報表預覽視窗