Listing of file='GBS3010A' on disk='vmedia/701-2654C.wvd.zip'
# Sector 609, program filename = 'GBS3010A'
0010 REM GBS3010A, RELEASE 2.2, (09/15/80) THIS PROGRAM IS A COPYRIGHT PRODUCT
OF WANG LABORATORIES INC. UNAUTHORIZED REPRODUCTION OR USE IS PROHIBITED
0020 REM ---------------------------------------------------------------------
--
0030 REM SYSTEM & MODULE = GBS/MVP INVOICING SYSTEM, CONTROL FILE INQUIRY/L
IST
0040 REM PROGRAM FUNCTION = DISPLAY AND/OR PRINT THE CONTROL FILE
0050 REM DATE WRITTEN = 03/08/79
0060 REM LAST REVISION = 09/15/80 TM
0065 REM THIS PROGRAM WAS UPGRADED TO 2.2 BY ERRATA 1173
0070 REM ---------------------------------------------------------------------
--
0170 DIM A6$1,B6$1,C6$1,D6$8,D7$5
0172 DIM K$1,K1$3,K2$3,K3$17
0174 DIM M6(17),M7(17)
0198 GOTO 4000
3990 REM
3996 REM *****************************
3997 REM ! CONTROL FILE INQUIRY/LIST !
3998 REM *****************************
3999 REM
4000 SELECT @PART S0$
4010 REM %PROGRAM CONSTANTS
4020 A6$="N"
4030 B6$="Y"
4040 K2=366
4050 K,K1,P1=0
4060 L=60
4070 REM %ACQUIRE REPORT OPTIONS
4080 GOSUB '100("Y,N","NnYyY ",1,1,"PRINT REPORT (Y OR N)",2)
4090 IF Q6$=HEX(1F) THEN GOSUB '31
4100 A6$=Q6$
: REM SAVE 'PRINT' SWITCH
4110 IF A6$="Y"THEN 4140
4120 $CLOSE#15
: REM RELEASE PRINTER
4130 GOTO 4220
4140 GOSUB '93(" ")
: REM IS PRINTER AVAILABLE?
4150 IF I0$=" "THEN A6$="N"
: REM DID WE GET THE PRINTER?
4160 REM %SCREEN DISPLAY?
4170 GOSUB '100("Y,N","NnYyY ",1,1,"SCREEN DISPLAY (Y OR N)",2)
4180 IF Q6$=HEX(1F) THEN GOSUB '31
4190 B6$=Q6$
: REM SAVE 'DISPLAY' SWITCH
4200 IF B6$="N" AND A6$="N" THEN 4970
: REM NO PRINT, NO DISPLAY?
4210 REM %CHOOSE INQUIRY TYPE
4220 PRINT AT(5,0,)
4230 GOSUB '100("A,R,I","AaIiRr",1,1,"ENTER INQUIRY TYPE (A=ALL, R=RANGE,
I=INDIVIDUAL)",2)
4240 IF Q6$=HEX(1F) THEN GOSUB '31
4250 K$=Q6$
4260 Q6$="ALL RANGE INDIVIDUAL"
4270 K3$=STR(Q6$,Q9*10-9,10)
4280 K3$=K3$&" OPTION"
: REM INITIALIZE OPTION CAPTION
4290 ON Q9GOTO 4460,4370,4310
: REM BRANCH BASED ON INQUIRY TYPE
4300 REM %INDIVIDUAL OPTION
4310 GOSUB '34(HEX(08),"(000,")
: REM ACQUIRE DATE
4320 IF Q6$="END"THEN 4850
4330 K,K1,K2=Q9
4340 GOTO 4460
4350 REM %RANGE OPTION
4360 PRINT AT(3,0,80);"Starting date must be earlier than ending date.";HE
X(07)
4370 MAT M6=ZER
4380 L=60
4390 GOSUB '34("STARTING","(000,")
: REM ACQUIRE STARTING DATE
4400 IF Q6$="END"THEN 4970
4410 K,K1=Q9
4420 K2=366
4430 GOSUB '34("ENDING","(")
: REM ACQUIRE ENDING DATE
4440 IF Q6$<>"END"THEN K2=Q9
4445 IF K2=0 THEN 4360
4450 IF K2<K1 THEN 4360
: REM STARTING DATE > ENDING DATE ?
4460 GOSUB '66(1,K,1)
: REM READ CONTROL FILE
4470 REM %CONVERT DATES
4480 IF B6$="N"THEN PRINT AT(1,0,80);"PROCESSING DATE SECTOR ";K
4490 K=K+1
: REM INCREMENT NO. OF RECORDS PROCESSED
4510 C6$="Y"
4520 IF MAX(M())=0 AND MIN(M())=0THEN C6$="N"
4530 IF C6$="N" AND B6$="N" THEN 4660
4535 IF K=1 THEN 4600
4540 GOSUB '123(INT(Q1/1E3)*1E3+K-1)
4550 REM ACCUMULATE TOTALS
4560 MAT M6=M6+M
4570 MAT M7=M7+M
4580 M6(16),M7(16)=0
4590 REM %DISPLAY/PRINT
4600 PRINT AT(4,0,)
4610 IF B6$="Y"THEN GOSUB 6320
4620 IF A6$="Y"THEN GOSUB '90
4630 L=L+1
4640 IF A6$="Y" AND C6$="Y" THEN GOSUB 6320
: ELSE L=L-1
4650 SELECT PRINT 005(80)
4660 IF K$="I"THEN 4310
: REM GET ANOTHER INDIVIDUAL RECORD?
4670 IF K-1>=K2 THEN 4730
: REM END OF RANGE?
4680 IF B6$="Y"THEN GOSUB '254
: REM PAUSE AFTER EACH SCREEN
4690 IF Q6$=HEX(1F)THEN GOSUB '31
4700 REM %PROCESS NEXT RECORD
4710 GOTO 4460
4720 REM %PRINT TOTALS
4730 IF A6$="N"AND K$="R"THEN 4370
4740 IF A6$="N"OR K$<>"R"THEN 4850
4750 GOSUB '90
4760 PRINT HEX(0A)
4770 U9$="RANGE"
4780 MAT M=M6
4790 U9=0
4800 GOSUB 6320
4810 PRINT HEX(0A)
4820 SELECT PRINT 005(80)
4830 GOTO 4370
: REM ANOTHER RANGE
4840 REM INDIVIDUAL, ALL OPTIONS
4850 IF A6$="N" THEN 4970
4860 L=60
4870 GOSUB '90
4880 PRINT HEX(0A)
4890 U9$="FINAL"
4900 MAT M=M7
4910 K=2
4920 U9=0
4930 GOSUB 6320
4940 MAT M7=ZER
4950 PRINT HEX(0C)
4960 REM %RESTART/MENU
4970 SELECT PRINT 005(80)
4980 PRINT AT(1,0,)
4990 GOSUB '100("M,R","MmRr",1,1,"KEY R TO RESTART, M FOR MENU",2)
5000 IF Q6$=HEX(1F) THEN GOSUB '31
5010 IF Q6$="R"THEN 4000
5020 REM %END OF PROGRAM
5030 DEFFN '31
5040 LOAD TM$
6000 REM %^SUBROUTINES
6010 REM %PAGE EJECT
6020 DEFFN'90
6030 Q6$=" "
6040 KEYIN Q6$,6050,6050
: REM OPERATOR INTERRUPT CHECK
6050 IF Q6$="P" THEN GOSUB '254
6060 IF Q6$=HEX(1F) THEN GOSUB '31
6070 SELECT PRINT <I0$>(132)
6080 IF L<=4THEN RETURN
: REM LINE COUNT CHECK
6090 P1=P1+1
6100 PRINT HEX(0C0A0E);TAB(3);N2$
: REM PRINT TOP OF PAGE
6110 PRINT K3$;TAB(50);"CONTROL FILE";TAB(110);Q1$;TAB(122);"PAGE ";P1
6120 PRINT HEX(0A)
6130 L=0
6140 RETURN
6150 REM %ACQUIRE DATE
6160 DEFFN'34(D6$,D7$)
6170 Q9=0
6180 PRINT AT(1,0,80);"ENTER ";D6$;" DATE ";D7$;"MM/DD/YY, END)"
6190 GOSUB '100(" ",HEX(7F),8,0," ",2)
6200 IF Q6$=HEX(1F) THEN GOSUB '31
6210 IF Q6$="end" THEN Q6$="END"
6220 IF Q6$="END" OR Q6$="000"THEN RETURN
6230 GOSUB '121(Q6$)
6240 Q9=MOD(U9,1E3)
6250 IF Q6$<>"E" THEN RETURN
6260 PRINT AT(3,0,80);HEX(07);"Invalid date, re-enter."
6270 GOTO 6160
6280 %###,###,###.##-
6290 %#####
6300 %########
6310 REM CONTROL RECORD PRINT
6320 Q5=24
: REM SECTOR '000' - ALPHANUMERICS
6330 Q6=52
: REM SECTOR '000' - NUMERICS
6340 Q7=22
: REM LEFT COLUMN - NUMERIC FIELDS
6350 Q8=40
: REM RIGHT COLUMN - FIELD LABELS
6360 Q9=64
: REM RIGHT COLUMN - NUMERIC FIELDS
6370 IF K>1 THEN 6800
6380 PRINT "CONTROL RECORD"
6390 REM %CONTROL RECORD PRINT
6400 PRINT HEX(0A)
6410 PRINT "DATE OF LAST UPDATE";TAB(Q5);
6420 PRINTUSING 6290,M(1);
6430 PRINT TAB(Q8);"FISCAL MO 1 = CAL M0";TAB(Q9-1);
6440 PRINTUSING "##",M(14)
6450 PRINT "OPEN ITEM PRINT DATE";TAB(Q5);
6460 PRINTUSING 6290,M(3);
6470 PRINT TAB(Q8);"CURRENT FISCAL MONTH";TAB(Q9-1);
6480 PRINTUSING "##",M(9)
6490 PRINT "SORT FLAG";TAB(Q5);M3$;TAB(Q8+2);"**YEAR-TO-DATE TOTALS**"
6500 PRINT "G/L UPDATE FLAG";TAB(Q5);F5$(1);
6510 PRINT TAB(Q8);"ASSETS";TAB(Q6);
6520 PRINTUSING 6280,M(10)
6530 PRINT "PAYMENT SELECT FLAG";TAB(Q5);F5$(2);
6540 PRINT TAB(Q8);"LIABILITIES";TAB(Q6);
6550 PRINTUSING 6280,M(11)
6560 PRINT "DISTRIBUTION REP FLAG";TAB(Q5);F5$(3);
6570 PRINT TAB(Q8);"INCOME";TAB(Q6);
6580 PRINTUSING 6280,M(12)
6590 PRINT "G/L BASE ACCOUNT NO.";TAB(Q5);G2$;
6600 PRINT TAB(Q8);"EXPENSE";TAB(Q6);
6610 PRINTUSING 6280,M(13)
6620 PRINT "A/P TRADE ACCOUNT NO.";TAB(Q5);M4$;
6630 PRINT TAB(Q8);"A/P BALANCE";TAB(Q6);
6640 PRINTUSING 6280,M(2)
6650 PRINT HEX(0A)
6660 PRINT TAB(Q5+3);"**RETAINED EARNINGS**"
6670 PRINT TAB(Q5+8);"ACCOUNT";TAB(Q8+7);"%"
6680 FOR I = 1 TO 5
6690 PRINT TAB(Q5+3);
6700 PRINTUSING "(#) ";I;
6710 PRINTUSING 6300,G$(I);
6720 PRINT TAB(Q8+2);
6730 PRINTUSING "###.##",M(3+I)
6740 NEXT I
6750 PRINT HEX(0A)
6760 RETURN
6770 PRINT HEX(0A0A)
6780 RETURN
6790 REM %DAILY RECORD PRINT
6800 PRINT TAB(6);"DATE";TAB(Q7-7);U9$;TAB(Q8);
6810 IF U9>0 THEN PRINT "JULIAN DATE";TAB(Q9+1);U9;
6820 PRINT
6830 PRINT HEX(0A)
6840 PRINT "CREDIT MEMO TOTAL";TAB(Q7);
6850 IF M(6)<>0THEN PRINTUSING 6280,M(6);
6860 PRINT TAB(Q8);"NO. OF CHECKS PRINTED";TAB(Q9);
6870 IF M(1)<>0THEN PRINTUSING 6300,M(1)
: ELSE PRINT
6880 REM
6890 PRINT "INVOICE TOTAL";TAB(Q7);
6900 IF M(7)<>0THEN PRINTUSING 6280,M(7);
6910 PRINT TAB(Q8);"LAST CHECK NO. PRINTED";TAB(Q9);
6920 IF M(2)<>0THEN PRINTUSING 6300,M(2)
: ELSE PRINT
6930 REM
6940 PRINT "PRINTED CHECKS TOTAL";TAB(Q7);
6950 IF M(3)<>0THEN PRINTUSING 6280,M(3);
6960 PRINT TAB(Q8);"CURRENT ASSETS";TAB(Q9);
6970 IF M(10)<>0THEN PRINTUSING 6280,M(10)
: ELSE PRINT
6980 REM
6990 PRINT "CASH DISCOUNTS TAKEN";TAB(Q7);
7000 IF M(8)<>0THEN PRINTUSING 6280,M(8);
7010 PRINT TAB(Q8);"CURRENT LIABILITIES";TAB(Q9);
7020 IF M(11)<>0THEN PRINTUSING 6280,M(11)
: ELSE PRINT
7030 REM
7040 PRINT "'E' PAYMENTS TOTAL";TAB(Q7);
7050 IF M(4)<>0THEN PRINTUSING 6280,M(4);
7060 PRINT TAB(Q8);"CURRENT INCOME";TAB(Q9);
7070 IF M(12)<>0THEN PRINTUSING 6280,M(12)
: ELSE PRINT
7080 REM
7090 PRINT "'X' PAYMENTS TOTAL";TAB(Q7);
7100 IF M(5)<>0THEN PRINTUSING 6280,M(5);
7110 PRINT TAB(Q8);"CURRENT EXPENSE";TAB(Q9);
7120 IF M(13)<>0THEN PRINTUSING 6280,M(13)
: ELSE PRINT
7130 REM
7140 PRINT HEX(0A)
7150 PRINT TAB(Q8);"A/P BALANCE";TAB(Q9);
7160 IF M(9)<>0THEN PRINTUSING 6280,M(9)
: ELSE PRINT
7170 RETURN
9000 REM %^VARIABLES
9010 REM A6$ = PRINT REPORT?
9020 REM B6$ = SCREEN DISPLAY?
9030 REM C6$ = REPORT TYPE
9040 REM D6$ = PROMPT FOR DATE
9050 REM D7$ = PROMPT FOR DATE
9060 REM K0 = NO. OF RECORDS - FINAL TOTAL
9070 REM K = NO. OF RECORDS - RANGE TOTAL
9080 REM K$ = INQUIRY TYPE
9090 REM K1$ = STARTING DATE
9100 REM K2$ = ENDING DATE
9110 REM K3$ = OPTION CAPTION
9120 REM $
9998 DEFFN'29"Q$=";HEX(22);"GBS3010A";HEX(22);":SCRATCH TQ$:SAVET$()Q$";HEX(0D
)
9999 DEFFN'30"DIM Z$57:IF STR(I0$,,1)=HEX(20)THENI0$=HEX(323135):Z$=";HEX(22);
"GBS/MVP - Print/display A/P Control file.";HEX(22);":SELECT#15<I0$>:$OPE
N#15:SELECTLIST<I0$>(132): LIST Z$:LIST Z$#:LIST Z$V:LIST Z$':$CLOSE#15:S
ELECTLIST005(80)";HEX(0D)