* LIST.CMD - LIST RECORDS BASED ON USER SELECTION * STORE TRIM(CATEGORY) TO CAT STORE TRIM(TITLE) TO MTITLE STORE PARM TO STYPE SELECT PRIMARY STORE "DSLIST" TO DSFILE USE &SYS&DSFILE GO BOTTOM STORE # TO LAST USE &SYS&DSFILE INDEX &SYS&DSFILE&ONE FIND &CAT STORE "LIST:DESC" TO FLIST STORE "CATEGORY = CAT" TO MATCH STORE "The following lists are available to use:" TO MDESC STORE "DSDISP" TO COMMAND DO &SYS&COMMAND IF !(RECORD)="Q" RETURN ENDIF IF !(RECORD)="A" APPEND BLANK REPLACE CATEGORY WITH CAT ELSE GOTO &RECORD ENDIF IF STYPE = "A" SET FORMAT TO &SYS&DSFILE STORE " " TO DEL READ SET FORMAT TO SCREEN IF DEL = "DEL" DELETE RETURN ENDIF ENDIF STORE TRIM(FILENAME) TO FNAME STORE OUTPUT TO MOUT STORE LIST:DESC TO LDESC STORE TRIM(FLD:LIST) TO FLIST STORE TRIM(NDXNAME) TO MNDXNAME STORE TRIM(SPEC:NDX) TO MSPEC IF SELECTION = " " STORE " " TO CRITERIA ELSE STORE "FOR " + TRIM(SELECTION) TO CRITERIA ENDIF SELECT PRIMARY USE &FNAME ERASE @ 1,10 SAY TMARK + " " + CNAME SET INTE OFF @ 3,10 SAY MTITLE SET INTE ON @ 5,10 SAY "Listing " + LDESC STORE 5 TO ROW IF !(MNDXNAME) = "SPECIAL" STORE ROW + 2 TO ROW @ ROW,10 SAY "Waiting while a special index is created on " GET MSPEC CLEAR GETS INDEX ON &MSPEC TO &FNAME ELSE SET INDEX TO &MNDXNAME ENDIF IF MOUT = "P" .OR. MOUT = "B" STORE ROW + 2 TO ROW @ ROW,10 SAY "Please ensure that your printer is ready to print." STORE ROW + 1 TO ROW STORE " " TO READY @ ROW,10 SAY "Enter (P)rint or (Q)uit followed by RETURN " GET READY READ IF !(READY) = "Q" RETURN ENDIF SET PRINT ON ENDIF IF MOUT = "P" SET CONSOLE OFF LIST ALL &FLIST &CRITERIA OFF ELSE DISPLAY ALL &FLIST &CRITERIA OFF ENDIF EJECT SET PRINT OFF SET CONSOLE ON ? "LIST COMPLETE" WAIT RETURN