8 CLEAR16000
14 DIMI%,J%,B$,A$,MU%,M%,F$,JJ%,KK%,SL%,C%,K%,PA%,NM%,N%,W%,P%,M3%,CH%,NP%,LL%,FF%,ZC%,M2%,F%,DS%,ZR%,ZF%,NN%,MM%,Z%,KJ%,NP$,M1%,N$,M$,PP%,T$,DM%,D$,SM!,T1%,BB%,NL%,TT%,JK%,PG%,NB%,NM$,Z$
24 DIMA$(NN,MM),FL(MM),NM$(NM),T$(MM),SM!(MM),T2$(MM),T1$(MM),D(NN),Q(PP),LF(MM),OT(MM),Z(5)
999 DATATABULAR PRINT
1000 CLS:PRINT@268,"FIRST, HOW MANY RECORDS WILL YOU PRINT?":FORL=1TO600:NEXT:GOSUB134:CLS:PRINT@268,"NEXT, LET'S ADD THE NUMBER FIELDS";:PRINT:T5=1:GOSUB853:T5=0
1002 BB=1:BB$=" ":GOSUB1054
1003 CLS:PRINT:PRINT"COMPUTING FIELD LENGTHS":PRINT
1004 FORI=0TON:FORJ=1TOM:IFRIGHT$(A$(0,J),1)="#"THEN1006
1005 IFLEN(A$(I,J))>FL(J)THENFL(J)=LEN(A$(I,J))
1006 NEXT:NEXT:FORJ=1TOM:IFRIGHT$(A$(0,J),1)="#"THEN1008
1007 T$(J)=T$+STRING$(FL(J)-2," ")+T$
1008 NEXT
1012 TL=0:FORJ=1TOM:TL=TL+LEN(T$(J))+BB:NEXT:TL=TL-BB
1013 PRINT"FLD";TAB(6)"LGTH";TAB(11)"SPACE";TAB(18)"TAB";TAB(23)"FORMAT"
1014 TB=0:FORJ=1TOM:PRINTJ;TAB(6)LEN(T$(J));TAB(11)BB;TAB(18)TB;:IFRIGHT$(A$(0,J),1)="#"THENPRINTTAB(23)T1$(J);":"ELSEPRINTTAB(23)T$(J)
1015 IFJ<MTHENTB=TB+LEN(T$(J))+BB:NEXTELSETB=TB+LEN(T$(J)):NEXT
1016 PRINT:PRINT"YOUR PRINT STRING:":PRINT:FORJ=1TOM-1:PRINTUSINGT$(J);A$(0,J);:PRINTBB$;:NEXT:PRINTUSINGT$(J);A$(0,M)
1017 FORJ=1TOM-1:IFRIGHT$(A$(0,J),1)="#"THENPRINTT1$(J);BB$;ELSEPRINTT$(J);BB$;
1018 NEXT:IFRIGHT$(A$(0,M),1)="#"THENPRINTT1$(M)ELSEPRINTT$(M)
1020 PRINT:PRINT"YOU WILL PRINT TO COLUMN";TL
1021 PRINTBB;"SPACE(S) BETWEEN FIELDS .. IF SATISFIED, PRESS <ENTER>":PRINT:PRINT"TO CHANGE THE SPACES, ENTER A DIFFERENT NUMBER ";
1022 GOSUB1500:PRINT:IFF$=""THENBB$=STRING$(BB," "):GOTO1024ELSEBB=VAL(F$):BB$=STRING$(BB," ")
1023 CLS:PRINT:PRINT"RE-COMPUTING FIELD LENGTHS":PRINT:GOTO1012
1024 CLS:PRINT@256,"SINGLE SPACE <1> OR DOUBLE SPACE <2> .. <ENTER> = 1 ";:GOSUB2000:DS=VAL(A$):IFDS=0THENDS=1
1025 CLS:PRINT@320,"NUMBER OF LINES PER PAGE 0-64 <ENTER> = 60 ";:GOSUB1500:NL=VAL(F$):IFNL=0THENNL=60
1026 CLS:POKE16424,66:POKE16425,1
1027 GOSUB5000
1028 CLS:FORK=1TO2:PRINT"ENTER TITLE LINE";K;": ";:GOSUB1500
1029 LPRINTTAB(XX-(LEN(F$)/2));F$:NEXT:LPRINT" "
1030 IFXY=1THENXY=0:LPRINTCHR$(30);CHR$(27);CHR$(14);" "
1032 FORJ=1TOM-1:IFRIGHT$(A$(0,J),1)="#"THEN1034
1033 T$(J)=T$(J)+BB$:GOTO1035
1034 T$(J)=T$(J)+BB$:T1$(J)=T1$(J)+BB$
1035 NEXT:PG=1:GOSUB1051:IFDS=2THENLPRINT" "
1036 FORI=FFTOLL
1037 FORJ=1TOM:IFRIGHT$(A$(0,J),1)="#"THENLPRINTUSINGT1$(J);VAL(A$(I,J));ELSELPRINTUSINGT$(J);A$(I,J);
1038 NEXT:LPRINT" "
1039 IFPEEK(16425)=>NLTHENLPRINTCHR$(12):GOSUB1050
1040 IFDS=2THENLPRINT" "
1041 NEXT
1042 PRINT"WANT TOTALS <Y/N> ";:GOSUB2000:IFA$="Y"THEN1043ELSE1049
1043 LPRINTSTRING$(TL,"-")
1044 IFDS=2THENLPRINT" "
1045 IFLEN(T$(0))>1THENLPRINTUSINGT$(0);"-----";
1046 FORJ=1TOM:IFRIGHT$(A$(0,J),1)="#"THENLPRINTUSINGT1$(J);SM!(J);ELSELPRINTUSINGT$(J);"------";
1047 NEXT:LPRINT" "
1048 IFDS=2THENLPRINT" "
1049 LPRINTSTRING$(TL,"="):TL=0:TB=0:LPRINTCHR$(27);CHR$(15);:GOTO120
1050 PG=PG+1:LPRINT"PAGE";PG:LPRINT" ":GOSUB1051:RETURN
1051 FORJ=1TOM:LPRINTUSINGT$(J);A$(0,J);:NEXT:LPRINT" "
1052 LPRINTSTRING$(TL,"-")
1053 RETURN
1054 FORJ=1TOM:IFRIGHT$(A$(0,J),1)="#"THEN1055ELSE1068
1055 IFSM!(J)=0THENRETURN
1056 IFSM!(J)<1000THEN1059
1057 IFSM!(J)<1000000THEN1060
1058 GOTO1061
1059 T1$(J)="###":FL(J)=3:GOTO1062
1060 T1$(J)="###,###":FL(J)=7:GOTO1062
1061 T1$(J)="###,###,###":FL(J)=11
1062 CLS:PRINT@320,Z$;"WANT '$' SIGN ON FIELD #";J;".. ";A$(0,J);" <Y/N> ";
1063 GOSUB2000:CLS:IFA$="Y"THENFL(J)=FL(J)+2:T$(J)="  "+T$(J):T1$(J)="$$"+T1$(J)
1064 L1=LEN(A$(0,J))-1:IFL1=>FL(J)THENL2=L1-FL(J):T1$(J)=STRING$(L2," ")+T1$(J):FL(J)=L1:T$(J)=T$+STRING$(L1-2," ")+T$:GOTO1066
1065 L2=FL(J)-L1:T$(J)=STRING$(L2," ")+T$+STRING$(L1-2," ")+T$
1066 PRINT@320,Z$;"WANT 2 DEC. PLACES FOR FIELD";J;".. ";A$(0,J);" <Y/N> ";
1067 GOSUB2000:CLS:IFA$="Y"THENFL(J)=FL(J)+3:T$(J)="   "+T$(J):T1$(J)=T1$(J)+".##"
1068 NEXT:PRINT
1069 RETURN
5000 XX=INT(TL/2):PRINT:PRINT"WANT CONDENSED PRINT <Y/N> ";
5002 GOSUB2000:CLS:IFA$="Y"THEN5003ELSEIFA$="N"THEN5005ELSE5002
5003 LPRINTCHR$(31);CHR$(27);CHR$(15);" ":XX=INT(TL/6):XY=1:RETURN
5005 LPRINTCHR$(30);CHR$(27);CHR$(15);" ":RETURN
