📄 main.prg
字号:
* -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
* 文件名: MAIN.PRG(主文件) <-- 本文件由 UnFoxAll 创建
* -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
CLEAR ALL
CLOSE ALL
SET SYSMENU OFF
PUBLIC VERNO , CONAME , COTEL , PUBUSER , PUBPASS
PUBLIC PUBKEYDEFINETYPE , LASTLOGIN
PUBKEYDEFINETYPE = 2
LASTLOGIN = '1'
USE softinfor
LOCATE FOR ALLTRIM(CONT) = '版本号'
VERNO = ALLTRIM(DATA)
LOCATE FOR ALLTRIM(CONT) = '开发单位'
CONAME = ALLTRIM(DATA)
LOCATE FOR ALLTRIM(CONT) = '联系电话'
COTEL = ALLTRIM(DATA)
LOCATE FOR ALLTRIM(CONT) = 'user'
IF FOUND()
PUBUSER = ALLTRIM(DATA)
ELSE
APPEND BLANK
REPLACE CONT WITH 'user' , DATA WITH 'Admin'
PUBUSER = 'Admin'
ENDIF
LOCATE FOR ALLTRIM(CONT) = 'pass'
IF FOUND()
PUBPASS = ALLTRIM(DATA)
ELSE
APPEND BLANK
REPLACE CONT WITH 'pass' , DATA WITH '12345'
PUBPASS = '12345'
ENDIF
USE
_SCREEN.CAPTION = VERNO
_SCREEN.WINDOWSTATE = 2
_SCREEN.CLOSABLE = .F.
_SCREEN.FONTNAME = '宋体'
_SCREEN.FONTSIZE = 10
SET CLOCK STATUS
SET TALK OFF
SET EXACT ON
SET CENTURY ON
SET DATE TO ymd
SET HOURS TO 24
SET SAFETY OFF
SET ESCAPE OFF
SET EXCLUSIVE ON
CLEAR MACROS
ON ERROR do neterror with error(),message(),program(),lineno()
PUBLIC HOMEDIRECTORY , DBFDIRECTORY , BAKDIRECTORY , TEMPDIRECTORY , M.CZYJBP , ;
M.CZYBHP , M.CZYXMP , OPTJBTXT , ERRVER , PUBKFTFKBZ , PICTUREARRAY , ;
PICTURENUM , LNLTDTXT , LOGINBZ , KQ_COMMBZ , TIMECONF , POPTYPE , ;
LNLOGINTYPE , ISFORM , CONVALUE , PUBTMPCZYXMP , COM
PUBLIC PUBXTBH
KQ_COMMBZ = .F.
PICTURENUM = 0
LOGINBZ = 0
POPTYPE = 2
ISFORM = .F.
LNLOGINTYPE = 0
CONVALUE = 0
CCURRENTPROCEDURE = SYS(16,1)
NPATHSTART = AT(':',CCURRENTPROCEDURE) - 1
NLENOFPATH = RAT('\',CCURRENTPROCEDURE) - (NPATHSTART)
HOMEDIRECTORY = SUBSTR(CCURRENTPROCEDURE,NPATHSTART,NLENOFPATH)
NFLENOFPATH = NLENOFPATH
DBFDIRECTORY = SUBSTR(HOMEDIRECTORY,NPATHSTART,NFLENOFPATH) + '\DBF'
BAKDIRECTORY = SUBSTR(HOMEDIRECTORY,NPATHSTART,NFLENOFPATH) + '\BACKUP'
BAKDIRECTORY2 = SUBSTR(HOMEDIRECTORY,NPATHSTART,NFLENOFPATH) + '\bak'
TEMPDIRECTORY = SUBSTR(HOMEDIRECTORY,NPATHSTART,NFLENOFPATH) + '\TEMP'
TIMECONF = SUBSTR(HOMEDIRECTORY,1,2) + SUBSTR(DBFDIRECTORY,1,2)
SET DEFAULT TO (HOMEDIRECTORY)
SET LIBRARY TO foxtools.fll
= MKDIR(DBFDIRECTORY)
= MKDIR(BAKDIRECTORY)
= MKDIR(BAKDIRECTORY2)
= MKDIR(TEMPDIRECTORY)
IF .NOT. FILE(HOMEDIRECTORY + '\dbf\管理卡记录.dbf')
CREATE TABLE dbf\管理卡记录.dbf ( 管理卡名称 C ( 10 ) , 地址 C ( 20 ) , 起始时间 C ( 20 ;
) )
ENDIF
SET LIBRARY TO
SET PATH TO forms,mshelp,dbf,ico,reports,libs,other
_SCREEN.ICON = 'secur.ico'
ON KEY LABEL f8 do key in pro_fun.prg
IF FILE('doorhelp.dbf')
SET HELP TO doorhelp.dbf
ENDIF
SET PROCEDURE TO pro_fun.prg
NOTFIRSTBZ = ADIR(NEWFILE,'notfirst.ms','hs')
IF FILE(DBFDIRECTORY + '\msc.dbf') AND .NOT. NOTFIRSTBZ = 0
= UNLOCKDB(DBFDIRECTORY + '\msc.dbf')
USE msc.dbf
LOCATE FOR ALLTRIM(CONT) == 'sydw'
IF .NOT. EMPTY(ALLTRIM(DATA))
LNLTDTXT = ALLTRIM(DATA)
ELSE
LNLTDTXT = CONAME
ENDIF
LOCATE FOR ALLTRIM(CONT) == 'xtbh'
IF .NOT. EMPTY(ALLTRIM(DATA))
PUBXTBH = ALLTRIM(DATA)
ELSE
PUBXTBH = '594801'
ENDIF
LOCATE FOR ALLTRIM(CONT) == 'kftfkbz'
IF .NOT. EMPTY(ALLTRIM(DATA))
PUBKFTFKBZ = ALLTRIM(DATA)
ELSE
PUBKFTFKBZ = '0'
ENDIF
LOCATE FOR ALLTRIM(CONT) == 'keydefinetype'
IF FOUND()
PUBKEYDEFINETYPE = INT(VAL(ALLTRIM(DATA)))
ELSE
APPEND BLANK
REPLACE CONT WITH 'keydefinetype' , DATA WITH '2'
ENDIF
LOCATE FOR ALLTRIM(CONT) == 'readwrite'
IF .NOT. FOUND()
APPEND BLANK
REPLACE CONT WITH 'readwrite' , DATA WITH '2'
ENDIF
LOCATE FOR ALLTRIM(CONT) = 'lastlogin'
IF .NOT. FOUND()
APPEND BLANK
REPLACE CONT WITH 'lastlogin' , DATA WITH '1'
LASTLOGIN = '1'
ELSE
LASTLOGIN = ALLTRIM(DATA)
ENDIF
CLOSE DATABASES ALL
= LOCKDB(DBFDIRECTORY + '\msc.dbf')
ELSE
PUBKFTFKBZ = '0'
LNLTDTXT = CONAME
ENDIF
IF FILE(DBFDIRECTORY + '\xtkz.dbf')
= UNLOCKDB(DBFDIRECTORY + '\xtkz.dbf')
USE xtkz.dbf
IFSEARCH = .F.
FOR I = 1 TO FCOUNT()
IF UPPER(FIELD(I)) = UPPER('lockcode1')
IFSEARCH = .T.
EXIT
ENDIF
ENDFOR
CLOSE DATABASES
= LOCKDB2(DBFDIRECTORY + '\xtkz.dbf')
IF IFSEARCH = .F.
DELETE File (DBFDIRECTORY + '\xtkz.dbf')
CREATE TABLE (DBFDIRECTORY + '\xtkz.dbf') ( KZTIME C ( 12 ) , KZBZ L , LATEKZ N ( 7 ) , ;
VERIFY L , LOCKCODE1 C ( 6 ) , LOCKCODE2 C ( 6 ) )
INSERT INTO xtkz ( KZTIME , KZBZ , LATEKZ , VERIFY , LOCKCODE1 , LOCKCODE2 ) VALUES ( ;
DTOC(DATE()) , .T. , 0 , .T. , '' , '' )
CLOSE DATABASES
= LOCKDB2(DBFDIRECTORY + '\xtkz.dbf')
ENDIF
ENDIF
IF FILE(DBFDIRECTORY + '\ysffxx.dbf')
USE dbf\ysffxx.dbf
IFSEARCH = .F.
FOR I = 1 TO FCOUNT()
IF UPPER(FIELD(I)) = UPPER('kfjc')
IFSEARCH = .T.
EXIT
ENDIF
ENDFOR
CLOSE DATABASES
IF IFSEARCH = .F.
CLOSE DATABASES
RENAME (DBFDIRECTORY + '\ysffxx.dbf') TO (DBFDIRECTORY + '\ysffxx2.dbf')
RENAME (DBFDIRECTORY + '\ysffxx.fpt') TO (DBFDIRECTORY + '\ysffxx2.fpt')
CREATE TABLE dbf\ysffxx.dbf FREE ( OPTNAME C ( 10 ) , OPTTIME C ( 23 ) , CKXM C ( 10 ) , ;
KLSH C ( 10 ) , YSDYMC C ( 20 ) , YSZL C ( 20 ) , QZSJ C ( 16 ;
) , ZZSJ C ( 16 ) , CZFS C ( 4 ) , CZJB N ( 3 ) , KQMSS C ( 5 ) , ;
NKQDMS M , ZDFBZ L , KFJC C ( 20 ) )
USE dbf\ysffxx
APPEND FROM dbf\ysffxx2.dbf
DELETE File dbf\ysffxx2.dbf
ENDIF
ENDIF
SET MESSAGE TO CONAME + REPLICATE(' ',30) + COTEL
IF LEN(VERNO) = 0
_SCREEN.CAPTION = 'Ic卡门锁管理软件'
ELSE
_SCREEN.CAPTION = VERNO
ENDIF
PUSH MENU _MSYSMENU
DO FORM forms\conftime.scx
DO FORM forms\start_play.scx
READ EVENTS
PROCEDURE errhandle
PARAMETER MESS , MPROG , MLINENO
CR = CHR(13)
LCMESSAGE = ;
MESSAGE() + CR + '方式: ' + MPROG + CR + '行号: ' + ALLTRIM(STR(MLINENO))
RESULTS = MESSAGEBOX(LCMESSAGE,66,VERNO)
DO CASE
CASE RESULTS = 3
CLOSE DATABASES ALL
ON SHUTDOWN do exit.prg
QUIT
CASE RESULTS = 4
RETRY
CASE RESULTS = 5
RETURN
ENDCASE
ENDPROC
*------*
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -