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

📄 utilite.prg

📁 非常不错的仓库管理源代码
💻 PRG
📖 第 1 页 / 共 5 页
字号:
 IND_J = .F.
 ON ERROR ind_j=.t.
 SELECT 0
 USE EXCLUSIVE '' + D_NAME2
 SET ORDER TO Jzrq
 REINDEX 
 IF  .NOT. FILE(PUB005 + 'data9.cdx') .OR. IND_J
 D_NUM1 = D_NUM1 + 1
 INDEX ON DFDW + DTOC(JZRQ) TAG JZRQ ADDITIVE
 D_NUM2 = D_NUM2 + 1
 ENDIF 
 USE 
 ON ERROR 
 D_NAME2 = PUB005 + 'data10.dbf'
 M_TEMP = M9_S1('门市票据库')
 DO CASE 
 CASE M_TEMP = 2
 D_NUM2 = D_NUM2 + 1
 DO M0_S1_1 WITH 'data10' , D_NAME2 , 'data10'
 CASE M_TEMP = 3
 CLOSE DATABASES 
 DO LOADQUIT WITH 9 , 1 , '中断'
 RETURN 
 ENDCASE 
 D_NAME2 = PUB005 + 'data11.dbf'
 M_TEMP = M9_S1('订单数据库')
 DO CASE 
 CASE M_TEMP = 2
 D_NUM2 = D_NUM2 + 1
 DO M0_S1_1 WITH 'data11' , D_NAME2 , 'data11'
 CASE M_TEMP = 3
 CLOSE DATABASES 
 DO LOADQUIT WITH 9 , 1 , '中断'
 RETURN 
 ENDCASE 
 IND_J = .F.
 ON ERROR ind_j=.t.
 SELECT 0
 USE EXCLUSIVE '' + D_NAME2
 SET ORDER TO sign
 SET ORDER TO sign_u
 SET ORDER TO hpbm_u
 REINDEX 
 IF  .NOT. FILE(PUB005 + 'data11.cdx') .OR. IND_J
 D_NUM1 = D_NUM1 + 1
 INDEX ON DTOC(RQ1) + SIGN TAG SIGN ADDITIVE
 INDEX ON SIGN TAG SIGN_U UNIQUE ADDITIVE FOR  .NOT. DELETED()
 INDEX ON HPBM + DFDW TAG HPBM_U UNIQUE DESCENDING ADDITIVE FOR  .NOT. DELETED()
 D_NUM2 = D_NUM2 + 1
 ENDIF 
 REPLACE SIGN WITH (PDHM) FOR  .NOT. EMPTY(PDHM) AND EMPTY(SIGN)
 USE 
 ON ERROR 
 D_NAME2 = PUB005 + 'data12.dbf'
 M_TEMP = M9_S1('打印模板库')
 DO CASE 
 CASE M_TEMP = 2
 D_NUM2 = D_NUM2 + 1
 DO M0_S1_1 WITH 'data12' , D_NAME2 , 'data12'
 CASE M_TEMP = 3
 CLOSE DATABASES 
 DO LOADQUIT WITH 9 , 1 , '中断'
 RETURN 
 ENDCASE 
 D_NAME2 = 'data_rpt.dbf'
 M_TEMP = M9_S1('报表统计库')
 DO CASE 
 CASE M_TEMP = 2
 D_NUM2 = D_NUM2 + 1
 DO M0_S1_1 WITH 'data_rpt' , D_NAME2 , 'data_rpt'
 CASE M_TEMP = 3
 CLOSE DATABASES 
 DO LOADQUIT WITH 9 , 1 , '中断'
 RETURN 
 ENDCASE 
 D_NAME2 = 'support.dbf'
 M_TEMP = M9_S1('经销商名录')
 DO CASE 
 CASE M_TEMP = 2
 D_NUM2 = D_NUM2 + 1
 DO M0_S1_1 WITH 'support' , D_NAME2 , 'support'
 CASE M_TEMP = 3
 CLOSE DATABASES 
 DO LOADQUIT WITH 9 , 1 , '中断'
 RETURN 
 ENDCASE 
 DO DELETEMP
 D_NAME2 = PUB005 + 'data_1.dbf'
 M_TEMP = M9_S1('库存数量库')
 DO CASE 
 CASE M_TEMP = 2
 D_NUM2 = D_NUM2 + 1
 DO M0_S1_1 WITH 'data_rpt' , D_NAME2 , 'data_1'
 CASE M_TEMP = 3
 CLOSE DATABASES 
 DO LOADQUIT WITH 9 , 1 , '中断'
 RETURN 
 ENDCASE 
 D_NAME2 = PUB005 + 'data_2.dbf'
 IF FILE(D_NAME2)
 M_TEMP = M9_S1('整体成本库')
 DO CASE 
 CASE M_TEMP = 2
     delete file &d_name2
 CASE M_TEMP = 3
    CLOSE DATABASES 
    DO LOADQUIT WITH 9 , 1 , '中断'
    RETURN 
 ENDCASE 
 ENDIF 
 D_NAME2 = PUB005 + 'data_3.dbf'
 IF FILE(D_NAME2)
 M_TEMP = M9_S1('仓库成本库')
 DO CASE 
 CASE M_TEMP = 2
     delete file &d_name2
 CASE M_TEMP = 3
    CLOSE DATABASES 
    DO LOADQUIT WITH 9 , 1 , '中断'
    RETURN 
 ENDCASE 
 ENDIF 
 ON ERROR 
 IF D_NUM1 = 0
 = MESSAGEBOX('系统自我诊断完毕。未发现任何错误!',64,'信息提示')
 ELSE 
 IF D_NUM1 = D_NUM2
    = MESSAGEBOX('系统自我诊断完毕。' + CHR(13) + '发现有' + LTRIM(STR(D_NUM1)) +  ;
   '处错误,已全部修复!',64,'信息提示')
 ELSE 
    = MESSAGEBOX('系统自我诊断完毕。' + CHR(13) + '发现有' + LTRIM(STR(D_NUM1)) + '处错误,修复' +  ;
   LTRIM(STR(D_NUM2)) +  ;
   '处!',64,'信息提示')
 ENDIF 
 ENDIF 
 DO LOADQUIT WITH 9 , 1 ,  ;
      '发现:错误' + LTRIM(STR(D_NUM1)) + '处,修复' + LTRIM(STR(D_NUM2)) + '处。'
 CLOSE DATABASES 
ENDPROC
*------
PROCEDURE _quit1
 PARAMETER PAS1
 DO CASE 
 CASE PAS1 = 1
 = MESSAGEBOX('诊断工具库错误,无法进行系统的自我修复工作!',16,'信息提示')
 CASE PAS1 = 2
 = MESSAGEBOX('中断系统数据的自我诊断及修复!',48,'信息提示')
 CASE PAS1 = 3
 = MESSAGEBOX('其他用户正在使用系统数据,“自我诊断及修复”工作暂时无法进行!',16,'信息提示')
 ENDCASE 
 CLOSE DATABASES 
 DO LOADQUIT WITH 9 , 0 , '<修复>中断'
 RETURN 
ENDPROC
*------
PROCEDURE m9_s1
 PARAMETER P1
 D_JUDG1 = .T.
 ON ERROR d_judg1=.f.
 USE IN SELECT(1) SHARED '' + D_NAME2 ALIAS D_NAME2
 USE IN 'd_name2'
 D_JUDG = .T.
 ON ERROR d_judg=.f.
 USE IN SELECT(1) EXCLUSIVE '' + D_NAME2 ALIAS D_NAME2
 USE IN 'd_name2'
 IF  .NOT. D_JUDG
 IF D_JUDG1
    DO _QUIT1 WITH 3
    RETURN 3
 ENDIF 
 IF FILE(D_NAME2)
    D_NAME3 = LEFT(D_NAME2,RAT('.',D_NAME2)) + 'old'
     copy file &d_name2 to &d_name3
 ENDIF 
 D_NUM1 = D_NUM1 + 1
 IF  .NOT. EMPTY(P1)
    T0 = MESSAGEBOX('发现(' + P1 + ')错误,是否进行系统的自我修复?',35,'信息提示')
 ENDIF 
 DO CASE 
 CASE EMPTY(P1)
    = MESSAGEBOX('发现有系统数据错误,自我修复!',48,'信息提示')
 CASE T0 = 6
 CASE T0 = 7
    D_JUDG = .T.
 CASE T0 = 2
    DO _QUIT1 WITH 2
    RETURN 3
 ENDCASE 
 ENDIF 
 ON ERROR 
 IF D_JUDG
 RETURN 1
 ELSE 
 RETURN 2
 ENDIF 
ENDPROC
*------
PROCEDURE dwztcbhs
 PARAMETER M_JZRQ
 CLEAR TYPEAHEAD 
 SS = '正在按加权平均法进行“成本统计核算”工作,请稍侯…'
 MSG = CREATEOBJECT('msgbox',.F.,SS)
  MSG.SHOW
 SELECT DATA2
 SET ORDER TO hpbm
 DECIWID = ROUND(0,M.WID1)
 SELECT HPBM , HPPM , HPDW , SUM(IIF(TYPE = 4,ROUND(HPSL,M.WID1),DECIWID))  SQSL ,  ;
      SUM(IIF(TYPE = 4,HPJE,0))  SQJE ,  ;
      SUM(IIF(TYPE = 5,ROUND(HPSL,M.WID1),DECIWID))  PDSL , SUM(IIF(IO = 1,ROUND(HPSL,M.WID1),DECIWID))  RKSL ,  ;
      SUM(IIF(IO = 1,HPJE,0))  RKJE , SUM(IIF(IO = 2,ROUND(HPSL,M.WID1),DECIWID))  ;
       CKSL , SUM(IIF(IO = 2,HPJE,0))  CKJE WHERE JZRQ <= M_JZRQ GROUP BY  ;
      HPBM ORDER BY HPBM , JZRQ INTO CURSOR temp_dbf1 FROM data5
 SELECT * , SQSL + RKSL - CKSL + PDSL  JYSL , CBDJ(HPBM,SQSL,RKSL,SQJE,RKJE,CKSL,PDSL)   ;
      JYDJ INTO CURSOR TEMP_DBF2 FROM temp_dbf1
 SELECT * , JYSL * JYDJ  JYJE , PDSL * JYDJ  PDJE , CKJE - CKSL * JYDJ  XSML INTO  ;
      CURSOR TEMP_DBF FROM TEMP_DBF2
 SELECT TEMP_DBF1
 USE 
 SELECT TEMP_DBF2
 USE 
  MSG.RELEASE
 RETURN .T.
ENDPROC
*------
PROCEDURE ckflcbhs
 PARAMETER M_JZRQ
 CLEAR TYPEAHEAD 
 SELECT DATA2
 SET ORDER TO hpbm
 IF DATA0.JJFF = 1
 IF  .NOT. JQPJF(M_JZRQ)
 ENDIF 
 SELECT DATA5
 IF FLOCK()
    = PRICEWRITE(M_JZRQ)
    SELECT DATA5
    UNLOCK 
 ELSE 
    RETURN .F.
 ENDIF 
 ELSE 
 SELECT DATA5
 IF FLOCK()
    = PRICEWRITE(M_JZRQ)
    SELECT DATA5
    UNLOCK 
 ELSE 
    RETURN .F.
 ENDIF 
 ENDIF 
 SELECT TEMP_DBF
 RETURN .T.
ENDPROC
*------
PROCEDURE CBDJ
 PARAMETER M.HPBM , M.SQSL , M.RKSL , M.SQJE , M.RKJE , M.CKSL , M.PDSL
 M.JYSL = M.SQSL + M.RKSL - M.CKSL + M.PDSL
 IF M.SQSL + M.RKSL = 0
 SELECT DATA2
 SEEK M.HPBM
 IF FOUND() AND CBDJ < 99999999999.99
    M.JYDJ = CBDJ
 ELSE 
    M.JYDJ = 0
 ENDIF 
 ELSE 
 M.JYDJ = (M.SQJE + M.RKJE) / (M.SQSL + M.RKSL)
 ENDIF 
 RETURN M.JYDJ
ENDPROC
*------
PROCEDURE jqpjf
 PARAMETER MYLIMITDATE
 SS = '正在按加权平均法进行“成本核算”工作,请稍侯…'
 MSG = CREATEOBJECT('msgbox',.T.,SS)
  MSG.SHOW
 SELECT DATA2
 SET ORDER TO hpbm
 SELECT DATA5
 SET FILTER TO
 SELECT * WHERE JZRQ <= MYLIMITDATE ORDER BY HPBM , HPCK , JZRQ INTO CURSOR tmpdata5  ;
      FROM data5
 MSG.NPER = 10
 DECIWID = ROUND(0,M.WID1)
 SELECT HPBM , HPPM , HPDW , HPCK , SUM(IIF(TYPE = 4,ROUND(HPSL,M.WID1),DECIWID))  SQSL ,  ;
      SUM(IIF(TYPE = 4,ROUND(HPJE,2),0))  SQJE ,  ;
      SUM(IIF(TYPE = 5,ROUND(HPSL,M.WID1),DECIWID))  PDSL ,  ;
      SUM(IIF(IO = 1,ROUND(HPSL,M.WID1),DECIWID))  RKSL , SUM(IIF(IO = 1,ROUND(HPJE,2),0))  RKJE ,  ;
      SUM(IIF(IO = 2,ROUND(HPSL,M.WID1),DECIWID))  CKSL , SUM(IIF(IO = 2,ROUND(HPJE,2),0))   ;
      CKJE GROUP BY HPBM , HPCK ORDER BY HPBM , HPCK , JZRQ INTO CURSOR  ;
      temp_dbf1 FROM tmpdata5
 SELECT TMPDATA5
 USE 
 MSG.NPER = 50
 SELECT * , SQSL + RKSL - CKSL + PDSL  JYSL , CBDJ(HPBM,SQSL,RKSL,SQJE,RKJE,CKSL,PDSL)   ;
      JYDJ INTO CURSOR TEMP_DBF2 FROM temp_dbf1
 SELECT TEMP_DBF1
 USE 
 MSG.NPER = 100
 SELECT * , ROUND(JYSL * JYDJ,2)  JYJE , ROUND(PDSL * JYDJ,2)  PDJE ,  ;
      CKJE - ROUND(CKSL * JYDJ,2)  XSML INTO CURSOR TEMP_DBF FROM TEMP_DBF2
 SELECT TEMP_DBF2
 USE 
  MSG.RELEASE
 RETURN .T.
ENDPROC
*------
PROCEDURE hbjs
 PARAMETER M_JZRQ
 SS = '开始进行“外币折算” …'
 MSG = CREATEOBJECT('msgbox',.F.,SS)
  MSG.SHOW
 SELECT DATA5
 IF  .NOT. FLOCK()
 = MESSAGEBOX('数据正被使用,暂停进行外币折算!',48,'信息提示')
  MSG.RELEASE
 RETURN .F.
 ENDIF 
 REPLACE HPJE WITH (HPYE) FOR HPYB = M.BWBDM AND HPJE <> HPYE
 SELECT RECNO()  LINENO , DATA5.HPYE * DATA3.HBDL  HPJE WHERE  ;
      DATA5.HPYB <> M.BWBDM AND DATA5.JZRQ <= M_JZRQ INTO CURSOR TEMP_HB FROM data5 LEFT JOIN data3 ON  ;
      DATA5.HPYB = DATA3.HBDM
 SCAN 
 SCATTER MEMVAR 
 SELECT DATA5
 GO M.LINENO
 IF ISNULL(M.HPJE)
    P3_T0 =  ;
         MESSAGEBOX('外币 (' + TRIM(DATA5.HPYB) + ') 尚未进行兑率设置,是否改为 [' + M.BWBDM + '] ?',36,'信息提示')
    DO CASE 
    CASE P3_T0 = 6
       REPLACE HPYB WITH M.BWBDM , HPJE WITH HPYE
    CASE P3_T0 = 2
       UNLOCK 
       SELECT TEMP_HB
       USE 
        MSG.RELEASE
       RETURN .F.
    ENDCASE 
 ELSE 
    REPLACE HPJE WITH M.HPJE
 ENDIF 
 SELECT TEMP_HB
 ENDSCAN 
 UNLOCK 
  MSG.RELEASE
 = MESSAGEBOX('外币兑率重新折算完毕!',64,'信息提示')
 RETURN .T.
ENDPROC
*------
PROCEDURE yhdj
 IF  .NOT. SUBSTR(RIGHT006,1,1) = '1'
 = MESSAGEBOX('您无权进入本操作模块!',16,'系统提示')
 RETURN 
 ENDIF 
  MAIN.SHOWOBJECT(.F.)
 DO FORM User WITH MAIN
 RETURN 
ENDPROC
*------
PROCEDURE qxsz
 IF  .NOT. SUBSTR(RIGHT006,2,1) = '1'
 = MESSAGEBOX('您无权进入本操作模块!',16,'系统提示')
 RETURN 
 ENDIF 
  MAIN.SHOWOBJECT(.F.)
 DO FORM right WITH MAIN
  MAIN.SHOWOBJECT(.T.)
 RETURN 
ENDPROC
*------
PROCEDURE ggmm
 IF  .NOT. SUBSTR(RIGHT006,19,1) = '1'
 = MESSAGEBOX('您无权进入本操作模块!',16,'系统提示')
 RETURN 
 ENDIF 
  MAIN.SHOWOBJECT(.F.)
 DO FORM getpass WITH MAIN
  MAIN.SHOWOBJECT(.T.)
 RETURN 
ENDPROC
*------
PROCEDURE Fasz
 IF  .NOT. SUBSTR(RIGHT006,4,1) = '1'
 = MESSAGEBOX('您无权进入本操作模块!',16,'系统提示')
 RETURN 
 ENDIF 
 TEMPJUDG = .T.
 ON ERROR tempjudg=.f.
 IF USED('data0')
 SELECT DATA0
 USE 
 ENDIF 
 SELECT 0
 USE EXCLUSIVE PUB005 + 'data0'
 ON ERROR do _error0 with message()
 IF  .NOT. TEMPJUDG
 = MESSAGEBOX('网络用户正在占用系统数据 !',16,'信息提示')
 USE 
 RETURN 
 ENDIF 
 COUNT TO M9_T0
 IF M9_T0 = 0
 USE 
 = MESSAGEBOX('系统数据错误!',16,'信息提示')
 RETURN 
 ENDIF 
 GO TOP
 SCATTER MEMVAR FIELDS JCRQ , LEN1 , LEN2 , LEN3 , WID1 , WID2
 T01 = DAY(PUB004)
 DO CASE 
 CASE T01 = 28
 IF M.JCRQ <> T01
    IF MONTH(PUB004) <> 2 AND RLOCK()
       REPLACE JCRQ WITH T01
       UNLOCK 
    ENDIF 
 ENDIF 
 CASE T01 > 28
 IF M.JCRQ < 29 AND RLOCK()
    REPLACE JCRQ WITH T01
    UNLOCK 
 ENDIF 
 CASE T01 < 28
 IF M.JCRQ <> T01 AND RLOCK()
    REPLACE JCRQ WITH T01
    UNLOCK 
 ENDIF 
 ENDCASE 
  MAIN.SHOWOBJECT(.F.)
 DO FORM scheme WITH MAIN
 RETURN 
ENDPROC
*------
PROCEDURE qcsz
 IF  .NOT. SUBSTR(RIGHT006,5,1) = '1'
 = MESSAGEBOX('您无权进入本操作模块!',16,'系统提示')
 RETURN 
 ENDIF 
 IF MESSAGEBOX('在进行[期初设置]前,请确认所有其他用户均已退出系统套帐!',33,'系统提示') =  ;
2
 RETURN 
 ENDIF 
 CLOSE DATABASES 
 TEMP_J = .F.
 ON ERROR temp_j=.T.
 USE IN SELECT(1) EXCLUSIVE PUB005 + 'data5' ALIAS DATA5
 IF TEMP_J = .T.
 = MESSAGEBOX('网络用户正在占用系统数据,[期初设置]暂时无法进行!',48,'系统提示')
 CLOSE DATABASES 
 RETURN 
 ENDIF 
 ON ERROR do _error0 with message()
 USE IN SELECT(1) SHARED PUB005 + 'data2' ALIAS DATA2 ORDER hpbm
 SELECT DATA5
 INDEX ON JZRQ TO data\data5.idx FOR TYPE = 4
 COUNT TO T0
 IF T0 > 0 AND PUB001 <> PUB002
 = MESSAGEBOX('本期已有<期初数据>,须[超级用户]方可调整 !',16,'信息提示')
 CLOSE DATABASES 
 RETURN 
 ENDIF 
 IF FILE('data\temp_j10.dbf')
 USE IN SELECT(1) EXCLUSIVE data\temp_j10 ALIAS TEMP_J10
 SELECT TEMP_J10
 PACK 
 T01 = RECCOUNT()
 USE 
 SELECT DATA5
 DO CASE 
 CASE T0 > 0 AND T01 > 0
    IF MESSAGEBOX('发现上次未存盘之<期初数据>,调入?' + CHR(13) +  ;
   '是(Y)----调入上次未存盘之<期初数据>' +  ;
   CHR(13) +  ;
   '否(N)----调入系统<期初数据>',36,'信息提示') =  ;
   7
       COPY TO data\temp_j10
    ENDIF 
 CASE T01 > 0
    IF MESSAGEBOX('发现上次未存盘之<期初数据>,是否调入?',36,'信息提示') = 7
       COPY TO data\temp_j10 STRUCTURE 
    ENDIF 
 CASE T0 > 0
    COPY TO data\temp_j10
 OTHERWISE 
    COPY TO data\temp_j10 STRUCTURE 
 ENDCASE 
 ELSE 
 COPY TO data\temp_j10
 ENDIF 
 USE IN SELECT(1) EXCLUSIVE data\temp_j10 ALIAS TEMP_J10
 SELECT TEMP_J10
 INDEX ON HPBM TO data\temp_j10.idx
 GO TOP
  MAIN.SHOWOBJECT(.F.)
 DO FORM initial WITH MAIN
 RETURN 
ENDPROC
*------
PROCEDURE xesz
 IF  .NOT. SUBSTR(RIGHT006,6,1) = '1'
 = MESSAGEBOX('您无权进入本操作模块!',16,'系统提示')
 RETURN 
 ENDIF 
 IF USED('data2')
 SELECT DATA2
 ELSE 
 SELECT 0
 USE SHARED PUB005 + 'data2' ORDER hppm
 ENDIF 
 COUNT TO J
 USE 
 IF J = 0
 = MESSAGEBOX('未有货品登录 !',48,'信息提示')

⌨️ 快捷键说明

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