📄 daycld.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 + -