程式資訊
- 程式 ID:
_RPTDAT - 所屬子系統:A.系統資料
- 狀態:stable
報表參數設定¶
功能簡介¶
「報表參數設定」是系統的報表登錄主檔。系統內每一支單據或查詢表單上方的列印工具列(預覽/列印/Email/Excel)所列出的報表清單,全部來自這張主檔。
每登錄一筆,就等於把一份 FastReport 報表檔(.frx)或 Excel 樣板,掛到某一支程式(單據別)底下,並指定它的抬頭、紙張尺寸、語言版本、資料來源表(SQLite)與顯示順序。當使用者在該表單按列印時,系統會依單據別撈出這支表單的所有報表,過濾掉不顯示的、依排序排列後呈現給使用者挑選。
這支功能主要由系統管理員/導入顧問使用,屬於系統建置與報表客製的範疇,一般操作人員不會進到這個畫面。它在流程中的位置是「報表的源頭設定」——先在這裡登錄,報表才會在各表單的列印工具列出現。
與報表檔本身的關係
本主檔只登錄報表的參數與掛載關係,不是報表的版面設計。版面(欄位位置、字型、線條)在 .frx 檔內,由 FastReport 設計器維護;本頁的報表名稱欄位就是指向那個 .frx 檔。
前置需求¶
- 權限:A.系統管理 →
A-060 報表參數設定的瀏覽與修改權限。 - 前置資料:登錄前要先準備好下列項目,本主檔只是把它們「對應起來」——
| 資料 | 影響什麼 |
|---|---|
FastReport 報表檔(.frx) |
報表名稱/報表位置 要指向實際存在的報表檔,否則列印時找不到檔案 |
| 目標程式的單據別(ProgramClass) | 單據別 決定這份報表掛在哪一支表單的列印工具列;填錯就不會出現在對的表單 |
| 報表資料來源 SQLite 表名 | sqlite 是列印前把畫面資料倒進去給報表讀的暫存表名,要與報表設計使用的資料表一致 |
| 語言版本設定 | 語言版本 在新增時自動帶入登入者語言;用來區分同一份報表的中/英文登錄 |
| 報表插件(選用) | 走插件產生的報表才需要填 插件名稱 |
操作步驟¶
本表單是標準的單筆維護畫面(master 維護),透過上方工具列的 新增/修改/刪除/儲存 操作。
- 從主選單開啟 A.系統管理 → 報表參數設定。
-
點選工具列
新增。小技巧
新增時系統會自動把 語言版本 帶成目前登入者的語言版本(見欄位連動與附加功能),不必手動選。
-
填寫報表的基本資料:
- 報表編號:這份報表的代號(主鍵欄位,畫面上會聚焦在此欄)。
- 單據別:要把這份報表掛上去的程式 ProgramClass。
- 報表名稱:對應的
.frx報表檔名稱。 - 報表抬頭:這份報表在列印工具列清單上顯示的選項標籤。
-
視報表需要補上其餘欄位(報表位置、sqlite、插件名稱、註腳、國家區域、報表尺寸、報表用途、excel檔名、報表分類、排序 等,詳見欄位說明)。
- 設定 可顯示=
是,這份報表才會出現在目標表單的列印清單;是否為遠端 視部署環境設定。 -
點選
儲存。小技巧
可用 Ctrl+S 快速儲存。
-
要修改既有報表設定時,先查出該筆資料、按
修改、改完再儲存;要移除報表掛載則按刪除。

設定立即生效但需重載
本主檔的內容會在各表單開啟列印工具列時被讀取(依單據別撈取)。改完設定後,請重新進入目標表單或重新整理其列印清單,新設定才會反映出來。
欄位說明¶
| 欄位 | 必填 | 說明/格式/預設 |
|---|---|---|
| 報表編號 | ✔ | 報表代號,畫面主鍵欄位(新增時游標自動聚焦於此)。長度上限 10。 |
| 語言版本 | ✔ | 報表語言版本。新增時自動帶入登入者的語言版本;以下拉選擇(語言下拉控件)。 |
| 單據別 | ✔ | 這份報表掛載的程式 ProgramClass(DB 欄位即名為 ProgramClass)。決定報表出現在哪一支表單的列印清單。長度上限 60。 |
| 報表名稱 | ✔ | 對應的 FastReport .frx 報表檔名稱;列印時據此找檔。長度上限 80。 |
| 報表抬頭 | — | 顯示在列印工具列報表清單上的選項標籤(清單以「序號.報表抬頭」呈現),方便辨識要列印哪一份。長度上限 80。 |
| 報表位置 | — | 報表檔存放位置的備註欄位。實際載入 .frx 是依 報表名稱 從系統報表目錄取檔,本欄目前不參與檔案定位,僅供記錄/參考。長度上限 250。 |
| sqlite | — | 列印前把畫面資料匯出到 SQLite 的暫存表名,供報表讀取。長度上限 60。 |
| 插件名稱 | — | 若報表由報表插件產生,填插件名稱。長度上限 60。 |
| 註腳 | — | 印在報表頁尾的簽字註腳文字(對應報表的 Footer 參數)。文字中的 #P# 會自動代換成列印者帳號。長度上限 100。 |
| 國家區域 | — | 下拉選 US 或 TW。長度上限 2。 |
| 報表尺寸 | — | 下拉選 Letter/A4/A5/中一刀。選 中一刀 時列印走支票紙張的處理(見下節)。長度上限 20。 |
| 可顯示 | — | 是/否。設 是(Y)這份報表才會出現在目標表單的列印清單。 |
| 是否為遠端 | — | 是/否。標示報表是否為遠端報表。 |
| 報表用途 | — | 報表用途說明文字。長度上限 60。 |
| excel檔名 | — | 走插件式 Excel 樣板匯出時,所使用的 Excel 樣板檔名(系統會把此樣板複製出來填值)。一般 .frx 報表的 Excel 匯出不需填此欄。長度上限 80。 |
| 報表分類 | — | 報表分類;值為 支票套表 時系統視為支票類報表。長度上限 30。 |
| 排序 | — | 同一支表單下多份報表的顯示順序,數字小者在前。長度上限 120。 |
預設值來源
上述欄位的字串預設值在新增時皆為空字串,語言版本 則由系統依登入者語言自動帶入。除「報表尺寸」與「國家區域」是固定清單下拉外,其餘文字欄位皆為自由輸入。
欄位連動與附加功能¶
這一節說明「輸入或設定某欄位後,系統在列印當下會怎麼用它」。本主檔本身的畫面互動很單純(單筆維護),真正的連動發生在各表單的列印工具列讀取本主檔時。
新增時的自動帶值¶
- 當你按
新增,系統會在AfterAddNew時把新資料的 語言版本 設成目前登入者的語言版本(Context.User.Language)。也就是說中文使用者新增的報表預設掛在中文語言版本,不需手動選。
下拉欄位的固定選項¶
- 國家區域 下拉只有
US、TW兩個選項(來源FastReportExtension.GetRegionSource)。 - 報表尺寸 下拉只有
Letter、A4、A5、中一刀四個選項(來源FastReportExtension.GetSizeSource)。 - 可顯示、是否為遠端 皆為「是/否」下拉。
各表單列印工具列怎麼用這些設定¶
當使用者在某支表單按 列印/預覽/Email/Excel,列印工具列會做以下動作,每一步都對應本主檔的某個欄位:
- 依單據別撈報表:系統用該表單的 ProgramClass 去比對本主檔的 單據別,撈出所有屬於這支表單的報表。所以單據別填錯,報表就不會出現在對的表單。
- 過濾不顯示的:只保留 可顯示=
Y的報表;可顯示=N的不會列在使用者可選清單中。 - 依排序排列:清單按 排序 由小到大排列(
OrderBy)。 - 清單顯示名稱:使用者在工具列看到的可選報表名稱,是「序號.報表抬頭」(
DisplayReportTitle)。所以 報表抬頭 是清單上的選項標籤,方便使用者辨識要印哪一份。 - 載入報表檔:用 報表名稱(必要時搭配 報表位置)找到
.frx報表檔載入。 - 倒入資料:列印前把畫面資料匯出到以 sqlite 為名的暫存表,報表再從這張表讀資料。
- 頁尾註腳:把 註腳 設成報表的
Footer參數印在頁尾;註腳文字中的#P#會被代換成列印者帳號。 - 紙張處理:當 報表尺寸=
中一刀(IsHalfLetter)時,列印會套用支票/半張紙的印表機設定,並在列印時跳出列印對話框(HalfLetterHelper)讓使用者選印表機與紙匣;其餘尺寸走一般列印。 - Excel 匯出:按
Excel時,系統以 報表名稱 產生暫存 Excel 檔(.frx轉 Excel)並開啟。若報表走插件式 Excel 樣板匯出,則以 excel檔名 指定的樣板檔為底。 - 支票判定:報表分類=
支票套表(IsCheck)時,系統會把對應 報表名稱 的報表當成支票類報表處理。
語言版本的用途
語言版本 在按 新增 時自動帶成登入者的語言(見上方「新增時的自動帶值」),用來標記這筆登錄屬於哪個語言版本。若同一份報表要分中、英文兩種登錄,建議各登一筆並把語言版本分別設定。(目前列印清單的撈取是依 單據別 比對,並未再以語言版本過濾,因此語言版本主要作為登錄上的標記。)
本表單沒有附加的轉傳票/簽核/附件功能
本程式是純設定主檔(ERPProgramViewModel + IAdd),沒有轉傳票、沖帳、簽核工作流程、附件或 Excel 匯入等延伸功能。其相關欄位(如審核人員、審核日期、工作流程)為系統共用欄位,於本主檔不對使用者開放操作。
常見問題¶
我登錄了報表,為什麼目標表單的列印清單裡看不到?
最常見的兩個原因:(1) 可顯示 沒設成 是(Y)——只有 可顯示=Y 的報表才會列出;(2) 單據別 填錯,沒對到該表單的 ProgramClass。請確認這兩欄正確,並重新開啟目標表單讓它重撈報表清單。
報表出現在清單裡,但按列印時跳出「找不到檔案」?
系統是依 報表名稱 到報表目錄找對應的 .frx 檔。這代表該名稱的報表檔實際上不存在或尚未部署。請確認 .frx 已放到系統報表目錄,且檔名與本主檔的 報表名稱 完全一致。
列印出來的報表沒有資料(空白)?
報表的資料來自以 sqlite 欄位指定名稱的暫存表。若這個表名與報表設計時所讀的資料表不一致,報表就讀不到資料。請核對 sqlite 欄位與報表內設定的資料來源表名是否相同。
新增時語言版本要自己選嗎?
不用。系統會在新增當下自動帶入你目前登入的語言版本。若要登錄另一種語言版本的報表,再用下拉手動切換即可。
報表尺寸的「中一刀」是什麼?什麼時候要選?
中一刀 用於支票等半張紙的套印。選此尺寸時,列印會改走支票紙張的列印對話框讓你指定印表機與紙匣。一般 A4/A5 報表選對應尺寸即可,不要誤選 中一刀。
相關功能¶
需補截圖清單
以下截圖待 runtime 驗收後補拍(放 docs/A-System/images/):
_rptdat-step3.png— 報表參數設定主畫面(含報表編號、單據別、報表名稱、報表尺寸下拉等欄位)