程式資訊
- 程式 ID:
Checkrec - 所屬子系統:O.銀行票據
- 狀態:stable
應收票據¶
功能簡介¶
「應收票據」用來登錄、維護公司收到客戶交付的票據(支票、本票、匯票、L/C),記錄票據號碼、開票銀行、到期日、預兌日與票況的整個生命週期(庫存→託收→兌現/退票等)。它是收款側的票據主檔,對應付款側的應付票據。財務人員在收款時建立票據,並隨票據在銀行端的狀態更新票況,是票據托收、兌現與結帳作業的源頭。
本表單為單一主檔(無明細)結構,每筆即一張票據。票據單號由系統採 #R- 前置碼產生,可由銷售收款等流程帶出收款單號後關聯入帳。
前置需求¶
- 權限:O.票據作業 →
O-020 應收票據的新增/修改/刪除/列印權限。 - 基礎資料:下列主檔/參數會影響本表單的帶值與驗證——
| 資料 | 影響的結果 |
|---|---|
| 客戶主檔(交易對象) | 交易對象 搜尋彈窗的可選客戶與帶出的對象簡稱 |
| 銀行帳戶主檔 | 帳戶代號 搜尋與帶出的帳戶簡稱 |
| 公司基本資料 | 公司代碼 預設 1,存檔時不可為空 |
| 幣別/匯率資料 | 幣別 預設本位幣、立帳匯率 控件帶值與本幣金額換算 |
| 票況代碼表(Cmb_C231) | 票況 下拉選單的可選值(CA~CM) |
操作步驟¶
新增票據¶
- 按工具列
新增,系統以預設值開出一張空白票據(見欄位說明的預設值)。 - 輸入票據號碼(必填,游標預設停在此欄)。
- 輸入交易對象(客戶代號),系統帶出對象簡稱。
- 選填帳戶代號(收票存入的銀行帳戶),帶出帳戶簡稱。
- 填寫開票銀行/開票分行/開票帳號等票面資訊。
- 選擇票別(支票/本票/匯票/L/C)與幣別,外幣請確認立帳匯率。
- 輸入票據金額,系統自動算出唯讀的本幣金額。
- 輸入收款日期/到期日/預兌日(皆為
yyyy/MM/dd)。 - 設定票況、禁止轉讓、平行線等票況資訊。
- 按
儲存。存檔前系統會檢核票據號碼、公司代碼與立帳匯率(見欄位連動與附加功能)。
修改與刪除¶
- 用工具列翻頁鈕或快速搜尋框定位票據(搜尋框輸入票據號碼,系統自動補
#R-前置碼;輸入.123可直接依 PKID 跳轉)。 - 按
修改進入編輯,調整票況、預兌日、備註等欄位後儲存。 - 確需作廢時按
刪除。
注意
票據單號/票據類別/傳票號碼/本幣金額 為系統產生或唯讀欄位,畫面上以系統色標示,不可手動修改。已產生傳票或已托收/兌現的票據請依公司內控流程處理,勿直接刪除。
查詢¶
- 快速搜尋框輸入票據號碼即可定位;
.+ 數字依 PKID 跳轉。
列印¶
- 定位到要列印的票據。
- 按工具列
列印,選擇報表應收票據一覽表(報表編號O020-1)。
核對總帳¶
按延伸功能(對應 VFP 的 核對總帳)會開啟總帳傳票視窗,供核對該票據對應的傳票;關閉後自動重新整理本表單資料。詳見欄位連動與附加功能。
欄位說明¶
| 欄位 | 必填 | 說明/格式/預設 |
|---|---|---|
| 票據單號 | 系統產生 | 主鍵,採 #R- 前置碼;唯讀 |
| 公司代碼 | ✔ | 新增預設 1;存檔時不可為 0 |
| 票據號碼 | ✔ | 票面號碼;存檔必填,不可為空或 +++ |
| 票據類別 | 系統設定 | 新增預設 2.應收(AR);唯讀、系統色 |
| 收款單號 | — | 關聯的收款單號 |
| 交易對象 | — | 客戶代號;帶出對象簡稱 |
| 對象簡稱 | — | 由交易對象帶出,唯讀 |
| 帳戶代號 | — | 收票存入的銀行帳戶;帶出帳戶簡稱 |
| 帳戶簡稱 | — | 由帳戶代號帶出,唯讀 |
| 開票銀行/開票分行/開票帳號 | — | 票面開票行庫資訊 |
| 票別 | — | 1.支票/2.本票/3.匯票/4.L/C;新增預設 1.支票 |
| 幣別 | — | 新增時若為空,預設帶入本位幣(Context.Env.LocalCurrency) |
| 立帳匯率 | ✔ | 新增預設 1;存檔時必須 > 0 |
| 收款日期/到期日/預兌日 | — | 格式 yyyy/MM/dd |
| 票據金額 | — | 原幣金額,依幣別小數位顯示 |
| 本幣金額 | 系統計算 | =票據金額 × 立帳匯率(四捨五入遠離零至本幣小數位 Context.Env.LocalDecimal);唯讀、系統色 |
| 禁止轉讓 | — | Y/N;新增預設 Y |
| 平行線 | — | Y/N;新增預設 Y |
| 票況 | — | 新增預設 CA(收票庫存);可選 CA~CM(見下) |
| 異動日期 | — | 票況異動日期,格式 yyyy/MM/dd |
| 票據備註/自定欄位 | — | 自由文字 |
| 傳票號碼 | 系統產生 | 轉立傳票後帶入;唯讀、可超連結點開傳票 |
票況代碼(票況下拉)¶
票況來源是資料庫代碼表 Cmb_C231,常見值如下:
| 代碼 | 說明 | 代碼 | 說明 |
|---|---|---|---|
| CA | 收票庫存(預設) | CH | 收票未兌退票 |
| CB | 收票託收 | CI | 收票換票 |
| CC | 收票質押 | CJ | 收票抽票 |
| CD | 收票票貼 | CK | 質押到期 |
| CE | 收票兌現 | CL | 票貼兌現 |
| CF | 收票延期 | CM | 票貼退票 |
| CG | 收票已兌退票 |
備註
新增票據的票況刻意維持現行的 CA(收票庫存),與 VFP 舊版的 B2 不同,這是本系統的設定差異而非錯誤,請勿改回 VFP 值。
欄位連動與附加功能¶
這一節整理「輸入某欄位後系統會做什麼」「按某動作會發生什麼」,皆來自實際程式碼(C# ViewModel/SaveBll 與 VFP .prg 欄位事件)。
新增時的預設值(SetNewData)¶
當你按 新增 開出空白票據時,系統自動帶入:
- 公司代碼 =
1 - 票況 =
CA(收票庫存) - 票據類別 =
2.應收(AR) - 票別 =
1.支票 - 立帳匯率 =
1 - 禁止轉讓 =
Y、平行線 =Y - 幣別 = 若原本為空,帶入本位幣(
Context.Env.LocalCurrency)
本幣金額自動換算¶
- 當你輸入或修改票據金額或立帳匯率時,系統即時重算本幣金額=
四捨五入遠離零(票據金額 × 立帳匯率,本幣小數位)。本幣金額是 Source 上的唯讀計算屬性,票據金額/立帳匯率的 setter 會觸發它重新計算。 - 本幣金額為唯讀,不能手動覆寫;要改金額請改票據金額或匯率。
- 幣別 由
TsCurrency控件選擇;外幣請自行於立帳匯率填入正確匯率(本表單未自動把幣別對應的匯率帶進立帳匯率)。
交易對象帶出對象簡稱¶
- 交易對象 欄位為搜尋型欄位(
TsSearchTextBox+VendorSearch樣式):輸入客戶代號或按搜尋鈕從彈窗挑選後,控件即把選中的對象簡稱帶入右側唯讀欄(Description綁定對象簡稱)。 - 帶出的對象簡稱 為唯讀,由搜尋控件填入,不需手動輸入。
與 VFP 的差異
VFP 舊版在 交易對象.Valid 會主動查客戶主檔,查無代號時清空對象簡稱、跳「查無此客戶代號」並擋下輸入。新版改由搜尋控件(TsSearchTextBox)負責帶值與挑選,表單本身不再硬編這段查核訊息。
帳戶代號帶出帳戶簡稱¶
- 帳戶代號 同為搜尋型欄位(
TsSearchTextBox+BankSearch樣式):輸入或從彈窗選銀行帳戶後,帶出帳戶簡稱(唯讀)。資料來源為應收票據資料庫檢視(Twork_chk_vw_checkrec)JOIN 帶出,並非表單程式逐筆填入。
預兌日自動帶值(VFP 到期日.LostFocus / 預兌日.GotFocus)¶
VFP 舊版針對特定公司(鈞寶)在離開到期日時,若預兌日為空會自動推算預兌日(外幣=到期日/收款日 +14 天、本幣=收款日 +3 天)。新系統保留的對應行為集中在存檔前處理:
- 存檔時:若預兌日為空、而到期日有值,系統自動把預兌日補成到期日(
HandleDataBeforeEndEdit)。 - 因此就算你沒填預兌日,只要有到期日,存檔後預兌日不會是空白。
存檔前檢核(AllowSave)¶
按 儲存 時,下列任一條件不符會擋下並提示:
- 票據號碼 為空或等於
+++→ 提示請輸入票據號碼。 - 公司代碼 為 0 → 提示請先輸入公司資訊。
- 立帳匯率 ≤ 0 → 提示請輸入正確匯率。
快速搜尋前置碼(SearchPreText #R-)¶
- 快速搜尋框預設前置碼為
#R-:輸入票據號碼時系統自動補上前置碼比對。 - 輸入
.+ 數字(如.123)可改以 PKID 直接跳轉到指定票據(對應 VFPSEEK1.Valid)。
傳票號碼超連結¶
- 傳票號碼 欄位為唯讀且為超連結(系統色);點擊可直接導向對應的總帳傳票(
NavigateProgramClass = SLIY)。
核對總帳(ExtendedFunction1)¶
- 觸發延伸功能(對應 VFP
核對總帳按鈕、原DO FORM ACCNR)時,系統開啟總帳傳票視窗(Sliy1ViewModel),供你核對該票據相關的傳票。 - 視窗關閉後系統會自動重新整理本表單資料(
DataNavigateHelper.Renew),確保看到最新狀態。
列印(GetReports / IPrintSource)¶
- 本表單實作
IPrintSource,提供報表應收票據一覽表(報表編號O020-1,A4,TW 區域,資料來源rpt_o030_checkrec_report1)。 - 按工具列
列印即可選用此報表輸出。
常見問題¶
存檔時一直跳「請輸入票據號碼」?
票據號碼 為必填,且不可為空或等於 +++。請在「基本資料」區的票據號碼欄填入實際票面號碼後再存檔。
本幣金額是 0 或沒更新?
本幣金額是系統算出來的唯讀欄位=票據金額 × 立帳匯率。請確認票據金額已輸入、且立帳匯率大於 0(外幣尤其要確認匯率)。改金額或匯率後本幣金額會即時重算。
存檔被擋,提示立帳匯率不正確?
立帳匯率 必須大於 0。新增時預設為 1;若被清空或填成 0/負數會被擋下,請填入正確匯率。
交易對象填了代號卻帶不出對象簡稱?
交易對象 是搜尋型欄位,建議用搜尋鈕從彈窗挑選客戶,控件會自動把對象簡稱帶到右側唯讀欄。若直接輸入代號卻沒帶出簡稱,請確認該客戶代號存在於客戶主檔。
新增的票況為什麼是「收票庫存(CA)」而不是 VFP 的 B2?
這是本系統刻意保留的預設值設定(CA 收票庫存),與 VFP 舊版的 B2 不同,屬正常設計差異,請勿改回 VFP 值。
沒填預兌日,存檔後卻有值?
存檔前系統會在預兌日為空、到期日有值時,自動把預兌日補成到期日。若不希望被帶值,請手動填寫正確的預兌日。
相關功能¶
需補截圖清單
以下截圖待功能 runtime 驗收後補拍(放 docs/O-Check/images/):
checkrec-step1.png— 新增票據的整體畫面(基本資料/金額匯率/交易資訊/票況四區)checkrec-step2.png— 交易對象帶出對象簡稱、帳戶代號帶出帳戶簡稱的效果checkrec-step3.png— 票況下拉選單(CA~CM)checkrec-step4.png— 列印「應收票據一覽表」報表選擇畫面