* MSD.PLEDGE.REPORT *********************************************************************** * AUTHOR / DATE / PURPOSE * *********************************************************************** * * BY: ED HOUSE 01-12-90 * * PURPOSE: Generate a report to show giving record of each partner based * on their Pledges. * * UPDATED: * * WAG 01-23-90 : To default out of program if no items selected * * ELH 02-12-90 : Create TOTALS line. * *********************************************************************** * OPENS / INCLUDES / DIMENSIONS / VARIABLE INITIALIZATION * *********************************************************************** * OPEN "TITLE" TO TITLE ELSE ABORT OPEN "PM.PLEDGES" TO PMP ELSE ABORT OPEN "PM.TRANS" TO PMT ELSE ABORT OPEN "PM" TO PM ELSE ABORT OPEN "TEMP.WORK" TO PLG.WORK ELSE ABORT * $INCLUDE GEN.COM2 * DIM PART.NUM(40) DIM NAME(40) DIM PLG.DTE(40) DIM PLG.AMT(40) DIM PLG.PD(40) DIM TRAN.AMT(40) DIM TRAN.DTE(40) DIM PLG.BAL(40) DIM PLG.CNT(40) DIM TRAN.CNT(40) * MAT PART.NUM='' MAT NAME='' MAT PLG.DTE='' MAT PLG.AMT='' MAT PLG.PD='' MAT TRAN.AMT='' MAT TRAN.DTE='' MAT PLG.BAL='' MAT PLG.CNT='' MAT TRAN.CNT='' * EOF=0 TST=0 P.CNT=0 EXS='' PRINT.LINE='' TOT.PLG=0 TOT.TRAN=0 TOT.PD=0 TOT.BAL=0 * *********************************************************************** * PAINT SCREEN * *********************************************************************** * WHO = ICONV('','U50BB') OPR = FIELD(WHO,' ',2) PORT = FIELD(WHO,' ',1) HD = "** ":OPR:" **" HDL = (80-LEN(HD))/2 HD2 = TIMEDATE() HDL2 = 79-LEN(TIMEDATE()) STR80 = STR('=',80) CRT @(-1) CRT @(HDL,0):HD CRT @(0,0):"MASTER SOFTWARE DESIGN, INC." CRT @(HDL2,0):HD2 CRT @(0,1):STR80 CRT @(0,2):CR:"MSD.PLEDGE.REPORT.RANGE" CRT @(17,3):RV:" P L E D G E / G I V I N G R E P O R T ":ERV CRT @(0,6):"Do you want to process this report (Y/N)?": INPUT Y.N IF Y.N # "Y" THEN GO 9999 END 10 * PRINT @(0,8):CR CRT @(0,8):"Enter Beginning Date: ": INPUT DATE1 IF DATE1="/" THEN GO 9999 ELSE IF ICONV(DATE1,"DJ")="" THEN GO 10 BEG.DATE=ICONV(DATE1,"DJ") PRINT @(22,8):OCONV(BEG.DATE,"D2/") 20 * CRT @(0,10):CL:"Enter Ending Date: ": INPUT DATE2 IF DATE2="/" THEN GO 9999 ELSE IF ICONV(DATE2,"DJ")="" THEN GO 20 END.DATE=ICONV(DATE2,"DJ") PRINT @(19,10):OCONV(END.DATE,"D2/") IF END.DATE < BEG.DATE THEN GO 10 EXECUTE"EX PRINTER" * *********************************************************************** * REPORT PROCESSING * *********************************************************************** * *ELH* EXS='SSELECT PM.PLEDGES BY LNAME BY FNAME WITH PLEDGE.DATES GE "':BEG.DATE:'" AND LE "':END.DATE:'" OR WITH ' *ELH* EXS=EXS:'TRANS.DATES GE "[':BEG.DATE:']" AND LE "[':END.DATE:']"' *ELH* EXECUTE EXS RETURNING ERRS *ELH* IF ERRS = 401 THEN GO 9999 ;* End - none selected * PRINTER ON * HEAD1="PAGE 'P' HIGHER DIMENSION EVANGELICAL CHURCH 'DLLC'PLEDGE REPORT'LLC'" HEAD1=HEAD1:"DATE RANGE OF PLEDGE AND/OR TRANSACTION: ":OCONV(BEG.DATE,"D2/"):" - ":OCONV(END.DATE,"D2/"):"'LL'" HEAD1=HEAD1:" Pledge Pledge Pledge Paid Trans. Trans. Pledge'L'" HEAD1=HEAD1:"Partner Name / Address Date Amount (#) Amount Amount (#) Date Balance'L'" HEAD1=HEAD1:STR("-",129) HEADING HEAD1 * CLEARFILE PLG.WORK * SELECT PM * LOOP READNEXT KEY ELSE EOF=1 UNTIL EOF DO TST=TST+1 READ PM.REC FROM PM,KEY THEN READ PMP.REC FROM PMP,KEY THEN READ PMT.REC FROM PMT,KEY THEN QUAL=0 CNT=DCOUNT(PMT.REC<2>,VM) FOR X=1 TO CNT IF PMT.REC<2,X> GE BEG.DATE AND PMT.REC<2,X> LE END.DATE AND PMT.REC<15,X> # "" THEN QUAL=1 NEXT X CNT=DCOUNT(PMP.REC<2>,VM) FOR X=1 TO CNT IF PMP.REC<2,X> GE BEG.DATE AND PMP.REC<2,X> LE END.DATE THEN QUAL=1 NEXT X IF QUAL=1 THEN WRITE KEY ON PLG.WORK,KEY END END END REPEAT * DATA "SSELECT PM BY LNAME BY FNAME" EXECUTE "SELECT TEMP.WORK" * EOF=0 * LOOP READNEXT KEY ELSE EOF=1 UNTIL EOF DO READ PM.REC FROM PM,KEY THEN READ PMP.REC FROM PMP,KEY THEN READ PMT.REC FROM PMT,KEY THEN READ TITLE.REC FROM TITLE,PM.REC<1> THEN PART.NUM(1)=KEY IF TITLE.REC # "" THEN NAME(1)=TITLE.REC:" ":PM.REC<2>:" ":PM.REC<5> END ELSE NAME(1)=PM.REC<2>:" ":PM.REC<5> END NAME(2)=PM.REC<6> NAME(3)=PM.REC<7>:", ":PM.REC<8>:" ":PM.REC<9> MATPARSE PLG.DTE FROM PMP.REC<2>,"ý" MATPARSE PLG.PD FROM PMP.REC<11>,"ý" MATPARSE PLG.BAL FROM PMP.REC<12>,"ý" FOR X1=1 TO DCOUNT(PMP.REC<1>,VM) PLG.AMT(X1)=PMP.REC<7,X1>/100 PLG.CNT(X1)=" (":PMP.REC<1,X1>:")" PLG.PD(X1)=PLG.PD(X1)/100 PLG.BAL(X1)=PLG.BAL(X1)/100 NEXT X1 POS=DCOUNT(PMT.REC<15>,VM)+1 X1=0 LOOP POS=POS-1 UNTIL POS=0 DO IF PMT.REC<15,POS> # "" THEN X1=X1+1 TRAN.AMT(X1)=PMT.REC<6,POS>/100 TRAN.CNT(X1)=" (":PMT.REC<15,POS>:")" TRAN.DTE(X1)=PMT.REC<2,POS> END REPEAT X=0 LOOP X=X+1 TOT.PLG=TOT.PLG+PLG.AMT(X) TOT.TRAN=TOT.TRAN+TRAN.AMT(X) TOT.PD=TOT.PD+PLG.PD(X) TOT.BAL=TOT.BAL+PLG.BAL(X) IF PLG.AMT(X) = "" THEN FD1=STR(" ",16) ELSE FD1=PLG.AMT(X)'R2,($#11)':PLG.CNT(X)'L#4' IF PLG.PD(X) = "" THEN FD2=STR(" ",12) ELSE FD2=PLG.PD(X)'R2,($#11)' IF TRAN.AMT(X) = "" THEN FD3=STR(" ",16) ELSE FD3=TRAN.AMT(X)'R2,($#11)':TRAN.CNT(X)'L#4' IF PLG.BAL(X) = "" THEN FD4=STR(" ",12) ELSE FD4=PLG.BAL(X)'R2,($#11)' PRINT.LINE=PART.NUM(X)'L#8':" ":NAME(X)'L#35':" ":OCONV(PLG.DTE(X),"D2/")'L#8':" ":FD1:" ":FD2:" " PRINT.LINE=PRINT.LINE:FD3:" ":OCONV(TRAN.DTE(X),"D2/")'L#8':" ":FD4 TEST.LINE=PART.NUM(X):NAME(X):PLG.DTE(X):PLG.AMT(X):PLG.PD(X):TRAN.AMT(X):TRAN.DTE(X):PLG.BAL(X) UNTIL TRIM(TEST.LINE) = "" DO P.CNT=P.CNT+1 PRINT PRINT.LINE REPEAT IF P.CNT LE 40 THEN P.CNT=P.CNT+1 PRINT STR("-",129) END ELSE P.CNT=0 PAGE END MAT PART.NUM='' MAT NAME='' MAT PLG.DTE='' MAT PLG.AMT='' MAT PLG.PD='' MAT TRAN.AMT='' MAT TRAN.DTE='' MAT PLG.BAL='' MAT PLG.CNT='' MAT TRAN.CNT='' END END END END REPEAT IF P.CNT GT 50 THEN PAGE PRINT "TOTALS"'L#57':TOT.PLG'R2,($#11)':" "'L#6':TOT.PD'R2,($#11)':" ":TOT.TRAN'R2,($#11)':" "'L#16':TOT.BAL'R2,($#11)' PRINTER CLOSE * *********************************************************************** * TERMINATE PROGRAM * *********************************************************************** * 9999 * * END