⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pro_fun.prg

📁 酒店IC卡 餐饮娱乐管理系统源代码使用说明
💻 PRG
📖 第 1 页 / 共 5 页
字号:
 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 + -