請問高手:
希望 將整個 CLIPPER5 DOS系統 轉換 改成 PYTHON 架構 容易嗎?
短答案:不容易
長答案:你問錯問題了
你該問的是「如何最快寫出一套 CLIPPER 5 相同功能的系統」
另外提供幾個問題參考:
1.原系統是「單機版」還是「網路版」,新版也要比照嗎?
2.原系統顯示畫面為 80*25
,新版也要照舊嗎?
3.原系統使用 DBF 資料檔,新版也要比照嗎?
1.原系統是「網路版」,新版也要比照嗎? YES
2.原系統顯示畫面為 80*25,新版也要照舊嗎? NO
3.原系統使用 DBF 資料檔,新版也要比照嗎? YES
請問高手 將整個DOS CLIPPER5系統 轉換 改成 PYTHON 架構 容易嗎?
將DOS CLIPPER5系統 轉換 改成 PYTHON 架構
因為 Clipper Program系統太好用了, 都是小模塊組成
Clipper code:
if upper(m_att)='A'
if !add_rec(5)
stderrmsg("Append failure!",1)
return
endif
endif
Python code:
if upper(m_att)='A';
if !add_rec(5)
stderrmsg("Append failure!",1)
return
1.原系統是「網路版」,新版也要比照嗎? YES
承上題
要寫「Windows Application」還是「Web-based Application」?
2.原系統顯示畫面為80*25
,新版也要照舊嗎? NO
3.原系統使用 DBF 資料檔,新版也要比照嗎? YES
程式要重寫,一般的做法是「把 DBF 的資料轉進資料庫系統(RDBMS)」
如果堅持要用 DBF
那麼開發工具的選擇可能會少很多
碰到問題時比較找不到答案(因為比較少人這麼做)
要寫「Web-based Application」
堅持用 DBF NO, 程式要重寫,「把 DBF 的資料轉進資料庫系統(RDBMS)」OK, 是否可以用MYSQL?
如果照你說的這樣
你的問題跟CLIPPER
沒什麼太大關係了
變成「開發 Web-based 應用系統,使用 MySQL 資料庫」
而「把 DBF 資料轉進 MySQL」也是很容易的事
THANKS A LOT,
因為 Clipper Program : 程式上有許多邏輯檢查, 管控點, 必須參照 Clipper Procedure Source, 將一個一個Function 轉成到新的平台上, 如果完全重頭設計, 會有諸多遺漏與盲點, 錯誤機率太高了!!! 例如 PYTHON 案例
Clipper code:
if upper(m_att)='A'
if !add_rec(5)
stderrmsg("Append failure!",1)
return
endif
endif
Python code:
if upper(m_att)='A';
if !add_rec(5);
stderrmsg("Append failure!",1)
return
如果完全重頭設計, 會有諸多遺漏與盲點, 錯誤機率太高了
這我倒不擔心
我覺得
要「找到同時會 CLIPPER 和 Python 的人」困難得多了
Good Luck.
不需要找到會CLIPPER的人, 因為我和我的姪子會CLIPPER
以前都用 clipper 搭配 blinker,操作介面後期設計都用 dbf 紀錄每個 ui 的配置,再用相同程式去導出畫面,這樣就不用每個操作畫面都要有 prg 檔案,例如有三個不同專案的客戶管理畫面,就用三個dbf 檔個別控制,然後用單一 prg 去編輯這些 dbf,當這些 dbf 變了畫面就變了,也用單一 prg 去導出界面,就不用每個操作畫面都要一支 prg 檔.
form 的部分記錄個別欄位xy座標,grid部分 則用 columnmodel,而 web前端 js 語法很多也是跟 clipper 一樣在定義 column,如
new Grid({
columns: ['Name', 'Email'],
data: [
['John', 'john@example.com'],
['Mike', 'mike@gmail.com']
]
}).render(document.getElementById('table'));
這樣的架構就比較方便轉 web 或 windows
至於 dbf 轉資料庫,我都用 excel 寫工具轉資料庫,把對應 table 欄位寫成劇本成批執行資料轉移,dbf 跟資料庫都可以建立 odbc,有 data source name 後在 excel 就可下 select,update,insert 指令,dbf 檔也接受 select 指令撈資料.
我們有線上操作示範可供參考看看,像客戶廠商管理的畫面,都還有當初 clipper 操作介面的影子.
https://www.idon.com.tw/?jobno=20020038
以前都用 clipper 搭配 blinker,
這位少說五十高歲以上了。
操作介面後期設計都用 dbf 紀錄每個 ui 的配置,再用相同程式去導出畫面,這樣就不用每個操作畫面都要有 prg 檔案
這個也和我的做法差不多,只不過我把變數存在文字檔。
是啊,50好幾,算"中高齡"了,我還有好幾個客戶在用當年 clipper 寫的程式,有位年初建議他換 web,但他從30歲用到60歲,二代不接手所以打算再用兩年退休了..
那時候一個project 有100多個 UI,就搭配100多個dbf,也用 dbf 控制每個使用者的差異需求.
走到 web 還是用相同手法,只是換成存到 database 同一 table.
我的意見是他都有既成UI可參考,重新在 web 上面排排一下新的web UI,商業邏輯再整理整理.應該很快就可上線.
感謝,
個人認為重新改寫舊系統,Python是一個好的選項,因為Python有太多好用的套件了。
Clipper 熟悉卻又遙遠的工具啊......
轉換都不是問題,問題是你要不要花時間去做,個人認為你應先想好
1.UI轉換(PyQt 有Design)
2.資料庫(Pyhton 不知可否讀寫 DBF 檔)
3.報表的生成
接下來就是時間了?
CLIPPER有學過也寫過,那時我是寫進銷存系統的,所以我覺得資料處理類的程式轉換成ASP.NET的比較容易,概念也比較像及簡單
真是難以相信這年頭還有人在用 CLIPPER。