主程序代碼 do menu.mpr
*!* 第1部分 *!* 用于設(shè)置系統(tǒng)環(huán)境和指定錯(cuò)誤處理程序 set talk off &&關(guān)閉命令顯示 set escape off &&禁止運(yùn)行的程序在按 esc 鍵后被中斷 set exclusive off &&允許網(wǎng)絡(luò)上的任何用戶共享和修改網(wǎng)絡(luò)上打開(kāi)的表 set help on &&當(dāng)按下 f1 鍵或在命令窗口中執(zhí)行 help 命令時(shí),,顯示幫助窗口 set help to medihelp.chm &&指定幫助文件 set console on &&將所有的結(jié)果輸出到 visual foxpro 主窗口或活動(dòng)的用戶自定義窗口中 set date long &&指定日期表達(dá)式的顯示格式為長(zhǎng)日期格式 set century on &&設(shè)定日期中的年為4位數(shù) set safety off &&指定在改寫已有文件時(shí)不顯示對(duì)話框 set status bar on &&打開(kāi)vfp狀態(tài)欄 set color to &&設(shè)置顏色為默認(rèn)狀態(tài) set hours to 24 set sysmenu off &&關(guān)閉系統(tǒng)菜單 set notify off set notify cursor off &&不在狀態(tài)欄中顯示數(shù)據(jù)信息 set message to "" clear &&清理主窗口顯示 clear all &&清除變量 on error do err.prg ; with error(), ; message(), ; message(1), ; program(), ; lineno(1) &&指定當(dāng)出現(xiàn)錯(cuò)誤時(shí)執(zhí)行的命令 *!* 第2部分 *!* 用于設(shè)置數(shù)據(jù)庫(kù)的查找路徑 if not file("datapath.txt") &&如果沒(méi)有找到datapath.txt文件,,表示沒(méi)有定義對(duì)數(shù)據(jù)庫(kù)的查找路徑 do form frmsetdatapath &&打開(kāi)設(shè)置數(shù)據(jù)庫(kù)路徑表單 read events else cpath=filetostr("datapath.txt") &&找到后則讀取該文件 set path to (cpath) &&設(shè)置對(duì)數(shù)據(jù)庫(kù)文件的查找路徑 endif
*!* 第3部分 *!* 打開(kāi)數(shù)據(jù)庫(kù)和表 do opendb.prg
*!* 第4部分 *!* 執(zhí)行操作員登錄 do form frmlogin &&打開(kāi)登錄表單 read events &&開(kāi)始事務(wù)處理 on shutdown do quitall.prg &&指定退出vfp時(shí)要執(zhí)行的命令
*!* 第5部分 *!* 設(shè)置主窗口的大小,、標(biāo)題,并加入快捷工具欄和菜單 with _screen &&設(shè)置vfp主表單為可見(jiàn),、最大化,、標(biāo)題、圖標(biāo) .visible=.t. .closable=.t. .controlbox=.t. .maxbutton=.t. .minbutton=.t. .movable=.t. .top=50 .left=0 .windowstate=2 .caption="進(jìn)銷存管理系統(tǒng)[醫(yī)藥行業(yè)]" .icon='medisoft.ico' endwith
public otoolbar,frmin,frmout,frmprint,frmsysset,frmbackup,frmstock,frmfinance &&定義表單名稱全局變量 do menu.mpr &&打開(kāi)菜單
otoolbar=newobject("main_gj","libs.vcx") &&建立工具欄對(duì)象 otoolbar.show() &&顯示對(duì)象 otoolbar.dock(0) &&在vfp主窗口上方停放 set mark of bar 1 of popview to vartype(otoolbar)="o" &&設(shè)置在顯示工具欄時(shí),,在菜單項(xiàng)顯示√標(biāo)記
*!* 第6部分 *!* 在主窗口中加入背景圖片和internet鏈接 ohandler=newobject("myhook") bindevent(_screen,"resize",ohandler,"resize") &&綁定主窗口的resize事件到ohandler對(duì)象的resize事件 _screen.addobject("image1","backimage") &&在vfp主表單中加入圖畫 _screen.addobject("label1","labclass") _screen.addobject("label2","label")
with _screen.label2 .backstyle=0 .caption="microsoft visual foxpro編程園地" .forecolor=rgb(0,0,255) .height=20 .left=50 .top=_screen.height-90 .visible=.t. .width=300 endwith read events
define class backimage as image name="image1" top=(_screen.height-159)/2-70 left=(_screen.width-600)/2 height=192 width=487 picture="background.jpg" backstyle=0 stretch=2 visible=.t. Enddefine
define class myhook as custom procedure resize &&隨窗口大小調(diào)整label1(internet鏈接)的位置和背景圖片大小 with _screen .label1.top=_screen.height-75 .label2.top=_screen.height-90 .image1.top=(_screen.height-159)/2-70 .image1.left=(_screen.width-600)/2 endwith endproc enddefine
define class labclass as label backstyle=0 caption="http://www." forecolor=rgb(0,0,255) fontunderline=.t. Height=20 left=100 mouseicon="./images/hand-m.cur" mousepointer=99 name="label1" tooltiptext="歡迎光臨microsoft visual foxpro編程園地" visible=.t. Width=300 procedure init this.left=50 this.top=_screen.height-75 endproc procedure click *!* 聲明shellexecute函數(shù) declare integer shellexecute in "shell32.dll" ; integer hwnd, ; string lpverb, ; string lpfile, ; string lpparameters, ; string lpdirectory, ; long nshowcmd *!* 設(shè)定要打開(kāi)的internet站點(diǎn) lpfile="http://www./" *!* 以瀏覽器窗口最大化方式打開(kāi)internet站點(diǎn) =shellexecute(0,"open",lpfile ,"","",3) endproc procedure mouseenter lparameters nbutton, nshift, nxcoord, nycoord this.forecolor=rgb(255,0,0) &&當(dāng)鼠標(biāo)移動(dòng)時(shí)字體顏色成為紅色 endproc procedure mouseleave lparameters nbutton, nshift, nxcoord, nycoord this.forecolor=rgb(0,0,255) &&當(dāng)鼠標(biāo)移動(dòng)時(shí)字體顏色成為藍(lán)色 endproc enddefine
·
主程序代碼 do menu.mpr
*!* 第1部分 *!* 用于設(shè)置系統(tǒng)環(huán)境和指定錯(cuò)誤處理程序 set talk off &&關(guān)閉命令顯示 set escape off &&禁止運(yùn)行的程序在按 esc 鍵后被中斷 set exclusive off &&允許網(wǎng)絡(luò)上的任何用戶共享和修改網(wǎng)絡(luò)上打開(kāi)的表 set help on &&當(dāng)按下 f1 鍵或在命令窗口中執(zhí)行 help 命令時(shí),,顯示幫助窗口 set help to medihelp.chm &&指定幫助文件 set console on &&將所有的結(jié)果輸出到 visual foxpro 主窗口或活動(dòng)的用戶自定義窗口中 set date long &&指定日期表達(dá)式的顯示格式為長(zhǎng)日期格式 set century on &&設(shè)定日期中的年為4位數(shù) set safety off &&指定在改寫已有文件時(shí)不顯示對(duì)話框 set status bar on &&打開(kāi)vfp狀態(tài)欄 set color to &&設(shè)置顏色為默認(rèn)狀態(tài) set hours to 24 set sysmenu off &&關(guān)閉系統(tǒng)菜單 set notify off set notify cursor off &&不在狀態(tài)欄中顯示數(shù)據(jù)信息 set message to "" clear &&清理主窗口顯示 clear all &&清除變量 on error do err.prg ; with error(), ; message(), ; message(1), ; program(), ; lineno(1) &&指定當(dāng)出現(xiàn)錯(cuò)誤時(shí)執(zhí)行的命令 *!* 第2部分 *!* 用于設(shè)置數(shù)據(jù)庫(kù)的查找路徑 if not file("datapath.txt") &&如果沒(méi)有找到datapath.txt文件,表示沒(méi)有定義對(duì)數(shù)據(jù)庫(kù)的查找路徑 do form frmsetdatapath &&打開(kāi)設(shè)置數(shù)據(jù)庫(kù)路徑表單 read events else cpath=filetostr("datapath.txt") &&找到后則讀取該文件 set path to (cpath) &&設(shè)置對(duì)數(shù)據(jù)庫(kù)文件的查找路徑 endif
*!* 第3部分 *!* 打開(kāi)數(shù)據(jù)庫(kù)和表 do opendb.prg
*!* 第4部分 *!* 執(zhí)行操作員登錄 do form frmlogin &&打開(kāi)登錄表單 read events &&開(kāi)始事務(wù)處理 on shutdown do quitall.prg &&指定退出vfp時(shí)要執(zhí)行的命令
*!* 第5部分 *!* 設(shè)置主窗口的大小,、標(biāo)題,,并加入快捷工具欄和菜單 with _screen &&設(shè)置vfp主表單為可見(jiàn)、最大化,、標(biāo)題,、圖標(biāo) .visible=.t. .closable=.t. .controlbox=.t. .maxbutton=.t. .minbutton=.t. .movable=.t. .top=50 .left=0 .windowstate=2 .caption="進(jìn)銷存管理系統(tǒng)[醫(yī)藥行業(yè)]" .icon='medisoft.ico' endwith
public otoolbar,frmin,frmout,frmprint,frmsysset,frmbackup,frmstock,frmfinance &&定義表單名稱全局變量 do menu.mpr &&打開(kāi)菜單
otoolbar=newobject("main_gj","libs.vcx") &&建立工具欄對(duì)象 otoolbar.show() &&顯示對(duì)象 otoolbar.dock(0) &&在vfp主窗口上方停放 set mark of bar 1 of popview to vartype(otoolbar)="o" &&設(shè)置在顯示工具欄時(shí),在菜單項(xiàng)顯示√標(biāo)記
*!* 第6部分 *!* 在主窗口中加入背景圖片和internet鏈接 ohandler=newobject("myhook") bindevent(_screen,"resize",ohandler,"resize") &&綁定主窗口的resize事件到ohandler對(duì)象的resize事件 _screen.addobject("image1","backimage") &&在vfp主表單中加入圖畫 _screen.addobject("label1","labclass") _screen.addobject("label2","label")
with _screen.label2 .backstyle=0 .caption="microsoft visual foxpro編程園地" .forecolor=rgb(0,0,255) .height=20 .left=50 .top=_screen.height-90 .visible=.t. .width=300 endwith read events
define class backimage as image name="image1" top=(_screen.height-159)/2-70 left=(_screen.width-600)/2 height=192 width=487 picture="background.jpg" backstyle=0 stretch=2 visible=.t. Enddefine
define class myhook as custom procedure resize &&隨窗口大小調(diào)整label1(internet鏈接)的位置和背景圖片大小 with _screen .label1.top=_screen.height-75 .label2.top=_screen.height-90 .image1.top=(_screen.height-159)/2-70 .image1.left=(_screen.width-600)/2 endwith endproc enddefine
define class labclass as label backstyle=0 caption="http://www." forecolor=rgb(0,0,255) fontunderline=.t. Height=20 left=100 mouseicon="./images/hand-m.cur" mousepointer=99 name="label1" tooltiptext="歡迎光臨microsoft visual foxpro編程園地" visible=.t. Width=300 procedure init this.left=50 this.top=_screen.height-75 endproc procedure click *!* 聲明shellexecute函數(shù) declare integer shellexecute in "shell32.dll" ; integer hwnd, ; string lpverb, ; string lpfile, ; string lpparameters, ; string lpdirectory, ; long nshowcmd *!* 設(shè)定要打開(kāi)的internet站點(diǎn) lpfile="http://www./" *!* 以瀏覽器窗口最大化方式打開(kāi)internet站點(diǎn) =shellexecute(0,"open",lpfile ,"","",3) endproc procedure mouseenter lparameters nbutton, nshift, nxcoord, nycoord this.forecolor=rgb(255,0,0) &&當(dāng)鼠標(biāo)移動(dòng)時(shí)字體顏色成為紅色 endproc procedure mouseleave lparameters nbutton, nshift, nxcoord, nycoord this.forecolor=rgb(0,0,255) &&當(dāng)鼠標(biāo)移動(dòng)時(shí)字體顏色成為藍(lán)色 endproc enddefine
·
|