home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / CPM / DATABASE / LEDGERS.LBR / LREPORT.CZD / LREPORT.CMD
OS/2 REXX Batch file  |  2000-06-30  |  8KB  |  300 lines

  1.  
  2. NOTE * Program...: LREPORT.CMD
  3. NOTE * Version...: 2.0
  4. NOTE * Author....: Terry Hazen
  5. NOTE * Date......: 12/06/85
  6. NOTE * Notice....: Copyright (c) 1985,  n/SYSTEMS
  7. STORE '        ' TO rname
  8. STORE 'JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC' TO rdateck
  9. STORE 'January  February March    April    May      June     July     August   SeptemberOctober  November December ' TO rtmonths
  10. @ 18,00 SAY &setoend
  11. @ 16,00 SAY '='
  12. ? &tstatline
  13. DISPLAY FILES LIKE *.RPT
  14. STORE ' ' TO rok
  15. @ 22,00 SAY 'Existing report filenames are shown above.  New '
  16. @ $,$+1 SAY 'reports overwrite existing '
  17. @ 23,00 SAY 'reports of the same name.   '
  18. @ $,$+1 SAY 'Hit any key to continue...' GET rok
  19. READ
  20. STORE ' ' TO rmenu
  21. @ 18,00 SAY &setoend
  22. @ 21,08 SAY 'C - List of Checks'
  23. @ 21,31 SAY 'D - Detailed Report'
  24. @ 21,54 SAY 'S - Summary Report'
  25. DO WHILE .NOT. rmenu$'DSC'
  26. @ 23,16 SAY 'Select Choice: ' GET rmenu PICTURE '!'
  27. READ
  28. @ 23,00
  29. CLEAR GETS
  30. DO CASE
  31. CASE rmenu = 'D'
  32. STORE 'This will be a Detailed Report' TO rtp
  33. STORE 'D E T A I L E D   R E P O R T' TO rline1
  34. STORE $(STR(0,80),1,45) TO rline
  35. STORE 'D' TO rtype
  36. CASE rmenu = 'S'
  37. STORE 'This will be a Summary Report' TO rtp
  38. STORE 'S U M M A R Y   R E P O R T' TO rline1
  39. STORE $(STR(0,80),1,37) TO rline
  40. STORE 'S' TO rtype
  41. CASE rmenu = 'C'
  42. STORE 'This will be a list of 'TO rtp
  43. STORE 'Checks written' TO rby
  44. STORE 'L I S T   O F   C H E C K S' TO rline1
  45. STORE $(STR(0,80),1,45) TO rline
  46. STORE 'CKS' TO rtype
  47. STORE '-' TO rn2
  48. OTHE
  49. STORE ' ' TO rmenu
  50. ENDC
  51. ENDD
  52. IF rtype # 'CKS'
  53. STORE ' ' TO rmenu
  54. @ 18,00 SAY &setoend
  55. @ 19,00 SAY rtp + ':'
  56. @ 21,08 SAY 'A - by Account'
  57. @ 21,31 SAY 'B - by Account AND'
  58. @ 21,54 SAY 'C - by Category'
  59. @ 22,31 SAY '       Category'
  60. DO WHILE .NOT. rmenu$'ABC'
  61. @ 23,16 SAY 'Select Choice: ' GET rmenu PICTURE '!'
  62. READ
  63. @ 23,00
  64. CLEAR GETS
  65. DO CASE
  66. CASE rmenu = 'A'
  67. STORE ', by Account' TO rby
  68. STORE 'A-' TO rn2
  69. CASE rmenu = 'C'
  70. STORE ', by Category' TO rby
  71. STORE 'C-' TO rn2
  72. CASE rmenu = 'B'
  73. STORE ', by Account and Category' TO rby
  74. STORE 'AC-' TO rn2
  75. OTHE
  76. STORE ' ' TO rmenu
  77. ENDC
  78. ENDD
  79. ENDI
  80. STORE ' ' TO rmenu
  81. @ 18,00 SAY &setoend
  82. @ 19,00 SAY rtp + rby + ':'
  83. @ 21,08 SAY 'M - for the Month of...'
  84. @ 21,54 SAY 'Y - for the Year-to-Date'
  85. IF rtype = 'S'
  86. @ 22,31 SAY 'E - for each Month-to-Date'
  87. ENDI
  88. DO WHILE .NOT. rmenu$'EMY'
  89. @ 23,16 SAY 'Select Choice: ' GET rmenu PICTURE '!'
  90. READ
  91. @ 23,00
  92. CLEAR GETS
  93. DO CASE
  94. CASE rmenu = 'M'
  95. STORE '   ' TO rmonth
  96. DO WHILE .NOT. rmonth$rdateck
  97. @ 21,50 SAY &setoend
  98. @ 21,31 GET rmonth PICTURE '!!!'
  99. READ
  100. CLEAR GETS
  101. STORE !(rmonth) TO rmonth
  102. ENDD
  103. STORE ', for the month of ' + rmonth + '.' TO rper
  104. STORE 'F O R   T H E   M O N T H   O F   ' TO rline2
  105. STORE 'M' TO rperiod
  106. STORE rmonth TO rn3
  107. CASE rmenu = 'E'
  108. IF rtype = 'S'
  109. STORE ', for each Month-to-Date.' TO rper
  110. STORE 'F O R   T H E   M O N T H   O F   ' TO reline2
  111. STORE 'E' TO rperiod
  112. STORE 'MTD' TO rn3
  113. ELSE
  114. STORE ' ' TO rmenu
  115. LOOP
  116. ENDI
  117. CASE rmenu = 'Y'
  118. STORE ', for the Year-to-Date.' TO rper
  119. STORE 'F O R   T H E   Y E A R   T O   D A T E . . .'TO rline2
  120. STORE 'Y' TO rperiod
  121. STORE 'YTD' TO rn3
  122. OTHE
  123. STORE ' ' TO rmenu
  124. ENDC
  125. ENDD
  126. @ 18,00 SAY &setoend
  127. @ 19,00 SAY rtp + rby + rper
  128. STORE mledger + rtype + rn2 + rn3 + '.RPT' TO rname
  129. @ 20,00 SAY &setoend
  130. @ 21,00 SAY 'This Report will be saved to Filename: ' + rname
  131. STORE ' ' TO rok
  132. @ 23,00 SAY "Enter 'C' to compile this report or <RET> to "
  133. @ $,$+1 SAY 'return to the Main Menu...' GET rok PICTURE '!'
  134. READ
  135. IF rok # 'C'
  136. STORE ' ' TO rname
  137. ENDI
  138. IF rname # ' '
  139. @ 23,00
  140. @ 23,00 SAY 'Compiling the report...'
  141. ?
  142. DO CASE
  143. CASE rperiod = 'Y'
  144. STORE 'l:account' TO rindex1
  145. STORE '$(l:category,1,1) + STR(#,3)' TO rindex2
  146. SELECT PRIMARY
  147. IF 'A'$rn2 .AND. rtype # 'CKS'
  148. INDEX ON &rindex1 TO ndx1
  149. ENDI
  150. IF 'C'$rn2 .AND. rtype # 'CKS'
  151. INDEX ON &rindex2 TO ndx2
  152. ENDI
  153. SET ALTERNATE TO &rname
  154. SET ALTERNATE ON
  155. ? sdate + rline + mid
  156. DO CASE
  157. CASE rtype = 'S'
  158. DO lrsytd
  159. CASE rtype = 'D'
  160. DO lrdytd
  161. CASE rtype = 'CKS'
  162. DO lrcytd
  163. ENDC
  164. CASE rperiod = 'E'
  165. STORE $(sdate,3,3) TO rendmonth
  166. STORE 'XXX' TO rmonth
  167. STORE T TO rloop
  168. IF rtype = 'S'
  169. STORE 0 TO rit
  170. STORE 0 TO ret
  171. ENDI
  172. STORE 'l:account + $(l:date,3,3)' TO rindex1
  173. STORE '$(l:date,3,3) + $(l:category,1,1)' TO rindex2
  174. SELECT PRIMARY
  175. IF 'A'$rn2 .AND. rtype # 'CKS'
  176. INDEX ON &rindex1 TO ndx1
  177. ENDI
  178. IF 'C'$rn2 .AND. rtype # 'CKS'
  179. INDEX ON &rindex2 TO ndx2
  180. ENDI
  181. SET ALTERNATE TO &rname
  182. SET ALTERNATE ON
  183. ? sdate + rline + mid
  184. DO WHILE rloop
  185. IF rmonth # 'XXX'
  186. STORE $(rdateck,@(rmonth,rdateck)+3,3) TO rmonth
  187. ELSE
  188. STORE 'JAN' TO rmonth
  189. ENDI
  190. DO CASE
  191. CASE rtype = 'S'
  192. STORE @(rmonth,!(rtmonths)) to rstart
  193. IF rstart > 0
  194. STORE $(rtmonths,rstart,9) TO rcmonth
  195. STORE !($(rcmonth,1,1)) + ' ' TO rdsmonth
  196. STORE 2 TO r
  197. DO WHILE r < 10
  198. STORE rdsmonth + !($(rcmonth,r,1)) + ' 'TO rdsmonth
  199. STORE r + 1 TO r
  200. ENDD
  201. RELEASE r
  202. STORE TRIM(rcmonth) TO rcmonth
  203. STORE TRIM(rdsmonth) TO rdsmonth
  204. ENDI
  205. STORE reline2 + rdsmonth + ' . . .' TO rline2
  206. DO lrsmo
  207. CASE rtype = 'D'
  208. DO lrdmo
  209. ENDC
  210. IF rmonth$sdate
  211. STORE F TO rloop
  212. ENDI
  213. ENDD
  214. IF rtype = 'S'
  215. ?
  216. ?
  217. ? 'S U M M A R Y   F O R   T H E   Y E A R   T O   D A T E . . .'
  218. ?
  219. ? '==================================================================='
  220. ? '          TOTAL INCOME FOR THE YEAR TO DATE...............'+ STR(rit,9,2)
  221. ? '          TOTAL EXPENDITURES FOR THE YEAR TO DATE.........'+ STR(ret,9,2)
  222. ? '==================================================================='
  223. STORE rit - ret TO rnt
  224. ? '          TOTAL NET INCOME FOR THE YEAR TO DATE...........'+ STR(rnt,9,2)
  225. CASE rperiod = 'M'
  226. STORE F TO rloop
  227. STORE @(rmonth,!(rtmonths)) to rstart
  228. IF rstart > 0
  229. STORE $(rtmonths,rstart,9) TO rcmonth
  230. STORE !($(rcmonth,1,1)) + ' ' TO rdsmonth
  231. STORE 2 TO r
  232. DO WHILE r < 10
  233. STORE rdsmonth + !($(rcmonth,r,1)) + ' ' TO rdsmonth
  234. STORE r + 1 TO r
  235. ENDD
  236. RELEASE r
  237. STORE TRIM(rcmonth) TO rcmonth
  238. STORE TRIM(rdsmonth) TO rdsmonth
  239. ENDI
  240. STORE 'l:account + $(l:date,3,3)' TO rindex1
  241. STORE '$(l:date,3,3) + $(l:category,1,1)' TO rindex2
  242. STORE rline2 + rdsmonth + ' . . .' TO rline2
  243. SELECT PRIMARY
  244. IF 'A'$rn2 .AND. rtype # 'CKS'
  245. INDEX ON &rindex1 TO ndx1
  246. ENDI
  247. IF 'C'$rn2 .AND. rtype # 'CKS'
  248. INDEX ON &rindex2 TO ndx2
  249. ENDI
  250. SET ALTERNATE TO &rname
  251. SET ALTERNATE ON
  252. ? sdate + rline + mid
  253. DO CASE
  254. CASE rtype = 'S'
  255. DO lrsmo
  256. CASE rtype = 'D'
  257. DO lrdmo
  258. CASE rtype = 'CKS'
  259. DO lrcmo
  260. ENDC
  261. ENDC
  262. ENDI
  263. SET ALTERNATE OFF
  264. SET ALTERNATE TO
  265. ?
  266. ?
  267. STORE ' ' TO rok
  268. @ 23,00 SAY 'Hit any key to return to the Main Menu...' GET rok
  269. READ
  270. SELECT SECONDARY
  271. USE
  272. SELECT PRIMARY
  273. SET INDEX TO
  274. IF FILE('NDX1.NDX')
  275. DELETE FILE ndx1.ndx
  276. ENDI
  277. IF FILE('NDX2.NDX')
  278. DELETE FILE ndx2.ndx
  279. ENDI
  280. RELEASE ALL LIKE r*
  281. ERASE
  282. ? &srvideo + tline
  283. ? tline
  284. ? tline
  285. @ 02,27 SAY &srvideo + 'L  E  D  G  E  R'
  286. @ $,$+1 SAY &srvideo + mledger
  287. @ 04,00 SAY 'CkNo Tr Date    Payee                    Memo       '
  288. @ $,$+1 SAY '             Acct    Amount'
  289. @ 05,00 SAY '===================================================='
  290. @ $,$+1 SAY '============================'
  291. @ 16,00 SAY '===================================================='
  292. @ $,$+1 SAY '============================'
  293. GO BOTTOM
  294. SKIP -9
  295. STORE # TO xrecord
  296. @ 05,00 SAY '='
  297. DISPLAY WHILE # <= xrecord + 10 OFF FIELDS &lfields
  298. @ 16,00 SAY '='
  299. ? &tstatline
  300. RETU     IF FILE('NDX2.NDX')                                                                DELETE FILE ndx2.ndx                                                         ENDIF