跳轉到

程式資訊

  • 程式 IDCODATAPRINT
  • 所屬子系統:A.系統資料
  • 狀態:stable

公司表列印

功能簡介

「公司表列印」是公司表(CODATA)的列印伴隨頁:它本身不維護資料,只負責讓使用者指定要列印哪個範圍的公司主檔,再交給報表框架輸出/預覽 A020-1 公司表 這份報表。系統管理員建立或檢視公司基本資料後,若需要一份紙本(或 PDF)的公司主檔報表,就會用到這個畫面。

在流程中它接在公司表之後:先在公司表維護好公司代碼、簡稱、統一編號、地址、銀行、申報人等資訊,再透過本頁的列印條件把指定範圍輸出成報表。

本頁是列印條件面板,不是獨立選單

本畫面通常從公司表工具列的 列印 進入,是列印框架彈出的條件區。它只提供「列印範圍」的輸入欄位,實際的 預覽 / 列印 / 匯出 按鈕由共用的列印框架提供,不在本畫面內。

前置需求

  • 權限:A.系統資料 → A-020 公司表 的瀏覽與列印權限(列印頁與母表單共用 CODATA 的權限設定)。
  • 基礎資料:報表內容完全來自公司主檔,列印前請先在母表單維護好資料——
資料 影響的結果
公司表(公司代碼、簡稱、統一編號等) 報表的每一欄內容;沒有建檔就印不出該公司
公司/工廠/發票/出貨地址、電話、傳真 報表上的地點與聯絡資訊區塊
銀行、SWIFT、帳號、申報人、EDI 帳號 報表上的銀行與申報人區塊
公司報表設定(報表資料維護 可用的報表清單、版面與套印設定

操作步驟

  1. 公司表主畫面點工具列的 列印,系統帶出本列印條件面板。
  2. 確認列印條件為 公司代碼(畫面上唯一的選項,預設即選取)。
  3. 起始公司代碼結束公司代碼 兩個欄位輸入要列印的代碼範圍(兩格中間以 ~ 連接)。
    • 只想印一家公司時,起訖填同一個代碼即可。
    • 留空(兩格皆為 0)時依報表設定取得對應範圍,請以實際預覽結果為準。
  4. 由列印框架選擇報表 A020-1 公司表(本頁僅提供一份報表,多半已自動選定)。
  5. 按列印框架提供的 預覽 先在畫面檢視,確認無誤後再 列印 或匯出。

小技巧

報表清單、版面與輸出格式(列印機、PDF、Excel)都由共用列印框架控制;本頁只決定「印哪個代碼範圍」。調整範圍後重新 預覽 即可看到新結果。

欄位說明

欄位 必填 說明/格式/預設
列印條件 固定為 公司代碼(程式內 PrintConditionEnum.DocumentNo,預設且唯一選項)。
起始公司代碼 列印範圍起點,數值欄位(TsNumericTextBoxPlaceEnum=Zero),預設 0。對應報表參數 BeginningDocumentNo
結束公司代碼 列印範圍終點,數值欄位,預設 0。對應報表參數 EndingDocumentNo

公司代碼是數值

公司主檔的 公司代碼 在資料表中是整數型別,因此本頁的起訖以數字輸入框呈現,而非文字框;輸入時不需補前導零。

欄位連動與附加功能

這支表單邏輯單純(純列印條件面板),程式碼裡實際存在的行為如下,全部寫成「當你…,系統會…」:

  • 預設列印條件:畫面載入時,列印條件預設為 公司代碼Condition = PrintConditionEnum.DocumentNo)。本報表只支援這一種條件,因此選項不可改。
  • 起訖代碼預設 0BeginningDocumentNoEndingDocumentNo 兩個值預設都是 0。當你不更動而直接列印時,系統就以這組預設值帶入報表參數。
  • 組裝報表參數:當你執行預覽/列印時,系統呼叫 GetReportParameters(),把你輸入的 起始公司代碼BeginningDocumentNo)與 結束公司代碼EndingDocumentNo)打包成報表參數,傳給 A020-1 公司表 報表,報表據此篩選要輸出的公司範圍。
  • 固定有資料可印:本頁的 HaveReportData() 永遠回傳 true,代表系統不會因為「沒抓到資料」而擋住列印動作;若範圍內沒有對應公司,預覽會呈現空報表,請改用正確的代碼範圍。
  • 報表清單來源GetReports() 回傳唯一一份報表——報表編號 A020-1、抬頭「公司表」、區域 TW、尺寸 A4、對應資料來源 rpt_a020_codata_report1。這份清單與母表單公司表GetReports() 完全相同,所以兩邊印出的是同一份報表。
  • 共用母表單權限:本列印 VM 建構時以 ProgramClass.CODATA 作為主程式(MainProgramClass),因此它在權限、版面套印設定上都跟著公司表走,不需另外設定一支獨立程式的權限。
  • 支援列印套印設定:本頁實作了列印框架介面(IPrintSource / IUpdatePrint),因此可套用報表資料維護裡為公司表設定的版面與套印規則。

沒有欄位重算或帶值連動

與一般單據不同,本頁沒有 SetNewDataCalculate*HandleDataBeforeEndEdit 之類的欄位連動或重算邏輯——它只是收集列印範圍。所有資料運算都發生在報表端,不在這個面板。

常見問題

預覽出來是空白報表,印不到任何公司?

多半是 起始/結束公司代碼 範圍內沒有對應的公司主檔。請確認該代碼已在公司表建檔,並把起訖範圍涵蓋到正確的代碼;只想印一家時,起訖填同一個代碼。

起訖兩格預設都是 0,這樣會印出什麼?

兩格預設值都是 0。請依實際需求輸入正確的代碼範圍再預覽;輸出結果以列印框架實際抓到的資料為準,建議先 預覽 確認再正式列印。

為什麼列印條件只有「公司代碼」一個選項,不能改成日期或客戶?

公司表報表只支援以公司代碼範圍列印,程式內條件固定為 公司代碼PrintConditionEnum.DocumentNo),因此沒有日期、客戶等其他條件可選,這是設計如此。

找不到這個列印畫面在主選單哪裡?

它不是獨立選單項目,而是公司表工具列 列印 帶出的條件面板。請先進入公司表,再按 列印

想換報表版面或改成輸出 PDF/Excel 要去哪裡設定?

版面套印與輸出格式由共用列印框架與報表資料維護控制,不在本頁。本頁只決定列印的代碼範圍。

相關功能


需補截圖清單

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

  1. codataprint-step1.png — 列印條件面板全貌(公司代碼 Radio + 起訖代碼輸入框)
  2. codataprint-step2.png — 列印框架的預覽畫面(顯示 A020-1 公司表 報表)