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

📄 utilite.prg

📁 非常不错的仓库管理源代码
💻 PRG
📖 第 1 页 / 共 5 页
字号:
ENDPROC
*------
PROCEDURE Sumrecord
 IF FILE(PUB005 + 'data_bak.dbf')
 IF USED('data_bak')
    SELECT DATA_BAK
 ELSE 
    SELECT 0
    USE SHARED PUB005 + 'data_bak'
 ENDIF 
 M_CCC = RECCOUNT()
 USE 
 ELSE 
 M_CCC = 0
 ENDIF 
 IF USED('data5')
 SELECT DATA5
 ELSE 
 SELECT 0
 USE SHARED PUB005 + 'data5'
 ENDIF 
 M_CCC = M_CCC + RECCOUNT()
 USE 
 RETURN M_CCC
ENDPROC
*------
PROCEDURE loadin
 PARAMETER PASS_M1 , PASS_M2 , PASS_M3
 ON ERROR titlew0="01"
 TITLEW0 = UPPER(TITLEW0)
 PASS_M4 = SELECT()
 MY_AREA = .F.
 IF USED('data15')
 SELECT DATA15
 STORE FILTER('data15') TO GCOLDFILTER
 SET FILTER TO RIGHT
 MY_AREA = .T.
 ELSE 
 SELECT 0
 IF FILE(PUB005 + 'data15.dbf')
    USE SHARED PUB005 + 'data15'
 ELSE 
    ON ERROR do _error0 with message()
    RETURN 
 ENDIF 
 ENDIF 
 ON ERROR do _error0 with message()
 IF PASS_M2 > 0
 LOCATE FOR VAL(LEFT(MODEL1,2)) = PASS_M1 AND VAL(LEFT(MODEL2,2)) = PASS_M2 AND RIGHT
 IF FOUND()
    M.MODEL1 = SUBSTR(MODEL1,4,12)
    M.MODEL2 = SUBSTR(MODEL2,4,15)
    APPEND BLANK
    REPLACE MACHINE WITH TITLEW0 , USER WITH PUB001 , MODEL1 WITH M.MODEL1 , MODEL2 WITH  ;
         M.MODEL2 , INDATE WITH DATE() , INTIME WITH TIME() , CHKMEMO WITH  ;
         PASS_M3
    IF  .NOT. MY_AREA
       USE 
       SELECT (PASS_M4)
    ELSE 
        SET FILTER TO &gcOldFilter    
    ENDIF 
    RETURN 
 ENDIF 
 ENDIF 
 LOCATE FOR VAL(LEFT(MODEL1,2)) = PASS_M1 AND RIGHT
 IF FOUND()
 M.MODEL1 = SUBSTR(MODEL1,4,12)
 APPEND BLANK
 REPLACE MACHINE WITH TITLEW0 , USER WITH PUB001 , MODEL1 WITH M.MODEL1 , MODEL2 WITH  ;
      '???????' , INDATE WITH DATE() , INTIME WITH TIME() , CHKMEMO WITH  ;
      PASS_M3
 ELSE 
 APPEND BLANK
 REPLACE MACHINE WITH TITLEW0 , USER WITH PUB001 , MODEL1 WITH '???????' , MODEL2 WITH  ;
      '???????' , INDATE WITH DATE() , INTIME WITH TIME() , CHKMEMO WITH  ;
      '系统主模块未找到!'
 ENDIF 
 IF  .NOT. MY_AREA
 USE 
 SELECT (PASS_M4)
 ELSE 
  SET FILTER TO &gcOldFilter    
 ENDIF 
ENDPROC
*------
PROCEDURE loadChg
 PARAMETER PASS_M1 , PASS_M2 , PASS_M3
 IF  .NOT. FILE(PUB005 + 'data15.dbf')
 RETURN 
 ENDIF 
 PASS_M4 = SELECT()
 IF USED('data15')
 SELECT DATA15
 ELSE 
 SELECT 0
 IF FILE(PUB005 + 'data15.dbf')
    USE SHARED PUB005 + 'data15'
 ELSE 
    RETURN 
 ENDIF 
 ENDIF 
 IF PASS_M2 = 0
 LOCATE FOR VAL(LEFT(MODEL1,2)) = PASS_M1 AND RIGHT
 M.MODEL1 = SUBSTR(MODEL1,4,12)
 M.MODEL2 = ''
 LOCATE FOR EMPTY(OUTIME) AND  .NOT. RIGHT AND USER = PUB001 AND MODEL1 = M.MODEL1
 ELSE 
 LOCATE FOR VAL(LEFT(MODEL1,2)) = PASS_M1 AND VAL(LEFT(MODEL2,2)) = PASS_M2 AND RIGHT
 M.MODEL1 = SUBSTR(MODEL1,4,12)
 M.MODEL2 = SUBSTR(MODEL2,4,12)
 LOCATE FOR  ;
      EMPTY(OUTIME) AND  .NOT. RIGHT AND USER = PUB001 AND MODEL1 = M.MODEL1 AND  ;
MODEL2 = M.MODEL2
 ENDIF 
 IF FOUND()
 IF RLOCK()
    IF  .NOT. EMPTY(PASS_M3)
       REPLACE CHKMEMO WITH ALLTRIM(CHKMEMO) + PASS_M3
    ENDIF 
 ENDIF 
 ENDIF 
 USE 
 SELECT (PASS_M4)
ENDPROC
*------
PROCEDURE loadquit
 PARAMETER PASS_M1 , PASS_M2 , PASS_M3
 ON ERROR titlew0="01"
 TITLEW0 = UPPER(TITLEW0)
 ON ERROR do _error0 with message()
 IF  .NOT. FILE(PUB005 + 'data15.dbf')
 RETURN 
 ENDIF 
 PASS_M4 = SELECT()
 IF USED('data15')
 SELECT DATA15
 ELSE 
 SELECT 0
 IF FILE(PUB005 + 'data15.dbf')
    USE SHARED PUB005 + 'data15'
 ELSE 
    RETURN 
 ENDIF 
 ENDIF 
 IF PASS_M2 = 0
 LOCATE FOR VAL(LEFT(MODEL1,2)) = PASS_M1 AND RIGHT
 M.MODEL1 = SUBSTR(MODEL1,4,12)
 M.MODEL2 = ''
 LOCATE FOR EMPTY(OUTIME) AND  .NOT. RIGHT AND USER = PUB001 AND MODEL1 = M.MODEL1
 ELSE 
 LOCATE FOR VAL(LEFT(MODEL1,2)) = PASS_M1 AND VAL(LEFT(MODEL2,2)) = PASS_M2 AND RIGHT
 M.MODEL1 = SUBSTR(MODEL1,4,12)
 M.MODEL2 = SUBSTR(MODEL2,4,12)
 LOCATE FOR  ;
      EMPTY(OUTIME) AND  .NOT. RIGHT AND USER = PUB001 AND MODEL1 = M.MODEL1 AND  ;
MODEL2 = M.MODEL2
 ENDIF 
 IF FOUND()
 IF RLOCK()
    REPLACE OUTIME WITH TIME()
    IF  .NOT. EMPTY(PASS_M3)
       REPLACE CHKMEMO WITH PASS_M3
    ENDIF 
 ENDIF 
 ELSE 
 APPEND BLANK
 REPLACE MACHINE WITH TITLEW0 , USER WITH PUB001 , MODEL1 WITH M.MODEL1 , MODEL2 WITH  ;
      M.MODEL2 , INDATE WITH DATE() , OUTIME WITH TIME() , CHKMEMO WITH  ;
      '<进入时间>未知!'
 ENDIF 
 USE 
 SELECT (PASS_M4)
ENDPROC
*------
PROCEDURE ZHENLI
 PARAMETER A1 , A2 , A3
 ISERROR = .F.
 ON ERROR Iserror=.T. 
 IF USED(A1)
  SELECT &A1
 ELSE 
 SELECT 0
 A5 = PUB005 + A1
 USE EXCLUSIVE '' + A5
 ENDIF 
 IF ISERROR
 = MESSAGEBOX(A2 + '数据正被使用 !',48,'信息提示')
 ELSE 
 IF A3
    REINDEX 
 ELSE 
    PACK 
 ENDIF 
 ENDIF 
 USE 
 ON ERROR do _error0 with message() 
 RETURN 
ENDPROC
*------
PROCEDURE m0_s1_2
 PARAMETER PAS4 , PAS5
 IF PAS4
 TEMPJUDG = .T.
 ON ERROR tempjudg=.f.
 IF USED('data0')
    SELECT DATA0
    USE 
 ENDIF 
 SELECT 0
 USE SHARED '' + PAS5
 GO TOP
 ON ERROR do _error0 with message()
 IF TEMPJUDG AND  .NOT. EOF() AND RLOCK()
    COUNT TO T0
    IF T0 = 0
       = MESSAGEBOX('系统参数设置库有误,操作无法进行!',16,'信息提示')
       USE 
       RETURN .F.
    ELSE 
       GO TOP
       IF LEN1 <= 0 .OR. LEN2 <= 0 .OR. LEN3 = 0
          REPLACE LEN1 WITH 8 , WID1 WITH 2 , LEN2 WITH 10 , WID2 WITH 2 , LEN3 WITH 36
          IF MESSAGEBOX('系统设置库结构错误,系统自我调整?',33,'信息提示') = 2
             USE 
             RETURN .F.
          ELSE 
             SCATTER MEMVAR FIELDS LEN1 , LEN2 , LEN3 , WID1 , WID2
          ENDIF 
       ELSE 
          SCATTER MEMVAR FIELDS LEN1 , LEN2 , LEN3 , WID1 , WID2
       ENDIF 
       USE 
    ENDIF 
 ELSE 
    = MESSAGEBOX('网络其他用户正在占用系统数据,操作无法进行!',16,'信息提示')
    USE 
    RETURN .F.
 ENDIF 
 ENDIF 
 SS = '正在调整系统参数及数据结构…'
 MSG = CREATEOBJECT('msgbox',.F.,SS)
  MSG.SHOW
 TEMP_T0 = SYS(2001,'excl')
 TEMPJUDG = .T.
 ON ERROR tempjudg=.f.
 IF USED('stru')
 SELECT STRU
 USE 
 ENDIF 
 SELECT 0
 USE EXCLUSIVE stru
 ON ERROR do _error0 with message()
 IF  .NOT. TEMPJUDG
 = MESSAGEBOX('网络其他用户正在占用系统数据,操作无法进行!',16,'信息提示')
 RETURN .F.
 ENDIF 
 REPLACE FIELD_LEN WITH M.LEN1 , FIELD_DEC WITH (M.WID1) FOR  ;
      FIELD_NAME = 'HPSL ' .OR. FIELD_NAME = 'HPYS ' .OR. FIELD_NAME = 'SL '
 REPLACE FIELD_LEN WITH M.LEN1 + 2 , FIELD_DEC WITH (M.WID1) FOR  ;
      FIELD_NAME = 'HPSL ' AND FIELD_DATA = 'data2'
 REPLACE FIELD_LEN WITH M.LEN1 + 2 , FIELD_DEC WITH (M.WID1) FOR  ;
      FIELD_NAME = 'SQSL' .OR. FIELD_NAME = 'RKSL' .OR. FIELD_NAME = 'CKSL' .OR.  ;
FIELD_NAME = 'PDSL' .OR. FIELD_NAME = 'JYSL'
 REPLACE FIELD_LEN WITH M.LEN2 , FIELD_DEC WITH (M.WID2) FOR  ;
      FIELD_NAME = 'HPYJ ' .OR. FIELD_NAME = 'HPBJ ' .OR. FIELD_NAME = 'CBDJ ' .OR.  ;
FIELD_NAME = 'JYDJ '
 T0 = MAX(M.WID1,M.WID2)
 REPLACE FIELD_LEN WITH  ;
      MAX(M.LEN1 - IIF(M.WID1 = 0,0,M.WID1 + 1),M.LEN2 - IIF(M.WID2 = 0,0,M.WID2 + 1)) +  ;
IIF(T0 = 0,0,T0 + 1) , FIELD_DEC WITH (T0) FOR  ;
      FIELD_NAME = 'CBDJ ' AND FIELD_DATA = 'data5'
 USE 
  MSG.RELEASE
 RETURN 
ENDPROC
*------
PROCEDURE m0_s1_3
 SS = '正在调整系统结构…'
 MSG = CREATEOBJECT('msgbox',.T.,SS)
  MSG.SHOW
 MSG.CAPTION = SS
 M_NUM = 6.25
 MSG.CAPTION = '请稍等,正在调整单据库...'
 DO M0_S1_1 WITH 'data5' , PUB005 + 'data5.dbf' , 'data5'
 MSG.NPER = M_NUM
 SELECT 0
 USE EXCLUSIVE PUB005 + 'data5.dbf'
 INDEX ON PDHM TAG PDHM UNIQUE ADDITIVE FOR  .NOT. DELETED()
 MSG.NPER = M_NUM * 2
 INDEX ON HPBM + DTOC(JZRQ) TAG JZRQ ADDITIVE
 MSG.NPER = M_NUM * 3
 INDEX ON HPBM + DTOC(JZRQ) TAG JZRQ2 DESCENDING ADDITIVE
 MSG.NPER = M_NUM * 4
 INDEX ON JZRQ TAG RK FOR TYPE = 1
 INDEX ON JZRQ TAG CK FOR TYPE = 2
 INDEX ON JZRQ TAG DK FOR IO = 3
 INDEX ON JZRQ TAG PD FOR TYPE = 5
 INDEX ON JZRQ TAG KHZK FOR TYPE < 3
 USE 
 IF FILE(PUB005 + 'data_bak.dbf')
 MSG.CAPTION = '请稍等,正在调整已结单据库...'
 DO M0_S1_1 WITH 'data5' , PUB005 + 'data_bak.dbf' , 'data_bak'
 MSG.NPER = M_NUM * 5
 ENDIF 
 MSG.CAPTION = '请稍等,正在调整货品编码单据库...'
 DO M0_S1_1 WITH 'data2' , PUB005 + 'data2.dbf' , 'data2'
 MSG.NPER = M_NUM * 6
 SELECT 0
 USE EXCLUSIVE PUB005 + 'data2.dbf'
 INDEX ON HPBM TAG HPBM ADDITIVE
 MSG.NPER = M_NUM * 7
 INDEX ON HPPM TAG HPPM ADDITIVE
 MSG.NPER = M_NUM * 8
 USE 
 MSG.CAPTION = '请稍等,正在调整定单单据库...'
 DO M0_S1_1 WITH 'data11' , PUB005 + 'data11.dbf' , 'data11'
 MSG.NPER = M_NUM * 9
 SELECT 0
 USE EXCLUSIVE PUB005 + 'data11.dbf'
 INDEX ON DTOC(RQ1) + SIGN TAG SIGN ADDITIVE
 MSG.NPER = M_NUM * 10
 INDEX ON SIGN TAG SIGN_U UNIQUE ADDITIVE FOR  .NOT. DELETED()
 MSG.NPER = M_NUM * 11
 INDEX ON HPBM + DFDW TAG HPBM_U UNIQUE DESCENDING ADDITIVE FOR  .NOT. DELETED()
 MSG.NPER = M_NUM * 12
 USE 
 MSG.CAPTION = '请稍等,正在调整报表统计库...'
 DO M0_S1_1 WITH 'data_rpt' , 'data_rpt.dbf' , 'data_rpt'
 MSG.NPER = M_NUM * 13
 MSG.CAPTION = '请稍等,正在调整套件组合库...'
 DO M0_S1_1 WITH 'data13' , PUB005 + 'data13.dbf' , 'data13'
 MSG.NPER = M_NUM * 14
 SELECT 0
 USE EXCLUSIVE PUB005 + 'data13.dbf'
 INDEX ON DH TAG DH UNIQUE ADDITIVE FOR  .NOT. DELETED()
 INDEX ON STR(DH) + HPBM TAG HPBM ADDITIVE
 INDEX ON CPBM + STR(DH) TAG CPBM UNIQUE ADDITIVE FOR  .NOT. DELETED()
 MSG.NPER = M_NUM * 15
 USE 
 MSG.CAPTION = '请稍等,正在调整计划采购表...'
 DO M0_S1_1 WITH 'data19' , PUB005 + 'data19.dbf' , 'data19'
 MSG.CAPTION = '请稍等,正在清理临时文件...'
 DO DELETEMP
 MSG.NPER = M_NUM * 15
  MSG.RELEASE
 RETURN 
ENDPROC
*------
PROCEDURE m0_s1_1
 PARAMETER P1 , P2 , P3
 IF USED(P3)
  select &p3
 USE 
 ENDIF 
 IF USED('stru')
 SELECT STRU
 ELSE 
 SELECT 0
 USE SHARED 'stru'
 ENDIF 
 SET FILTER TO FIELD_DATA = P1
 COPY TO ARRAY TEMP_J9
 USE 
 CREATE TABLE temp_j92 FROM ARRAY TEMP_J9
 ON ERROR =messagebox("数据库丢失错误,系统自行增补!",48,"信息提示")
 APPEND FROM '' + P2
 ON ERROR =messagebox("网络数据正在使用,无法调整库结构!",16,"信息提示")
 COPY TO '' + P2
 USE 
 ON ERROR do _error0 with message()
 ERASE temp_j92.dbf
 RETURN 
ENDPROC
*------
PROCEDURE QINGXI
 PARAMETER A1 , A2 , A3
 TEMP_1 = MESSAGEBOX('清洗' + A2 + ' ?',35,'信息提示')
 DO CASE 
 CASE TEMP_1 = 2
 RETURN .F.
 CASE TEMP_1 = 7
 RETURN .T.
 OTHERWISE 
 TEMPJUDG = .T.
 ON ERROR tempjudg=.f.
 IF USED(A1)
     SELECT &A1
 ELSE 
    SELECT 0
    A5 = PUB005 + A1
    USE EXCLUSIVE '' + A5
 ENDIF 
 ON ERROR do _error0 with message()
 IF  .NOT. TEMPJUDG
    = MESSAGEBOX(A2 + '数据正被使用 !',48,'信息提示')
 ELSE 
    ZAP 
 ENDIF 
 ENDCASE 
 RETURN .T.
ENDPROC
*------
PROCEDURE BEIFENG
 PARAMETER A1 , A2 , A3
 TEMP_1 = MESSAGEBOX('备份' + A2 + ' ?',35,'信息提示')
 IF TEMP_1 = 2
 RETURN .F.
 ENDIF 
 IF TEMP_1 = 7
 RETURN .T.
 ENDIF 
 IF FILE(TEMP16 + A1 + '.dbf')
 IF MESSAGEBOX('该路径下已有备份' + A2 + ',覆盖 ?',33,'信息提示') = 2
    RETURN .T.
 ENDIF 
 ENDIF 
 IF  .NOT. USED(A1)
 A5 = PUB005 + A1
 USE IN SELECT(0) SHARED '' + A5 ALIAS TEMP_DBF
 ENDIF 
 SELECT TEMP_DBF
 A4 = TEMP16 + A1
 ON ERROR do _error2 
 IF A3
 COPY TO '' + A4 WITH CDX TYPE FOX2X 
 ELSE 
 COPY TO '' + A4 TYPE FOX2X 
 ENDIF 
 USE 
 ON ERROR do _error0 with message()
 RETURN 
ENDPROC
*------
PROCEDURE DIAORU
 PARAMETER A1 , A2 , A3
 TEMP_1 = MESSAGEBOX('调入' + A2 + ' ?',35,'信息提示')
 DO CASE 
 CASE TEMP_1 = 2
 RETURN .F.
 CASE TEMP_1 = 7
 RETURN .T.
 OTHERWISE 
 IF USED(A1)
     SELECT &A1
    USE 
 ENDIF 
 TEMPJUDG = .T.
 ON ERROR tempjudg=.f.
 A5 = PUB005 + A1
 IF  .NOT. FILE(A5 + '.dbf')
    = MESSAGEBOX(A2 + '不存在 !',16,'信息提示')
    ON ERROR do _error0 with message()
    RETURN 
 ENDIF 
 USE EXCLUSIVE '' + A5
 IF  .NOT. TEMPJUDG
    = MESSAGEBOX(A2 + '正被使用 !',16,'信息提示')
    ON ERROR do _error0 with message()
    RETURN 
 ENDIF 
 PACK 
 IF  .NOT. FILE(TEMP16 + A1 + '.dbf')
    = MESSAGEBOX(A2 + '调入路径错误或者原文件未找到!',16,'信息提示')
    ON ERROR do _error0 with message()
    USE 
    RETURN 
 ENDIF 
 DELETE ALL
 A4 = TEMP16 + A1
 APPEND FROM '' + A4
 IF  .NOT. TEMPJUDG
    = MESSAGEBOX(A2 + '数据调入错误,恢复原数据 !',48,'信息提示')
    GO TOP
    STORE RECNO() TO TEMP
    RECALL ALL
    DELETE ALL FOR RECNO() >= TEMP
    PACK 
    = MESSAGEBOX('原有' + A2 + '数据恢复完毕 !',64,'信息提示')
 ELSE 
    PACK 
    IF A3
       REINDEX 
    ENDIF 
 ENDIF 
 ENDCASE 
 ON ERROR do _error0 with message()
 USE 
 RETURN 
ENDPROC
*------
PROCEDURE HEBIN
 PARAMETER A1 , A2 , A3
 TEMP_1 = MESSAGEBOX('合并' + A2 + ' ?',35,'信息提示')
 DO CASE 
 CASE TEMP_1 = 2
 RETURN .F.
 CASE TEMP_1 = 7
 RETURN .T.
 OTHERWISE 
 TEMPJUDG = .T.
 ON ERROR tempjudg=.f.
 IF  .NOT. FILE(PUB005 + A1 + '.dbf')
    = MESSAGEBOX(A2 + '不存在 !',16,'信息提示')
    ON ERROR do _error0 with message()
    RETURN 
 ENDIF 
 IF USED(A1)
     SELECT &A1
    SET ORDER TO
 ELSE 
    SELECT 0
    A5 = PUB005 + A1
    USE EXCLUSIVE '' + A5

⌨️ 快捷键说明

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