程式資訊
- 程式 ID:
Abook1Condition - 所屬子系統:N.總帳管理
- 狀態:stable
明細分類帳查詢條件¶
功能簡介¶
本頁是 明細分類帳(日記帳) 主畫面左側的查詢條件面板,本身不是一支獨立程式——它與明細分類帳共用同一個 ProgramClass(ABOOK1、N-080)。會計人員或稽核人員在這裡設定日期區間、科目代號區間、傳票種類等篩選條件後,按主畫面工具列的 查詢,系統才依條件撈出各科目的期初/借貸/餘額並展開明細分錄。
換句話說,這個面板決定「要查哪一段期間、哪些科目的帳」;查詢結果的呈現、列印格式與後續操作都在母頁 明細分類帳。
本頁與明細分類帳是同一支程式
明細分類帳查詢條件(Abook1Condition)沒有自己的 ProgramClass,是被 Abook1ViewModel(ProgramClass ABOOK1)驅動的查詢條件子畫面。權限、報表、列印控制都掛在主程式上。完整的結果欄位、列印與報表格式請見 明細分類帳。
前置需求¶
- 權限:N.總帳 →
N-080 明細分類帳的瀏覽權限(與母頁共用,本面板不另設權限)。 - 基礎資料:查詢結果是否完整、科目名稱能否正確顯示,取決於下列資料——
| 資料 | 影響的結果 |
|---|---|
| 會計科目主檔(含借貸別 D/C、英文名稱) | 可查得的科目代號範圍、科目的借貸方向、英文報表的科目名稱 |
| 總帳傳票(已過帳分錄) | 各科目的明細分錄、借貸金額與餘額;沒有分錄的科目只會帶期初行 |
| 傳票種類設定 | 傳票種類 欄位的有效代碼(預設 012) |
小技巧
本面板只負責「設條件」,調整後務必回到主畫面按一次工具列 查詢 才會重新撈資料;改了條件但沒按查詢,畫面仍是上一次的結果。
操作步驟¶
- 設定日期區間(起~訖):系統預設帶入「當月 1 日 ~ 今天」。比對的是傳票日期。
- 設定科目代號區間(起~訖):
- 兩個欄位都可按旁邊的放大鏡帶出會計科目查詢視窗挑選(樣式
AcclSearch)。 - 預設起始為空字串、結束為
zzzzz,等於「全部科目」。 - 起/訖欄位都設為「不檢查資料存在」(
CheckDataExist=False),允許輸入科目區間的端點值而不必是實際存在的科目。
- 兩個欄位都可按旁邊的放大鏡帶出會計科目查詢視窗挑選(樣式
- 視需要修改傳票種類(預設
012)。 - 選擇語言:
繁體中文或English(單選),決定查詢結果中科目名稱要用科目主檔的中文名稱還是英文名稱呈現。 - 視需要勾選借貸對沖(預設不勾):勾選後系統會把同科目、同沖帳單號且借貸互抵為零的成對分錄從明細中剔除。
- 回到主畫面,按工具列的
查詢執行。 - (可選)在主畫面選擇 報表幣別 與 報表顯示索引 後再列印——這兩個選項位於主畫面的參數區,不在本條件面板上(詳見欄位連動與附加功能)。

欄位說明¶
下表的「預設」欄即程式 ResetToDefault() 帶入的初始值。
| 欄位 | 必填 | 說明/格式/預設 |
|---|---|---|
| 日期(起) | ✔ | 傳票日期起。格式 ShortDate。預設=當月 1 日 |
| 日期(訖) | ✔ | 傳票日期訖。格式 ShortDate。預設=今天 |
| 科目代號(起) | — | 科目區間起點,可用放大鏡挑選。預設=空字串(不限下界) |
| 科目代號(訖) | — | 科目區間終點,可用放大鏡挑選。預設=zzzzz(不限上界,等於到最大) |
| 傳票種類 | — | 傳票種類代碼。預設=012 |
| 語言 | ✔ | 繁體中文/English 單選。預設=繁體中文 |
| 借貸對沖 | — | 勾選時剔除借貸互抵為零的成對分錄。預設=不勾 |
報表幣別/報表顯示索引不在本面板
程式內 Abook1QueryParameters 雖然也帶 報表幣別(功能幣/本幣/原幣/集團幣,預設功能幣)與 報表顯示索引(分類索引/部門代號/客戶廠商代號,預設客戶廠商代號)兩個參數,但它們由主畫面的下拉控制、只影響列印與顯示,不在這個查詢條件面板上。本面板僅含上表七個條件欄位。
欄位連動與附加功能¶
這是本頁最重要的一節——把「輸入某欄位/勾選某選項後,查詢時系統會做什麼」逐條列出。所有行為都發生在按下主畫面 查詢 之後(由 Abook1Bll 執行)。
日期區間¶
- 進入畫面時,訖日自動帶今天(
TodayYYYYMMDD()),起日自動帶「訖日所屬月份的 1 日」(GetMonthFirstDate)。所以一開窗就是「查當月到今天」。 - 查詢時,起訖日期會原樣傳給後端查詢程序(
DARB_QRY_ABOOK1)作為傳票日期的篩選範圍。 - 明細分錄每科目的第一行是「期初」行,傳票日期就顯示為你設的起日,餘額為該科目在起日前的期初餘額。
科目代號區間¶
- 兩個欄位都掛
AcclSearch樣式的放大鏡:當你點放大鏡或輸入後觸發,系統會帶出會計科目查詢視窗讓你挑科目代號。 - 因為設為「不檢查資料存在」,即使你輸入的端點不是實際存在的科目代號也能查——它只是當作區間的上下界比較字串。
- 預設訖值
zzzzz是刻意設成「比任何真實科目代號都大」的字串,配合空字串起值,達到「全部科目」的效果。
傳票種類¶
- 查詢時與起訖日期、科目區間一起傳入後端查詢程序,限定只撈該傳票種類的分錄。預設
012。
語言(繁中/English)¶
- 選
English時,查詢結果(含每筆明細與每科目期初行)的科目名稱會改用科目主檔的英文名稱。 - 選
繁體中文時,科目名稱用科目主檔的中文名稱。 - 此欄只影響科目名稱的語言,不影響撈出的資料筆數或金額。
- 注意:明細第一行「期初」字樣是另外取自多語系 DisplayName,跟隨系統登入者的語系(
GetDisplayNameByUserLanguage)顯示,並非由本面板這個語言單選控制。
借貸對沖(勾選後的處理)¶
勾選 借貸對沖 後,查詢完成後 Abook1Bll 會額外做一段「對沖」清理(對應 VFP 舊版的沖帳邏輯):
- 建立財務單號對照:查
rpsht_d/rp_m,找出單號2 以82開頭的明細所對應的財務單號(對應 VFP 的TMPMOVEREC3)。 - 設定沖帳單號:每筆明細若單號2 以
82開頭且能在對照表查到財務單號,就把該財務單號當作「沖帳單號」;否則沖帳單號=該筆的單號2。 - 找出互抵為零的組合:依
(科目代號, 沖帳單號)分組,凡是該組借方金額減貸方金額總和為 0 的,就視為借貸已完全對沖。 - 剔除對沖筆數:把這些互抵為零組合的明細從結果中移除(每科目的期初行不參與、不會被刪)。
不勾就不對沖
預設不勾選時完全不做上述清理,所有符合日期/科目/傳票種類的分錄都會列出。對沖只是「把已互相沖銷的成對分錄從畫面隱去」,不影響期初行與餘額計算邏輯。
報表幣別與報表顯示索引(在主畫面,列印時連動)¶
雖然不在本條件面板,但它們是同一支程式的參數,會影響你列印出來的內容,列在此供對照:
- 報表幣別(功能幣/本幣/原幣/集團幣,預設功能幣):決定報表上「借方/貸方/餘額」三欄取哪一組幣別金額與抬頭。
- 報表顯示索引(分類索引/部門代號/客戶廠商代號,預設客戶廠商代號):決定報表上「顯示索引」欄要顯示分類索引1、部門代號還是客廠代號。
- 完整列印格式(明細分類帳七種報表:按月匯總/不匯總、科目跳頁/不跳頁、中英文目錄等)見 明細分類帳。
常見問題¶
改了條件,畫面資料卻沒變?
本面板只負責設定條件。調整任何欄位後,要回到 明細分類帳 主畫面按工具列的 查詢,系統才會依新條件重新撈資料。
想查全部科目,科目代號要怎麼填?
起留空、訖維持預設的 zzzzz 即可,這就是「全部科目」。若只想查某一段,分別在起、訖填上區間端點(可用放大鏡挑選);端點不必是實際存在的科目代號。
查出來的科目名稱是英文(或想要英文卻是中文)?
科目名稱語言由本面板的 語言 單選決定:選 English → 科目名稱用科目主檔的英文名稱;選 繁體中文 → 用中文名稱。改完語言後記得再按一次 查詢。(明細「期初」字樣則跟隨系統登入者語系,不受此單選影響。)
勾了「借貸對沖」之後有些分錄不見了?
這是預期行為。借貸對沖會把同科目、同沖帳單號且借貸互抵為零的成對分錄隱去(其中單號2 以 82 開頭者會改用對應的財務單號當沖帳單號比對)。若想看到完整未對沖的所有分錄,取消勾選再查一次即可。詳見借貸對沖(勾選後的處理)。
某個科目只剩一行「期初」、沒有任何分錄?
表示該科目在查詢期間沒有任何傳票分錄。系統規則是:沒有分錄、且期初餘額為 0 的科目會整筆略過不顯示;若期初餘額不為 0,則保留只含期初行的列。
報表上的借方/貸方金額是空的或不是我要的幣別?
報表取哪一組幣別金額由主畫面的 報表幣別 下拉(功能幣/本幣/原幣/集團幣)決定,不在本條件面板。請到主畫面切換後再列印(見 明細分類帳)。