STORE ' ' TO DD: CLEAR GETS DO WHILE DD: <> 'M' .AND. DD: <> 'O' @ 18,1 SAY 'MANDATORY OR OPTIONAL FIELD- '+TRIM(FIELD:NAME)+' (M/O) ?' GET DD: READ ENDDO @ 18,0 IF DD: = 'M' STORE F TO I::OPT ELSE STORE T TO I::OPT ENDIF STORE ' ' TO DD: DO WHILE DD: <> 'R' .AND. DD: <> 'T' .AND. DD: <> 'E' @ 18,0 SAY 'RANGE, TABLE OR EQUAL VALIDATION - '+ TRIM(FIELD:NAME) @ 19,26 SAY '(R/T/E) ' GET DD: READ ENDDO IF FIELD:TYPE = 'N' STORE $(I0:,1,FIELD:LEN) TO I:START STORE $(I9:,1,FIELD:LEN) TO I:STOP STORE '0' TO I:OPT ELSE STORE $(IBLK:,1,FIELD:LEN) TO I:START , I:STOP , I:OPT ENDIF @ 18,0 @ 19,0 STORE F TO ITS:CASE STORE 0 TO I:COND DO CASE ************ CASE DD: = 'R' DO WHILE I:COND = 0 @ 18,5 SAY FIELD:NAME + ' START ' GET I:START @ 19,5 SAY ' STOP ' GET I:STOP READ IF FIELD:TYPE = 'C' STORE '"' + !(TRIM(I:START)) + '"' TO I:START STORE '"' + I:OPT + '"' TO I:OPT STORE '"' + !(TRIM(I:STOP)) + '"' TO I:STOP STORE 1 TO I:COND ELSE STORE 1 TO I:POS , I:COND DO WHILE I:POS <= FIELD:LEN .AND. I:COND = 1 IF @($(I:START,I:POS,1),NUM:BER) = 0 @ 20,5 SAY 'INVALID ENTRY - TRY AGAIN ' DO SWAIT @ 20,5 STORE 0 TO I:COND ENDIF STORE I:POS + 1 TO I:POS ENDDO STORE 1 TO I:POS DO WHILE I:POS <= FIELD:LEN .AND. I:COND = 1 IF @($(I:STOP,I:POS,1),NUM:BER) = 0 @ 20,5 SAY 'INVALID ENTRY - TRY AGAIN ' DO SWAIT @ 20,5 STORE 0 TO I:COND ENDIF STORE I:POS + 1 TO I:POS ENDDO ENDIF ENDDO APPEND BLANK REPL FLD1: WITH 'IF ' + $(GETF,5,4) + ' < ' + TRIM(I:START) + ' .OR. '; + $(GETF,5,4) + ' > ' + TRIM(I:STOP) ***** CASE DD: = 'T' STORE T TO ITS:CASE APPEND BLANK REPLACE FLD1: WITH 'DO CASE' STORE 1 TO I:NUM STORE 'X' TO I:STOP DO WHILE I:STOP <> ' ' CLEAR GETS STORE $(IBLK:,1,FIELD:LEN) TO I:START @ 18,2 SAY TRIM(FIELD:NAME) + ' TABLE ENTRY # ' + STR(I:NUM,2) GET I:START READ IF FIELD:TYPE = 'C' .AND. I:START <> $(IBLK:,1,FIELD:LEN) STORE '"' + TRIM(I:START) + '"' TO I:START STORE 1 TO I:COND ENDIF IF I:START = $(IBLK:,1,FIELD:LEN) STORE ' ' TO I:STOP ELSE IF FIELD:TYPE = 'N' STORE 1 TO I:POS , I:COND DO WHILE I:POS <= FIELD:LEN .AND. I:COND = 1 IF @($(I:START,I:POS,1),NUM:BER) = 0 @ 20,5 SAY 'INVALID ENTRY - TRY AGAIN ' DO SWAIT @ 20,5 STORE 0 TO I:COND ENDIF STORE I:POS + 1 TO I:POS ENDDO IF I:COND = 0 LOOP ENDIF ENDIF STORE I:NUM + 1 TO I:NUM APPEND BLANK REPLACE FLD1: WITH 'CASE ' + $(GETF,5,4) + ' = ' + I:START APPEND BLANK IF VALL: REPLACE FLD1: WITH '@ ' + STR(I:LINE,2) + ',' + STR(B:COL,2) + ; ' SAY " " ' ENDIF APPEND BLANK REPLACE FLD1: WITH 'STORE E::RR + " " TO E::RR' ENDIF ENDDO IF FIELD:TYPE = 'C' STORE '"' + I:OPT + '"' TO I:OPT ENDIF ******** CASE DD: = 'E' DO WHILE I:COND = 0 @ 18,5 SAY TRIM(FIELD:NAME) + ' IS ' GET I:START READ IF FIELD:TYPE = 'C' STORE '"' + I:OPT + '"' TO I:OPT STORE '"' + TRIM(I:START) + '"' TO I:START STORE 1 TO I:COND ELSE STORE 1 TO I:POS , I:COND DO WHILE I:POS <= FIELD:LEN .AND. I:COND = 1 IF @($(I:START,I:POS,1),NUM:BER) = 0 @ 20,5 SAY 'INVALID ENTRY - TRY AGAIN ' DO SWAIT @ 20,5 STORE 0 TO I:COND ENDIF STORE I:POS + 1 TO I:POS ENDDO ENDIF ENDDO APPEND BLANK REPLACE FLD1: WITH 'IF ' + $(GETF,5,4) + ' <> ' + TRIM(I:START) ENDCASE @ 18,0 @ 19,0 RETURN