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

📄 daycld.prg

📁 通过VFP编程的方式来统计指定数据库中的有关数据
💻 PRG
字号:
* -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
*  文件名: DAYCLD.PRG <-- 本文件由 UnFoxAll 创建
* -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-


 SET TALK OFF
 SET SAFETY OFF
 SET DELETED ON
 SET DATE TO ANSI
 SET CENTURY ON
 LNSELE00 = SELECT()
 DM = IIF(TYPE('SHORTNAME') = 'C',SHORTNAME,'')
 IF TYPE('DATEFROM') <> 'C'
    DATEEND0 = DATE()
    DATEEND = DTOC(DATE())
    IF DAY(DATE()) = 1
       DATEEND0 = DATE() - 1
       DATEEND = DTOC(DATE() - 1)
    ENDIF 
    DATEFROM0 = DATEEND0
    LNMONTH = MONTH(DATEFROM0)
    DO WHILE .T.
       DATEFROM0 = DATEFROM0 - 1
       IF MONTH(DATEFROM0) < LNMONTH
          DATEFROM0 = DATEFROM0 + 1
          EXIT 
       ENDIF 
    ENDDO 
    DATEFROM = DTOC(DATEFROM0)
 ENDIF 
 WAIT WINDOW NOWAIT TIMEOUT 60 '正在进行数据计算......'
 LNASQ = 0
 LNBSQ = 0
 LNCSQ = 0
 LNDSQ = 0
 LNARK = 0
 LNBRK = 0
 LNCRK = 0
 LNDRK = 0
 LNACK = 0
 LNBCK = 0
 LNCCK = 0
 LNDCK = 0
 LNAKC = 0
 LNBKC = 0
 LNCKC = 0
 LNDKC = 0
 LNAXS = 0
 LNBXS = 0
 LNCXS = 0
 LNDXS = 0
 LNADC = 0
 LNBDC = 0
 LNCDC = 0
 LNDDC = 0
 LNAQT = 0
 LNBQT = 0
 LNCQT = 0
 LNDQT = 0
 DLSLT = 0
 DLJET = 0
  USEDBFJJ()
 SELECT 0
 SELECT * INTO CURSOR JJKCTMP FROM JJ
 SELECT JJ
 USE 
 SELECT JJKCTMP
 COUNT FOR JCRQ >= DATEFROM AND JCRQ <= DATEEND TO LNARK
 COUNT FOR CCRQ >= DATEFROM AND CCRQ <= DATEEND AND MF = 'Y' TO LNAXS
 COUNT FOR CCRQ >= DATEFROM AND CCRQ <= DATEEND AND MF = 'B' TO LNADC
 COUNT FOR  ;
      CCRQ >= DATEFROM AND CCRQ <= DATEEND AND MF <> ' ' AND MF <> 'Y' AND MF <> 'B' TO LNAQT
 COUNT FOR CCRQ >= DATEFROM AND CCRQ <= DATEEND AND MF <> ' ' TO LNACK
 COUNT FOR (MF = ' ' .OR. CCRQ > DATEEND) AND JCRQ <= DATEEND TO LNAKC
 USE 
 LNASQ = LNAKC + LNACK - LNARK
  USEDBFJP()
 SELECT 0
 SELECT * INTO CURSOR JPKCTMP FROM JP
 SELECT JP
 USE 
 SELECT JPKCTMP
 COUNT FOR JCRQ >= DATEFROM AND JCRQ <= DATEEND TO LNBRK
 COUNT FOR CCRQ >= DATEFROM AND CCRQ <= DATEEND AND MF = 'Y' TO LNBXS
 COUNT FOR CCRQ >= DATEFROM AND CCRQ <= DATEEND AND MF = 'B' TO LNBDC
 COUNT FOR  ;
      CCRQ >= DATEFROM AND CCRQ <= DATEEND AND MF <> ' ' AND MF <> 'Y' AND MF <> 'B' TO LNBQT
 COUNT FOR CCRQ >= DATEFROM AND CCRQ <= DATEEND AND MF <> ' ' TO LNBCK
 COUNT FOR (MF = ' ' .OR. CCRQ > DATEEND) AND JCRQ <= DATEEND TO LNBKC
 USE 
 LNBSQ = LNBKC + LNBCK - LNBRK
  USEDBFYX()
 SELECT 0
 SELECT * INTO CURSOR JPKCTMP FROM YX
 SELECT YX
 USE 
 SELECT JPKCTMP
 COUNT FOR JCRQ >= DATEFROM AND JCRQ <= DATEEND TO LNCRK
 COUNT FOR CCRQ >= DATEFROM AND CCRQ <= DATEEND AND MF = 'Y' TO LNCXS
 COUNT FOR CCRQ >= DATEFROM AND CCRQ <= DATEEND AND MF = 'B' TO LNCDC
 COUNT FOR  ;
      CCRQ >= DATEFROM AND CCRQ <= DATEEND AND MF <> ' ' AND MF <> 'Y' AND MF <> 'B' TO LNCQT
 COUNT FOR CCRQ >= DATEFROM AND CCRQ <= DATEEND AND MF <> ' ' TO LNCCK
 COUNT FOR (MF = ' ' .OR. CCRQ > DATEEND) AND JCRQ <= DATEEND TO LNCKC
 USE 
 LNCSQ = LNCKC + LNCCK - LNCRK
  USEDBFYSDHKC()
 SELECT 0
 SELECT * INTO CURSOR YSTMP FROM DHKC
 SELECT DHKC
 USE 
 SELECT YSTMP
 SUM TO LNDQCS QCS
 USE 
  USEDBFYSRK()
 SELECT * INTO CURSOR YSRKTMP FROM YSRK
 SELECT YSRK
 USE 
 SELECT YSRKTMP
 SUM FOR RQ >= DATEFROM AND RQ <= DATEEND TO LNDRK SL
 SUM FOR RQ <= DATEEND TO LNDRKA SL
 USE 
  USEDBFYSCK()
 SELECT * INTO CURSOR YSCKTMP FROM YSCK
 SELECT YSCKTMP
 SUM FOR RQ >= DATEFROM AND RQ <= DATEEND TO LNDXS SL
 SUM FOR RQ <= DATEEND TO LNDXSA SL
 USE 
  USEDBFYSDC()
 SELECT * INTO CURSOR YSDCTMP FROM YSDC
 SELECT YSDC
 USE 
 SELECT YSDCTMP
 SUM FOR RQ >= DATEFROM AND RQ <= DATEEND TO LNDDC SL
 SUM FOR RQ <= DATEEND TO LNDDCA SL
 USE 
  USEDBFYSTH()
 SELECT * INTO CURSOR YSTHTMP FROM YSTH
 SELECT YSTH
 USE 
 SELECT YSTHTMP
 SUM FOR RQ >= DATEFROM AND RQ <= DATEEND TO LNDQT SL
 SUM FOR RQ <= DATEEND TO LNDQTA SL
 USE 
 LNDCK = LNDXS + LNDDC + LNDQT
 LNDKC = LNDQCS + LNDRKA - LNDXSA - LNDDCA - LNDQTA
 LNDSQ = LNDKC + LNDCK - LNDRK
  USEDBFORDERNO()
 SELECT NO WHERE CJRQ >= DATEFROM AND CJRQ <= DATEEND AND WS <> -1 INTO CURSOR  ;
      XSGLSLDCURS ???EClause[CD] FROM ORDERNO
 LNCJS = _TALLY
 SELECT NO WHERE QJRQ >= DATEFROM AND QJRQ <= DATEEND AND WS <> -1 INTO CURSOR  ;
      XSGLSLDCURS ???EClause[CD] FROM ORDERNO
 LNQJS = _TALLY
 SELECT NO WHERE  ;
      LEN(ALLTRIM(CJR)) > 0 AND LEN(ALLTRIM(CJRQ)) = 10 AND LEN(ALLTRIM(QJRQ)) < 10 AND  ;
WS <> -1 INTO CURSOR XSGLSLDCURS ???EClause[CD] FROM  ;
      ORDERNO
 LNDQJ = _TALLY
 LNOLD = LNDQJ + LNQJS - LNCJS
 SELECT XSGLSLDCURS
 USE 
 SELECT NO , CJRQ , QJRQ , CJR , LB , ZJE , SS , DJ , WS ,  ;
      IIF((CJRQ >= DATEFROM .AND. CJRQ <= DATEEND .AND. LEN(ALLTRIM(CJRQ)) = 10),1,0)  CJS ,  ;
      IIF((CJRQ >= DATEFROM .AND. CJRQ <= DATEEND .AND. LEN(ALLTRIM(CJRQ)) = 10),DJ + WS,0)  ;
       CJE ,  ;
      IIF((QJRQ >= DATEFROM .AND. QJRQ <= DATEEND .AND. LEN(ALLTRIM(QJRQ)) = 10),1,0)  QJS ,  ;
      IIF((QJRQ >= DATEFROM .AND. QJRQ <= DATEEND .AND. LEN(ALLTRIM(QJRQ)) = 10),DJ + WS,0)  QJE ,  ;
      IIF((CJRQ >= DATEFROM .AND. CJRQ <= DATEEND .AND. LEN(ALLTRIM(CJRQ)) = 10),DJ,0)  YSED ,  ;
      IIF((QJRQ >= DATEFROM .AND. QJRQ <= DATEEND .AND. LEN(ALLTRIM(QJRQ)) = 10),WS,0)  ;
       YSEW , 0  SL , 0  JE WHERE  ;
      LEN(ALLTRIM(CJR)) > 1 AND LEN(ALLTRIM(CJRQ)) = 10 AND  ;
(CJRQ >= DATEFROM AND CJRQ <= DATEEND .OR. QJRQ >= DATEFROM AND QJRQ <= DATEEND) AND WS <> -1  ;
      ORDER BY CJRQ , NO ,  ;
      QJRQ , CJR INTO TABLE XSGLSLDTMP FROM ORDERNO
 LNT = _TALLY
 SELECT XSGLSLDTMP
 SUM TO CJST CJS
 SUM TO CJET CJE
 SUM TO QJST QJS
 SUM TO QJET QJE
 SUM TO YSEDT YSED
 SUM TO YSEWT YSEW
 YSET = YSEDT + YSEWT
 USE 
 DELETE File XSGLSLDTMP.DBF
  USEDBFITEM()
 SELECT ALLTRIM(STR(ORDERNO.NO))  NO , CJRQ , ORDERNO.QJRQ  QJRQ , ITEM.CODE + SPACE(20)  ;
       CODE , ITEM.MODEL + SPACE(20)  MODEL , CJR , LB , ZJE , SS ,  ;
      ORDERNO.DJ  DJ , WS , 0  SL , 0  JE WHERE  ;
      LEN(ALLTRIM(CJR)) > 1 AND LEN(ALLTRIM(CJRQ)) = 10 AND (CJRQ >= DATEFROM AND CJRQ <= DATEEND .OR.  ;
ORDERNO.QJRQ >= DATEFROM AND ORDERNO.QJRQ <= DATEEND) AND  ;
WS <> -1  ;
      ORDER BY  ;
      CJRQ , ORDERNO.NO , ORDERNO.QJRQ , CJR INTO TABLE XSGLSLDTMP  ;
      DISTINCT FROM ORDERNO LEFT JOIN ITEM ON ORDERNO.NO = ITEM.NO
 LNT = _TALLY
 SELECT ORDERNO
 USE 
 SELECT ITEM
 USE 
 SELECT 0
 SELECT ID  NO , RQ  QJRQ , MC  CODE , GG + ' ' + STR(SUM(SL),6) + ' ' + DW  MODEL ,  ;
      SUM(JE)  DJ , SUM(SL)  SL , SUM(JE)  JE WHERE  ;
      RQ >= DATEFROM AND RQ <= DATEEND AND SL <> 0 GROUP BY ID INTO TABLE YSCKTMP FROM YSCK
 LNTYS = _TALLY
 SELECT YSCK
 USE 
 SELECT YSCKTMP
 IF LNTYS > 0
    SUM FOR QJRQ >= DATEFROM AND QJRQ <= DATEEND TO DLSLT SL
    SUM FOR QJRQ >= DATEFROM AND QJRQ <= DATEEND TO DLJET JE
 ENDIF 
 SELECT XSGLSLDTMP
 APPEND FROM YSCKTMP
 GO TOP
 IF EOF()
    APPEND BLANK
 ENDIF 
 SELECT * ORDER BY NO , QJRQ , CODE , MODEL , CJR INTO CURSOR CLDCURSPRN ???EClause[CD]  ;
      FROM XSGLSLDTMP
 LNT = _TALLY
 SELECT YSCKTMP
 USE 
 DELETE File YSCKTMP.DBF
 SELECT XSGLSLDTMP
 USE 
 DELETE File XSGLSLDTMP.DBF
 SELECT CLDCURSPRN
 IF LNT > 0
    GO TOP
    DATETIME = DATETIME()
    REPORT FORM 材料单 PREVIEW NOCONSOLE
    REPORT FORM 材料单 TO PRINTER PROMPT NOCONSOLE
 ELSE 
    = MESSAGEBOX('材料单统计数为零!    ',64,'信息')
 ENDIF 
 USE 
 IF USED('YSCK')
    SELECT YSCK
    USE 
 ENDIF 
 WAIT WINDOW NOWAIT TIMEOUT 3 '材料单统计完毕!'
 SELECT (LNSELE00)
 RETURN 
*

⌨️ 快捷键说明

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