📄 pro_fun.prg
字号:
CASE CWDM = 8
MYESNO = MESSAGEBOX('地址错误!',65,'信息提示')
CASE CWDM = 9
MYESNO = MESSAGEBOX('数据长度错误!',65,'信息提示')
CASE CWDM = 10
MYESNO = MESSAGEBOX('数据错误!',65,'信息提示')
CASE CWDM = 11
MYESNO = MESSAGEBOX('此卡是非法卡,请插入正确的片!',65,'信息提示')
CASE CWDM = 12
MYESNO = MESSAGEBOX('擦除密码错误!',65,'信息提示')
CASE CWDM = 13
MYESNO = MESSAGEBOX('擦除密码计数器为零!',65,'信息提示')
CASE CWDM = 14
MYESNO = ;
MESSAGEBOX('此卡已非法操作三次!卡片已损坏,请插入别的卡片!',65,'信息提示')
CASE CWDM = 15
MYESNO = MESSAGEBOX('命令格式错误!',65,'信息提示')
CASE CWDM = 16
MYESNO = MESSAGEBOX('卡型错误!',65,'信息提示')
CASE CWDM = 17
MYESNO = MESSAGEBOX('内存不足!',65,'信息提示')
CASE CWDM = 50
MYESNO = ;
MESSAGEBOX('此卡片读不出数据,请检查' + CHR(13) + '原因,检查后重新插卡!',65,'信息提示')
CASE CWDM = 51
MYESNO = ;
MESSAGEBOX('此卡是新卡,要初始化后才' + CHR(13) + '能使用,请插入别的卡片!',65,'信息提示')
CASE CWDM = 52
MYESNO = ;
MESSAGEBOX('此卡不是本系统卡,请插入' + CHR(13) + '正确的卡片!',65,'信息提示')
CASE CWDM = 53
MYESNO = MESSAGEBOX('卡片类型不正确,请插入正确卡片!',65,'信息提示')
CASE CWDM = 54
MYESNO = MESSAGEBOX('此卡不是新卡,请插入正确卡片!',65,'信息提示')
CASE CWDM = 98
MYESNO = MESSAGEBOX('此卡已非法操作一次,请确认!',65,'信息提示')
CASE CWDM = 99
MYESNO = MESSAGEBOX('此卡已非法操作二次,请确认!',65,'信息提示')
ENDCASE
RETURN MYESNO
ENDPROC
*------
PROCEDURE bakbytecontrol
PARAMETER MAINFILEPATH , FILENAME , LOCFILEPATH , SYSBZ
PRIVATE FILENAMEEXT , FILENAMETXT , LOCZFBZ , MYFILENAME , CZYKEY , CZYPARENT , CZYTEXT , ;
LOCTEXT , LOCMHPARENT , LOCLHPARENT , LOCDHPARENT , LOCMHTEXT , ;
LOCLHTEXT , LOCDHTEXT , LOCQHTEXT , DZTEXT
MYFILENAME = MAINFILEPATH + '\' + FILENAME
SET DEFAULT TO (MAINFILEPATH)
DO CASE
CASE FILENAME = 'MSWZ_ID.DBF.' AND SYSBZ = 'data'
= UNLOCKDB(MAINFILEPATH + '\mswz.dbc')
OPEN DATABASE (MAINFILEPATH + '\mswz.dbc')
= UNLOCKDB(MAINFILEPATH + '\qh_id.dbf')
= UNLOCKDB(MAINFILEPATH + '\dh_id.dbf')
= UNLOCKDB(MAINFILEPATH + '\lh_id.dbf')
= UNLOCKDB(MAINFILEPATH + '\mh_id.dbf')
= UNLOCKDB(MAINFILEPATH + '\mswz_id.dbf')
= UNLOCKDB(LOCFILEPATH + '\msxx.dbf')
= UNLOCKDB(LOCFILEPATH + '\mswz.dbf')
SIZECHECK = FSIZE(MYFILENAME)
DO WHILE SIZECHECK > 1457000
SET DEFAULT TO (MAINFILEPATH)
USE mh_id
GO TOP
LOCMHTEXT = ALLTRIM(MHTEXT)
LOCMHPARENT = ALLTRIM(PARENT)
USE lh_id
LOCATE FOR ALLTRIM(KEY) == LOCMHPARENT
LOCLHPARENT = ALLTRIM(PARENT)
LOCLHTEXT = ALLTRIM(LHTEXT)
USE dh_id
LOCATE FOR ALLTRIM(KEY) == LOCLHPARENT
LOCDHPARENT = ALLTRIM(PARENT)
LOCDHTEXT = ALLTRIM(DHTEXT)
USE qh_id
LOCATE FOR ALLTRIM(KEY) == LOCDHPARENT
LOCQHTEXT = ALLTRIM(QHTEXT)
DZTEXT = LOCMHTEXT + LOCLHTEXT + LOCDHTEXT + LOCQHTEXT
USE mh_id
DELETE NEXT 1
PACK
USE mswz_id
PACK
SET DEFAULT TO (LOCFILEPATH)
USE mswz
DELETE FOR ALLTRIM(QHDZ) + ALLTRIM(DHDZ) + ALLTRIM(LHDZ) + ALLTRIM(MHDZ) == DZTEXT
PACK
USE msxx
DELETE FOR ALLTRIM(MHDZ) == DZTEXT
PACK
SIZECHECK = FSIZE(MYFILENAME)
ENDDO
CLOSE DATABASES
= LOCKDB(MAINFILEPATH + '\qh_id.dbf')
= LOCKDB(MAINFILEPATH + '\dh_id.dbf')
= LOCKDB(MAINFILEPATH + '\lh_id.dbf')
= LOCKDB(MAINFILEPATH + '\mh_id.dbf')
= LOCKDB(MAINFILEPATH + '\mswz_id.dbf')
= LOCKDB(MAINFILEPATH + '\mswz.dbc')
= LOCKDB(LOCFILEPATH + '\msxx.dbf')
= LOCKDB(LOCFILEPATH + '\mswz.dbf')
CASE FILENAME = 'XDCZYCC.DBF' AND SYSBZ = 'data'
= UNLOCKDB(MAINFILEPATH + '\sysmanager.dbc')
OPEN DATABASE (MAINFILEPATH + '\sysmanage.dbc')
= UNLOCKDB(MAINFILEPATH + '\czyjb1.dbf')
= UNLOCKDB(MAINFILEPATH + '\czyjb2.dbf')
= UNLOCKDB(MAINFILEPATH + '\czyjb3.dbf')
= UNLOCKDB(MAINFILEPATH + '\xdczycc.dbf')
SIZECHECK = FSIZE(MYFILENAME)
DO WHILE SIZECHECK > 1457000
SET DEFAULT TO (MANINFILEPATH)
USE xdczycc
GO BOTTOM
CZYTEXT = ALLTRIM(TEXT)
CZYPARENT = ALLTRIM(PARENT)
CZYKEY = ALLTRIM(KEY)
DELETE
PACK
USE
SET DEFAULT TO (LOCFILEPATH)
USE msczygl
DELETE FOR ALLTRIM(CZYXM) == CZYTEXT
PACK
USE
SET DEFAULT TO (MAINFILEPATH)
USE xdczycc
LOCATE FOR ALLTRIM(PARENT) == CZYKEY
DO WHILE .NOT. EOF()
IF FOUND()
LOCTEXT = ALLTRIM(TEXT)
DELETE
PACK
USE
SET DEFAULT TO (LOCFILEPATH)
USE msczygl
LOCATE FOR ALLTRIM(CZYXM) == LOCTEXT
DELETE
PACK
ENDIF
CONTINUE
ENDDO
SIZECHECK = FSIZE(MYFILENAME)
ENDDO
CLOSE DATABASES
= LOCKDB(MAINFILEPATH + '\czyjb1.dbf')
= LOCKDB(MAINFILEPATH + '\czyjb2.dbf')
= LOCKDB(MAINFILEPATH + '\czyjb3.dbf')
= LOCKDB(MAINFILEPATH + '\xdczycc.dbf')
= LOCKDB(MAINFILEPATH + '\sysmanager.dbc')
= LOCKDB(LOCFILEPATH + '\msczygl.dbf')
CASE SYSBZ = 'dbf'
= UNLOCKDB(MYFILENAME)
LOCZFBZ = RAT('.',FILENAME)
FILENAMETXT = SUBSTR(FILENAME,1,LOCZFBZ - 1)
FILENAMEEXT = SUBSTR(FILENAME,LOCZFBZ + 1)
IF FILENAMEEXT = 'DBF'
IF .NOT. FILENAMETXT = 'MSWZ' .OR. .NOT. FILENAMETXT = 'MSXX' .OR. ;
.NOT. FILENAMETXT = 'msczygl'
SET DEFAULT TO (MAINFILEPATH)
USE (MYFILENAME)
COUNT TO M
SIZECHECK = FSIZE(MYFILENAME)
RECNOSIZE = INT(SIZECHECK / M)
RESETSIZE = SIZECHECK - 1457000
DELERECNONUM = INT(RESETSIZE / RECNOSIZE)
GO TOP
DELETE NEXT DELERECNONUM
PACK
USE
SIZECHECK = FSIZE(MYFILENAME)
ENDIF
= LOCKDB(MYFILENAME)
ENDIF
ENDCASE
ENDPROC
*------
PROCEDURE pop1
CLOSE DATABASES ALL
DBCFILE = ;
CHKDBCFILE('msc','jbxx','czrz','yskxx','mswz','msxx','kldy','ysffxx','mdzbh')
IF DBCFILE = 'failed'
RETURN
ENDIF
= UNLOCKDB(DBFDIRECTORY + '\kldy.dbf')
USE kldy
COUNT TO M
USE
= LOCKDB(DBFDIRECTORY + '\kldy.dbf')
IF M = 0
= MESSAGEBOX('尚未存在卡片定义名称!',64,'信息提示')
RETURN
ENDIF
IF PUBKEYDEFINETYPE = 2
DO FORM \ysglform2.scx
ELSE
DO FORM \ysglform.scx
ENDIF
ENDPROC
*------
PROCEDURE pop2
CLOSE DATABASES ALL
DBCFILE = CHKDBCFILE('msxx','jbxx','msc','czrz')
IF DBCFILE == 'failed'
RETURN
ENDIF
DO FORM forms\mswfform.scx
ENDPROC
*------
PROCEDURE pop3
CLOSE DATABASES ALL
DBCFILE = CHKDBCFILE('msc','czrz','mswz','mdzbh','fjgg','msxx')
IF DBCFILE = 'failed'
RETURN
ENDIF
= UNLOCKDB(DBFDIRECTORY + '\msxx.dbf')
USE msxx
COUNT TO M
USE
= LOCKDB(DBFDIRECTORY + '\msxx.dbf')
IF M = 0
= MESSAGEBOX('客房地址不能为空!',64,'信息提示')
RETURN
ENDIF
DO FORM forms\msazxxform.scx
ENDPROC
*------
PROCEDURE pop4
CLOSE DATABASES ALL
DBCFILE = CHKDBCFILE('czrz','msc','mdzbh','mswz','kldy')
IF DBCFILE = 'failed'
RETURN
ENDIF
= UNLOCKDB(DBFDIRECTORY + '\msxx.dbf')
USE msxx
COUNT TO M
USE
= LOCKDB(DBFDIRECTORY + '\msxx.dbf')
IF M = 0
= MESSAGEBOX('客房地址不能为空!',64,'信息提示')
RETURN
ENDIF
IF PUBKEYDEFINETYPE = 2
DO FORM forms\kldyform2.scx
ELSE
DO FORM forms\kldyform.scx
ENDIF
ENDPROC
*------
PROCEDURE releasealltoolsbar
LOCAL I
DIMENSION ATOOLBARS( 12 , 2 )
ATOOLBARS( 1 , 1 ) = TB_FORMDESIGNER_LOC
ATOOLBARS( 2 , 1 ) = TB_STANDARD_LOC
ATOOLBARS( 3 , 1 ) = TB_LAYOUT_LOC
ATOOLBARS( 4 , 1 ) = TB_QUERY_LOC
ATOOLBARS( 5 , 1 ) = TB_VIEWDESIGNER_LOC
ATOOLBARS( 6 , 1 ) = TB_COLORPALETTE_LOC
ATOOLBARS( 7 , 1 ) = TB_FORMCONTROLS_LOC
ATOOLBARS( 8 , 1 ) = TB_DATADESIGNER_LOC
ATOOLBARS( 9 , 1 ) = TB_REPODESIGNER_LOC
ATOOLBARS( 10 , 1 ) = TB_REPOCONTROLS_LOC
ATOOLBARS( 11 , 1 ) = TB_PRINTPREVIEW_LOC
ATOOLBARS( 12 , 1 ) = WIN_COMMAND_LOC
FOR I = 1 TO ALEN(ATOOLBARS,1)
ATOOLBARS( I , 2 ) = WVISIBLE(ATOOLBARS(I,1))
IF ATOOLBARS(I,2)
HIDE WINDOW (ATOOLBARS(I,1))
ENDIF
ENDFOR
ENDPROC
*------
PROCEDURE ten_hex
PARAMETER TEN
PRIVATE TEN , A , B , HEX1
HEX1 = ''
IF TEN = 0
HEX1 = '00'
ELSE
A = INT(TEN / 16)
B = MOD(TEN,16)
DO WHILE A > 0
HEX1 = ALLTRIM(SUBSTR('0123456789ABCDEF',B + 1,1) + HEX1)
TEN = A
A = INT(TEN / 16)
B = MOD(TEN,16)
ENDDO
HEX1 = ALLTRIM(SUBSTR('0123456789ABCDEF',B + 1,1) + HEX1)
ENDIF
IF MOD(LEN(HEX1),2) = 1
HEX1 = '0' + HEX1
ENDIF
RETURN HEX1
ENDPROC
*------
PROCEDURE errorinfor
PARAMETER CWDM
PRIVATE CWDM
DO CASE
CASE CWDM = 1
= MESSAGEBOX('端口错误,错误代码: ' + ALLTRIM(STR(CWDM)) + ' !',64,'信息提示')
CASE CWDM = 2
= MESSAGEBOX('超时错误,错误代码: ' + ALLTRIM(STR(CWDM)) + ' !',64,'信息提示')
CASE CWDM = 3
= MESSAGEBOX('区域错误,错误代码: ' + ALLTRIM(STR(CWDM)) + ' !',64,'信息提示')
CASE CWDM = 4
= MESSAGEBOX('数据错误,错误代码: ' + ALLTRIM(STR(CWDM)) + ' !',64,'信息提示')
CASE CWDM = 5
= MESSAGEBOX('通讯错误,错误代码: ' + ALLTRIM(STR(CWDM)) + ' !',64,'信息提示')
CASE CWDM = 16
= MESSAGEBOX('无卡,错误代码: ' + ALLTRIM(STR(CWDM)) + ' !',64,'信息提示')
CASE CWDM = 17
= MESSAGEBOX('卡没有上电,错误代码: ' + ALLTRIM(STR(CWDM)) + ' !',64,'信息提示')
CASE CWDM = 18
= MESSAGEBOX('密码错误,错误代码: ' + ALLTRIM(STR(CWDM)) + ' !',64,'信息提示')
CASE CWDM = 19
= MESSAGEBOX('卡片已坏,错误代码: ' + ALLTRIM(STR(CWDM)) + ' !',64,'信息提示')
CASE CWDM = 20
= MESSAGEBOX('函数错误,错误代码: ' + ALLTRIM(STR(CWDM)) + ' !',64,'信息提示')
OTHERWISE
= MESSAGEBOX('不知道的错误,错误代码: ' + ALLTRIM(STR(CWDM)) + ' !',64,'信息提示')
ENDCASE
RETURN
ENDPROC
*------
PROCEDURE read_anzhung
PARAMETER COM
DO SURE32WC
RE_ERR = INIT_COM(COM)
IF RE_ERR <> 0
YESNO = ALERT(RE_ERR)
IF YESNO = 2
RETURN RE_ERR
ENDIF
ENDIF
LOOPBZ = .T.
DO WHILE LOOPBZ = .T.
RE_ERR = POWER_ON()
IF RE_ERR <> 0
YESNO = ALERT(RE_ERR)
IF YESNO = 2
= CLOSE_COM()
RETURN RE_ERR
ENDIF
LOOP
ENDIF
= SELE_CARD(42)
R_DATA = REPLICATE('F',6)
RE_ERR = RD_ASC(0,160,3,@R_DATA)
IF RE_ERR <> 0
YESNO = ALERT(RE_ERR)
IF YESNO = 2
= POWER_OFF()
= CLOSE_COM()
RETURN RE_ERR
ENDIF
LOOP
ENDIF
LOOPBZ = .F.
ENDDO
= POWER_OFF()
= CLOSE_COM()
RETURN R_DATA
ENDPROC
*------
PROCEDURE write_anzhuang
PARAMETER COM , DATAF
WDATA = ALLTRIM(DATAF)
DO SURE32WC
RE_ERR = INIT_COM(COM)
IF RE_ERR <> 0
YESNO = ALERT(RE_ERR)
IF YESNO = 2
RETURN RE_ERR
ENDIF
ENDIF
LOOPBZ = .T.
DO WHILE LOOPBZ = .T.
RE_ERR = POWER_ON()
IF RE_ERR <> 0
YESNO = ALERT(RE_ERR)
IF YESNO = 2
= CLOSE_COM()
RETURN RE_ERR
ENDIF
LOOP
ENDIF
= SELE_CARD(42)
KEYF = LOCKKEY()
IF .NOT. (TYPE('keyf') == 'C')
YESNO = ALERT(KEYF)
IF YESNO = 2
= POWER_OFF()
= CLOSE_COM()
RETURN KEYF
ENDIF
LOOP
ENDIF
CHKF = FCHK_SC(KEYF)
IF CHKF <> 0
IF CHKF = 9999
RETURN CHKF
ENDIF
YESNO = ALERT(CHKF)
IF YESNO = 2
= POWER_OFF()
= CLOSE_COM()
RETURN CHKF
ENDIF
IF .NOT. CHKF = 98 AND .NOT. CHKF = 99
LOOP
ENDIF
ENDIF
RDATA = WR_ASC(0,160,3,@WDATA)
IF RDATA <> 0
YESNO = ALERT(RDATA)
IF YESNO = 2
= POWER_OFF()
= CLOSE_COM()
RETURN RDATA
ENDIF
LOOP
ENDIF
LOOPBZ = .F.
ENDDO
= POWER_OFF()
= CLOSE_COM()
RETURN 0
ENDPROC
*------
PROCEDURE neterror
PARAMETER CWDM , CWINFOR , CWPROGRAM , CWLINE
PRIVATE CWDM , CWINFOR , CWPROGRAM , CWLINE
UNLOCK ALL
DO CASE
CASE CWDM = 111
= MESSAGEBOX('错误代码:' + ALLTRIM(STR(CWDM)) + '!' + CHR(13) + CHR(13) + '错误信息:' + ;
CWINFOR + ;
CHR(13) + ;
CHR(13) + ;
'错误位置:' + ;
CWPROGRAM + ;
CHR(13) + ;
CHR(13) + ;
'错误行号:' + ;
ALLTRIM(STR(CWLINE)) + ;
CHR(13) + ;
CHR(13) + ;
'解决办法:服务器程序安装目录没有完全共享!请将它设置成完全共享!',64,'信息提示')
CASE CWDM = 202
= MESSAGEBOX('错误代码:' + ALLTRIM(STR(CWDM)) + '!' + CHR(13) + CHR(13) + '错误信息:' + ;
CWINFOR + ;
CHR(13) + ;
CHR(13) + ;
'错误位置:' + ;
CWPROGRAM + ;
CHR(13) + ;
CHR(13) + ;
'错误行号:' + ;
ALLTRIM(STR(CWLINE)) + ;
CHR(13) + ;
CHR(13) + ;
'解决办法:把服务器打开或者设置相关目录为共享!',64,'信息提示')
CLOSE DATABASES
ON SHUTDOWN
QUIT
OTHERWISE
= MESSAGEBOX('错误代码:' + ALLTRIM(STR(CWDM)) + '!' + CHR(13) + CHR(13) + '错误信息:' + ;
CWINFOR + ;
CHR(13) + ;
CHR(13) + ;
'错误位置:' + ;
CWPROGRAM + ;
CHR(13) + ;
CHR(13) + ;
'错误行号:' + ;
ALLTRIM(STR(CWLINE)),64,'信息提示')
ENDCASE
RETURN
ENDPROC
*------
PROCEDURE lockdb2
PARAMETER FILE_NAME
PRIVATE FILE_NAME , HANDLE , KEYBYTE , A , DBFDATA , B
FILE_NAME = ALLTRIM(FILE_NAME)
HANDLE = FOPEN(FILE_NAME,2)
IF HANDLE <> -1
= FSEEK(HANDLE,0,0)
KEYBYTE = FREAD(HANDLE,10)
IF .NOT. (KEY
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -