iT邦幫忙

0

請問高手 將整個DOS CLIPPER5系統 轉換 改成 PYTHON 架構 容易嗎?

請問高手:
希望 將整個 CLIPPER5 DOS系統 轉換 改成 PYTHON 架構 容易嗎?

看更多先前的討論...收起先前的討論...
ckp6250 iT邦研究生 1 級 ‧ 2021-06-08 11:06:29 檢舉
噫吁嚱,危乎高哉!蜀道之難,難於上青天!
哇噻,這也隔太多代了吧....

這兩代平台之間沒有所謂的延續性,如果可以的話,先把clipper的資料表DBF檔轉出成SQL(要轉成unicode哦,不然BIG5衝碼的問題會考倒你),再做程式改寫重練,我沒有找到過所謂的轉換或移殖的工具...
只能重寫,語法架構都不一樣,要先把邏輯流程抓出來,重新寫過,還要考慮目前的稽核控制方法,幾乎等於重頭寫
資料庫的轉換工具有看到過,自己搜尋適合的咯
https://www.dbf2002.com/dbf-converter/convert-dbf-to-sql.html
要改寫的話,有更好的平台選擇吧?python不會是我做資料庫類的程式首選
冒昧地請教, 資料庫類的程式首選 是何種?
Hi robertchentpe
我早期是使用Clipper開發, 之後轉用訊光科技的 DBTools, 現在是使用PowerBuilder.
版大可以與訊光科技連絡並談談, 因為他們對DBF資料庫很熟, 或許能談出不錯的解法
訊光可找一位 coco 章小姐
感謝,
stevekwok iT邦新手 5 級 ‧ 2021-06-09 13:21:23 檢舉
Try this https://harbour.github.io/
goodnight iT邦研究生 3 級 ‧ 2021-06-09 15:21:01 檢舉
版大大概沒用過 vfp, 語法幾乎一樣, 但更先進, 雖然也是過時的產品, 但是我覺得變更觀念是比較困難的, 我並不了解您維持 dbf 的原因, 在多人環境下, 我還是建議考慮 sql server
轉換過程中, 畫面的轉換我個人是比較辛苦, 語法也都大不同, 難易度也不同, 例如, 單身明細, 偷懶一點用 browse 語法, 認真一點要用到 grid 物件, 如果有興趣可以找一下 vfp愛用者論壇了解一下,
或許前端程式, 不一定要用到 vfp 了, 至於你說用 pyrhon , 我個人不熟 python, 但我有在使用python, 感覺並不適合
VFP 語法與CLIPPER 很想, 但有很多地方很先進, 例如產生查詢報表, 可以產生虛擬檔, 報表資料的產生更簡單了
首選
多人環境但僅限於Windows作業,我會選C#+SQL
如果是多人環境且混合平台,我會以WEB為主,看需求端願不願意花錢買授權,看起來就是個窮B的話,會規畫LINUX+MYSQL+PHP,如果肯花錢的就會建議MS平台,但說真的,免版權的系統服務帶的重,要是我退休了,業主自己看著辦,找的到接手那就OK,找不到,那我也愛莫能助

另VFP我不會採用,過時了,我早已拋棄DBASE LIKE的環境
idoncys iT邦新手 3 級 ‧ 2021-06-10 16:26:17 檢舉
我也有在用PowerBuilder,但只維護舊系統,新的都上 web 了,我自己是寫pb 工具直接將 datawindow 轉 extjs 的 panel, form 跟 grid 幾乎可以直接轉,轉完後 web 就可操作了,很方便,而且跟 pb 還可共用資料庫..
0
海綿寶寶
iT邦大神 1 級 ‧ 2021-06-08 12:29:41

短答案:不容易
長答案:你問錯問題了
你該問的是「如何最快寫出一套 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

PPTaiwan iT邦新手 3 級 ‧ 2021-06-09 09:07:11 檢舉

個人建議著重先分析再看要用什麼程式語言,因為你都說了 "如果完全重頭設計, 會有諸多遺漏與盲點, 錯誤機率太高了!!!" 那就表示整個系統的架構與邏輯都沒有分析過??

如果有分析過,你所謂的「邏輯檢查、管控點、遺漏、盲點」應該是不存在的。 最後是不是還要用 Web 也說不定!! 可能之後會不會導向以 WebAPI 為主呢 ?? 任何方法都是可以的,除了這 Clipper 非常..非常..特殊... 不然現有的程式語言,那得要用特定的語言呢?

感謝,

goodnight iT邦研究生 3 級 ‧ 2021-06-09 15:22:27 檢舉

不如 轉 vfp 吧, 我是過來人

0
idoncys
iT邦新手 3 級 ‧ 2021-06-08 15:38:01

以前都用 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

ckp6250 iT邦研究生 1 級 ‧ 2021-06-08 22:15:57 檢舉

以前都用 clipper 搭配 blinker,

這位少說五十高歲以上了。

操作介面後期設計都用 dbf 紀錄每個 ui 的配置,再用相同程式去導出畫面,這樣就不用每個操作畫面都要有 prg 檔案

這個也和我的做法差不多,只不過我把變數存在文字檔。

idoncys iT邦新手 3 級 ‧ 2021-06-08 22:53:08 檢舉

是啊,50好幾,算"中高齡"了,我還有好幾個客戶在用當年 clipper 寫的程式,有位年初建議他換 web,但他從30歲用到60歲,二代不接手所以打算再用兩年退休了..

那時候一個project 有100多個 UI,就搭配100多個dbf,也用 dbf 控制每個使用者的差異需求.

走到 web 還是用相同手法,只是換成存到 database 同一 table.

我的意見是他都有既成UI可參考,重新在 web 上面排排一下新的web UI,商業邏輯再整理整理.應該很快就可上線.

感謝,

0
I code so I am
iT邦研究生 2 級 ‧ 2021-06-09 07:27:23

個人認為重新改寫舊系統,Python是一個好的選項,因為Python有太多好用的套件了。

  1. 資料庫:sqlalchemy。
  2. 網頁:StreamLit,不用學Html/CSS/JS,就可完成還算整齊美觀的網頁。
  3. 資料的篩選、排序、統計、小計:Pandas。

感謝, 明確的分析.

0
dumashsu
iT邦新手 5 級 ‧ 2021-06-09 08:41:09

Clipper 熟悉卻又遙遠的工具啊......
轉換都不是問題,問題是你要不要花時間去做,個人認為你應先想好
1.UI轉換(PyQt 有Design)
2.資料庫(Pyhton 不知可否讀寫 DBF 檔)
3.報表的生成
接下來就是時間了?

感謝, 資料庫 DBF檔 可以先轉成MYSQL

0
hank_itman
iT邦新手 5 級 ‧ 2021-06-09 09:57:11

CLIPPER有學過也寫過,那時我是寫進銷存系統的,所以我覺得資料處理類的程式轉換成ASP.NET的比較容易,概念也比較像及簡單

感謝,

0
ywdeng
iT邦新手 5 級 ‧ 2021-06-13 09:53:02

真是難以相信這年頭還有人在用 CLIPPER。

ywdeng iT邦新手 5 級 ‧ 2021-06-13 09:55:13 檢舉

面對這種古老的系統,問題應該不是用 Python 改寫 CLIPPER 這麼簡單,應該照步驟重新開發,從需求規格做起。

我要發表回答

立即登入回答