home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload / ShartewareOverload.cdr / database / chrchpr3.zip / MCANALYS.CMD < prev    next >
OS/2 REXX Batch file  |  1991-01-21  |  18KB  |  571 lines

  1. * Program MCANALYS - gives statistical reports of contributions amounts/totals
  2. Select secondary
  3. Use CDIRFILE index CDIRFILE
  4. GOTO 17
  5. Store $(spact,34,1) to OP
  6. Store T to LEVEL3
  7. Do while LEVEL3
  8. Erase
  9. @ 1,1 say 'DATA DISK = '+D
  10. @ 1,62 say curdate
  11. @ 3,15 say 'CONTRIBUTIONS Statistical Analysis and Reports'
  12. ?
  13. ? '      1)  Pledged/Given Report - from MEMBERS file'
  14. ? '      2)  Pledged/Given Report - from special MEMBCON file'
  15. ? '      3)  Compute and display statistics totals from MEMBERS file'
  16. ? '      4)  Compute and display statistics totals from special MEMBCON file'
  17. ? '      5)  Edit seasonal adjustment monthly factors'
  18. ? '      6)  Create a secondary MEMBCON file by contribution amount'
  19. ?
  20. Accept '         Enter selection '  to OSEL
  21. Do while @(osel,'123456Qq')=0
  22.   Accept 'Invalid entry. Please enter again ' to OSEL
  23. enddo
  24. If !(OSEL)='Q'
  25.   Store F to LEVEL3
  26. else
  27. Do CASE
  28.   CASE OSEL='1'.or.OSEL='2'
  29.     If osel='1'
  30.       Store D+':MEMBERS' to MFILE
  31.     else
  32.       Store D+':MEMBCON' to MFILE
  33.     endif
  34.     If .not.file(MFILE)
  35.       ? MFILE,'file is not found.'
  36.       Accept '          Press <RETURN> ' to xx
  37.       Store '9' to osel
  38.     else
  39.       Select secondary
  40.       Use &MFILE index &MFILE
  41.       Select primary
  42. ?
  43. ? 'This process uses the',MFILE,'file and the CONTRIB file data. All MEMBERS'
  44. ? 'with offering envelopes have their pledged amount compared with their given'
  45. ? "to-date for the assigned pledged category.  Today's month number is used to"
  46. ? 'pro-rate the amount expected by this date in the year.  For example, for '
  47. ? 'the month of July (end of June), the "expected" amount would be half of the'
  48. ? 'pledged-for-the-year amount.  Totals from the previous month are used -'
  49. ? 'the program ignores amounts given so far in the current month.  Seasonal'
  50. ? 'adjustment totals are made to these figures after first reporting the'
  51. ? 'straight totals.  Names with an equal sign (=) in front of them are'
  52. ? 'married, the name of their spouse is not shown.'
  53. ? 'NOTE: If you indicate the TOTALS category as designated for PLEDGED, (one'
  54. ? 'number higher than your last category), you will get a report of TOTALS'
  55. ? 'amounts.  Otherwise, this report is for one category, only.'
  56. ?
  57.  ? 'Now setting up the CONTRIB file for statistics. Ready the printer.'
  58.       Set talk on
  59.       Replace all MCONSTATUS with ' '+$(mconstatus,2,4)
  60.       Set talk off
  61.       Select secondary
  62.       Store val($(date(),1,2))-1 to cmonth
  63.       Store T to beginng
  64.       Store 0.00 to OCAT
  65.       Store 0.00 to ocatp
  66.       Store 0.0 to ocate
  67.       Store 0 to page
  68.       Store 99 to ln
  69.       Store '                    ' to spaces
  70.       Set format to print
  71.       Store trim(chname) to cname
  72.       If len(cname)<17
  73.         Store '          '+chname to cname
  74.       endif
  75.       Do while .not. EOF
  76.         If .not. BEGINNG
  77.           If ln>60
  78.             If page>0
  79.               EJECT
  80.             endif
  81.             Store page+1 to page
  82. @ 1,0 say cname+' Contributions Analysis -- '+curdate+'  Page'+str(page,3)
  83. @ 3,0 say 'ENVEL'
  84. @ 3,13 say 'NAME               phone     pledged    given   expected    amount'
  85. @ 4,0 say 'NUMB.'
  86. @ 4,52 say                                        'to-date   to-date    behind'
  87.             Store 5 to ln
  88.           endif
  89.           Store ' ' to mb
  90.           If $(familycode,9,1)='M'
  91.             Store '=' to mb
  92.           endif
  93.           Store 0.00 to ocatexpect
  94.           Store val(pledged)*cmonth/12 to ocatexpect
  95.           Store ocatexpect+ocate to ocate
  96.           Store ocatexpect-val($(ocateg&OP,1,9)) to obehind
  97.           @ ln,0 say offer+' '+$(s.ss:sc:memb,1,4)+names
  98. @ ln,40 say pledged+' '+$(ocateg&OP,1,9)+str(ocatexpect,10,2)+str(obehind,10,2)
  99.           Store ocatp+val(pledged) to ocatp
  100.           Store ocat+val($(ocateg&OP,1,9)) to ocat
  101.           SKIP
  102.           Store ln+1 to ln
  103.         endif
  104.         Store F to beginng
  105.         Store '.' to mcstat
  106. Do while (offeringen<1 .or.offeringen>offermax.or.mcstat='.') .and. .not. EOF
  107.           If offeringen<1 .or.offeringen>offermax
  108.             SKIP
  109.           else
  110.             Store str(offeringen,4) to OFFER
  111.             Select primary
  112.             GOTO &OFFER
  113.             If mconstatus='.'
  114.              Select secondary
  115.              SKIP
  116.             else
  117.               Replace mconstatus with '.'+$(mconstatus,2,4)
  118.               Select secondary
  119.               Store ' ' to mcstat
  120.               Store ' ' to mb
  121.               If $(familycode,9,1)='M'
  122.                 Store '=' to mb
  123.               endif
  124.               Store mb+trim(last:name)+', '+trim(first:name) to names
  125.               Store len(names) to lennames
  126.               If lennames>20
  127.                 Store $(names,1,20)+'_'+home:phone to names
  128.               else
  129.                 Store names+$(spaces,1,21-lennames)+home:phone to names
  130.               endif
  131.             endif
  132.           endif
  133.           Select secondary
  134.         enddo
  135.     enddo
  136.      Store '---------------------------------------' to xx
  137.      @ ln,1 say xx+xx
  138. @ ln+1,9 say 'TOTALS                        '+str(ocatp,10,2)
  139. @ ln+1,50 say str(ocat,9,2)+str(ocate,10,2)+str(ocate-ocat,10,2)
  140. Select secondary
  141. Use cdirfile index cdirfile
  142. GOTO 19
  143. Store 0 to wght
  144. Store 3 to O
  145. Store 0 to cmon
  146. Do while #<21
  147.   Store val($(spact,O,3))+wght to wght
  148.   Store cmon+1 to cmon
  149.   If cmon<=cmonth
  150.     Store wght to cwght
  151.   endif
  152.   Store O+7 to O
  153.   If O>40
  154.     SKIP
  155.     Store 3 to O
  156.   endif
  157. enddo
  158. Store ocatp*cwght/wght to O
  159. @ ln+2,9 say 'SEASONALLY ADJUSTED TOTALS '
  160. @ ln+2,60 say str(O,9,2)+str(o-ocat,10,2)
  161.     Eject
  162.     Set format to screen
  163.     ?
  164.     Accept 'Report is complete. Press <RETURN> ' to xx
  165.     Release cmonth,beginng,ocat,ocatp,ocate,ln,spaces,mcstat,cname,offer,names
  166.   Release mb,lennames,ocatexpect,obehind,O,cwght,wght,catnumb,page,cmon,distrib
  167.   CASE OSEL='3'.or.OSEL='4'
  168.     If osel='3'
  169.       Store D+':MEMBERS' to MFILEM
  170.     else
  171.       Store D+':MEMBCON' to MFILEM
  172.     endif
  173.     Store D+':CONTRIB' to MFILE
  174. ?
  175. ? 'This process prints a statistical report of member giving, by contribution'
  176. ? 'amount.  You select the contribution category, and the low and high amounts'
  177. ? 'for the report.  The program determines 50 evenly spaced contribution'
  178. ?? 'amount'
  179. ? 'increments.  Contributions are for all completed months so far this year.'
  180. ? 'The report will show the number of people who have given in each'
  181. ? 'increment - helping you to see how many people there are that give little,'
  182. ? 'versus how many larger givers there are.  You are to specify a low amount'
  183. ? 'that the report will start at, and a high amount that it will end at.  All'
  184. ? 'people below or above this amount are lumped together outside of the graph.'
  185. ? '  Example:  Enter low amount :  100.00 '
  186. ? '            Enter high amount: 2600.00                            ',MFILEM
  187. ? '                                             14'
  188. ? '                             12        12 '
  189. ? '             10      10  10    1010  10  10    10  '
  190. ? '         8       8     8           8       8       8 8     8  '
  191. ? '     6 6       6   6                             6     6 6     6  '
  192. ? '   4       4                                                 4       '
  193. ? '___________________________________________________________________________'
  194. ? ' 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1...'
  195. ? ' 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9...'
  196. ? ' 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0...'
  197. ? '                                   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0...'
  198. ? 'Now setting up CONTRIB file.'
  199. Select primary
  200. Use &MFILE
  201. Replace all mconstatus with ' '+$(mconstatus,2,4)
  202. If OSEL='4'
  203.   Select secondary
  204.   Use &MFILEM
  205.   Replace all MCONSTATUS with '.'+$(mconstatus,2,4)
  206.   Use &MFILEM
  207.   Index on offeringen to &MFILE
  208.   Use &MFILEM index &MFILE
  209.   Find 1
  210.   If #=0
  211.   Find 2
  212.   If #=0
  213.   Find 3
  214.   If #=0
  215.     GOTO TOP
  216.     ? 'Now searching for first offering envelope.'
  217.     Do while offeringen=0 .and. .not. EOF
  218.       SKIP
  219.     enddo
  220.   endif
  221.   endif
  222.   endif
  223.   ? 'Now marking significant CONTRIB file records.'
  224.   Store 0 to rec
  225.   Store 0 to recc
  226.   Do while .not. EOF
  227.     Store offeringen to N
  228.     If N<=offermax
  229.       Select primary
  230.       GOTO N
  231.       Replace MCONSTATUS with ' '+$(mconstatus,2,4)
  232.       Select secondary
  233.     endif
  234.     SKIP
  235.     Store rec+1 to rec
  236.     If rec=100
  237.       Store recc+100 to recc
  238.       ? recc,'RECORDS PROCESSED'
  239.       Store 0 to rec
  240.     endif
  241.   enddo
  242. endif
  243. Release rec,recc,MFILEM
  244. Accept 'Enter low amount  ' to XX
  245. Store val(XX) to lamount
  246. Accept 'Enter high amount ' to XX
  247. Store val(XX) to hamount
  248. If hamount-lamount<200
  249.   Store lamount+200 to hamount
  250.   ? 'High amount is not $200 or more above low amount. Changed to $',hamount
  251. endif
  252. Store (hamount-lamount)/50 to increamt
  253. Store lamount+(50*increamt) to hamount
  254. ?
  255. ? '  Offering category numbers -      0 - PLEDGED        1 -',OCATNAM1
  256. Store '1' to N
  257. ?
  258. Do while N<>OT
  259.   Store str(val(N)+1,1) to N
  260.   ?? '   ',N,'-',OCATNAM&N
  261. enddo
  262. Accept 'Enter a category number ' to xx
  263. Do while @(xx,'012345Qq')=0.or.val(xx)>val(OT)
  264.   Accept 'Invalid entry. Please enter again ' to xx
  265. enddo
  266. Select primary
  267. GOTO TOP
  268. If XX='0'
  269.   Store "PLEDGED" to OCATEG
  270.   Store "PLEDGED" to ocatnam
  271. else
  272.   Store "$(OCATEG&XX,1,9)" to OCATEG
  273.   Store ocatnam&XX to ocatnam
  274. endif
  275. Store "val(&OCATEG)>LN.and.val(&OCATEG)<=HN" to selct
  276. Store '9' to N
  277. Select secondary
  278. Use CDISTRIB
  279. Do while N<>'41'
  280.   Replace DISTRIB&N with 0
  281.   Store str(val(N)+1,2) to N
  282. enddo
  283. Do while N<>'62'
  284.   Store 0 to DISTRIB&N
  285.   Store str(val(N)+1,2) to N
  286. enddo
  287. If !(xx)<>'Q'
  288.   Store lamount to LN
  289.   Store lamount+increamt to HN
  290.   Select primary
  291.   Store 0 to rec
  292.   Store 0 to recc
  293. ? ' Now computing the Distribution Statistics for contributions.'
  294.   Store T to beginng
  295.   Do while .not. EOF
  296.     If .not. BEGINNG
  297.     Store val(&OCATEG) to VALOCAT
  298.     IF VALOCAT=0
  299.       Store '9' to INX
  300.       Replace DISTRIB9 with DISTRIB9+1
  301.     else
  302.     If val(&OCATEG)<=lamount
  303.       Store '10' to INX
  304.       Replace DISTRIB10 with DISTRIB10+1
  305.     else
  306.       Store lamount to LN
  307.       Store lamount+increamt to HN
  308.       Do while HN<=hamount .and. .not.(&selct)
  309.         Store hn to ln
  310.         Store ln+increamt to hn
  311.       enddo
  312.       Select secondary
  313.       If HN>hamount
  314.         Store DISTRIB61+1 to DISTRIB61
  315.         Store '61' to INX
  316.       else
  317.         Store str((hn-lamount)/increamt+10,2) to INX
  318.         If val(INX)>40
  319.           Store DISTRIB&INX+1 to DISTRIB&INX
  320.         else
  321.           Replace DISTRIB&INX with DISTRIB&INX+1
  322.         endif
  323.       endif
  324.     endif
  325.     endif
  326.     Select primary
  327.     Replace mconstatus with '.'+$(mconstatus,2,4)
  328.     SKIP
  329.    endif
  330.    Store F to beginng
  331.    Do while mconstatus='.'.and. .not. EOF
  332.      SKIP
  333.    enddo
  334.    Store rec+1 to rec
  335.    If rec=20
  336.       Store recc+20 to recc
  337.       ? recc,'RECORDS PROCESSED'
  338.       Store 0 to rec
  339.    endif
  340.   enddo
  341.   ? '      0 -',DISTRIB9
  342.   Store '9' to N
  343.   Store lamount to ln
  344.   Store 0 to md
  345.   Do while N<>'60'
  346.     Store str(val(N)+1,2) to N
  347.     Store str(distrib&N,4) to distrib
  348.     ?? LN,' -',distrib
  349.     If distrib&N > md
  350.       Store distrib&N to md
  351.     endif
  352.     Store LN+increamt to LN
  353.   enddo
  354.   ? str(hamount,8,2),'+  -',str(distrib61,4)
  355.   ?
  356.   Accept 'Ready the printer, or press <ESC> to exit ' to XX
  357.   Store md/10 to md
  358.   Set format to print
  359.   @ 1,62 say curdate
  360.   @ 2,1 say chname+'    Contributions Distribution Statistics  --  '+ocatnam
  361.   @ 4,0 say 'CONTRIB        Number of Contribution Givers for these Amounts'
  362.   @ 5,0 say 'AMOUNT '
  363.   @ 6,1 say '  0 | '+str(distrib9,4)
  364.   @ 7,0 say '<'+str(lamount+increamt,3)+' | '+str(distrib10,4)
  365.   @ 8,0 say ;
  366. '============================================================================='
  367.   Store '10' to N
  368.   Store lamount to HN
  369.   Do while N<>'60'
  370.     Store VAL(N)+1 to LN
  371.     Store str(LN,2) to N
  372.     Store distrib&N*7/md to CN
  373.     Store HN+increamt to HN
  374.     @ LN-2,0 say str(HN,4)+' |'
  375.     @ LN-2,CN+6 say str(distrib&N,3)
  376.   enddo
  377.   @ 59,0 say ;
  378. '-----------------------------------------------------------------------------'
  379.   @ 60,0 say '>'+str(hamount,4)+'|'+str(distrib61,5)
  380.   EJECT
  381.   Set format to screen
  382.   Release DISTRIB41,DISTRIB42,DISTRIB43,DISTRIB44,DISTRIB44,DISTRIB45,DISTRIB46
  383.   RELEASE DISTRIB47,DISTRIB48,DISTRIB49,DISTRIB50,DISTRIB51,DISTRIB52,DISTRIB53
  384.   RELEASE DISTRIB54,DISTRIB55,DISTRIB56,DISTRIB57,DISTRIB58,DISTRIB59,DISTRIB60
  385.   RELEASE HN,LN,CN,DISTRIB61,MD,LAMOUNT,HAMOUNT,OCATNAM,INCREAMT,INX,VALOCAT
  386.   RELEASE SELCT,DISTRIB,OFF,BEGINNG,OCATEG,REC,RECC
  387.     endif
  388.     ?
  389.     Accept 'Report is complete. Press <RETURN> ' to xx
  390.   CASE OSEL='5'
  391.     SELECT SECONDARY
  392.     Set bell off
  393.     Use CDIRFILE index CDIRFILE
  394. ?
  395. ? '                  SEASONAL ADJUSTMENT MONTHLY FACTORS             '
  396. ?
  397. ? 'The following are two-digit factor numbers that when used with the'
  398. ?? '"STATISTICS'
  399. ? 'TOTALS" report give weighted expected contribution amounts by the current'
  400. ?? 'month'
  401. ?? 'month of the year.  Numbers that are all equal means you expect an equal'
  402. ?? 'amount of offerings for each of the 12 months, which is not likely.  So'
  403. ?? 'you may want'
  404. ? 'to edit these numbers in order to give proper expected offering amounts,'
  405. ?? 'per'
  406. ? "your church's history."
  407. ?
  408. ?
  409. ?
  410. ?
  411. ?
  412. ?
  413. ?
  414. ?
  415. Select secondary
  416. Use cdirfile index cdirfile
  417. GOTO 19
  418. Store $(spact,3,3) to  wgt1
  419. Store $(spact,10,3) to wgt2
  420. Store $(spact,17,3) to wgt3
  421. Store $(spact,24,3) to wgt4
  422. Store $(spact,31,3) to wgt5
  423. Store $(spact,38,3) to wgt6
  424. SKIP
  425. Store $(spact,3,3)  to wgt7
  426. Store $(spact,10,3) to wgt8
  427. Store $(spact,17,3) to wgt9
  428. Store $(spact,24,3) to wg10
  429. Store $(spact,31,3) to wg11
  430. Store $(spact,38,3) to wg12
  431. @ 17,4 say ;
  432. 'Month   weight      Month   weight      Month   weight      Month   weight'
  433. @ 18,4  say 'January  ' get wgt1
  434. @ 19,4  say 'February ' get wgt2
  435. @ 20,4  say 'March    ' get wgt3
  436. @ 18,24 say 'April    ' get wgt4
  437. @ 19,24 say 'May      ' get wgt5
  438. @ 20,24 say 'June     ' get wgt6
  439. @ 18,44 say 'July     ' get wgt7
  440. @ 19,44 say 'August   ' get wgt8
  441. @ 20,44 say 'September' get wgt9
  442. @ 18,64 say 'October  ' get wg10
  443. @ 19,64 say 'November ' get wg11
  444. @ 20,64 say 'December ' get wg12
  445. READ
  446. Accept '                                                  SAVE? ' to XX
  447. If !(XX)='Y'
  448.   SKIP -1
  449.  Replace spact with '1-'+wgt1+'  2-'+wgt2+'  3-'+wgt3+'  4-'+wgt4+'  5-'+wgt5+;
  450. '  6-'+wgt6
  451.   SKIP
  452.   Replace spact with '7-'+wgt7+'  8-'+wgt8+'  9-'+wgt9+' 10-'+wg10+;
  453. ' 11-'+wg11+' 12-'+wg12
  454. endif
  455. ?
  456. Use
  457. Release wgt1,wgt2,wgt3,wgt4,wgt5,wgt6,wgt7,wgt8,wgt9,wg10,wg11,wg12
  458. Accept 'Editing is complete. Press <RETURN> ' to xx
  459. Set bell on
  460.     CASE OSEL='6'
  461. ?
  462. ? 'This process causes creation of a file named MEMBCON from the MEMBERS file,'
  463. ?? 'or'
  464. ? 'from any Special File of MPROFILE. It is created by a user-selected'
  465. ?? 'contribution criteria -'
  466. ?? 'by the conditions of the values in a selected contributions category'
  467. ?? 'From this file of selected MEMBER records you can make any of the MPROFILE'
  468. ? '"Special Reports" (mailing labels, one-line report, ...), or you can'
  469. ?? 'perform'
  470. ? 'contribution statistics reports.'
  471. ? '    Examples:    "TOTALS"<1000.00     "PLEDGED"<500.00     "LOCAL">235.40 '
  472. ? 'First enter the number associated with the field you want a selection'
  473. ?? 'against,'
  474. ? 'then enter the relationship ( <, or >, or = ) and the amount of comparison.'
  475. ? '   Example -    Enter category  number :1'
  476. ? '                Enter relation, amount :> 1000.00 '
  477. ? 'This will select offering category 1 (',OCATNAM1,'), then specifies all'
  478. ? 'contributors who have given more than $1000.00 (to',OCATNAM1,'this year.)'
  479. ? 'Below are the names of the CONTRIB categories and field names you may'
  480. ? 'select from.  Then it is followed by your entry for a relation and amount -'
  481. ? '      OFFERING FIELD CATEGORIES -'
  482. ?
  483. Store '0' to N
  484. ?? '0 - PLEDGED  '
  485. Do while N<>OT
  486.   Store str(val(N)+1,1) to N
  487.   ?? ' ',N,'-',OCATNAM&N
  488. enddo
  489.   ?
  490. Accept 'Enter category  number ' to catnumb
  491. Do while @(catnumb,'012345Qq')=0.or.val(catnumb)>val(OT)
  492.   Accept 'Invalid entry. Please enter again ' to catnumb
  493. enddo
  494. Store d+':MEMBCON' to MFILEC
  495. Store d+':CONTRIB' to MFILE
  496. If !(catnumb)<>'Q'
  497.   Select primary
  498.   Use &MFILE
  499.   Accept 'Enter relation, amount (<RETURN>=all) ' to XX
  500.   If catnumb='0'
  501.     Store "val(PLEDGED)"+XX to selcri
  502.   else
  503.     Store 'val($(OCATEG&catnumb,1,9))'+XX to selcri
  504.   endif
  505.   Accept 'Enter input file name (Press <RETURN> for "MEMBERS") ' to MFILEM
  506.   If MFILEM=' '
  507.     Store D+':MEMBERS' to MFILEM
  508.   else
  509.     Store D+':'+MFILEM to MFILEM
  510.   endif
  511.   If .not. file(MFILEM)
  512.     ? 'Input file',MFILEM,'not found on the data disk.'
  513.     Accept 'Press <RETURN> to exit ' to xx
  514.   else
  515.   ? 'Now creating',MFILEC,'from',MFILEM,'of all',selcri
  516.   Select secondary
  517.   Use &MFILEM
  518.   Set talk on
  519.   Replace all membstatus with $(membstatus,1,9)+' '
  520.   Set talk off
  521.   Use &MFILEM
  522.   Store 0 to rec
  523.   Store 0 to recc
  524.   Do while .not. EOF
  525.     Store T to NOSELECT
  526.     Store T to NOOFFER
  527.     Do while (NOOFFER .or. NOSELECT) .and. .not. EOF
  528.       If offeringen<1 .or. offeringen > offermax
  529.         Store T to NOOFFER
  530.       else
  531.         Store F to NOOFFER
  532.         Store offeringen to offr
  533.         Select primary
  534.         GOTO offr
  535.         Store T to NOSELECT
  536.         If &selcri
  537.           Store F to NOSELECT
  538.           Select secondary
  539.           Replace membstatus with $(membstatus,1,9)+'.'
  540.         endif
  541.       endif
  542.       Select secondary
  543.       SKIP
  544.     enddo
  545.     Store rec+1 to rec
  546.     If rec=50
  547.       Store 0 to rec
  548.       Store 50+recc to recc
  549.       ? recc,'RECORDS PROCESSED'
  550.     endif
  551.   enddo
  552.   Use &MFILEM
  553.   ? 'Good MEMBER records are now marked. Now creating the MEMBCON file.'
  554.   Set talk on
  555.   Copy to &MFILEC for $(membstatus,10,1)='.'
  556.   Use &MFILEC
  557.   ?? '.   Now indexing by name.'
  558.   Index on last:name+first:name to &MFILEC
  559.   Set talk off
  560.   ? 'New MEMBCON file is now created.'
  561.   endif
  562. endif
  563. Release catnumb,mfilec,rec,recc,noselect,nooffer,offr,NOOFFER,NOSELECT,SELCRI
  564. Accept 'Press <RETURN> ' to xx
  565.     endcase
  566.   endif
  567. enddo
  568. RETURN
  569.  
  570. t9,wg10,wg11,wg12
  571. Accept 'Editing