跳轉到

程式資訊

  • 程式 ID:BCURRENM
  • 所屬子系統:B.基本資料
  • 狀態:stable

匯率表

功能簡介

「匯率表」用來按日期建立一份外幣對本位幣的匯率牌告,每一張匯率表(一個單號)就是某一天某一種類別(會計/海關/其他)的完整匯率表,底下逐筆列出各外幣的買入價/賣出價/中價。

財會與採購人員會在每天或每月開盤後建立當日匯率表,之後系統各種含外幣的單據(採購、銷售、應收應付、總帳傳票等)就以此表的匯率把外幣金額換算成本位幣。除了人工輸入,本表也能一鍵透過雲端匯率服務抓台灣銀行即期牌告自動帶入,並可由系統排程每天自動建立。

本位幣不出現在明細

明細只列「非本位幣」的幣別。新增時系統會把基本資料中除了本位幣以外的所有幣別自動塞進明細,本位幣對自己的匯率恆為 1,不需要、也不會出現在表內。

前置需求

  • 權限:B.基礎資料 → B-060 匯率表 的新增/修改/刪除/瀏覽/列印權限。
  • 基礎資料:下列資料會影響本表能否正確建立與被引用——
資料 影響什麼
幣別資料 決定新增時自動塞入明細的幣別清單(本位幣以外全部帶入)
本位幣設定(系統程式參數(A-040)的參數 6) 判斷哪一個幣別是本幣、不列入明細
雲端匯率服務的台灣銀行牌告資料 Query 與工具列匯率查詢能否抓到當日即期匯率

操作步驟

新增一張匯率表

  1. 按工具列 新增。系統會:
    • 自動把單號設為待產生狀態(顯示 +++,唯讀,存檔時由系統正式編號)。
    • 把類別預設為 會計、起始日期與使用日期預設為今天。
    • 將本位幣以外的所有幣別逐筆塞入明細(買/賣/中皆為 0,待輸入)。
  2. 視需要調整類別(海關/會計/其他)與起始日期、使用日期。
  3. 在明細逐筆輸入每個幣別的買與賣。每輸入一格,中(中價)會自動算成(買+賣)÷2,四捨五入到小數 4 位,不需手動填。
  4. 按 儲存。系統正式產生單號並寫入匯率表。

用台灣銀行牌告自動帶入

不想逐筆輸入時,在新增狀態下按條件區的 Query 按鈕,系統會依起始日期透過雲端匯率服務取台灣銀行即期牌告,清空明細後把抓回來的每個幣別的即期買入/即期賣出填入,並自動算好中價。詳見欄位連動與附加功能。

修改/刪除

  1. 用瀏覽或查詢定位到要修改的匯率表,按 修改。
  2. 可調整類別、日期與各幣別的買/賣(中價隨之重算)。
  3. 將某一列的幣別清空即代表刪除該列(系統以幣別是否為空判定)。
  4. 按 儲存 生效;整張匯率表的刪除走工具列 刪除。

列印

  1. 按工具列 列印。系統開啟列印頁並自動把目前這張匯率表的單號帶入起訖單號(起=迄=當前單號)。
  2. 列印頁可改起訖單號區間後輸出,套用報表 匯率表(報表編號 B060-1)。詳見 匯率表列印。

查詢台灣銀行即時牌告(不存檔)

  1. 按工具列的擴充功能 匯率查詢。
  2. 系統開啟「匯率查詢」視窗,輸入日期後按查詢,即可檢視台灣銀行即期牌告供參考,此視窗只是查詢,不會寫進匯率表。關閉後主畫面資料會重新整理。

欄位說明

主檔(單一匯率表)

欄位 必填 說明/格式/預設
單號 系統 主鍵、唯讀,新增時顯示 +++,儲存時自動編號
類別 ✔ 海關/會計/其他,預設 會計(代碼 2)
起始日期 ✔ 此匯率表生效起日,預設今天;Query 取牌告也用此日期
使用日期 ✔ 單據引用此匯率表的判斷日期,預設=起始日期

截止日期已隱藏

主檔仍保留截止日期欄位,但畫面上已隱藏不顯示、使用者不需輸入。手動新增時此欄不會自動帶值;僅系統排程自動建立時會把截止日期帶成=指定日期。

明細(各幣別匯率)

欄位 必填 說明/格式/預設
幣別 ✔ 外幣代碼(如 USD、JPY),新增時由基本資料自動帶入;清空=刪除該列
買 — 買入價,小數 4 位,預設 0;輸入後重算中價
賣 — 賣出價,小數 4 位,預設 0;輸入後重算中價
中 唯讀 中價,由系統算成(買+賣)÷2 四捨五入 4 位,不可手動改

欄位連動與附加功能

這一節列出「輸入某欄位/按某按鈕後系統實際會做什麼」,全部來自程式碼行為。

新增時自動帶幣別

當你按 新增,系統會清空明細,取得基本資料中所有幣別,逐一把非本位幣的幣別加成一列明細(買/賣/中皆為 0)。因此你一開始就會看到一張「待填價的空白匯率表」,只需在每列填買/賣即可,不必自己挑要哪些幣別。

輸入買或賣 → 中價自動重算

當你改動明細上 買、賣 任一格,系統會立刻把中=(買+賣)÷2 四捨五入到小數第 4 位後寫回中欄。所以:

  • 中欄永遠是唯讀,你不需要、也無法直接編輯。
  • 只填了買、沒填賣(或反之),中價會等於「兩者之和的一半」,並非你想要的單邊價——若只有單邊牌告,建議買賣兩格填相同值。

條件區 Query → 抓台灣銀行牌告填入明細

Query 按鈕只有在「新增」狀態下可按。按下後系統會:

  1. 取目前主檔的起始日期。
  2. 透過雲端匯率服務取台灣銀行該日即期牌告。
  3. 清空現有明細,把抓回來的每一個幣別逐列加入:買=即期買入、賣=即期賣出,並算好中價,同時把這些明細歸屬到目前這張匯率表。

換言之,Query 會用台灣銀行牌告覆蓋你目前明細的內容,適合「先新增、再一鍵帶當日牌告、必要時微調」的流程。

Query 只在新增狀態可用且會覆蓋明細

在修改狀態下 Query 不可按;在新增狀態下按它會清掉你已填的明細並換成牌告值,請先確認。

工具列擴充功能 匯率查詢

按下後開啟「匯率查詢」視窗。視窗內可輸入日期查台灣銀行即期牌告僅供檢視參考,不會寫回匯率表;關閉視窗後主畫面會重新整理。

列印

按 列印 會開啟列印頁,並把目前匯率表的單號同時帶成列印的起始單號與截止單號,因此預設就是列印「眼前這一張」。套用的報表為 匯率表(B060-1)。詳見 匯率表列印。

自動化:系統排程每日取匯率

系統提供名為 FxRate 的排程任務,預設參數 BankAbbr=TW(銀行別)、Date=今天。執行時會向台灣銀行取牌告,自動建立一張類別=會計、起訖/使用日期=指定日的匯率表並直接存檔。可用來「每天開盤後自動產生當日匯率表」,免人工操作。

目前只支援台灣銀行(TW)

Query、匯率查詢與排程任務取得的都是台灣銀行即期牌告。排程任務若 BankAbbr 不是 TW 會直接回報「未支援」。其他銀行來源屬規劃中,尚未提供。

常見問題

新增後明細是空的、沒有任何幣別?

明細的幣別來自幣別資料。若你只維護了本位幣、沒有建立任何外幣,新增時就沒有「非本位幣」可塞,明細自然是空的。請先到幣別資料把要管理匯率的外幣建好。

中(中價)為什麼改不了?

中價是唯讀欄位,由系統自動算成(買+賣)÷2(四捨五入 4 位)。請改買或賣,中價會跟著重算。

按了 Query 卻沒反應或抓不到匯率?

Query 只有在新增狀態下能按;且它透過雲端匯率服務取台灣銀行牌告,電腦需能連線到匯率雲端服務(請 IT 開放對外連線)。若該日台灣銀行沒有牌告(例如假日),就抓不到資料。確認日期是營業日、且處於新增狀態。

本位幣的匯率在哪裡填?

不需要填。本位幣對自己的匯率恆為 1,系統刻意不把本位幣列入明細。匯率表只管「外幣換本位幣」。

某個外幣不想出現在這張表,怎麼刪?

在明細把該列的幣別清空即視為刪除該列,再按 儲存。若要整張匯率表刪掉,定位到該單號後按工具列 刪除。

類別(海關/會計/其他)有什麼差別?

類別用來區分同一天可能存在的多套匯率:報關用「海關」匯率、帳務換算用「會計」匯率、其他特殊用途用「其他」。新增預設為會計。單據引用時依其需求各取對應類別的匯率表。

相關功能


需補截圖清單

以下截圖待 runtime 驗收後補拍(放 docs/B-BasicData/images/):

  1. bcurrenm-step1.png — 新增後的匯率表主畫面(含自動帶入的幣別明細)
  2. bcurrenm-step2.png — 條件區 Query 抓台灣銀行牌告後明細自動填入的結果
  3. bcurrenm-step3.png — 工具列「匯率查詢」開啟的 Azure 匯率查詢模態視窗