程式資訊
- 程式 ID:
GTRLIMAPRINT - 所屬子系統: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) |
預覽/列印時可選的報表項目與套版 |
操作步驟¶
- 在領料單 / 倉庫異動單表單中,先用查詢把要列印的單據帶到畫面。
- 按表單工具列的列印鈕,系統切換到本「領料單列印」頁。
- 確認列印條件:
- 列印方式固定選
By WH TransactionNo(依倉單號)。 - WHTransactionNo 起訖:系統已自動帶入母表單第一筆的倉單號到「起」與「迄」兩格;要印一段範圍時,直接改「迄」即可。
- 列印方式固定選
- 在外層列印工具列選擇輸出方式:
預覽:開啟報表預覽視窗。列印:直接送印表機。匯出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)的版面但已被註解、停用;日期則只是程式裡的列舉值、畫面沒有對應欄位。本頁實際只支援倉單號範圍,要印一段請改用倉單號的起訖。
起訖倉單號為什麼一進來就一樣?
因為列印頁是從領料單母表單第一筆單據帶過來的,系統把同一個倉單號填進起、迄兩格,預設就是「印第一張」。要印多張時手動把「迄」改大即可。
相關功能¶
- 領料單 / 倉庫異動單(母表單,本頁的單據來源)
- 申請單轉領料單
- G出入庫單查詢
- 庫存管理模組
需補截圖清單
以下截圖待功能 runtime 驗收後補拍(放 docs/C-GeneralAffair/images/):
gtrlimaprint-step1.png— 列印條件面板(含By WH TransactionNo單選與倉單號起訖)gtrlimaprint-step2.png— 從領料單按列印進入、倉單號已自動帶入的畫面gtrlimaprint-step3.png— 報表預覽視窗