15800 !-------------------------------------------------------------------- & ! & ! & ! FN.DEPARSE$ (LINE%) & ! & !-------------------------------------------------------------------- & ! & ! This function uses the elements of the selection criteria & ! arrays pointed to by L% to construct an english-like & ! representation of that selection suitable for display. & ! For example: & ! & ! "between Smith and Tyler " & ! "not below 013488316 " & ! "is Jackson " & ! "not between Beryllium and Strontium " & ! & ! The string is padded, if necessary, to make it 80 & ! characters in length. & ! & ! & ! input: L% input index & ! COMP$ labels for types of comparisons & ! SEL.- selection variables & ! & ! local: L$ output interpreted line & ! OP% code for the type of comparison & ! & !-------------------------------------------------------------------- & 15820 DEF FN.DEPARSE$ (L%) & & \ L$ = "" & ! Define the function & start out null. & 15840 GO TO 15890 IF L% > M11.LAST.LINE% & & \ L$ = "line " + NUM1$(L%) + ": " IF L% < 10% & \ L$ = "line " + NUM1$(L%) + ": " IF L% >= 10% & \ IF L% = 1% THEN L$ = L$ + " " & ELSE L$ = L$ + " or " IF SEL.PR.CODE$(L%) = "1" & \ L$ = L$ + "and " IF SEL.PR.CODE$(L%) = "2" & ! Start constructing a selection line for the codes in a record. & 15860 L$ = L$ + LABEL$(VAL(SEL.FIELD.NUM$(L%))) & \ L$ = L$ + " " UNTIL LEN(L$) => 28% & \ OP% = VAL (SEL.OP.CODE$(L%)) * 2% & \ OP% = OP% - 1% IF SEL.ACC.REJ$(L%) = "A" & \ L$ = L$ + COMP$(OP%) & \ L$ = L$ + " " + SEL.VALUE.1$(L%) & \ L$ = L$ + " and " + SEL.VALUE.2$(L%) IF OP% > 6% & ! Append words as we need them. & & 15890 FN.DEPARSE$ = L$ + SPACE$ (80% - LEN(L$)) & \ FNEND & ! Set the function's value including padding. & &