程式資訊
- 程式 ID:
PURAMAPRINT - 所屬子系統:J.品質管理
- 狀態:stable
進貨暫收驗收列印¶
功能簡介¶
「進貨暫收驗收列印」是進貨暫收驗收單的列印伴隨頁:你不會從主選單單獨開它,而是在暫收/驗收的主表單上按工具列的 列印 時,由系統彈出這張條件設定頁。它的工作是讓你先圈定要印的廠商區間與日期區間、選定要比對的日期欄位,再交由列印框架(SqlPrint)預覽或輸出報表。
同一張列印頁被四支品保單據共用——進貨暫收驗收單 PURAMA、委外暫收驗收單 TWRAMA、加工暫收驗收單 WKRAMA 與重工單 REPAIR——它們都呼叫同一個 PuramaPrintViewModel,差別只在主表單帶進來的預設條件不同。
為什麼 ProgramClass 與母表單不同名
本頁自己的程式代號是 PURAMAPRINT,但它在權限與選單上仍歸屬母表單 PURAMA(建構式以 ProgramClass.PURAMA 當主程式)。也就是說,能不能列印,看的是你對母表單的權限,本頁不是獨立掛在主選單的功能。
前置需求¶
- 權限:母表單(
J-010進貨暫收驗收單,或對應的委外/加工/重工單)的列印權限。本列印頁不另外掛主選單。 - 資料來源:列印頁本身不查資料,條件比對與報表內容取決於母表單已建立的單據——
| 資料 | 影響的結果 |
|---|---|
| 暫收/驗收單(母表單已過帳) | 列印區間內可被撈出的單據範圍 |
| 廠商主檔(生產部門/廠商代號) | 廠商起訖條件、報表上的廠商名稱 |
| 單據的日期欄位(暫收日期、ETD、ETA In Warehouse) | 由你選定的日期欄位決定比對哪一個日期 |
操作步驟¶
- 在進貨暫收驗收單(或委外/加工/重工單)畫面,先停在一張單據上,按工具列的
列印。- 系統彈出本條件頁,並自動帶入目前這張單的預設值(詳見欄位連動與附加功能)。
- 確認或修改 Vendor(廠商)起訖代號——可用搜尋鈕(
VendorSearch)挑選。 - 確認或修改 Date(日期)起訖,格式為短日期(
ShortDate,如2026/06/14)。 - 選擇要比對的日期欄位(三選一單選鈕):
On Board Date(裝船日,預設)ETD(預計開船日)ETA In Warehouse(預計到庫日)
- 按列印框架內建的
預覽/列印鈕輸出報表。
報表輸出尚在規劃中
本頁的條件面板(廠商/日期區間、日期欄位單選)已可操作,但實際的報表資料來源與套版目前在程式碼中被停用(GetData、GetCrystalPrintSettings 等整段為註解狀態,對應的 Puramatl/PuramatlDate 報表尚未掛上)。目前按 列印 只會通過「至少要有一個廠商代號」的檢核,還不會產生實際報表內容。此功能完成前,請以母表單的其他列印管道為準。
欄位說明¶
| 欄位 | 必填 | 說明/格式/預設 |
|---|---|---|
| Vendor 起(BeginningVendorCode) | ✔ | 起始廠商代號;母表單帶入時預設為該單的生產部門/廠商代號 |
| Vendor 迄(EndingVendorCode) | ✔ | 截止廠商代號;母表單帶入時與起始同值(即只印當前廠商) |
| Date 起(BeginningDate) | — | 起始日期,短日期格式;母表單帶入時預設為該單的暫收日期 |
| Date 迄(EndingDate) | — | 截止日期,短日期格式;母表單帶入時與起始同值 |
| 日期欄位(Condition) | ✔ | On Board Date / ETD / ETA In Warehouse 三選一,預設 On Board Date |
必填判定
程式的列印前檢核(HaveReportData)只要求起、迄廠商代號不可同時為空;兩者皆空白會擋下列印。日期區間留白不會被擋,但建議一併指定以免撈出範圍過大。
欄位連動與附加功能¶
這一節說明「按了什麼、輸入了什麼,系統會做什麼」,全部來自實際程式碼。
- 由母表單帶入預設值:當你在母表單按
列印,母表單的GetPrintViewModel()會 new 出本列印頁並預先填好條件:- 進貨暫收驗收單 PURAMA:把該單的生產部門填入廠商起訖、暫收日期填入日期起訖(起迄同值)。
- 委外暫收驗收單 TWRAMA、加工暫收驗收單 WKRAMA:行為與 PURAMA 相同,皆帶生產部門與暫收日期。
- 重工單 REPAIR:同樣共用本列印頁,但不帶任何預設廠商/日期(母表單的帶值程式碼為註解狀態),開啟時條件為空白,需自行輸入。
- 日期欄位單選鈕(Condition):三個單選鈕透過
RadioConverter綁同一個Condition列舉,互斥切換。選定後只是決定報表將以哪一個日期欄位做區間比對(裝船日/ETD/到庫日),切換本身不會立即重查資料。 - 廠商搜尋鈕:Vendor 兩個輸入框套用
VendorSearch樣式,可叫出廠商查詢視窗挑選代號回填,不必手key。 - 列印前檢核(HaveReportData):按列印時系統先檢查廠商起迄是否同時空白,空白即回傳「無資料」擋下,避免無條件全撈。
- 列印框架(SqlPrint):本頁外層是共用的
SqlPrint控件,預覽/列印/報表選單等按鈕由框架提供,本頁只負責填條件。
規劃中:依日期欄位排序與雙報表
程式中保留了兩種報表版型的設計——Puramatl(先依廠商、再依所選日期欄位、再依暫收單號排序)與 PuramatlDate(先依日期欄位排序),並會把所選的 Condition(OnBoardDate/ETD/ETAInWarehouse)轉成對應的資料欄位再撈 TWORK_RPT_PURAMA。但這段目前整段註解、尚未啟用,屬規劃中功能。
常見問題¶
從主選單找不到「進貨暫收驗收列印」?
它不是獨立的主選單功能,而是進貨暫收驗收單等母表單上 列印 鈕的伴隨條件頁。請先開母表單再按列印。
按了列印卻沒有出現任何報表內容?
目前本頁的報表資料來源在程式碼中被停用(套版與撈數整段為註解,對應報表尚未掛上)。條件面板可填、檢核可過,但實際報表輸出尚在規劃中——詳見操作步驟的提醒框。完成前請改用母表單的其他列印途徑。
為什麼一打開廠商與日期就已經填好了?
那是母表單帶入的預設值:PURAMA/TWRAMA/WKRAMA 會把當前單據的生產部門(廠商)與暫收日期填進起迄。你可以直接覆蓋成想要的區間。重工單 REPAIR 則不帶預設,需自行輸入。
按列印被擋住、說沒有資料?
列印前檢核要求廠商起、迄不可同時空白。請至少輸入一個廠商代號(或用搜尋鈕挑選)再列印。
三個日期單選鈕(On Board Date/ETD/ETA In Warehouse)差在哪?
它們決定日期區間要拿哪一個日期欄位來比對:裝船日、預計開船日、或預計到庫日。預設是 On Board Date。切換只改變比對基準,不會立刻重查。
相關功能¶
需補截圖清單
以下截圖待功能 runtime 驗收後補拍(放 docs/J-Quality/images/):
puramaprint-step1.png— 從母表單按列印後彈出的條件頁全貌(含廠商/日期區間與三個日期單選鈕)puramaprint-step2.png— 廠商搜尋鈕叫出的廠商查詢視窗puramaprint-step3.png— 列印框架(SqlPrint)的預覽畫面(待報表來源啟用後補拍)