* * 2003/11/21 《酒店管理》系統(tǒng) 主程序
* * 作者:劉雪均
* * 版權(quán)所有 (C) 2003 寶明城大酒店
* * 廣東深圳市公明鎮(zhèn)長春花園
* * 深圳, 廣東 518106
* * 中國
* * 說明: 版權(quán)所有,嚴(yán)禁非法復(fù)制,違者必窮
Clear
Clear All
Clear Dlls
Clear Macros
Close All
Set Talk Off
Set Safe Off
Set Escape Off
Set Debug Off
Set Exact Off
Set Sysmenu Save
Set Sysmenu To
Set Sysmenu Off
Set NullDisplay To ''
Set Null Off
Set Dohistory Off
Set Notify Cursor Off
Release Windows
Close Databases
Set Date To YMD
Set Hour To 24
Set Seconds Off
Set Century On
Set Deleted On
Set Resource On
Set Help On
On Shutdown Quit
Set Clock Off
With _Screen
.WindowState=2
.ZOOMBOX=.F.
.Movable=.F.
.MinButton=.F.
.MaxButton=.F.
.Closable=.F.
.Icon="Ball.ICO"
.Caption='《酒店管理》系統(tǒng)--均維軟件工作室'
.LockScreen=.T.
.AddObject('ScreenImg','Image')
.ScreenImg.Stretch=2
.ScreenImg.Visible=.T.
.ScreenImg.Height=Sysmetric(2)-50
.ScreenImg.Width=Sysmetric(1)
.ScreenImg.Picture='DeskTopr.jpg'
.LockScreen=.F.
Endwith
=Capslock(.T.)
=Numlock(.T.)
Public TempFile,ExePath,CurWinDir,CurPic,pCompany,ReportFile,pTeamId,pUserGroup,pUserId,pUserName,sConn,gcUpdateId,;
m.Date_From,m.Date_To,nConn,OFBLX,OFBLY,Times
Store 0 To nConn,OFBLX,OFBLY,Times
Store Date() To m.Date_From,m.Date_To
Store '' To TempFile,ExePath,CurWinDir,CurPic,pCompany,ReportFile,sConn,pTeamId,pUserGroup,pUserId,pUserName
TempFile='T'+Right(Sys(2015),7)
CurWinDir=Getenv('WinDir')
ExePath=Left(Sys(16,1),Rat("\",Sys(16,1)))
Set Default To (ExePath)
Set Resource To &ExePath.FoxUser.Dbf
Set Path To &ExePath.;&ExePath.HelpS
If !Directory("&ExePath.Temp")
Md &ExePath.Temp
Endif
Tmpfiles="&ExePath.Temp" &&設(shè)定當(dāng)前VFP使用的臨時文件目錄
=DelTmpFile() &&刪除當(dāng)前用戶系統(tǒng)目錄和VFP目錄的過時的臨時文件
*!* SET HELP TO &ExePath.HelpS\Hotel.CHM
If !File('MYDLL.DLL')
Messagebox('MYDLL.DLL丟失,程序不能正常運(yùn)行!',48,'系統(tǒng)提示')
Quit
Endif
Declare String getserial In "MyDll.dll" Integer &&獲得硬盤廠商物理永久性的ID
Declare String num2txt_c In "MyDll.dll" As RMBZH Double &&小寫金額轉(zhuǎn)換成大寫金額
Declare String topy In "MyDll.dll" String &&漢字轉(zhuǎn)拼音首字母
Declare Integer changeres In "MyDll.dll" Integer, Integer &&分變率設(shè)定
Declare Integer WinExec In "kernel32" String,Integer
Declare Integer FindWindow In Win32api String, String
Declare Long BringWindowToTop In Win32API Long
Declare Long ShowWindow In Win32API Long, Long
Declare Integer SendMessage In user32 Integer,Integer,Integer,Integer
Declare Integer ShellExecute In SHELL32.Dll Integer, String, String, String, String, Integer
Declare Integer GetPrivateProfileString In Win32API As GetPrivStr String, String, String, String @, Integer, String
Declare Integer WritePrivateProfileString In Win32API As WritePrivStr String, String, String, String
Declare SHORT SetLocalTime In win32api String SystemTime
*!* Declare integer ShowWindowAsync in user32 integer hwnd, integer nCmdShow
*!* htaskbar = FindWindow("Shell_TrayWnd",0)
*!* ShowWindowAsync(htaskbar,0) &&0為隱藏任務(wù)欄,1為顯示任務(wù)欄
Set Class To MyLibs Additive &&使用自已的類庫
On Error Do Err_Fix With Error( ),Message( ),Message(1), Program( ),Lineno( ) &&錯誤跟蹤處理
If !File("&ExePath.LXJ.INI") &&判斷配置文件存在否,不存在就創(chuàng)建。
=WriteIni('REGISTRY','Local_Id',Str(DiskSpace(Sys(5),1)),'&ExePath.LXJ.INI')
=WriteIni('REGISTRY','Reg_Date',Ttoc(Datetime()),'&ExePath.LXJ.INI')
=WriteIni('REGISTRY',' ','======================','&ExePath.LXJ.INI')
=WriteIni('AUTHOR','Contact','劉 雪 均','&ExePath.LXJ.INI')
=WriteIni('AUTHOR','Title','電腦工程師','&ExePath.LXJ.INI')
=WriteIni('AUTHOR','Telephone','13613026728','&ExePath.LXJ.INI')
=WriteIni('AUTHOR',' ','======================','&ExePath.LXJ.INI')
=WriteIni('SCREEN','RandomLoad','Yes','&ExePath.LXJ.INI')
=WriteIni('SCREEN','SourceXY','Yes','&ExePath.LXJ.INI')
=WriteIni('SCREEN','Picture ','Picture.JPG','&ExePath.LXJ.INI')
=WriteIni('SCREEN','StatusBar ','On','&ExePath.LXJ.INI')
=WriteIni('SCREEN','','======================','&ExePath.LXJ.INI')
=WriteIni('CONNECT','DRIVER','SQL SERVER','&ExePath.LXJ.INI')
=WriteIni('CONNECT','SERVER',GETENV("COMPUTERNAME"),'&ExePath.LXJ.INI')
=WriteIni('CONNECT','PORTNO','1433','&ExePath.LXJ.INI')
=WriteIni('CONNECT','UID','SA','&ExePath.LXJ.INI')
=WriteIni('CONNECT','PWD','DBA','&ExePath.LXJ.INI')
=WriteIni('CONNECT','DATABASE','HOTEL','&ExePath.LXJ.INI')
=WriteIni('CONNECT',' ','======================','&ExePath.LXJ.INI')
=WriteIni('USER','LastUser','Guest','&ExePath.LXJ.INI')
=WriteIni('USER',' ','======================','&ExePath.LXJ.INI')
=WriteIni('UPDATE','NewExe','&ExePath.Main.EXE','&ExePath.LXJ.INI') &&工作站自動升級的共享目錄
=WriteIni('UPDATE','NewInfo','歡迎使用本系統(tǒng)!','&ExePath.LXJ.INI') &&提示的信息
=WriteIni('UPDATE',' ','======================','&ExePath.LXJ.INI')
=WriteIni('OCXDLLREG',GETENV("COMPUTERNAME"),'NO','&ExePath.LXJ.INI')
Endif
If Upper(ReadIni('SCREEN','StatusBar','&ExePath.LXJ.INI'))='ON'
Set Status Bar On
_vfp.StatusBar=' 歡 迎 您 使 用 本 系 統(tǒng) . . . '
Else
Set Status Bar Off
Endif
=OleRegister() &&根據(jù)INI文件判斷是否注冊O(shè)CX,DLL文件
=SetShortCut('酒店管理') &&在屏幕上創(chuàng)建快捷方式
*!*工作站是否注冊判斷
If ReadIni('REGISTRY','Local_Id','&ExePath.LXJ.INI')!=WorkJm(Iif(Empty(GetSerial(0)),Str(Diskspace(Sys(5),1)),Allt(GetSerial(0))),'HTL')
Do Form RegWork.SCX &&調(diào)用本工作站使用注冊表單
Endif
Wait Window "正在連接 SQL SERVER 數(shù)據(jù)庫 ,請稍候 ...... " At Srows()/2-10,(Scol()-45)/2 Nowait Noclear
SQLSETPROP(0,"DispLogin" ,3) &&連接不成功時不顯示ODBC登錄對話窗口
SQLSETPROP(0,"ConnectTimeOut",20) &&連接超時等待秒數(shù)設(shè)置,可取值0至600
SQLSETPROP(0,"IdleTimeout",0) &&空閑超時間隔秒數(shù),取0為無限期等待
SQLSETPROP(0,"QueryTimeOut",20) &&超時錯誤之前等待的時間
SQLSETPROP(0,"Asynchronous",.F.) &&指定結(jié)果集合是同步返回
SQLSETPROP(0,"DispWarnings",.F.) &&不顯示一個錯誤信息
*!*從配置文件中獲得SQL SERVER的加密連接串
sConn='DRIVER=SQL SERVER'
sConn=sConn+'; SERVER='+Iif(Empty(ReadIni('CONNECT','SERVER','&ExePath.LXJ.INI')),GETENV("COMPUTERNAME"),ReadIni('CONNECT','SERVER','&ExePath.LXJ.INI'))
sConn=sConn+','+Iif(Empty(ReadIni('CONNECT','PORTNO','&ExePath.LXJ.INI')),'1433',ReadIni('CONNECT','PORTNO','&ExePath.LXJ.INI'))
sConn=sConn+';UID='+ReadIni('CONNECT','UID','&ExePath.LXJ.INI')
sConn=sConn+';PWD='+Iif(Empty(ReadIni('CONNECT','PWD','&ExePath.LXJ.INI')),'',JmWd(ReadIni('CONNECT','PWD','&ExePath.LXJ.INI')))
sConn=sConn+';DATABASE='+Iif(Empty(ReadIni('CONNECT','DATABASE','&ExePath.LXJ.INI')),'NoDatabase',ReadIni('CONNECT','DATABASE','&ExePath.LXJ.INI'))
sConn=sConn+';NetWork=DBMSSOCN'
nConn=Sqlstringconnect(sConn)
Wait Clear
Do While nConn<=0
Local YN
YN=Messagebox('SQL Server 數(shù)據(jù)庫連接失敗,請選擇 !'+Chr(13)+Chr(13)+"Y ->重試 , N ->設(shè)定 , 取消 ->退出 !",67 ,'SQL Connect Info.')
_Screen.Refresh
Do Case
Case YN=6
Wait Window "正在連接 SQL SERVER 數(shù)據(jù)庫 ,請稍候 ...... " At Srows()/2-10,(Scol()-45)/2 Nowait Noclear
nConn=Sqlstringconnect(sConn)
Wait Clear
Case YN=7
Do Form SetServer.SCX &&SQL SERVER服務(wù)器連接配置
Otherwise
Quit
Endcase
Enddo
* * 作者:劉雪均
* * 版權(quán)所有 (C) 2003 寶明城大酒店
* * 廣東深圳市公明鎮(zhèn)長春花園
* * 深圳, 廣東 518106
* * 中國
* * 說明: 版權(quán)所有,嚴(yán)禁非法復(fù)制,違者必窮
Clear
Clear All
Clear Dlls
Clear Macros
Close All
Set Talk Off
Set Safe Off
Set Escape Off
Set Debug Off
Set Exact Off
Set Sysmenu Save
Set Sysmenu To
Set Sysmenu Off
Set NullDisplay To ''
Set Null Off
Set Dohistory Off
Set Notify Cursor Off
Release Windows
Close Databases
Set Date To YMD
Set Hour To 24
Set Seconds Off
Set Century On
Set Deleted On
Set Resource On
Set Help On
On Shutdown Quit
Set Clock Off
With _Screen
.WindowState=2
.ZOOMBOX=.F.
.Movable=.F.
.MinButton=.F.
.MaxButton=.F.
.Closable=.F.
.Icon="Ball.ICO"
.Caption='《酒店管理》系統(tǒng)--均維軟件工作室'
.LockScreen=.T.
.AddObject('ScreenImg','Image')
.ScreenImg.Stretch=2
.ScreenImg.Visible=.T.
.ScreenImg.Height=Sysmetric(2)-50
.ScreenImg.Width=Sysmetric(1)
.ScreenImg.Picture='DeskTopr.jpg'
.LockScreen=.F.
Endwith
=Capslock(.T.)
=Numlock(.T.)
Public TempFile,ExePath,CurWinDir,CurPic,pCompany,ReportFile,pTeamId,pUserGroup,pUserId,pUserName,sConn,gcUpdateId,;
m.Date_From,m.Date_To,nConn,OFBLX,OFBLY,Times
Store 0 To nConn,OFBLX,OFBLY,Times
Store Date() To m.Date_From,m.Date_To
Store '' To TempFile,ExePath,CurWinDir,CurPic,pCompany,ReportFile,sConn,pTeamId,pUserGroup,pUserId,pUserName
TempFile='T'+Right(Sys(2015),7)
CurWinDir=Getenv('WinDir')
ExePath=Left(Sys(16,1),Rat("\",Sys(16,1)))
Set Default To (ExePath)
Set Resource To &ExePath.FoxUser.Dbf
Set Path To &ExePath.;&ExePath.HelpS
If !Directory("&ExePath.Temp")
Md &ExePath.Temp
Endif
Tmpfiles="&ExePath.Temp" &&設(shè)定當(dāng)前VFP使用的臨時文件目錄
=DelTmpFile() &&刪除當(dāng)前用戶系統(tǒng)目錄和VFP目錄的過時的臨時文件
*!* SET HELP TO &ExePath.HelpS\Hotel.CHM
If !File('MYDLL.DLL')
Messagebox('MYDLL.DLL丟失,程序不能正常運(yùn)行!',48,'系統(tǒng)提示')
Quit
Endif
Declare String getserial In "MyDll.dll" Integer &&獲得硬盤廠商物理永久性的ID
Declare String num2txt_c In "MyDll.dll" As RMBZH Double &&小寫金額轉(zhuǎn)換成大寫金額
Declare String topy In "MyDll.dll" String &&漢字轉(zhuǎn)拼音首字母
Declare Integer changeres In "MyDll.dll" Integer, Integer &&分變率設(shè)定
Declare Integer WinExec In "kernel32" String,Integer
Declare Integer FindWindow In Win32api String, String
Declare Long BringWindowToTop In Win32API Long
Declare Long ShowWindow In Win32API Long, Long
Declare Integer SendMessage In user32 Integer,Integer,Integer,Integer
Declare Integer ShellExecute In SHELL32.Dll Integer, String, String, String, String, Integer
Declare Integer GetPrivateProfileString In Win32API As GetPrivStr String, String, String, String @, Integer, String
Declare Integer WritePrivateProfileString In Win32API As WritePrivStr String, String, String, String
Declare SHORT SetLocalTime In win32api String SystemTime
*!* Declare integer ShowWindowAsync in user32 integer hwnd, integer nCmdShow
*!* htaskbar = FindWindow("Shell_TrayWnd",0)
*!* ShowWindowAsync(htaskbar,0) &&0為隱藏任務(wù)欄,1為顯示任務(wù)欄
Set Class To MyLibs Additive &&使用自已的類庫
On Error Do Err_Fix With Error( ),Message( ),Message(1), Program( ),Lineno( ) &&錯誤跟蹤處理
If !File("&ExePath.LXJ.INI") &&判斷配置文件存在否,不存在就創(chuàng)建。
=WriteIni('REGISTRY','Local_Id',Str(DiskSpace(Sys(5),1)),'&ExePath.LXJ.INI')
=WriteIni('REGISTRY','Reg_Date',Ttoc(Datetime()),'&ExePath.LXJ.INI')
=WriteIni('REGISTRY',' ','======================','&ExePath.LXJ.INI')
=WriteIni('AUTHOR','Contact','劉 雪 均','&ExePath.LXJ.INI')
=WriteIni('AUTHOR','Title','電腦工程師','&ExePath.LXJ.INI')
=WriteIni('AUTHOR','Telephone','13613026728','&ExePath.LXJ.INI')
=WriteIni('AUTHOR',' ','======================','&ExePath.LXJ.INI')
=WriteIni('SCREEN','RandomLoad','Yes','&ExePath.LXJ.INI')
=WriteIni('SCREEN','SourceXY','Yes','&ExePath.LXJ.INI')
=WriteIni('SCREEN','Picture ','Picture.JPG','&ExePath.LXJ.INI')
=WriteIni('SCREEN','StatusBar ','On','&ExePath.LXJ.INI')
=WriteIni('SCREEN','','======================','&ExePath.LXJ.INI')
=WriteIni('CONNECT','DRIVER','SQL SERVER','&ExePath.LXJ.INI')
=WriteIni('CONNECT','SERVER',GETENV("COMPUTERNAME"),'&ExePath.LXJ.INI')
=WriteIni('CONNECT','PORTNO','1433','&ExePath.LXJ.INI')
=WriteIni('CONNECT','UID','SA','&ExePath.LXJ.INI')
=WriteIni('CONNECT','PWD','DBA','&ExePath.LXJ.INI')
=WriteIni('CONNECT','DATABASE','HOTEL','&ExePath.LXJ.INI')
=WriteIni('CONNECT',' ','======================','&ExePath.LXJ.INI')
=WriteIni('USER','LastUser','Guest','&ExePath.LXJ.INI')
=WriteIni('USER',' ','======================','&ExePath.LXJ.INI')
=WriteIni('UPDATE','NewExe','&ExePath.Main.EXE','&ExePath.LXJ.INI') &&工作站自動升級的共享目錄
=WriteIni('UPDATE','NewInfo','歡迎使用本系統(tǒng)!','&ExePath.LXJ.INI') &&提示的信息
=WriteIni('UPDATE',' ','======================','&ExePath.LXJ.INI')
=WriteIni('OCXDLLREG',GETENV("COMPUTERNAME"),'NO','&ExePath.LXJ.INI')
Endif
If Upper(ReadIni('SCREEN','StatusBar','&ExePath.LXJ.INI'))='ON'
Set Status Bar On
_vfp.StatusBar=' 歡 迎 您 使 用 本 系 統(tǒng) . . . '
Else
Set Status Bar Off
Endif
=OleRegister() &&根據(jù)INI文件判斷是否注冊O(shè)CX,DLL文件
=SetShortCut('酒店管理') &&在屏幕上創(chuàng)建快捷方式
*!*工作站是否注冊判斷
If ReadIni('REGISTRY','Local_Id','&ExePath.LXJ.INI')!=WorkJm(Iif(Empty(GetSerial(0)),Str(Diskspace(Sys(5),1)),Allt(GetSerial(0))),'HTL')
Do Form RegWork.SCX &&調(diào)用本工作站使用注冊表單
Endif
Wait Window "正在連接 SQL SERVER 數(shù)據(jù)庫 ,請稍候 ...... " At Srows()/2-10,(Scol()-45)/2 Nowait Noclear
SQLSETPROP(0,"DispLogin" ,3) &&連接不成功時不顯示ODBC登錄對話窗口
SQLSETPROP(0,"ConnectTimeOut",20) &&連接超時等待秒數(shù)設(shè)置,可取值0至600
SQLSETPROP(0,"IdleTimeout",0) &&空閑超時間隔秒數(shù),取0為無限期等待
SQLSETPROP(0,"QueryTimeOut",20) &&超時錯誤之前等待的時間
SQLSETPROP(0,"Asynchronous",.F.) &&指定結(jié)果集合是同步返回
SQLSETPROP(0,"DispWarnings",.F.) &&不顯示一個錯誤信息
*!*從配置文件中獲得SQL SERVER的加密連接串
sConn='DRIVER=SQL SERVER'
sConn=sConn+'; SERVER='+Iif(Empty(ReadIni('CONNECT','SERVER','&ExePath.LXJ.INI')),GETENV("COMPUTERNAME"),ReadIni('CONNECT','SERVER','&ExePath.LXJ.INI'))
sConn=sConn+','+Iif(Empty(ReadIni('CONNECT','PORTNO','&ExePath.LXJ.INI')),'1433',ReadIni('CONNECT','PORTNO','&ExePath.LXJ.INI'))
sConn=sConn+';UID='+ReadIni('CONNECT','UID','&ExePath.LXJ.INI')
sConn=sConn+';PWD='+Iif(Empty(ReadIni('CONNECT','PWD','&ExePath.LXJ.INI')),'',JmWd(ReadIni('CONNECT','PWD','&ExePath.LXJ.INI')))
sConn=sConn+';DATABASE='+Iif(Empty(ReadIni('CONNECT','DATABASE','&ExePath.LXJ.INI')),'NoDatabase',ReadIni('CONNECT','DATABASE','&ExePath.LXJ.INI'))
sConn=sConn+';NetWork=DBMSSOCN'
nConn=Sqlstringconnect(sConn)
Wait Clear
Do While nConn<=0
Local YN
YN=Messagebox('SQL Server 數(shù)據(jù)庫連接失敗,請選擇 !'+Chr(13)+Chr(13)+"Y ->重試 , N ->設(shè)定 , 取消 ->退出 !",67 ,'SQL Connect Info.')
_Screen.Refresh
Do Case
Case YN=6
Wait Window "正在連接 SQL SERVER 數(shù)據(jù)庫 ,請稍候 ...... " At Srows()/2-10,(Scol()-45)/2 Nowait Noclear
nConn=Sqlstringconnect(sConn)
Wait Clear
Case YN=7
Do Form SetServer.SCX &&SQL SERVER服務(wù)器連接配置
Otherwise
Quit
Endcase
Enddo

