程式資訊
- 程式 ID:
Chkpayqry - 所屬子系統:O.銀行票據
- 狀態:stable
應付票據查詢¶
功能簡介¶
「應付票據查詢」把公司開立給廠商的應付票據(支票、本票、匯票、L/C、電子付款)依條件撈出來,列成一張可排序、可列印、可匯出 Excel 的清單,並在畫面下方即時顯示本幣金額彙總與原幣金額彙總。財務/出納人員用它回答兩類問題:
- 某段付款日期/到期日內,要兌付哪些票、給哪些廠商、從哪個帳戶出?(明細查詢)
- 截至某個日期,帳上還有哪些未軋的應付票據?(餘額查詢)
它是純查詢報表,不會異動任何票據資料;票據的開立與維護請見應付票據。
前置需求¶
- 權限:O.票據/現金 →
O-090 應付票據查詢的瀏覽、列印權限。 - 基礎資料:查詢結果的完整度取決於下列資料的維護狀況——
| 資料 | 影響的結果 |
|---|---|
| 應付票據(票據主檔) | 整份清單的來源;票況、到期日、帳戶等全部欄位 |
| 廠商主檔 | 廠商代號/廠商簡稱、廠商代號查詢條件 |
| 銀行帳戶主檔(銀行帳戶) | 帳戶代號/帳戶簡稱、帳戶代號查詢條件 |
| 票況代碼表(Cmb C230) | 票況 下拉選單的可選項目 |
| 匯率資料 | 票據的立帳匯率,連帶影響本幣金額換算 |
操作步驟¶
本表單分成「條件面板」與「結果清單」兩區。先在條件面板設定範圍與查詢別,按工具列的 查詢,結果即顯示在下方格線。
步驟① 選擇查詢別¶
條件面板最上方有兩個查詢別,互斥切換(切換時會自動啟用/停用對應欄位,詳見欄位連動與附加功能):
明細查詢(預設):逐張列出符合條件的應付票據。餘額查詢:列出截至餘額表日期仍在帳上的應付票據(含當下已軋出但異動日期晚於餘額表日期者)。
步驟② 設定查詢條件¶
- 明細查詢時,於下方區塊輸入起訖範圍(每列以
~分隔起、迄):- 付款日期:預設起日帶近三個月(今天往前推三個月),迄日
9999/12/31。 - 廠商代號:用廠商查詢框選起訖廠商,留空=不限。
- 票據號碼:可輸入起訖票號字串。
- 到期日:預設起日同樣帶近三個月,迄日
9999/12/31。 - 帳戶代號:用銀行帳戶查詢框選起訖帳戶。
- 票況:下拉選
All/未兌現,或選某一個明確票況。 - 票別:勾選要納入的票種——
1.支票(預設勾選)/2.本票/3.匯票/4.L/C/5.電子付款,至少勾一項。
- 付款日期:預設起日帶近三個月(今天往前推三個月),迄日
- 餘額查詢時,只需輸入餘額表日期(必填,未填按查詢會被擋下)。票別勾選同樣有效。
步驟③ 執行查詢¶
按工具列 查詢,系統撈資料並填入下方格線,同時更新畫面左下角的彙總:
- 本幣金額彙總:所有列的本幣金額加總(依本位幣小數位顯示)。
- 原幣金額彙總:依幣別分組,各幣別的票據金額加總,逐段串成一行文字(例如
NTD 1200000, USD 35000)。
步驟④ 調整排序¶
結果清單上方有四個排序選項(單選),切換時立即在記憶體重排現有結果,不需重查:
付款日期(預設)/到期日/票據號碼/廠商代號。
步驟⑤ 列印與匯出¶
- 工具列
列印/預覽會套用報表 O090-1 應付票據一覽表 輸出目前查得的清單。 - 格線本身支援匯出 Excel(格線右鍵)。
小技巧
改了排序選項只重排不重查,速度很快;但改了條件(日期、廠商、票況等)一定要再按一次 查詢 才會生效。
欄位說明¶
查詢條件(條件面板)¶
| 欄位 | 必填 | 說明/格式/預設 |
|---|---|---|
| 查詢別 | ✔ | 明細查詢(預設)或 餘額查詢,兩者互斥 |
| 付款日期(起) | — | 預設今天 AddMonths(-3)(近三個月);明細查詢用 |
| 付款日期(迄) | — | 預設 9999/12/31 |
| 廠商代號(起~迄) | — | 廠商查詢框;起預設空、迄預設 zzzzz(=不限上界) |
| 票據號碼(起~迄) | — | 文字;起預設空、迄預設 zzzzz |
| 到期日(起) | — | 預設今天 AddMonths(-3)(近三個月) |
| 到期日(迄) | — | 預設 9999/12/31 |
| 帳戶代號(起~迄) | — | 銀行帳戶查詢框;起預設空、迄預設 zzzzz |
| 票況 | — | 下拉:All(預設)/未兌現/單一票況代碼 |
| 票別 | ✔ | 勾選 1.支票(預設勾)/2.本票/3.匯票/4.L/C/5.電子付款 |
| 餘額表日期 | 餘額查詢時✔ | 餘額查詢必填,預設帶今天;明細查詢時停用 |
結果清單主要欄位¶
| 欄位 | 說明 |
|---|---|
| 票據備註 | 票據上的備註文字 |
| 付款日期 | 票據的付款(開立)日期 |
| 廠商代號/廠商簡稱 | 交易對象與其簡稱 |
| 抬頭名稱 | 票據抬頭 |
| 帳戶代號/帳戶簡稱 | 出票銀行帳戶 |
| 票據號碼 | 票號 |
| 幣別 | 票據幣別 |
| 票據金額 | 原幣票面金額 |
| 到期日/預兌日 | 票據到期日與預計兌現日 |
| 票別 | 1.支票/2.本票/3.匯票/4.L/C/5.電子付款 |
| 票況 | 票況代碼+票況說明合併顯示(如 CP庫存) |
| 禁止轉讓/平行線 | 票面註記 |
| 異動日期/兌現日期/列印日期 | 各階段日期 |
| 自定欄位/對方科目/付款單號/傳票號碼/摘要/分類索引1 | 帶出之相關單據與分類欄位 |
| 轉入備註/轉出備註 | 票據轉讓進出之備註 |
| 立帳匯率 | 票據立帳當時匯率 |
| 本幣金額 | =票據金額 × 立帳匯率,依本位幣小數位四捨五入 |
欄位連動與附加功能¶
這一節把「按某個選項/按鈕後系統會做什麼」逐條列出,全部依實際程式行為。
-
切到
餘額查詢→ 條件區自動切換:選餘額查詢時,系統會停用整個明細條件區(付款日期、廠商、票號、到期日、帳戶、票況),只啟用餘額表日期欄;切回明細查詢則相反。這由QueryType的連動(DetailConditionIsEnabled/BalanceConditionIsEnabled)控制,避免你在錯誤的查詢別下填到無效條件。 -
餘額查詢未填餘額表日期 → 擋下並提示:按
查詢時若查詢別為餘額且餘額表日期空白,系統不會送出查詢,改跳出「請輸入餘額表日期」訊息要你補上。 -
票況下拉的三種行為:票況清單最前面被插入兩個特殊項目——
All(代碼C0)與未兌現(代碼C1),其餘為票況代碼表(Cmb C230)的實際票況。查詢時依選擇套不同條件:- 選
All→ 不額外限制票況,只依勾選的票別過濾。 - 選
未兌現→ 僅撈票況為CP、CQ(庫存/在途)的票。 - 選某一明確票況 → 僅撈該票況的票。
- 選
-
票別勾選 → 組成過濾字串:勾選的票別會被串成一段文字(如
,1.支票,3.匯票,),查詢時用CHARINDEX(票別, '...')比對,只保留票別落在勾選清單內的票。未勾任何票別等於沒有票別符合,結果會是空的,所以至少要勾一項(預設已勾1.支票)。 -
餘額查詢的「在帳」判定:餘額查詢不是單純抓某狀態,而是抓「付款日期 ≤ 餘額表日期,且(票況為
CP/CQ)或(票況為CR/CU但異動日期晚於餘額表日期)」的票——也就是把「在當天之後才軋掉」的票也算回當天的在帳餘額,呈現該日期當下的真實未兌票況。 -
本幣金額自動換算:每一列的本幣金額由系統算出=
票據金額 × 立帳匯率,並依本位幣小數位數(Context.Env.LocalDecimal)四捨五入,你不需手動換算。 -
查詢後自動算兩種彙總:查得資料後系統會:
- 把所有列的本幣金額加總,填入畫面左下的本幣金額彙總。
- 依幣別分組(
group by 幣別),各幣別票據金額加總,以幣別 金額,格式逐段串成一行字串填入原幣金額彙總(多幣別時逐項列出,例如NTD 1200000, USD 35000)。
-
排序選項即時重排(不重查):結果上方的
付款日期/到期日/票據號碼/廠商代號四個排序鈕,切換時直接對目前已查出的清單在記憶體重新排序(依對應欄位值),預設為付款日期。改排序不會重新查資料庫。 -
列印 / 報表來源:本表單實作
IPrintSource,按列印時提供報表 O090-1「應付票據一覽表」(內部名 Checkpayqry1)。報表資料就是目前清單(每列轉成報表用 POCO);清單為空時不會出報表。 -
Excel 匯出:結果格線支援匯出 Excel(格線右鍵功能表),匯出內容即畫面上的欄位。
與 VFP 舊版的差異
VFP 舊版的起始付款日/到期日預設為空字串(不限下界)。新版刻意把起始日預設為今天往前三個月,避免一開就撈出全部歷史票據;要查更早的票請自行把起始日往前調。
常見問題¶
查詢結果是空白,明明帳上有票?
先檢查三件事:(1)票別是否至少勾選一項——未勾任何票別會撈不到資料;(2)付款日期/到期日起始值預設是近三個月,較早的票請把起始日往前調;(3)票況是否選到不存在的單一狀態,可改選 All 再試。
「餘額表日期」灰掉不能輸入?
餘額表日期只有在查詢別選 餘額查詢 時才會啟用;目前若停用,表示你在 明細查詢 模式。切到餘額查詢即可輸入。
按查詢沒反應、跳出要我輸入餘額表日期?
你在 餘額查詢 模式但餘額表日期是空的。系統會擋下查詢並要求補上日期,填入後再按 查詢。
某列的「本幣金額」是 0 或怪怪的?
本幣金額=票據金額 × 立帳匯率。若該票的立帳匯率為 0 或未設,換算結果就會是 0。請回應付票據確認該票的立帳匯率。
原幣金額彙總為什麼有好幾段、跟本幣金額彙總不一樣?
原幣金額彙總是依幣別分別加總(同一幣別的票面金額相加),多幣別會逐段列出;本幣金額彙總則是把每張票換算成本位幣後加總。兩者口徑不同,外幣存在時數字本來就不會相等。
改了排序選項,數字會變嗎?
不會。排序只是把已查出的同一批資料重新排列,總筆數與彙總金額都不變,也不會重新連資料庫。
相關功能¶
- 應付票據 — 票據主檔的開立與維護(查詢結果的資料來源)
- 應收票據查詢 — 對應的應收票據版本
- 票據查詢 — 不分應收應付的票據綜合查詢
- 銀行帳戶 — 帳戶主檔(帳戶代號/簡稱來源)
- 票據/現金模組首頁
- AR/AP 模組
需補截圖清單
以下截圖待功能 runtime 驗收後補拍(放 docs/O-Check/images/):
chkpayqry-step1.png— 條件面板(明細查詢)全貌,含起訖欄位、票況下拉、票別勾選chkpayqry-step2.png— 切到餘額查詢時、明細條件停用、餘額表日期啟用的狀態chkpayqry-step3.png— 查詢結果清單 + 左下本幣金額彙總/原幣金額彙總chkpayqry-step4.png— 上方四個排序選項(付款日期/到期日/票據號碼/廠商代號)