程式資訊
- 程式 ID:
GREQMA - 所屬子系統:C.總務管理
- 狀態:stable
請購需求單¶
功能簡介¶
請購需求單(GREQMA,C-030) 是總務採購流程的起點單據:由各部門人員登錄「想買什麼、要多少、什麼時候要、做什麼用」,送出後才進到後續的請購 / 採購作業。它對應 VFP 舊版 GREQMA(scx_gen.vcx),主檔存於 greqma、明細存於 greqde,單號前置碼為 PR。
典型使用者是各部門需求人員與總務窗口。在流程中的位置:
- 部門在本表登錄需求(品號、需求數量、預訂交期、用途)。
- 採購人員可在明細列按
查價,叫出廠商比價表參考歷史報價,把單價回傳填入預估單價。 - 需求確認後由後續的請購 / 採購程式轉成正式請購單;一旦本單已被轉出(轉出備註有值),本單即鎖定不可再修改。
與「暫收單」「採購單」的關係
本表只負責登錄「需求」,不直接產生收料或付款。後續作業請見 暫收單 GPURAMA 與相關採購程式。
前置需求¶
- 權限:總務模組 →
C-030 請購需求單的瀏覽 / 修改 / 刪除權限。其中查價廠商比價功能另受「可檢視單價」權限(AllowViewPrice)控制,無此權限時查價鈕與比價表單價欄不顯示。 - 基礎資料:下列主檔 / 參數會影響欄位帶值與存檔,建議先維護完整——
| 資料 | 影響什麼 |
|---|---|
人員資料(sk_perdata) |
輸入需求人員後自動帶出姓名、需求部門、部門簡稱 |
| 部門資料 | 需求部門搜尋、部門簡稱顯示 |
倉庫資料(G 倉 gstkbas) |
倉儲代號搜尋來源 |
品號主檔(ginvent) |
明細輸入品號後帶出品名、單位 |
系統參數 4001 |
新增時帶入的預設倉儲代號(總務請購單預設倉庫) |
採購別代碼(smems C229) |
採購別下拉選單內容 |
| 廠商報價單(GSPPDT)與歷史採購紀錄 | 查價 廠商比價表的資料來源(由 SP TWORK_BIZ_GSPPDT 撈各廠商歷史採購 / 報價) |
操作步驟¶
新增請購需求¶
- 從主選單開啟 總務 → 請購需求單。
- 按工具列
新增。系統自動帶入預設值(參見欄位連動與附加功能):公司代碼 = 1、需求日期 = 今日、需求人員 / 需求部門 = 登入者、採購別 = 1、倉儲代號 = 系統參數4001。 - 視需要修改主檔欄位(需求日期、需求人員、需求部門、採購別、倉儲代號)。
-
在明細格線逐列輸入需求:
- 輸入品號(按搜尋鈕挑品號);非雜項品號會自動帶品名、單位。雜項請直接輸入品號
MISC,品名 / 單位可自行填寫。 - 輸入需求數量、單位。
- 輸入預估單價(或用
查價從廠商比價表回傳),系統自動算預估金額。 - 輸入預訂交期(不得早於今日)與用途——這兩欄是存檔必填。
- 視需要填特別要求、廠牌。
- 輸入品號(按搜尋鈕挑品號);非雜項品號會自動帶品名、單位。雜項請直接輸入品號
-
按工具列
儲存。小技巧
可用 Ctrl+S 快速儲存。
查價(廠商比價)¶
- 在明細選取一列(需有品號)。
- 按該列的
查價鈕,或直接點選明細列。系統以需求日期(空白時改用今日)查 SPTWORK_BIZ_GSPPDT(GppurchBll.GetUnitPrice,查詢別 1=跨廠商最新),把不同廠商對該品號的最新採購 / 報價列在下方廠商比價表。 -
在比價表挑一筆,按該列
回傳(Return),系統把該筆單價寫回明細的預估單價,並重算預估金額。查價需在編輯狀態才能回傳
回傳只有在新增 / 修改模式(IsInEditingMode)下才會把單價寫回;純瀏覽時只供查看。
修改 / 刪除¶
- 用
上一筆/下一筆或查詢功能找到要處理的單據。 - 按
修改,調整主檔或明細後儲存。 - 刪除整張單按
刪除;刪某一明細列把該列需求數量設為 0 或清空品號即可(存檔時自動標記刪除)。
已轉出的單不可修改
若本單的轉出備註已有值(代表已被後續程式轉成請購單),按 修改 會被擋下並提示「已轉出至其他單據,不可修改」。
欄位說明¶
主檔¶
| 欄位 | 必填 | 說明 / 格式 / 預設 |
|---|---|---|
| 需求單號 | 自動 | 系統產生,前置碼 PR,唯讀 |
| 公司代碼 | ✔ | 新增預設 1 |
| 需求日期 | ✔ | yyyy/MM/dd,新增預設今日;空白擋存檔 |
| 需求人員 | — | 帶出姓名 / 需求部門 / 部門簡稱;新增預設登入者 |
| 姓名 | — | 由需求人員帶入,唯讀 |
| 需求部門 | ✔ | 新增預設登入者部門;空白擋存檔 |
| 部門簡稱 | — | 由需求部門帶入,唯讀 |
| 採購別 | ✔ | 下拉(C229),新增預設 1;為 0 擋存檔 |
| 倉儲代號 | — | G 倉搜尋,新增預設系統參數 4001 |
| 轉入備註 | — | 系統產生,唯讀(由其他單轉入時帶出) |
| 轉出備註 | — | 系統產生,唯讀;有值代表已轉出,鎖定本單 |
明細¶
| 欄位 | 必填 | 說明 / 格式 / 預設 |
|---|---|---|
| 序號 | 自動 | 系統產生,唯讀 |
| 需求部門 | — | 空白時存檔自動帶主檔需求部門 |
| 品號 | — | 搜尋品號;空白存檔時自動填 MISC(雜項) |
| 品名 | — | 非 MISC 由品號帶入;MISC 可自填 |
| 需求數量 | ✔ | 數值;≤ 0 的列存檔時自動標記刪除 |
| 單位 | — | 下拉(單位清單);由品號帶入 |
| 幣別 | — | 固定本位幣,唯讀(不需輸入) |
| 預估單價 | — | 數值;可手填或由查價回傳 |
| 預估金額 | 自動 | = ROUND(需求數量 × 預估單價),唯讀 |
| 預訂交期 | ✔ | yyyy/MM/dd;不得早於今日;需求數量 > 0 時必填 |
| 用途 | ✔ | 需求數量 > 0 時必填 |
| 特別要求 | — | 自由輸入 |
| 廠牌 | — | 自由輸入 |
| 請購數量 | — | 系統回填(轉請購後),唯讀 |
| 請購單號 | — | 系統回填(轉請購後),唯讀 |
欄位連動與附加功能¶
這一節把「輸入某欄位 / 按某按鈕後系統會做什麼」全部列出,來源皆為實際程式碼(C# 還原自 VFP 欄位事件)。
新增時的預設帶值(AfterAddNew)¶
當你按 新增 建立一張新單,系統會自動填好主檔:
- 公司代碼 設為 1。
- 需求日期 設為今日(
yyyy/MM/dd)。 - 需求人員 設為登入者帳號。
- 需求部門 設為登入者的部門代號。
- 採購別 設為 1。
- 倉儲代號 取系統參數
4001(總務請購單預設倉庫代號)。
輸入「需求人員」→ 自動帶部門資料(需求人員Binding)¶
當你在需求人員欄輸入 / 挑選一位人員,系統依 sk_perdata 查該人員,帶出:
- 姓名
- 需求部門(人員所屬部門代號)
- 部門簡稱(部門名稱)
VFP 原碼小註記
VFP 此處原本誤寫成 gppurch 的「請購部門」欄(抄寫殘留),新版已修正為本表的需求部門。
輸入明細「品號」→ 自動帶品名 / 單位(品號Binding)¶
- 一般品號:由
ginvent帶出品名與單位(覆寫整列)。 - 品號為
MISC(雜項):只有在品名 / 單位為空白時才帶入,已填的內容會保留——讓雜項可自行命名。
金額自動重算(SetAmount)¶
只要改了需求數量或預估單價,系統立即重算:
預估金額 = ROUND(需求數量 × 預估單價),四捨五入到本位幣小數位。
存檔前(HandleDataBeforeEndEdit)也會對每一列再算一次,確保金額正確。
預訂交期即時檢核(預訂交期Binding)¶
輸入預訂交期當下,若日期早於今日,該儲存格立刻顯示錯誤「不得小於今日日期」;改回不早於今日即自動清除錯誤。
這是輸入當下的檢查
此檢核發生在你打字輸入交期的那一刻;若資料是程式帶入或舊資料,並不會回頭重檢。
查價鈕與廠商比價表(QueryCommand / VendorBid)¶
- 按明細列
查價鈕,或點選明細列,系統以需求日期(空白用今日)呼叫 SPTWORK_BIZ_GSPPDT,列出不同廠商對該品號的最新報價 / 採購價。 - 廠商比價表欄位:Type(採購 / 報價別)、廠商代號、廠商名稱、廠商料號、報價日期、生效日、幣別、單價、
回傳鈕、單位、最低採購量、備註。 - 比價表按
回傳(Return):在編輯模式下,把該筆單價寫回明細的預估單價(並連動重算預估金額)。 - 無「可檢視單價」權限時,
查價鈕與比價表的單價欄都不顯示。
VFP「全搜」鈕尚未提供
VFP 另有一個不限日期上限的「全搜」鈕(DARB_BIZ_SPPDTG1)。新版目前只保留以需求日期為準的 查價,全搜功能尚未移植。
存檔驗證(GreqmaSave.AllowSave)¶
按 儲存 時,系統依序檢查(任一不過即擋下並提示):
- 需求日期不可空白。
- 需求部門不可空白。
- 採購別不可為 0。
- 每一列「需求數量 > 0」的明細,預訂交期與用途都必須有值(否則提示
LineNo:序號, 請輸入…)。
存檔前自動處理(HandleDataBeforeEndEdit)¶
存檔前系統會逐列自動整理:
- 重算每列預估金額。
- 明細需求部門空白時,帶入主檔的需求部門。
- 需求數量 ≤ 0 的列:標記為刪除(不會存進去)。
- 數量 > 0 但品號空白的列:自動填
MISC(雜項)。
修改鎖定(GreqmaEdit.AllowEditHandle)¶
按 修改 時,若轉出備註有值(本單已被轉成請購單),系統發出提示音並擋下,顯示「已轉出至其他單據,不可修改」。
報表尚未提供
VFP 的列印程式 GREQMA_P(SCX_GENP)尚未移植到新版,目前本表單沒有對應的列印 / 報表輸出。
工作流程 / 快速審核
VFP 舊版的工作流程與快速審核(CMDELSE1/2)在新版改走集中式 workflow,不在本表單內另做。
常見問題¶
按儲存時提示「請輸入需求日期 / 需求部門 / 採購別」?
這三個主檔欄位是存檔必填。需求日期不可空白、需求部門不可空白、採購別不可為 0(請從下拉挑一個有效採購別)。新增時系統會帶預設值,若被清空就會被擋下。
存檔提示「LineNo:N, 請輸入預訂交期 / 用途」?
凡是需求數量大於 0 的明細列,預訂交期與用途都必須填。請補齊提示中該序號(LineNo)那一列的這兩個欄位;不想要的列把需求數量設為 0 即可(存檔時自動刪除)。
預估金額一直是 0?
預估金額 = 需求數量 × 預估單價,由系統自動算。請確認該列需求數量與預估單價都有值;改完任一欄金額會立即重算,存檔時也會再算一次。可用 查價 從廠商比價表 回傳 帶單價。
輸入品號沒有自動帶品名 / 單位?
一般品號會從品號主檔 ginvent 帶值。若帶不出來,多半是該品號未建檔。雜項品號 MISC 是特例:只有在品名 / 單位空白時才帶入,已輸入的內容會保留,所以雜項可自行命名。
按修改沒反應 / 提示「已轉出至其他單據,不可修改」?
代表本單的轉出備註已有值,也就是這張需求已經被後續程式轉成請購單,依規則鎖定不可再改。若需調整,請從下游的請購 / 採購單據處理。
查價查不到資料、或看不到單價欄?
查價以需求日期(空白用今日)為基準查 SP TWORK_BIZ_GSPPDT,請先確認該品號有採購 / 報價紀錄。若整個單價欄與 查價 鈕都看不到,是因為你沒有「可檢視單價」權限(AllowViewPrice)。
相關功能¶
- 請購單 GPPURCH
- G採購單 GPURCH
- G採購單列印 GPURCHPRINT
- 暫收單 GPURAMA
- 廠商報價單 GSPPDT
- 總務模組首頁
- 採購模組
- 庫存模組
- 本頁內錨點:欄位連動與附加功能、欄位說明
需補截圖清單
以下截圖待功能 runtime 驗收後補拍(放 docs/C-GeneralAffair/images/):
greqma-step1.png— 新增請購需求的主檔 + 明細整體畫面(含預設值)greqma-step2.png— 明細列輸入(品號帶品名 / 單位、預估金額自動算)greqma-step3.png— 查價廠商比價表(含回傳鈕)