home *** CD-ROM | disk | FTP | other *** search
- /*PROGRAM
- ARP030 - HWCS A/R BILLING LABEL REPORT
- PROGRAMMER
- ROBERT M. WHITE
- DATE WRITTEN
- APRIL 15, 1981
- PURPOSE
- THIS ROUTINE PRINTS LABELS FOR THE BILLING
- CONTACTS IN THE A/R CUSTOMER FILE.
- INPUT
- OUTPUT
- REMARKS
- 1. PRINTING IS TERMINATED IF THE ESC KEY IS
- PRESSED AT THE END OF THE NEXT LABEL.
- */
-
- ARP030: PROC;
- /* * * * A/R MASTER MENU PROGRAM * * * */
-
- /* * * PROGRAM REPLACEMENTS * * */
- %INCLUDE 'C:BTCCS.PLI'; /* BT-80 FUNCTIONS */
- %INCLUDE 'C:BTERRCS.PLI'; /* BT-80 ERROR RETURN CODES */
- %REPLACE FALSE BY '0'B;
- %REPLACE TRUE BY '1'B;
-
- /* * * PROGRAM AREAS * * */
- DCL I BIN(7); /* INDEX VARIABLE */
- DCL RP CHAR(1); /* CHAR RESPONSE */
- DCL NRP BIN(15); /* NUMERIC RESPONSE */
- DCL RTN_COD BIN(7); /* SUBROUTINE RETURN CODE */
- DCL SYSPRINT FILE; /* CONSOLE OUTPUT FILE */
- DCL PRINTFILE FILE; /* OUTPUT PRINT FILE */
- DCL SEL_TYPE(25) CHAR(2); /* PRINT SELECT TYPES */
- DCL SEL_NUM BIN(7);
- DCL FIRST_TIME BIT(1) STATIC INITIAL('0'B);
- DCL EOF_MSTR BIT(1) STATIC INITIAL('0'B);
- DCL NUM_MSTR BIN(7); /* 1=A ONLY, 2=A & B */
- DCL RCD_CNT BIN(15); /* TOTAL # OF RECORDS PRINTED */
-
-
- /* * * COMMON DCL INCLUDES * * */
- %INCLUDE 'C:SUBS1.DCL';
- %INCLUDE 'ARCOMMON.DCL';
- %INCLUDE 'ARCUSTM.DCL';
-
- /* * * COMMON PROC INCLUDES * * */
- DCL BTREE ENTRY(BIN(7),BIN(7),PTR,BIN(7));
- DCL ARM030 ENTRY; /* EXTERNAL MAPS */
- %INCLUDE 'OUTZIP.PLI';
-
- /* * * PRINT A RECORD. * * */
- GET_RECS: PROC;
-
- /* DO INITIALIZATION. */
- NUM_MSTR=0;
-
- /* READ RECORD FOR A. */
- READ_REC_A:
- CALL BTREE(BT_READN,IDX1,IOCB1P,RTN_COD);
- IF RTN_COD=0 THEN
- NUM_MSTR=1;
- ELSE
- DO;
- CALL PUTERR('READ RETURN CODE ='||RTN_COD||'.');
- EOF_MSTR='1'B;
- RETURN;
- END;
-
- /* SELECT THE RECORD. */
- IF SEL_NUM=0 THEN
- RETURN;
- DO I=1 TO SEL_NUM;
- IF SEL_TYPE(I)=REC1.CSSTAT THEN
- GOTO GET_RECS_END;
- END;
- GOTO READ_REC_A; /* DIDN'T FIND THE TYPE SO SKIP IT. */
-
- /* RETURN TO CALLER. */
- GET_RECS_END:
- RETURN;
- END GET_RECS;
-
- /* * * PRINT A RECORD. * * */
- PRNT_RECS: PROC;
- DCL NUM_BLANK BIN(7); /* NUMBER OF BLANK LINES */
-
- /* DO INITIALIZATION. */
- NUM_BLANK=0;
-
- /* PRINT 1ST LINE. */
- PUT FILE(PRINTFILE) SKIP EDIT(REC1.CSBILCON) (A(32));
-
- /* PRINT 2ND LINE. */
- IF REC1.CSBILCMP~=' ' THEN
- DO;
- PUT FILE(PRINTFILE) SKIP EDIT(REC1.CSBILCMP) (A(32));
- END;
- ELSE
- NUM_BLANK=NUM_BLANK+1;
-
- /* PRINT 3RD LINE. */
- IF REC1.CSBILAD1~=' ' THEN
- DO;
- PUT FILE(PRINTFILE) SKIP EDIT(REC1.CSBILAD1) (A(32));
- END;
- ELSE
- NUM_BLANK=NUM_BLANK+1;
-
- /* PRINT 4TH LINE. */
- IF REC1.CSBILAD2~=' ' THEN
- DO;
- PUT FILE(PRINTFILE) SKIP EDIT(REC1.CSBILAD2) (A(32));
- END;
- ELSE
- NUM_BLANK=NUM_BLANK+1;
-
- /* PRINT 5TH LINE. */
- PUT FILE(PRINTFILE) SKIP EDIT(REC1.CSBILAD3,OUT_ZIP(REC1.CSBILZIP))
- (A(23),X(2),A(10));
- PUT FILE(PRINTFILE) SKIP;
-
- /* PRINT FILLER/SEPERATOR LINES. */
- DO I=1 TO NUM_BLANK;
- PUT FILE(PRINTFILE) SKIP;
- END;
-
- /* RETURN TO CALLER. */
- RETURN;
- END PRNT_RECS;
-
- /* * * START OF MAIN PROGRAM * * */
- MAIN_MENU:
- BEGIN;
- CALL ARM030; /* DISPLAY BACKGROUND. */
- CALL GETB15(06,23,NRP,0,1,RTN_COD); /* GET THE INPUT NUMBER. */
- GOTO MAIN_FUNC(NRP); /* PERFORM THE FUNCTION. */
- END; /* MAIN_MENU */
-
- /* * * RETURN TO MAIN MENU * * */
- MAIN_FUNC(00):
- BEGIN;
- CALL CLRSCRN;
- CALL PUTMSG(1,1,'RETURNING TO MASTER MENU...');
- RETURN;
- END;
-
- /* * * PRINT THE REPORT * * */
- MAIN_FUNC(01):
- BEGIN;
-
- /* GET THE STATUS CODES USED FOR RECORD SELECTION. */
- SEL_NUM=0;
- DO I=1 TO 50;
- CALL EOL(24,1);
- CALL PUTMSG(24,1,'DO YOU WISH TO ENTER A SELECTION CODE(Y/N)?');
- CALL GETSTR(24,45,1,ADDR(RP),RTN_COD);
- IF RP~='Y' THEN
- GOTO SEL_END;
- CALL EOL(24,1);
- CALL PUTMSG(24,1,'ENTER SELECTION CODE:');
- SEL_NUM=SEL_NUM+1;
- CALL GETSTR(24,23,2,ADDR(SEL_TYPE(SEL_NUM)),RTN_COD);
- END;
- SEL_END:
-
- /* OPEN THE PRINT FILE AND PRINT THE FIRST HEADING. */
- OPEN FILE(PRINTFILE) PRINT PAGESIZE(0) LINESIZE(132)
- TITLE('$LST');
-
- /* SETL TO THE FIRST MEMBER. */
- EOF_MSTR='0'B;
- DO I=1 TO LENGTH(REC1.CSID); /* FORCE KEY TO LOW VALUES. */
- SUBSTR(REC1.CSID,I,1)=ASCII(0);
- END;
- CALL BTREE(BT_LOCATE,IDX1,IOCB1P,RTN_COD);
- IF RTN_COD=0 | RTN_COD=BT_KEYNOTFND THEN
- ;
- ELSE
- DO;
- CALL PUTERR('LOCATE RETURN CODE ='||RTN_COD||'.');
- GOTO PRINT_END;
- END;
-
- /* ALIGN LABELS. */
- ALN_LBL:
- CALL EOL(24,1);
- CALL PUTMSG(24,1,'PRINT TEST LABEL (Y/N):');
- CALL GETSTR(24,25,1,ADDR(RP),RTN_COD);
- IF RP~='Y' THEN
- GOTO END_ALN;
- PUT FILE(PRINTFILE) SKIP LIST('1111111111111111111111111111111');
- PUT FILE(PRINTFILE) SKIP LIST('2222222222222222222222222222222');
- PUT FILE(PRINTFILE) SKIP LIST('3333333333333333333333333333333');
- PUT FILE(PRINTFILE) SKIP LIST('4444444444444444444444444444444');
- PUT FILE(PRINTFILE) SKIP LIST('5555555555555555555555555555555');
- PUT FILE(PRINTFILE) SKIP;
- GOTO ALN_LBL;
- END_ALN:
-
- /* PRINT THE DATA FROM THE FILE. */
- RCD_CNT=0;
- PUT SKIP LIST('PRINTING THE REPORT...');
- PRINT_LOOP:
- DO WHILE(EOF_MSTR='0'B);
- CALL GET_RECS;
- IF EOF_MSTR='0'B THEN
- DO;
- CALL PRNT_RECS;
- RCD_CNT=RCD_CNT+1;
- END;
- RP=CONINP();
- IF RP=ASCII(27) THEN /* OPERATOR INTERVENTION VIA ESC */
- DO;
- EOF_MSTR='1'B;
- END;
- END;
-
- /* RETURN TO CALLER. */
- PRINT_END:
- PUT FILE(PRINTFILE) SKIP;
- PUT FILE(PRINTFILE) SKIP LIST('RECORDS PRINTED:',RCD_CNT);
- PUT FILE(PRINTFILE) SKIP;
- PUT FILE(PRINTFILE) PAGE;
- CLOSE FILE(PRINTFILE);
- GOTO MAIN_MENU;
- END;
-
- END ARP030;
-