2026年5月6日9 分鐘VFP · FoxPro · 老系統現代化 · ERP · 老 ERP 重構 · 進銷存 · 製造業 IT

30 年 VFP 老 ERP 怎麼搬到 Web — 有原始碼跟沒原始碼,是兩條完全不同的路

我們做過兩個 30 年級的 VFP 老 ERP 案。一個有 .prg 源碼,一週搞定;一個沒源碼,整套重寫花了好幾個月。同樣是「老 ERP 升級」,工法、時間、風險完全不同 — 怎麼判斷該走哪條路。

陳先生 (Henry)

「我們有一套用了 30 年的 ERP,有/沒原始碼,現在新 Windows 跑不動了,想升級。」

這是我們最近 5 年最常被問到的開頭。重點在那個「有/沒」 — 因為差這一個字,工法、時間、風險、報價,全部不一樣

我們做過兩個剛好一邊一個的案子,這篇講清楚兩條路怎麼選、怎麼做。

兩個案子,一邊一個 #

客戶手上有什麼 工法 時間
衛浴大廠(鶯歌某衛浴廠) Visual FoxPro 6 + .prg 原始碼 + DBC/DBF 資料 自動轉碼 + 視窗化 + 列印 middleware 1-2 週
SunERP(新北建材業) 跑了 30 年的 .EXE + .DBF,沒源碼、原廠商失聯 逆向業務邏輯 + 整套用 VFP 重寫 好幾個月

下面拆開來講。

路徑 A:有原始碼(衛浴案) #

如果客戶手上有 .prg 程式碼檔,事情會出乎意料地快。我們的做法分 5 步:

步驟 1:AI 自動轉碼(TSSHCO) #

TSSHCO(Thinking Robot · Smart Programmer Converter Robot)是伊朗工程師 Jamal Anvaripour 開發的 AI 程式自動轉換器,得過瑞士發明大賽銀牌。專做 FoxPro 系列的版本升級:FP 2.5 / 2.6 / VFP 6 → VFP 9。

它做什麼:把所有 .prg 源碼批次讀進去,AI 識別 syntax + API 差異,自動產生 VFP9 可編譯的版本。不是手工搬一行一行 port,是真的「丟進去 → 拿出來」。

對 30 年的老系統來說,這一步省下的時間是「等比級數」級別 — 你不可能讓工程師逐行讀 30 年的 code 改 syntax。

步驟 2:VFP9 編譯 + 視窗化 #

VFP9 是 Windows 32-bit native,編出來的 EXE 在 Windows 10 / 11 都能直接跑。

重點:UI 排版、欄位順序、F-key shortcut、報表格式都跟 VFP6 完全一樣。 員工從舊版切到新版,唯一感覺是「視窗有 title bar 跟 minimize 按鈕了」。操作流程零改變

這對工廠現場員工很重要 — 你跟一個用了 20 年同套系統的師傅說「我們要換新系統」,他會立刻反彈。但如果你說「同個系統,只是能在新電腦跑了」,他根本不會抗拒。

步驟 3:DBC / DBF 完全不動 #

VFP9 原生支援 VFP6 的資料庫格式 — .DBC (database container) / .DBF (table) / .IDX (index),連資料遷移都不用做

舊系統的資料留在原本的位置,VFP9 直接讀。零風險的搬移。沒有「半夜 dry-run」、沒有「上線前比對筆數比到天亮」。

步驟 4:大方廣漢書列印整合 #

這是台灣 VFP 升級最常踩的坑:VFP6 原本的 report 是直接送 DOS / 老式印表機(用 ESC/P 那類控制碼)。換到新 Windows 印表機(特別是雷射 / 噴墨 USB 那類)就完全印不出來。

解法:導入「大方廣漢書」中文列印系統。它是個 middleware,不改原程式碼,老 VFP report 直接從 VFP 出到任何 Windows 印表機,中文字型、版型、套表完整保留。

對中文 ERP 來說這個工具是 hidden gem,省掉重寫所有報表的工。

步驟 5:後續加值 #

系統有源碼了,未來客戶要加什麼都能做。

衛浴案後續加上的:

  • 陶瓷產線(成型→施釉→燒成→倉儲→出貨)條碼掃描追蹤
  • 人員缺點履歷管理
  • 修補流程

這些用 VFP9 form 開發 + 行動條碼掃描器(由摩葳統籌採購整合)。這些是「客戶想做」而不是「不得不做」,因為原系統已經穩定在跑了。

結果 #

1-2 週搞定主體搬移。員工接受度 100%。系統壽命延長 10+ 年。後續加值是 nice-to-have,不是 must-have。

路徑 B:沒原始碼(SunERP 案) #

這條路就完全不同了。客戶手上只有:

  • 一份跑了 30 年的 .EXE
  • 一堆 .DBF 資料檔
  • 沒有源碼
  • 原廠商失聯

想升級沒辦法 — 沒源碼就改不了;想換廠商沒辦法 — 沒人敢「黑盒接手」一套 30 年的關鍵業務系統;繼續用又怕老 EXE 哪天在新 Windows 跑不動。

這是真實的死局。我們的做法分 4 階段:

第一階段:逆向業務邏輯 #

.DBF 結構、.EXE 行為、現場員工怎麼操作,一條一條把業務規則重新整理出來。這不是技術活,是商業邏輯重建。每個欄位代表什麼?每個動作觸發什麼?每張報表的數字怎麼算?

舉例:「採購單上的『扣抵碼』是什麼?什麼時候啟用?對應到應付帳款的什麼欄位?」 — 這不是讀文件能找到的,要去問會計、問採購、問實際在用系統的人,然後對照 .DBF 裡的資料反推。

這階段花的時間最多,比寫 code 久得多。但跳過去的後果就是寫到一半才發現邏輯漏洞,整套打掉重來。

第二階段:用 VFP9 重寫 #

很多人會問:「為什麼還用 VFP?不是要搬 Web 嗎?」

務實理由:

為什麼還用 VFP
資料無痛遷移 客戶現有資料是 .DBF,VFP9 原生支援
介面熟悉 員工已經習慣 VFP / Win32 風格,不會抗拒
部署簡單 Windows native EXE,不用搞 server / proxy / SSL
速度快 local DBF + native code,比 Web 還快

這是務實選擇,不是技術潔癖。先把客戶從「沒源碼黑盒」救出來,搬到「有源碼可控系統」

第三階段:資料遷移 + 上線 #

.DBF 全部清理(trim 空白、修補編碼、去重)後 import 進新系統,dry-run 比對筆數確認零遺失。上線後員工繼續用,但這次系統有源碼了 — 想加什麼、改什麼,都做得到

這個 milestone 對客戶是分水嶺。從「我每天都怕系統突然壞掉」變成「我可以叫廠商加新功能」。

第四階段(現在進行中):規劃 Web 版 #

客戶用穩 VFP 版幾個月之後,提出更現代的需求:行動端、跨地遠端、跟外部系統整合(電子發票、會計事務所對接、客戶下單系統)。

這時候才是搬 Web 的好時機。我們交付了規劃書,技術選 Next.js 15 + Prisma + Postgres + NextAuth.js v5。規劃啟動,實作待開工

如果一開始就直接「VFP → Web」一步到位 — 客戶會卡在第一階段(逆向業務邏輯)就放棄。Web 重做的同時還要逆向 30 年的業務規則,工程量太大、風險太高、ROI 看不到。分兩階段做:先穩定,再現代化。

怎麼判斷該走哪條路 #

幫客戶評估時我們先問這幾個問題:

問題 答案影響
.prg / .fxp 原始碼嗎? 沒 = 路徑 B;有 = 看下一題
原廠商還聯絡得到嗎? 聯絡得到 = 可能用路徑 A;聯絡不到 = 看程式碼結構複雜度,可能還是路徑 B
資料量級? < 50 萬筆 = 兩條路都行;> 100 萬筆 = 必須先 dry-run 評估遷移風險
員工對新介面接受度? 強烈反對 = 路徑 A 優先;願意學 = 兩條都可以
有沒有「現代化」剛性需求?(行動端、API 串接、跨地遠端等) 沒 = 路徑 A 一階段就好;有 = 路徑 B 兩階段或路徑 A + Web 加值
預算 / 時間? 緊 = 路徑 A 優先(如果條件允許);寬鬆 = 路徑 B 比較徹底

簡單說:路徑 A 是「翻新」,路徑 B 是「重蓋」。能翻新就翻新,沒得選才重蓋。

常見的迷思 #

迷思 1:「老系統都該直接搬 Web 才叫『現代化』。」

不對。如果有源碼能做路徑 A,搬上 Windows 視窗 + 持續維護 + 必要時加 Web 模組,比硬要 Web 重做有意義得多。客戶的痛是「新電腦跑不動」「員工年紀大要學新介面」,不是「沒有 Web」。

迷思 2:「沒源碼的系統用 SDK 工具就能反編譯出來。」

VFP 反編譯的工具有,但效果極差。你拿到的會是一堆無法讀的中間碼,比逆向業務邏輯還難。SunERP 案我們試過,最後還是回到「從 DBF + EXE 行為重建邏輯」。

迷思 3:「VFP9 已經被 Microsoft 停產了,不該用。」

VFP9 確實 EOL(2015 年)。但:

  • Windows 11 還能跑(runtime 還在)
  • 客戶舊資料在 DBF,新工具不會原生支援
  • VFP 的開發效率對 ERP 類應用還是非常高
  • 「不會死掉」跟「該重寫」是兩件事

實務上:先讓系統穩定能跑,再規劃搬 Web。直接跳「VFP → Next.js」常常會在 Web 重寫的中途就把客戶搞瘋。

客戶想評估 #

你手上有 30 年的老 ERP?先問自己這幾個問題:

  • 有沒有原始碼?(在哪台電腦的哪個資料夾?)
  • 資料庫格式是什麼?(DBF / MSSQL / Access / 其他)
  • 原廠商還聯絡得到嗎?
  • 員工對新介面的接受度?
  • 預算有多大?

可以聊聊,諮詢免費,依工時報價。

0912852835 / henryccy@icloud.com / LINE @3q3tw / 線上表單

延伸閱讀:

想聊類似的東西?

諮詢免費,依工時報價。

聯絡我們