程式資訊
- 程式 ID:
PX_QRY - 所屬子系統:M.主管資訊
- 狀態:stable
最近進價與售價¶
功能簡介¶
「最近進價與售價」把指定期間內的銷貨與進貨交易,依品號彙整出三組代表性單價——最近一筆、單價最低、單價最高——讓業務、採購與主管一眼看出每個品號的近期成交區間。售價來自銷貨單(客戶端),進價來自進貨單(廠商端),分別顯示在兩個頁籤。
這支表單適合在報價、議價或檢視成本波動時使用:例如採購想知道某料件最近向誰買、買多少錢、近期最高與最低各是多少;或業務想確認某成品近期賣給哪個客戶、單價落在哪個區間。本頁屬於主管資訊(M-EIS)的查詢報表,純查詢、不異動任何單據。
前置需求¶
- 權限:M.主管資訊 →
M-040 最近進價與售價的瀏覽權限。 - 基礎資料:查詢結果取自既有的銷貨/進貨交易,下列資料的完整度直接決定結果——
| 資料 | 影響的結果 |
|---|---|
| 銷貨單(銷貨主檔/明細,含交易日期、單價、匯率、本幣未稅) | 「最近與最高售價」頁的所有列與單價 |
| 進貨單(進貨主檔/明細,含交易日期、單價、匯率、本幣未稅) | 「最近與最高進價」頁的所有列與單價 |
| 客戶主檔(客戶代號/簡稱) | 售價頁的最近/最低/最高客戶欄 |
| 廠商主檔(廠商代號/簡稱) | 進價頁的最近/最低/最高廠商欄 |
| 匯率(單據上的成交匯率) | 各組台幣價=原幣價 × 匯率的換算 |
資料來源是交易檔,不是報價檔
本表查的是實際成交的銷貨/進貨單(售價來自 View vw_trsama 主檔 ⨝ vw_trsade 明細、進價來自 vw_trrama ⨝ vw_trrade),不是客戶報價或廠商報價。沒有實際交易的品號不會出現。
操作步驟¶
- 從主選單開啟 主管資訊 → 最近進價與售價。
- 在左側條件面板設定查詢條件(詳見欄位說明):
- 選擇查詢別:
售價、進價或售價暨進價(預設售價暨進價)。 - 輸入日期起訖:系統會比對交易日期落在此區間內的單據(預設今天往前 30 天 ~ 今天)。
- 選擇查詢別:
- 按工具列的
查詢。 -
結果顯示在右側兩個頁籤:
- 最近與最高售價:銷貨端,每個品號一列。
- 最近與最高進價:進貨端,每個品號一列。
查詢別會自動切頁籤
查詢別選
進價時,查完會自動切到「最近與最高進價」頁;選售價或售價暨進價則停在「最近與最高售價」頁。詳見欄位連動與附加功能。 -
需要把結果帶出系統時,在格線上按右鍵選匯出 Excel(見欄位連動與附加功能)。

沒有「新增/修改/刪除」
本表單為唯讀查詢,格線不可編輯、不可新增列,也沒有存檔動作。改了條件就再按一次 查詢 重新撈即可。
欄位說明¶
查詢條件¶
| 欄位 | 必填 | 說明 |
|---|---|---|
| 查詢別 | ✔ | 售價(1)/進價(2)/售價暨進價(3),預設 售價暨進價。決定要撈銷貨、進貨或兩者 |
| 日期起訖 | ✔ | 比對單據交易日期的區間。預設起=今天 −30 天、訖=今天,格式 yyyy/MM/dd |
預設區間與 VFP 一致
起訖日預設「今天往前 30 天到今天」是沿用舊版 VFP 的設定。查詢別在舊版多由選單參數鎖定,新版開放自由切換,預設帶 售價暨進價。
結果頁籤欄位¶
兩個頁籤的欄位結構相同,差別只在售價頁顯示客戶、進價頁顯示廠商。每個品號一列,欄位分成「最近 / 最低 / 最高」三組,每組都有單號、對象、日期、幣別、匯率、原幣價、台幣價、金額。
| 欄位 | 售價頁 | 進價頁 | 說明 |
|---|---|---|---|
| 品號 / 品名 | ✔ | ✔ | 交易明細上的品號與品名 |
| 最近台幣價 | ✔ | ✔ | 最近一筆的原幣價 × 匯率 |
| 最近單號 | ✔ | ✔ | 最近一筆交易的單號 |
| 最近客戶 / 最近廠商 | 客戶 | 廠商 | 最近一筆的交易對象代號 |
| 最近客簡稱 / 最近廠簡稱 | 客戶 | 廠商 | 對象簡稱 |
| 最近日期 | ✔ | ✔ | 最近一筆的交易日期 |
| 最近幣別 / 最近匯率 / 最近原幣價 / 最近金額 | ✔ | ✔ | 最近一筆的幣別、成交匯率、原幣單價、本幣未稅金額 |
| 最低台幣價 … 最低金額 | ✔ | ✔ | 區間內單價最低那筆的對應資料(單號、對象、日期、幣別、匯率、原幣價、金額) |
| 最高台幣價 … 最高金額 | ✔ | ✔ | 區間內單價最高那筆的對應資料 |
三組的判定基準不同
- 最近=依交易日期由新到舊取第一筆。
- 最低 / 最高=依原幣單價由小/由大排序取第一筆(不是看台幣價)。 所以同一列裡,「最近」那筆的日期通常和「最低/最高」那筆不同。
欄位連動與附加功能¶
這節把「輸入條件後系統做了什麼」「每個欄位怎麼算出來」整理清楚——查詢報表的重點全在這裡。
按 查詢 後系統做的事¶
- 系統把查詢別與日期起訖送進後端,分別撈出符合條件的銷貨/進貨交易:
- 查詢別
售價(1) 或售價暨進價(3) → 撈銷貨資料(vw_trsama主檔 ⨝vw_trsade明細)。 - 查詢別
進價(2) 或售價暨進價(3) → 撈進貨資料(vw_trrama主檔 ⨝vw_trrade明細)。 - 沒被查詢別選到的那一頁回空集合(頁籤仍在,只是沒有資料列)。
- 查詢別
- 在每個品號內,系統用三種排序各取出代表筆:
- 最近:交易日期由新到舊,取第 1 筆。
- 最低:原幣單價由小到大,取第 1 筆。
- 最高:原幣單價由大到小,取第 1 筆。
- 把三組代表筆併成一列:品號、品名只放一次,其餘欄位各帶上「最近/最低/最高」前綴。結果依品號排序。
各欄位的算法(當你看到某個數字,它是怎麼來的)¶
- 當某組(最近/最低/最高)取到代表筆時,系統會帶出該筆的:
- 原幣價=該筆明細的單價。
- 匯率=該筆單據的成交匯率。
- 台幣價=原幣價 × 匯率(照舊版,不做四捨五入)。
- 金額=該筆明細的本幣未稅。
- 單號 / 日期 / 幣別 / 對象(客戶或廠商)=直接取自該筆單據。
台幣價是用單據當下匯率換算
台幣價反映的是成交當時的匯率,不是今天的匯率,也不會重新查匯率表。如果同一品號的最低價是一張舊外幣單,它的台幣價會用那張單的匯率算。
查詢別自動切換頁籤¶
- 查詢別選
進價查完後,系統會自動把畫面切到「最近與最高進價」頁,省去手動點頁籤。 - 查詢別選
售價或售價暨進價則維持在「最近與最高售價」頁。 - 這對應 VFP 舊版查完依查詢別設定
ACTIVEPAGE的行為。
售價頁顯示客戶、進價頁顯示廠商¶
- 兩頁結構一致,差別在「對象」欄:售價頁的最近/最低/最高對象是客戶(含客簡稱),進價頁是廠商(含廠簡稱)。
- 這是因為銷貨單的交易對象是客戶、進貨單的交易對象是廠商。
匯出 Excel¶
- 兩個頁籤的格線都是標準
TsRadGridView,可在格線上按右鍵使用內建的匯出功能把結果帶成 Excel。 - 舊版 VFP 的「預覽 / 列印」按鈕實際上都是呼叫「匯出 Excel」(VFP 內
PREVIEW_BTN/PRINT_BTN都導向EXCEL_BTN),所以新版以格線匯出 Excel 取代列印即等同舊版行為。
沒有獨立的報表列印(FastReport)
本表單在新版只提供查詢與格線匯出 Excel,沒有套印報表(GetReports/IPrintSource)。需要紙本時請用 Excel 匯出後自行列印。
常見問題¶
查不到任何資料?
請依序確認:① 日期起訖有沒有涵蓋到實際的成交日(預設只抓近 30 天,舊資料要把起始日往前拉);② 查詢別是否選對(只想看進價卻停在售價頁、或反之);③ 該期間內確實有銷貨/進貨單存在。本表只看實際交易,沒有交易就不會有列。
某個品號的「最近」和「最低/最高」是不同筆、日期也不一樣,正常嗎?
正常。「最近」是依交易日期取最新一筆,「最低/最高」是依原幣單價取極值,三者通常落在不同的單據上,所以同一列裡日期、單號、對象都可能不同。
為什麼台幣價跟我自己用今天匯率換算的不一樣?
台幣價=該筆單據成交當時的原幣價 × 匯率,用的是單據上記載的匯率,不是今天的即期匯率,也不會重算。外幣交易尤其明顯。
選了「售價暨進價」,但其中一頁是空的?
表示該方向(銷貨或進貨)在這段期間沒有交易。例如某料件這個月只有進貨、沒有銷貨,售價頁就會是空的,這不是錯誤。
金額(最近/最低/最高金額)是含稅還是未稅?
是本幣未稅金額,直接取自交易明細的本幣未稅欄,不含營業稅。
相關功能¶
需補截圖清單
以下截圖待功能 runtime 驗收後補拍(放 docs/M-EIS/images/):
px_qry-step1.png— 查詢結果整體畫面(左側條件面板「查詢別/日期起訖」+右側「最近與最高售價」頁籤,建議含幾列實際資料以呈現最近/最低/最高三組欄位)