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

📄 wellrsgl.bak

📁 一套难绝对能编译的人事系统,界面漂亮,构思新颖,
💻 BAK
📖 第 1 页 / 共 2 页
字号:
 LOCAL T_LENGHT , T_TEMP , T_CHRAST , I
 T_LENGHT = LEN(C_CHRAST)
 T_CHRAST = ''
 IF C_FLAG = 1
    T_TEMP = BITXOR(ASC(SUBSTR(C_CHRAST,1,1)),ASC(SUBSTR(C_CHRAST,T_LENGHT,1)))
    T_CHRAST = CHR(MOD(T_TEMP + INT(RAND(T_LENGHT) * 10000),256)) + T_CHRAST
    FOR I = 2 TO T_LENGHT
       T_TEMP = BITXOR(ASC(SUBSTR(C_CHRAST,I,1)),ASC(SUBSTR(T_CHRAST,1,1)))
       T_CHRAST = CHR(MOD(T_TEMP + INT(RAND(T_LENGHT) * 10002),256)) + T_CHRAST
    ENDFOR 
 ELSE 
    FOR I = 1 TO T_LENGHT - 1
       T_TEMP = MOD(ASC(SUBSTR(C_CHRAST,I,1)) - INT(RAND(T_LENGHT) * 10002),256)
       T_CHRAST = CHR(BITXOR(T_TEMP,ASC(SUBSTR(C_CHRAST,I + 1,1)))) + T_CHRAST
    ENDFOR 
    T_TEMP = MOD(ASC(SUBSTR(C_CHRAST,T_LENGHT,1)) - INT(RAND(T_LENGHT) * 10000),256)
    T_CHRAST = CHR(BITXOR(T_TEMP,ASC(SUBSTR(T_CHRAST,T_LENGHT - 1,1)))) + T_CHRAST
 ENDIF 
 RETURN T_CHRAST
ENDPROC
*------
PROCEDURE checkchange
 LPARAMETER C_SHUJU1 , C_SHUJU2 , C_DQH , C_ZONGSHU
 LOCAL T_SUMCHANGE , I
 T_SUMCHANGE = 0
 IF C_SHUJU1 == C_SHUJU2
    DATECHANGE( C_DQH ) = 0
    FOR I = 1 TO C_ZONGSHU
       T_SUMCHANGE = T_SUMCHANGE + DATECHANGE(I)
    ENDFOR 
    IF T_SUMCHANGE = 0
       RETURN .F.
    ELSE 
       RETURN .T.
    ENDIF 
 ELSE 
    DATECHANGE( C_DQH ) = 1
    RETURN .T.
 ENDIF 
ENDPROC
*------
PROCEDURE Cginfomation
 LOCAL MANGERCONTROL
 MANGERCONTROL = FCREATE('Manger.tmp')
 IF MANGERCONTROL < 0
    A =  ;
         SPACE(10) + '系统管理员正在检查或修改系统使用人员的信息数据!!' + CHR(13) +  ;
   CHR(13) + '在此期间,系统暂不开放此功能。请等待系统管理员完成后,再运行。'
    = MESSAGEBOX(A,64,'系统消息',15000)
    RETURN 
 ELSE 
    = FCLOSE(MANGERCONTROL)
    ERASE Manger.tmp
 ENDIF 
 DIMENSION DATECHANGE( 2 )
 IF  .NOT. FILE(IMAGETEMP(18))
    DO DISTILLFILE WITH 'Rsgl_01.wel' , IMAGETEMP(18) , 18
 ENDIF 
 IF  .NOT. FILEJIEMI()
    = MESSAGEBOX('修改资料时遇到异常错误! 系统数据损坏!! 正在退出……',16,'异常错误',10000)
    RETURN 
 ENDIF 
 LOCATE FOR LOGINNAME == CHREN(_SCREEN.CURRENTUSER,1)
 DATECHANGE = 0
 _SCREEN.CLOSABLE = .F.
 SET CURSOR ON
 SET STATUS BAR OFF
 DO FORM Cginfomation
 RELEASE CGINFOMATION
 SET CURSOR OFF
 SET STATUS BAR ON
 _SCREEN.CLOSABLE = .T.
ENDPROC
*------
PROCEDURE systemmanger
 LOCAL MANGERCONTROL , MESS1
 MANGERCONTROL = FCREATE('Manger.tmp')
 T_READONLY = .F.
 IF MANGERCONTROL < 0
    MESS1 =  ;
         '系统使用人员的信息数据正被另一个登陆的系统管理员所控制!!' + CHR(13) + CHR(13) +  ;
   '      系统只允许你查阅当前用户的资料,而无法对其进行修改。'
    IF MESSAGEBOX(MESS1,321,'系统消息',15000) = 2
       RETURN 
    ENDIF 
    T_READONLY = .T.
 ENDIF 
 _SCREEN.CLOSABLE = .F.
 SET STATUS BAR OFF
 SET CURSOR ON
 SET DELETED ON
 FOR I = 7 TO 19
    IF  .NOT. FILE(IMAGETEMP(I))
       DO DISTILLFILE WITH 'Rsgl_01.wel' , IMAGETEMP(I) , I
    ENDIF 
 ENDFOR 
 CGADMINPASWD = .F.
 DIMENSION DATECHANGE( 4 )
 DATECHANGE = 0
 DO FORM admin_manger
 RELEASE ADMIN_MANGER
 IF CGADMINPASWD
    DO FORM cgadminpaswd
    RELEASE CGADMINPASWD
 ENDIF 
 IF  .NOT. (T_READONLY)
    = FCLOSE(MANGERCONTROL)
    ERASE Manger.tmp
 ENDIF 
 SET CURSOR OFF
 SET STATUS BAR ON
 _SCREEN.CLOSABLE = .T.
ENDPROC
*------
PROCEDURE showage
 LPARAMETER C_BIRTHDAY
 LOCAL T_OLDYEAR , T_OLDMONTH , T_OLDDAY , T_TODAYYEAR , T_TODAYMONTH , T_TODAYDAY ,  ;
      T_OLD
 T_OLDYEAR = YEAR(C_BIRTHDAY)
 T_OLDMONTH = MONTH(C_BIRTHDAY)
 T_OLDDAY = DAY(C_BIRTHDAY)
 T_TODAYYEAR = YEAR(DATE())
 T_TODAYMONTH = MONTH(DATE())
 T_TODAYDAY = DAY(DATE())
 DO CASE 
 CASE T_TODAYMONTH < T_OLDMONTH
    T_OLD = T_TODAYYEAR - T_OLDYEAR - 1
 CASE T_TODAYMONTH = T_OLDMONTH
    IF T_TODAYDAY < T_OLDDAY
       T_OLD = T_TODAYYEAR - T_OLDYEAR - 1
    ELSE 
       T_OLD = T_TODAYYEAR - T_OLDYEAR
    ENDIF 
 OTHERWISE 
    T_OLD = T_TODAYYEAR - T_OLDYEAR
 ENDCASE 
 RETURN STR(T_OLD,3)
ENDPROC
*------
PROCEDURE checkdouble
  _SCREEN.ADDPROPERTY('filemaphandle')
 DECLARE INTEGER CreateFileMapping IN kernel32.Dll INTEGER , INTEGER , INTEGER , INTEGER ,  ;
      INTEGER , STRING 
 DECLARE INTEGER GetLastError IN kernel32.Dll
 DECLARE INTEGER CloseHandle IN kernel32.Dll INTEGER 
 SZNAME = 'myonly'
 _SCREEN.FILEMAPHANDLE = CREATEFILEMAPPING(4294967295,0,4,0,128,SZNAME)
 IF _SCREEN.FILEMAPHANDLE = 0
    DECLARE LONG FindWindow IN USER32.DLL STRING , STRING 
    _SCREEN.FILEMAPHANDLE = FINDWINDOW(0,_SCREEN.CAPTION)
    IF _SCREEN.FILEMAPHANDLE <> 0
        MESSAGEBOX('该软件正在运行!系统不允许重复运行该程序!!',16,'重复运行错误')
       CLOSE ALL
       CLEAR DLLS
       CLEAR ALL
       QUIT 
    ELSE 
       CLEAR DLLS
       CLEAR ALL
    ENDIF 
 ELSE 
    IF GETLASTERROR() = 183
        MESSAGEBOX('该软件正在运行!系统不允许重复运行该程序!!',16,'重复运行错误')
       CLOSE ALL
       CLEAR DLLS
       CLEAR ALL
       QUIT 
    ELSE 
       CLEAR DLLS
       CLEAR ALL
    ENDIF 
 ENDIF 
ENDPROC
*------
PROCEDURE checkfile
 LOCAL CHECKERROR
 CHECKERROR = .T.
 DO CASE 
 CASE  .NOT. FILE('Rsgl_00.wel') .OR.  .NOT. FILE('Rsgl_01.wel') .OR.  ;
 .NOT. FILE('Rsgl_02.wel')
     MESSAGEBOX('警告:系统不完整!!   缺少系统所必需的核心文件!',16,'致命错误')
 CASE  .NOT. FILE('update.DBF') .OR.  .NOT. FILE('update.FPT')
    ERRORR =  ;
         '缺少有关察看系统更新的重要文件!!你将不能使用察看系统更新进度的功能!' + CHR(13) +  ;
   CHR(13) + SPACE(35) + '你确认系统继续运行吗?'
    IF MESSAGEBOX(ERRORR,292,'文件丢失') = 6
       CHECKERROR = .F.
    ENDIF 
 OTHERWISE 
    CHECKERROR = .F.
 ENDCASE 
 IF CHECKERROR
    DECLARE INTEGER CloseHandle IN kernel32.Dll INTEGER 
    = CLOSEHANDLE(_SCREEN.FILEMAPHANDLE)
    CLEAR DLLS
    CLEAR ALL
    RELEASE ALL
    CLOSE ALL
    QUIT 
 ENDIF 
ENDPROC
*------
PROCEDURE checksyspaswd
 LPARAMETER C_PASSWORD1 , C_PASSWORD2
 LOCAL T_MESSAGE
 T_MESSAGE = ''
 DO CASE 
 CASE LEN(ALLTRIM(C_PASSWORD1)) < 4
    T_MESSAGE = '密码不能为空并且不能少于4位!!'
 CASE  .NOT. (C_PASSWORD1 == C_PASSWORD2)
    T_MESSAGE = '两次输入的密码不相匹配!!'
 ENDCASE 
 RETURN T_MESSAGE
ENDPROC
*------
PROCEDURE clearimage
 FOR EACH IMAGEFILE IN IMAGETEMP
    IF FILE(IMAGEFILE)
       DO CLEAFILE WITH IMAGEFILE
    ENDIF 
 ENDFOR 
ENDPROC
*------
PROCEDURE jmkeycode
 LPARAMETER OLDKEY
 OLDKEY = ALLTRIM(OLDKEY)
 KEYLENGTH = LEN(OLDKEY)
 KEY_SN = SYS(2007,OLDKEY)
 DO WHILE LEN(KEY_SN) < KEYLENGTH
    KEY_SN = KEY_SN + SYS(2007,KEY_SN)
 ENDDO 
 KEY_SN = SUBSTR(KEY_SN,1,KEYLENGTH)
 NEWKEY = ''
 FOR I = 1 TO KEYLENGTH
    IF MOD(I,2) = 0
       NEWKEY =  ;
            NEWKEY + CHR(ASC(SUBSTR(OLDKEY,I,1)) + VAL(SUBSTR(KEY_SN,KEYLENGTH + 1 - I,1)))
    ELSE 
       NEWKEY =  ;
            NEWKEY + CHR(ASC(SUBSTR(OLDKEY,I,1)) - VAL(SUBSTR(KEY_SN,KEYLENGTH + 1 - I,1)))
    ENDIF 
 ENDFOR 
 RETURN NEWKEY
ENDPROC
*------
PROCEDURE usekeyen
 LPARAMETER ENCODE , JMMATTER , JMKEY , LENGTH
 KEYLENGTH = LEN(JMKEY)
 A2 = 1
 JACHRAST = ''
 IF ENCODE = 1
    FOR I = 1 TO LENGTH
       A0 = ASC(SUBSTR(JMKEY,A2,1))
       A3 = BITXOR(ASC(SUBSTR(JMMATTER,I,1)),A0)
       A3 = CHR(MOD((A0 + A3),256))
       JACHRAST = JACHRAST + A3
       A2 = A2 + 1
       IF A2 > KEYLENGTH
          A2 = 1
       ENDIF 
    ENDFOR 
 ELSE 
    FOR I = 1 TO LENGTH
       A0 = ASC(SUBSTR(JMKEY,A2,1))
       A3 = MOD((ASC(SUBSTR(JMMATTER,I,1)) - A0),256)
       A3 = CHR(BITXOR(A3,A0))
       JACHRAST = JACHRAST + A3
       A2 = A2 + 1
       IF A2 > KEYLENGTH
          A2 = 1
       ENDIF 
    ENDFOR 
 ENDIF 
 RETURN JACHRAST
ENDPROC
*------
PROCEDURE creatnewfile
 LPARAMETER FILE_NAME , FILE_BATTER
 FILE_HANDLE = FCREATE(FILE_NAME)
 = FWRITE(FILE_HANDLE,FILE_BATTER)
 = FCLOSE(FILE_HANDLE)
 RETURN 
ENDPROC
*------
PROCEDURE chinadate
 LPARAMETER C_DATE , C_FLAG
 LOCAL T_DTOC
 IF C_FLAG
    T_DTOC = TTOC(C_DATE,1)
    T_DTOC =  ;
         SUBSTR(T_DTOC,1,4) + '年' + SUBSTR(T_DTOC,5,2) + '月' + SUBSTR(T_DTOC,7,2) + '日' +  ;
   ' ' + SUBSTR(T_DTOC,9,2) + ':' + SUBSTR(T_DTOC,11,2)
 ELSE 
    T_DTOC = DTOC(C_DATE,1)
    T_DTOC =  ;
         SUBSTR(T_DTOC,1,4) + '年' + SUBSTR(T_DTOC,5,2) + '月' + SUBSTR(T_DTOC,7,2) + '日'
 ENDIF 
 RETURN T_DTOC
ENDPROC
*------*

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -