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

📄 atb8999.pco

📁 行业应用源码 行业应用源码 行业应用源码 行业应用源码 行业应用源码 行业应用源码
💻 PCO
📖 第 1 页 / 共 2 页
字号:
       IDENTIFICATION DIVISION.       PROGRAM-ID.   ATB8999.       AUTHOR.       YuLei.      ****************************************************************      *** REMARKS:                                                 ***      *** PROGRAM NAME          : ATB8999.                         ***      *** CALLING PROGRAM       : NOME.                            ***      *** CALLED PROGRAM        : NONE.                            ***      *** REPORTID              : NONE                             ***      *** PROGRAM PURPOSE       : 利息税划转人民币                 ***      ***  PROCESS DESCRIPTION:                                    ***      ***    1000-PGM-INIT-RTN                                     ***      ***    3000-FILE-RETRIEVE-RTN                                ***      ***    5000-NORMAL-PROCESS-RTN                               ***      ***    8000-PGM-END-RTN                                      ***      ****************************************************************      ***  MODIFIED BY         :Kang                               ***      ***  DATE MODIFY         :2002/11/27                         ***      ***  MODIFY REASON       :采用现钞买入价                     ***      ***  MODIFY DESCRIPTION  :021127                             ***      ****************************************************************       ENVIRONMENT DIVISION.       DATA DIVISION.       WORKING-STORAGE SECTION.       01  WK-AREA.         05  WK-PARA                       PIC X(10) VALUE '//WK-PARA/'.         05  WK-SQLTNAME                   PIC X(10) VALUE SPACES.         05  WK-SQLECODE                   PIC --------9 VALUE ZERO.       01  WK-END-FLAG                     PIC X(01) VALUE 'N'.       01  WK-COUNT                        PIC 9(08) VALUE ZERO.       01  TMP-N-NUMBER                    PIC S9(15) VALUE ZERO.      **********************************************************      ***   DEFINE  FOR  IFA                                 ***      **********************************************************                                           COPY  REKEXCG.       01  RERY.                           COPY  REKRERY.       01  APA.                            COPY  APKAPA.       01  CNST.                           COPY  ACKCNST.      ****************************************************************      * SQL/DS HOST VARIABLE DECLARATION                             *      ****************************************************************           EXEC SQL BEGIN DECLARE SECTION END-EXEC.           EXEC SQL INCLUDE SQLCOM END-EXEC.           EXEC SQL INCLUDE ACKSQST END-EXEC.        01 WK-SQL-VAL.           EXEC SQL INCLUDE ACKCUT END-EXEC.           EXEC SQL INCLUDE ACKACT END-EXEC.           EXEC SQL INCLUDE ACKCXR END-EXEC.           EXEC SQL INCLUDE ACKATR END-EXEC.           EXEC SQL INCLUDE ACKTRF END-EXEC.           EXEC SQL INCLUDE ACKCYT END-EXEC.           EXEC SQL INCLUDE ACKCCY END-EXEC.           EXEC SQL INCLUDE ACKAPC END-EXEC.           EXEC SQL INCLUDE ACKGLC END-EXEC.           EXEC SQL INCLUDE ACKORG END-EXEC.           EXEC SQL INCLUDE ACKSCT END-EXEC.           EXEC SQL INCLUDE SCKTLR END-EXEC.           EXEC SQL INCLUDE ACKLOG END-EXEC.         05  WK-L-ORGIDT             PIC X(4) VALUE SPACES.         05  WK-XRTCDE               PIC X(1) VALUE SPACES.         05  WK-XRTCDE-1             PIC X(1) VALUE SPACES.      ****************************************************************           EXEC SQL END DECLARE SECTION END-EXEC.      ****************************************************************      * SQL INCLUDE FOR SQLCA                                        *      ****************************************************************           EXEC SQL INCLUDE SQLCA  END-EXEC.       PROCEDURE DIVISION.       0000-MAIN-PROCESS-RTN.           DISPLAY    '*** ATB8999 BEGIN ***'.           PERFORM    1000-PGM-INIT-RTN         THRU    1000-EXIT.           PERFORM    3000-FILE-RETRIEVE-RTN    THRU    3000-EXIT.           PERFORM    5000-NORMAL-PROCESS-RTN   THRU    5000-EXIT.           PERFORM    8000-PGM-END-RTN          THRU    8000-EXIT.       0000-EXIT.            EXIT.       1000-PGM-INIT-RTN.      ****************************************************************      * CONNECT TO THE SQLDB.                                        *      ****************************************************************           PERFORM 9999-CONNECT.           EXEC SQL WHENEVER SQLERROR GOTO :STOP-RUN END-EXEC.           INITIALIZE  WK-SQL-VAL.           MOVE       'ATB8999'                 TO      LOG-JOBNAM.       1000-EXIT.            EXIT.       3000-FILE-RETRIEVE-RTN.           MOVE  '/ 3000- /'  TO  WK-PARA.           EXEC SQL DELETE FROM TMP_ACTLOG END-EXEC.           EXEC SQL INSERT INTO TMP_ACTLOG (                    SELECT ORGIDT FROM ACTORG                     WHERE RECSTS = :CNST-M-RECSTS-VALID                     MINUS                    SELECT ORGIDT FROM ACTLOG                     WHERE JOBNAM = :LOG-JOBNAM )           END-EXEC.           EXEC SQL SELECT  PRDCDE, EVTCDE, CTPCDE,                            CATCDE, CURRAG, PROFLG,                            BASRAT, APCODE, ATRNAM                      INTO :ATR-PRDCDE, :ATR-EVTCDE, :ATR-CTPCDE,                           :ATR-CATCDE, :ATR-CURRAG, :ATR-PROFLG,                           :ATR-BASRAT, :ATR-APCODE, :ATR-ATRNAM                      FROM  ACTATR                     WHERE  ATRCDE = :CNST-M-ATRCDE-A99                      AND   RECSTS = :CNST-M-RECSTS-VALID           END-EXEC.           MOVE     SQLCODE     TO      SQL-ERR-CODE.           IF       NOT         SQL-C-NORMAL           THEN             MOVE   'ACTATR'    TO    WK-SQLTNAME             GO TO STOP-RUN           END-IF.           EXEC SQL DECLARE CUR_AIF CURSOR FOR                     SELECT ACTCUT.ORGIDT, ACTCUT.CUSIDT,                            ACTCUT.APCODE, ACTCUT.CURCDE,                            ACTCUT.ACTDEP, ACTCUT.LSTBAL                      FROM  ACTCUT,ACTTRF,ACTCYT,TMP_ACTLOG                       WHERE  ACTCUT.ORGIDT = TMP_ACTLOG.ORGIDT                       AND  ACTTRF.ATRCDE = :CNST-M-ATRCDE-A99                       AND (ACTTRF.TRFKID = '1' AND                            ACTCUT.ACTGLC=SUBSTR(TRFNUM,1,4)                        OR  ACTTRF.TRFKID = '2' AND                             ACTCUT.ACTPLC = SUBSTR(TRFNUM,1,4)                        OR  ACTTRF.TRFKID = '3' AND                            ACTCUT.APCODE = SUBSTR(TRFNUM,1,4)                        OR  ACTTRF.TRFKID = '4' AND                            ACTCUT.CUSIDT = SUBSTR(TRFNUM,1,7)  AND                            ACTCUT.APCODE = SUBSTR(TRFNUM,8,4)  AND                            ACTCUT.CURCDE = SUBSTR(TRFNUM,12,3)                        OR  ACTTRF.TRFKID = '5' AND                            ACTCUT.APCODE = SUBSTR(TRFNUM,1,4) AND                            ACTCYT.CYTCDE = SUBSTR(TRFNUM,5,3) AND                            ACTCUT.CURCDE = ACTCYT.CURCDE )                       AND  ACTCUT.CURCDE = ACTCYT.CURCDE AND                            ACTCYT.CYTCDE = :ATR-CURRAG                       AND  ACTCUT.LSTBAL != 0                        AND  ACTCUT.RECSTS = :CNST-M-RECSTS-VALID                       AND  ACTTRF.RECSTS = :CNST-M-RECSTS-VALID                       AND  ACTCYT.RECSTS = :CNST-M-RECSTS-VALID                       AND  ACTCUT.ORGIDT > '0000'                       AND  ACTCUT.CUSIDT > '0000000'                       AND  ACTCUT.APCODE > '0000'                       AND  ACTCUT.CURCDE > '000'                     ORDER BY ACTCUT.ORGIDT, ACTCUT.CURCDE,                              ACTCUT.APCODE, ACTCUT.CUSIDT           END-EXEC.       3000-EXIT.            EXIT.       5000-NORMAL-PROCESS-RTN.           MOVE     '/ 5000- /'      TO        WK-PARA.           EXEC  SQL  OPEN  CUR_AIF  END-EXEC.           PERFORM  5100-PROCESS-EVERY-ORGIDT  THRU  5100-EXIT                                 UNTIL WK-END-FLAG = 'Y'.           IF WK-COUNT > 0           THEN             PERFORM  5105-PRO-END-ORG-RTN     THRU  5105-EXIT           END-IF.           EXEC  SQL  CLOSE  CUR_AIF  END-EXEC.       5000-EXIT.           EXIT.       5100-PROCESS-EVERY-ORGIDT.           MOVE        '/ 5100- /'          TO      WK-PARA.           PERFORM     5101-FETCH-ACT-RTN   THRU    5101-EXIT.           MOVE        SQLCODE              TO      SQL-ERR-CODE.           IF  NOT SQL-C-NORMAL           THEN              IF SQL-C-RECORD-NOT-FOUND              THEN                 MOVE   'Y'   TO       WK-END-FLAG                 GO  TO  5100-EXIT              ELSE                 DISPLAY 'FETCH CUROR ERROR'                 GO  TO  STOP-RUN              END-IF            ELSE             ADD    1     TO       WK-COUNT           END-IF.           IF CUT-ORGIDT NOT = WK-L-ORGIDT           THEN             IF WK-L-ORGIDT NOT = SPACE             THEN               PERFORM  5105-PRO-END-ORG-RTN  THRU  5105-EXIT             END-IF             PERFORM    5110-SEL-SCTORG-RTN   THRU  5110-EXIT             MOVE       CUT-ORGIDT            TO    TLR-ORGIDT             PERFORM    5111-SEL-SCTTLR-RTN   THRU  5111-EXIT             MOVE       CUT-ORGIDT            TO    WK-L-ORGIDT           END-IF.           xiaojf     EXEC SQL SELECT  DECPOSxiaojf                INTO  CCY-DECPOSxiaojf                FROM  ACTCCYxiaojf               WHERE  CURCDE = :CUT-CURCDExiaojf                 AND  RECSTS = :CNST-M-RECSTS-VALIDxiaojf     END-EXEC.xiaojf     MOVE       SQLCODE                 TO    SQL-ERR-CODE.xiaojf     IF NOT SQL-C-NORMALxiaojf     THENxiaojf        DISPLAY 'READ ACTCCY ERROR' CUT-CURCDExiaojf        GO  TO  STOP-RUNxiaojf     END-IF.                       xiaojf     IF CCY-DECPOS = 0xiaojf     THENxiaojf        COMPUTE    TMP-N-NUMBER ROUNDED = CUT-LSTBAL *  1xiaojf        MOVE       TMP-N-NUMBER      TO      CUT-LSTBALxiaojf     END-IF.           xiaojf     IF CUT-LSTBAL NOT = 0           PERFORM      5200-PRO-IFA-RTN      THRU  5200-EXIT.       5100-EXIT.

⌨️ 快捷键说明

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