DUTAS re-platformed to Raincode - Initial Source Code
This commit is contained in:
496
Batch/DTSBU205.cob
Normal file
496
Batch/DTSBU205.cob
Normal file
@ -0,0 +1,496 @@
|
||||
00001 IDENTIFICATION DIVISION. 09/21/10
|
||||
00002 PROGRAM-ID. DTSBU205. DTSBU205
|
||||
00003 AUTHOR. NGC. LV001
|
||||
00004 DATE-WRITTEN. APRIL 2010. DTSBU205
|
||||
00005 DATE-COMPILED. DTSBU205
|
||||
00006 SKIP3 DTSBU205
|
||||
00007 ***** DTSBU205
|
||||
00008 * DTSBU205
|
||||
00009 * FUNCTION: PARSE COMMA DELIMITED DATA DTSBU205
|
||||
00010 * SEPARATE EACH DATA FIELD, DTSBU205
|
||||
00011 * AND RETURN IT TO THE CALLING PROGRAM. DTSBU205
|
||||
00012 * DTSBU205
|
||||
00013 ***** DTSBU205
|
||||
00014 SKIP3 DTSBU205
|
||||
00015 ENVIRONMENT DIVISION. DTSBU205
|
||||
00016 DATA DIVISION. DTSBU205
|
||||
00017 DTSBU205
|
||||
00018 WORKING-STORAGE SECTION. DTSBU205
|
||||
000185 77 PAN-VALET PICTURE X(24) VALUE '001DTSBU205 09/21/10'. DTSBU205
|
||||
00019 01 WORK-AREA. DTSBU205
|
||||
00020 05 W-ABEND-CD PIC S9(04) COMP VALUE +200.DTSBU205
|
||||
00021 05 ABEND-MSG PIC X(60). DTSBU205
|
||||
00022 DTSBU205
|
||||
00023 05 W-ERROR-IND PIC X(01) VALUE 'N'. DTSBU205
|
||||
00024 88 W-ERROR-YES-88 VALUE 'Y'. DTSBU205
|
||||
00025 88 W-ERROR-NO-88 VALUE 'N'. DTSBU205
|
||||
00026 DTSBU205
|
||||
00027 05 W-INTEGER PIC S9(11) COMP-3. DTSBU205
|
||||
00028 05 W-INTEGER-X PIC X(11). DTSBU205
|
||||
00029 05 W-INTEGER-9 REDEFINES W-INTEGER-X DTSBU205
|
||||
00030 PIC 9(11). DTSBU205
|
||||
00031 05 W-FRACTION-X PIC X(11). DTSBU205
|
||||
00032 05 W-FRACTION-9 PIC SV9(11). DTSBU205
|
||||
00033 DTSBU205
|
||||
00034 05 W-FRACTION PIC SV9(11) COMP-3. DTSBU205
|
||||
00035 DTSBU205
|
||||
00036 DTSBU205
|
||||
00037 05 W-MULTIPLIER PIC S9(11)V9(04) COMP-3 DTSBU205
|
||||
00038 VALUE +0. DTSBU205
|
||||
00039 05 W-DIGIT PIC 9. DTSBU205
|
||||
00040 05 W-AMT-INT PIC S9(11) COMP-3 DTSBU205
|
||||
00041 VALUE +0. DTSBU205
|
||||
00042 05 W-AMT-FRACTION PIC SV9(11) COMP-3 DTSBU205
|
||||
00043 VALUE +0. DTSBU205
|
||||
00044 05 W-INT PIC S9(11) COMP-3 DTSBU205
|
||||
00045 VALUE +0. DTSBU205
|
||||
00046 05 SUB PIC S9(04) COMP. DTSBU205
|
||||
00047 05 W-DECIMAL-NDX PIC S9(04) COMP. DTSBU205
|
||||
00048 DTSBU205
|
||||
00049 05 W-DATE PIC X(10). DTSBU205
|
||||
00050 05 W-SLASH-DATE PIC X(10). DTSBU205
|
||||
00051 05 FILLER REDEFINES W-SLASH-DATE. DTSBU205
|
||||
00052 10 W-SLASH-DT-MM PIC X(02). DTSBU205
|
||||
00053 10 FILLER PIC X(01). DTSBU205
|
||||
00054 10 W-SLASH-DT-DD PIC X(02). DTSBU205
|
||||
00055 10 FILLER PIC X(01). DTSBU205
|
||||
00056 10 W-SLASH-DT-CCYY PIC X(04). DTSBU205
|
||||
00057 DTSBU205
|
||||
00058 05 W-SLASH-QTR PIC X(06). DTSBU205
|
||||
00059 05 FILLER REDEFINES W-SLASH-QTR. DTSBU205
|
||||
00060 10 W-SLASH-QTR-CCYY PIC X(04). DTSBU205
|
||||
00061 10 FILLER PIC X(01). DTSBU205
|
||||
00062 10 W-SLASH-QTR-Q PIC X(01). DTSBU205
|
||||
00063 DTSBU205
|
||||
00064 05 PSUB PIC S9(04) COMP. DTSBU205
|
||||
00065 05 ISUB1 PIC S9(04) COMP. DTSBU205
|
||||
00066 05 ISUB2 PIC S9(04) COMP. DTSBU205
|
||||
00067 05 ISUB3 PIC S9(04) COMP. DTSBU205
|
||||
00068 05 ISUB4 PIC S9(04) COMP. DTSBU205
|
||||
00069 05 ISUB5 PIC S9(04) COMP. DTSBU205
|
||||
00070 05 ISUB6 PIC S9(04) COMP. DTSBU205
|
||||
00071 05 W-SLASH1 PIC S9(04) COMP. DTSBU205
|
||||
00072 05 W-SLASH2 PIC S9(04) COMP. DTSBU205
|
||||
00073 05 W-CURR-FIELD PIC S9(04) COMP. DTSBU205
|
||||
00074 05 W-LAST-FIELD PIC S9(04) COMP. DTSBU205
|
||||
00075 05 W-LAST-FIELD-LEN PIC S9(04) COMP. DTSBU205
|
||||
00076 DTSBU205
|
||||
00077 05 W-INPUT-LENGTH PIC S9(04) COMP DTSBU205
|
||||
00078 VALUE +502. DTSBU205
|
||||
00079 05 W-INPUT-LINE PIC X(500). DTSBU205
|
||||
00080 05 W-PARSE-COMPLETE-IND PIC X(01). DTSBU205
|
||||
00081 88 W-PARSE-COMPLETE-YES-88 VALUE 'Y'. DTSBU205
|
||||
00082 88 W-PARSE-COMPLETE-NO-88 VALUE 'N'. DTSBU205
|
||||
00083 05 W-NON-NUMERIC-IND PIC X(01). DTSBU205
|
||||
00084 88 W-NON-NUMERIC-YES-88 VALUE 'Y'. DTSBU205
|
||||
00085 88 W-NON-NUMERIC-NO-88 VALUE 'N'. DTSBU205
|
||||
00086 05 W-FIELD-LENGTH PIC S9(04) COMP. DTSBU205
|
||||
00087 05 W-CONV-LINE PIC X(32). DTSBU205
|
||||
00088 DTSBU205
|
||||
00089 05 W-MDY PIC X(04). DTSBU205
|
||||
00090 05 FILLER REDEFINES W-MDY. DTSBU205
|
||||
00091 10 FILLER PIC X(02). DTSBU205
|
||||
00092 10 W-MDY-X-2 PIC X(02). DTSBU205
|
||||
00093 10 FILLER REDEFINES W-MDY-X-2. DTSBU205
|
||||
00094 15 FILLER PIC X(01). DTSBU205
|
||||
00095 15 W-MDY-X-1 PIC X(01). DTSBU205
|
||||
00096 DTSBU205
|
||||
00097 DTSBU205
|
||||
00098 05 AMT-DISP1 PIC --------9.99. DTSBU205
|
||||
00099 05 AMT-DISP2 PIC --------9.99. DTSBU205
|
||||
00100 05 AMT-DISP3 PIC --------9.99. DTSBU205
|
||||
00101 05 AMT-DISP4 PIC --------9.99. DTSBU205
|
||||
00102 05 AMT-DISP-FRACTION PIC .9(11). DTSBU205
|
||||
00103 DTSBU205
|
||||
00104 05 CNT-DISP1 PIC ------9. DTSBU205
|
||||
00105 DTSBU205
|
||||
00106 01 L001-LINK-AREA. DTSBU205
|
||||
00107 ++INCLUDE DTSIL001 DTSBU205
|
||||
00108 DTSBU205
|
||||
00109 LINKAGE SECTION. DTSBU205
|
||||
00110 DTSBU205
|
||||
00111 01 L205-LINK-AREA. DTSBU205
|
||||
00112 ++INCLUDE DTSIL205 DTSBU205
|
||||
00113 DTSBU205
|
||||
00114 PROCEDURE DIVISION USING L205-LINK-AREA. DTSBU205
|
||||
00115 DTSBU205
|
||||
00116 PERFORM I0000-INIT THRU I0000-EXIT. DTSBU205
|
||||
00117 DTSBU205
|
||||
00118 PERFORM P0000-PROCESS THRU P0000-EXIT. DTSBU205
|
||||
00119 DTSBU205
|
||||
00120 GOBACK. DTSBU205
|
||||
00121 DTSBU205
|
||||
00122 I0000-INIT. DTSBU205
|
||||
00123 IF L205-LAST-FIELD = ZERO DTSBU205
|
||||
00124 DISPLAY 'DTSBU205: LAST FIELD = ZERO' DTSBU205
|
||||
00125 PERFORM S999-ABEND THRU S999-EXIT DTSBU205
|
||||
00126 END-IF. DTSBU205
|
||||
00127 DTSBU205
|
||||
00128 IF L205-LAST-FIELD-LEN = ZERO DTSBU205
|
||||
00129 DISPLAY 'DTSBU205: LAST FIELD LENGTH = ZERO' DTSBU205
|
||||
00130 PERFORM S999-ABEND THRU S999-EXIT DTSBU205
|
||||
00131 END-IF. DTSBU205
|
||||
00132 DTSBU205
|
||||
00133 PERFORM DTSBU205
|
||||
00134 VARYING SUB FROM +1 BY +1 DTSBU205
|
||||
00135 UNTIL SUB > L205-FIELDS-MAX-LEN DTSBU205
|
||||
00136 MOVE SPACES TO L205-TEXT (SUB) DTSBU205
|
||||
00137 MOVE +0 TO L205-INTEGER (SUB) DTSBU205
|
||||
00138 L205-FRACTION (SUB) DTSBU205
|
||||
00139 SET L205-VALID-YES-88 (SUB) TO TRUE DTSBU205
|
||||
00140 END-PERFORM. DTSBU205
|
||||
00141 DTSBU205
|
||||
00142 I0000-EXIT. DTSBU205
|
||||
00143 EXIT. DTSBU205
|
||||
00144 DTSBU205
|
||||
00145 P0000-PROCESS. DTSBU205
|
||||
00146 *& DTSBU205
|
||||
00147 * DISPLAY 'BU205 -1 ' L205-INPUT-DATA (1:32). DTSBU205
|
||||
00148 *& DTSBU205
|
||||
00149 DTSBU205
|
||||
00150 PERFORM P1000-PARSE THRU P1000-EXIT. DTSBU205
|
||||
00151 DTSBU205
|
||||
00152 DTSBU205
|
||||
00153 P0000-EXIT. DTSBU205
|
||||
00154 EXIT. DTSBU205
|
||||
00155 DTSBU205
|
||||
00156 DTSBU205
|
||||
00157 P1000-PARSE. DTSBU205
|
||||
00158 MOVE L205-LAST-FIELD TO W-LAST-FIELD. DTSBU205
|
||||
00159 MOVE L205-LAST-FIELD-LEN TO W-LAST-FIELD-LEN. DTSBU205
|
||||
00160 DTSBU205
|
||||
00161 SET W-PARSE-COMPLETE-NO-88 TO TRUE. DTSBU205
|
||||
00162 MOVE +1 TO PSUB. DTSBU205
|
||||
00163 MOVE +0 TO ISUB2. DTSBU205
|
||||
00164 MOVE +1 TO W-CURR-FIELD. DTSBU205
|
||||
00165 MOVE SPACES TO W-INPUT-LINE. DTSBU205
|
||||
00166 DTSBU205
|
||||
00167 PERFORM DTSBU205
|
||||
00168 UNTIL W-PARSE-COMPLETE-YES-88 DTSBU205
|
||||
00169 IF L205-INPUT-DATA (PSUB:1) NOT = ',' DTSBU205
|
||||
00170 IF W-CURR-FIELD = W-LAST-FIELD DTSBU205
|
||||
00171 PERFORM P1100-LAST-FIELD THRU P1100-EXIT DTSBU205
|
||||
00172 ELSE DTSBU205
|
||||
00173 PERFORM P1200-MOVE-CHAR THRU P1200-EXIT DTSBU205
|
||||
00174 END-IF DTSBU205
|
||||
00175 ELSE DTSBU205
|
||||
00176 PERFORM P2000-MOVE-TO-REC THRU P2000-EXIT DTSBU205
|
||||
00177 ADD +1 TO W-CURR-FIELD DTSBU205
|
||||
00178 IF W-CURR-FIELD > 100 DTSBU205
|
||||
00179 DISPLAY 'DTSBU205 TABLE LENGTH EXCEEDED ' DTSBU205
|
||||
00180 PERFORM S999-ABEND THRU S999-EXIT DTSBU205
|
||||
00181 END-IF DTSBU205
|
||||
00182 MOVE +0 TO ISUB2 DTSBU205
|
||||
00183 MOVE SPACES TO W-INPUT-LINE DTSBU205
|
||||
00184 IF L205-INPUT-DATA ((PSUB + 1):1) = ',' DTSBU205
|
||||
00185 ADD +1 TO PSUB DTSBU205
|
||||
00186 PERFORM P2000-MOVE-TO-REC THRU P2000-EXIT DTSBU205
|
||||
00187 ADD +1 TO W-CURR-FIELD DTSBU205
|
||||
00188 END-IF DTSBU205
|
||||
00189 END-IF DTSBU205
|
||||
00190 ADD +1 TO PSUB DTSBU205
|
||||
00191 IF PSUB > W-INPUT-LENGTH DTSBU205
|
||||
00192 SET W-PARSE-COMPLETE-YES-88 TO TRUE DTSBU205
|
||||
00193 END-IF DTSBU205
|
||||
00194 END-PERFORM. DTSBU205
|
||||
00195 DTSBU205
|
||||
00196 PERFORM P2000-MOVE-TO-REC THRU P2000-EXIT. DTSBU205
|
||||
00197 DTSBU205
|
||||
00198 P1000-EXIT. DTSBU205
|
||||
00199 EXIT. DTSBU205
|
||||
00200 DTSBU205
|
||||
00201 P1100-LAST-FIELD. DTSBU205
|
||||
00202 ** DISPLAY 'LAST ' L205-INPUT-DATA (PSUB:1) DTSBU205
|
||||
00203 ADD +1 TO ISUB2 DTSBU205
|
||||
00204 IF ISUB2 > W-LAST-FIELD-LEN DTSBU205
|
||||
00205 OR L205-INPUT-DATA (PSUB:1) = ',' DTSBU205
|
||||
00206 SET W-PARSE-COMPLETE-YES-88 TO TRUE DTSBU205
|
||||
00207 ELSE DTSBU205
|
||||
00208 MOVE L205-INPUT-DATA (PSUB:1) DTSBU205
|
||||
00209 TO W-INPUT-LINE (ISUB2:1) DTSBU205
|
||||
00210 END-IF. DTSBU205
|
||||
00211 DTSBU205
|
||||
00212 ** DISPLAY 'LAST 2: ' ISUB2 ' ' W-INPUT-LINE (1:32). DTSBU205
|
||||
00213 P1100-EXIT. DTSBU205
|
||||
00214 EXIT. DTSBU205
|
||||
00215 DTSBU205
|
||||
00216 P1200-MOVE-CHAR. DTSBU205
|
||||
00217 ADD +1 TO ISUB2. DTSBU205
|
||||
00218 MOVE L205-INPUT-DATA (PSUB:1) DTSBU205
|
||||
00219 TO W-INPUT-LINE (ISUB2:1). DTSBU205
|
||||
00220 DTSBU205
|
||||
00221 P1200-EXIT. DTSBU205
|
||||
00222 EXIT. DTSBU205
|
||||
00223 DTSBU205
|
||||
00224 P2000-MOVE-TO-REC. DTSBU205
|
||||
00225 *& DTSBU205
|
||||
00226 * DISPLAY 'BU205 P2000 ' W-CURR-FIELD ' ' DTSBU205
|
||||
00227 * W-INPUT-LINE (1:32). DTSBU205
|
||||
00228 *& DTSBU205
|
||||
00229 SET W-NON-NUMERIC-NO-88 TO TRUE. DTSBU205
|
||||
00230 EVALUATE TRUE DTSBU205
|
||||
00231 WHEN L205-TYPE-TEXT-88 (W-CURR-FIELD) DTSBU205
|
||||
00232 MOVE W-INPUT-LINE (1:L205-FIELD-LENGTH (W-CURR-FIELD)) DTSBU205
|
||||
00233 TO L205-TEXT (W-CURR-FIELD) DTSBU205
|
||||
00234 DTSBU205
|
||||
00235 WHEN L205-TYPE-NUMBER-88 (W-CURR-FIELD) DTSBU205
|
||||
00236 PERFORM S2200-CONV-AMT THRU S2200-EXIT DTSBU205
|
||||
00237 MOVE W-INTEGER TO L205-INTEGER (W-CURR-FIELD) DTSBU205
|
||||
00238 MOVE W-FRACTION TO L205-FRACTION (W-CURR-FIELD) DTSBU205
|
||||
00239 DTSBU205
|
||||
00240 WHEN L205-TYPE-DATE-88 (W-CURR-FIELD) DTSBU205
|
||||
00241 PERFORM S2300-CONV-DATE THRU S2300-EXIT DTSBU205
|
||||
00242 MOVE W-DATE TO L205-DATE (W-CURR-FIELD) DTSBU205
|
||||
00243 DTSBU205
|
||||
00244 END-EVALUATE. DTSBU205
|
||||
00245 DTSBU205
|
||||
00246 P2000-EXIT. DTSBU205
|
||||
00247 EXIT. DTSBU205
|
||||
00248 DTSBU205
|
||||
00249 S2200-CONV-AMT. DTSBU205
|
||||
00250 MOVE ZEROS TO W-CONV-LINE DTSBU205
|
||||
00251 W-INTEGER-9 DTSBU205
|
||||
00252 W-INTEGER-X DTSBU205
|
||||
00253 W-FRACTION-9 DTSBU205
|
||||
00254 W-FRACTION-X DTSBU205
|
||||
00255 W-INTEGER DTSBU205
|
||||
00256 W-FRACTION. DTSBU205
|
||||
00257 MOVE +32 TO ISUB4. DTSBU205
|
||||
00258 MOVE +0 TO W-DECIMAL-NDX. DTSBU205
|
||||
00259 DTSBU205
|
||||
00260 ** DISPLAY 'BU205 S2200 INP ' W-INPUT-LINE(1:15) DTSBU205
|
||||
00261 ** ' ' W-FRACTION-X. DTSBU205
|
||||
00262 ******************************************************* DTSBU205
|
||||
00263 * FIND LOCATION OF DECIMAL POINT, IF ANY DTSBU205
|
||||
00264 ******************************************************* DTSBU205
|
||||
00265 DTSBU205
|
||||
00266 PERFORM DTSBU205
|
||||
00267 VARYING ISUB3 FROM +32 BY -1 DTSBU205
|
||||
00268 UNTIL ISUB3 < +1 DTSBU205
|
||||
00269 OR W-DECIMAL-NDX > ZERO DTSBU205
|
||||
00270 IF W-INPUT-LINE (ISUB3:1) = '.' DTSBU205
|
||||
00271 MOVE ISUB3 TO W-DECIMAL-NDX DTSBU205
|
||||
00272 END-IF DTSBU205
|
||||
00273 END-PERFORM. DTSBU205
|
||||
00274 DTSBU205
|
||||
00275 *& DTSBU205
|
||||
00276 * DISPLAY 'S2200 DEC NDX ' W-DECIMAL-NDX. DTSBU205
|
||||
00277 *& DTSBU205
|
||||
00278 IF W-DECIMAL-NDX NOT = ZERO DTSBU205
|
||||
00279 PERFORM S2220-FRACTION THRU S2220-EXIT DTSBU205
|
||||
00280 END-IF. DTSBU205
|
||||
00281 PERFORM S2210-INTEGER THRU S2210-EXIT. DTSBU205
|
||||
00282 DTSBU205
|
||||
00283 IF W-NON-NUMERIC-YES-88 DTSBU205
|
||||
00284 DISPLAY 'NON-NUMERIC DATA FOUND ' DTSBU205
|
||||
00285 SET L205-VALID-NO-88 (W-CURR-FIELD) TO TRUE DTSBU205
|
||||
00286 END-IF. DTSBU205
|
||||
00287 DTSBU205
|
||||
00288 S2200-EXIT. DTSBU205
|
||||
00289 EXIT. DTSBU205
|
||||
00290 DTSBU205
|
||||
00291 S2210-INTEGER. DTSBU205
|
||||
00292 MOVE +1 TO W-MULTIPLIER. DTSBU205
|
||||
00293 DTSBU205
|
||||
00294 IF W-DECIMAL-NDX = ZERO DTSBU205
|
||||
00295 MOVE ISUB2 TO ISUB1 DTSBU205
|
||||
00296 ELSE DTSBU205
|
||||
00297 COMPUTE ISUB1 = W-DECIMAL-NDX - 1 DTSBU205
|
||||
00298 END-IF. DTSBU205
|
||||
00299 DTSBU205
|
||||
00300 MOVE +11 TO ISUB3. DTSBU205
|
||||
00301 DTSBU205
|
||||
00302 PERFORM DTSBU205
|
||||
00303 VARYING SUB FROM ISUB1 BY -1 DTSBU205
|
||||
00304 UNTIL SUB < +1 DTSBU205
|
||||
00305 IF W-INPUT-LINE (SUB:1) >= '0' AND <= '9' DTSBU205
|
||||
00306 MOVE W-INPUT-LINE (SUB:1) TO W-INTEGER-X (ISUB3:1) DTSBU205
|
||||
00307 SUBTRACT +1 FROM ISUB3 DTSBU205
|
||||
00308 ELSE DTSBU205
|
||||
00309 IF W-INPUT-LINE (SUB:1) NOT = '.' AND ' ' DTSBU205
|
||||
00310 SET W-NON-NUMERIC-YES-88 TO TRUE DTSBU205
|
||||
00311 DISPLAY 'NON-NUM I ' W-INPUT-LINE (SUB:1) ' ' DTSBU205
|
||||
00312 SUB ' ' W-INPUT-LINE (1:32) DTSBU205
|
||||
00313 END-IF DTSBU205
|
||||
00314 END-IF DTSBU205
|
||||
00315 END-PERFORM. DTSBU205
|
||||
00316 DTSBU205
|
||||
00317 *& DTSBU205
|
||||
00318 ** DISPLAY 'S2210 INT-X ' W-INTEGER-X. DTSBU205
|
||||
00319 *& DTSBU205
|
||||
00320 DTSBU205
|
||||
00321 PERFORM DTSBU205
|
||||
00322 VARYING SUB FROM +11 BY -1 DTSBU205
|
||||
00323 UNTIL SUB < +1 DTSBU205
|
||||
00324 MOVE W-INTEGER-X (SUB:1) TO W-DIGIT DTSBU205
|
||||
00325 COMPUTE W-AMT-INT = (W-DIGIT * W-MULTIPLIER) DTSBU205
|
||||
00326 COMPUTE W-INTEGER = (W-INTEGER + W-AMT-INT) DTSBU205
|
||||
00327 COMPUTE W-MULTIPLIER = (W-MULTIPLIER * 10) DTSBU205
|
||||
00328 END-PERFORM. DTSBU205
|
||||
00329 DTSBU205
|
||||
00330 *& DTSBU205
|
||||
00331 * MOVE W-INTEGER TO AMT-DISP1. DTSBU205
|
||||
00332 * DISPLAY 'S2210 INTEGER ' AMT-DISP1. DTSBU205
|
||||
00333 *& DTSBU205
|
||||
00334 DTSBU205
|
||||
00335 S2210-EXIT. DTSBU205
|
||||
00336 EXIT. DTSBU205
|
||||
00337 DTSBU205
|
||||
00338 S2220-FRACTION. DTSBU205
|
||||
00339 MOVE +0.1 TO W-MULTIPLIER. DTSBU205
|
||||
00340 DTSBU205
|
||||
00341 COMPUTE ISUB1 = W-DECIMAL-NDX DTSBU205
|
||||
00342 MOVE +1 TO ISUB3. DTSBU205
|
||||
00343 DTSBU205
|
||||
00344 PERFORM DTSBU205
|
||||
00345 VARYING SUB FROM ISUB1 BY +1 DTSBU205
|
||||
00346 UNTIL SUB > ISUB2 DTSBU205
|
||||
00347 IF W-INPUT-LINE (SUB:1) >= '0' AND <= '9' DTSBU205
|
||||
00348 MOVE W-INPUT-LINE (SUB:1) DTSBU205
|
||||
00349 TO W-FRACTION-X (ISUB3:1) DTSBU205
|
||||
00350 ADD +1 TO ISUB3 DTSBU205
|
||||
00351 ELSE DTSBU205
|
||||
00352 IF W-INPUT-LINE (SUB:1) NOT = '.' AND ' ' DTSBU205
|
||||
00353 SET W-NON-NUMERIC-YES-88 TO TRUE DTSBU205
|
||||
00354 DISPLAY 'NON-NUM F ' W-INPUT-LINE (SUB:1) ' ' DTSBU205
|
||||
00355 SUB ' ' W-INPUT-LINE (1:32) DTSBU205
|
||||
00356 END-IF DTSBU205
|
||||
00357 END-IF DTSBU205
|
||||
00358 END-PERFORM. DTSBU205
|
||||
00359 DTSBU205
|
||||
00360 *& DTSBU205
|
||||
00361 * DISPLAY 'S2220 FRA-X ' W-FRACTION-X. DTSBU205
|
||||
00362 *& DTSBU205
|
||||
00363 PERFORM DTSBU205
|
||||
00364 VARYING SUB FROM +1 BY +1 DTSBU205
|
||||
00365 UNTIL SUB > ISUB3 DTSBU205
|
||||
00366 MOVE W-FRACTION-X (SUB:1) TO W-DIGIT DTSBU205
|
||||
00367 *** DISPLAY 'W-DIGIT ' W-DIGIT DTSBU205
|
||||
00368 COMPUTE W-AMT-FRACTION = (W-DIGIT * W-MULTIPLIER) DTSBU205
|
||||
00369 COMPUTE W-FRACTION = (W-FRACTION + W-AMT-FRACTION) DTSBU205
|
||||
00370 COMPUTE W-MULTIPLIER = (W-MULTIPLIER / 10) DTSBU205
|
||||
00371 * MOVE W-FRACTION TO AMT-DISP2 DTSBU205
|
||||
00372 END-PERFORM. DTSBU205
|
||||
00373 DTSBU205
|
||||
00374 *& DTSBU205
|
||||
00375 * MOVE W-FRACTION TO AMT-DISP-FRACTION. DTSBU205
|
||||
00376 * DISPLAY 'S2220 FRACTION ' W-FRACTION ' ' DTSBU205
|
||||
00377 * AMT-DISP-FRACTION. DTSBU205
|
||||
00378 *& DTSBU205
|
||||
00379 S2220-EXIT. DTSBU205
|
||||
00380 EXIT. DTSBU205
|
||||
00381 DTSBU205
|
||||
00382 S2300-CONV-DATE. DTSBU205
|
||||
00383 IF W-INPUT-LINE = SPACES DTSBU205
|
||||
00384 GO TO S2300-EXIT DTSBU205
|
||||
00385 END-IF. DTSBU205
|
||||
00386 DTSBU205
|
||||
00387 MOVE W-INPUT-LINE (1:ISUB2) TO W-CONV-LINE. DTSBU205
|
||||
00388 MOVE ZEROS TO L001-SLASH-8-MO DTSBU205
|
||||
00389 L001-SLASH-8-DA DTSBU205
|
||||
00390 L001-SLASH-8-YR. DTSBU205
|
||||
00391 DTSBU205
|
||||
00392 MOVE ZEROS TO W-MDY. DTSBU205
|
||||
00393 **************************************************** DTSBU205
|
||||
00394 * GET LOCATION OF SLASHES IN DATE DTSBU205
|
||||
00395 **************************************************** DTSBU205
|
||||
00396 MOVE +0 TO W-SLASH1 DTSBU205
|
||||
00397 W-SLASH2. DTSBU205
|
||||
00398 DTSBU205
|
||||
00399 PERFORM DTSBU205
|
||||
00400 VARYING ISUB3 FROM +1 BY +1 DTSBU205
|
||||
00401 UNTIL ISUB3 > ISUB2 DTSBU205
|
||||
00402 OR W-SLASH2 > ZERO DTSBU205
|
||||
00403 IF W-CONV-LINE (ISUB3:1) = '/' DTSBU205
|
||||
00404 IF W-SLASH1 = ZERO DTSBU205
|
||||
00405 MOVE ISUB3 TO W-SLASH1 DTSBU205
|
||||
00406 ELSE DTSBU205
|
||||
00407 MOVE ISUB3 TO W-SLASH2 DTSBU205
|
||||
00408 END-IF DTSBU205
|
||||
00409 END-IF DTSBU205
|
||||
00410 END-PERFORM. DTSBU205
|
||||
00411 DTSBU205
|
||||
00412 IF W-SLASH1 = ZERO DTSBU205
|
||||
00413 OR W-SLASH2 = ZERO DTSBU205
|
||||
00414 DISPLAY 'BU205 INVALID DATE ' W-CONV-LINE DTSBU205
|
||||
00415 SET L205-VALID-NO-88 (W-CURR-FIELD) TO TRUE DTSBU205
|
||||
00416 GO TO S2300-EXIT DTSBU205
|
||||
00417 END-IF. DTSBU205
|
||||
00418 DTSBU205
|
||||
00419 **************************************************** DTSBU205
|
||||
00420 * GET MONTH DTSBU205
|
||||
00421 **************************************************** DTSBU205
|
||||
00422 IF W-SLASH1 = 3 DTSBU205
|
||||
00423 MOVE W-CONV-LINE (1:2) TO W-MDY-X-2 DTSBU205
|
||||
00424 ELSE DTSBU205
|
||||
00425 IF W-SLASH1 = 2 DTSBU205
|
||||
00426 MOVE W-CONV-LINE (1:1) TO W-MDY-X-1 DTSBU205
|
||||
00427 END-IF DTSBU205
|
||||
00428 END-IF. DTSBU205
|
||||
00429 DTSBU205
|
||||
00430 IF (W-MDY-X-2 (1:1) >= '0' AND <= '9') DTSBU205
|
||||
00431 AND (W-MDY-X-2 (2:1) >= '0' AND <= '9') DTSBU205
|
||||
00432 MOVE W-MDY-X-2 TO L001-SLASH-8-MO DTSBU205
|
||||
00433 ELSE DTSBU205
|
||||
00434 MOVE ZEROS TO L001-SLASH-8-MO DTSBU205
|
||||
00435 END-IF. DTSBU205
|
||||
00436 DTSBU205
|
||||
00437 **************************************************** DTSBU205
|
||||
00438 * GET DAY DTSBU205
|
||||
00439 **************************************************** DTSBU205
|
||||
00440 MOVE ZEROS TO W-MDY. DTSBU205
|
||||
00441 IF W-SLASH1 = 3 DTSBU205
|
||||
00442 IF W-SLASH2 = 6 DTSBU205
|
||||
00443 MOVE W-CONV-LINE (4:2) TO W-MDY-X-2 DTSBU205
|
||||
00444 ELSE DTSBU205
|
||||
00445 IF W-SLASH2 = 5 DTSBU205
|
||||
00446 MOVE W-CONV-LINE (4:1) TO W-MDY-X-1 DTSBU205
|
||||
00447 END-IF DTSBU205
|
||||
00448 END-IF DTSBU205
|
||||
00449 ELSE DTSBU205
|
||||
00450 IF W-SLASH1 = 2 DTSBU205
|
||||
00451 IF W-SLASH2 = 5 DTSBU205
|
||||
00452 MOVE W-CONV-LINE (3:2) TO W-MDY-X-2 DTSBU205
|
||||
00453 ELSE DTSBU205
|
||||
00454 IF W-SLASH2 = 4 DTSBU205
|
||||
00455 MOVE W-CONV-LINE (3:1) TO W-MDY-X-1 DTSBU205
|
||||
00456 END-IF DTSBU205
|
||||
00457 END-IF DTSBU205
|
||||
00458 END-IF DTSBU205
|
||||
00459 END-IF. DTSBU205
|
||||
00460 DTSBU205
|
||||
00461 IF (W-MDY-X-2 (1:1) >= '0' AND <= '9') DTSBU205
|
||||
00462 AND (W-MDY-X-2 (2:1) >= '0' AND <= '9') DTSBU205
|
||||
00463 MOVE W-MDY-X-2 TO L001-SLASH-8-DA DTSBU205
|
||||
00464 ELSE DTSBU205
|
||||
00465 MOVE ZEROS TO L001-SLASH-8-DA DTSBU205
|
||||
00466 END-IF. DTSBU205
|
||||
00467 DTSBU205
|
||||
00468 **************************************************** DTSBU205
|
||||
00469 * GET YEAR DTSBU205
|
||||
00470 **************************************************** DTSBU205
|
||||
00471 MOVE ZEROS TO W-MDY. DTSBU205
|
||||
00472 MOVE +1 TO ISUB4. DTSBU205
|
||||
00473 COMPUTE ISUB5 = (W-SLASH2 + 1). DTSBU205
|
||||
00474 COMPUTE ISUB6 = (ISUB5 + 4). DTSBU205
|
||||
00475 PERFORM DTSBU205
|
||||
00476 VARYING ISUB3 FROM ISUB5 BY +1 DTSBU205
|
||||
00477 UNTIL ISUB3 > ISUB6 DTSBU205
|
||||
00478 IF (W-CONV-LINE (ISUB3:1) >= '0' AND <= '9') DTSBU205
|
||||
00479 MOVE W-CONV-LINE (ISUB3:1) TO W-MDY (ISUB4:1) DTSBU205
|
||||
00480 ADD +1 TO ISUB4 DTSBU205
|
||||
00481 END-IF DTSBU205
|
||||
00482 END-PERFORM. DTSBU205
|
||||
00483 DTSBU205
|
||||
00484 MOVE W-MDY TO L001-SLASH-8-YR. DTSBU205
|
||||
00485 DTSBU205
|
||||
00486 MOVE L001-SLASH-8-DATE TO W-DATE. DTSBU205
|
||||
00487 DTSBU205
|
||||
00488 S2300-EXIT. DTSBU205
|
||||
00489 EXIT. DTSBU205
|
||||
00490 DTSBU205
|
||||
00491 DTSBU205
|
||||
00492 S999-ABEND. DTSBU205
|
||||
00493 CALL 'DTSBU999' USING W-ABEND-CD. DTSBU205
|
||||
00494 S999-EXIT. DTSBU205
|
||||
00495 EXIT. DTSBU205
|
||||
Reference in New Issue
Block a user