home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / cpm / database / ledgers.lbr / LACCOUNT.CZD / LACCOUNT.CMD
OS/2 REXX Batch file  |  1987-05-10  |  7KB  |  267 lines

  1.  
  2. NOTE * Program...: LACCOUNT.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. USE laccount
  8. STORE ' ' TO amenu
  9. STORE "a:name, a:number + '   ', a:category"  TO afields
  10. STORE "&srvideo + $(STR(0,80),1,19) + '<<<  A C C O U N T      F I L E S  >>>'+ $(STR(0,80),1,23) + &snvideo" TO astatline
  11. @ 04,00 SAY &setoend
  12. @ 04,00 SAY 'Account Name                No.    Categories      '
  13. @ 05,00 SAY '==================================================='
  14. @ $,$+1 SAY '============================='
  15. @ 16,00 SAY '==================================================='
  16. @ $,$+1 SAY '============================='
  17. @ 16,00 SAY '='
  18. ? &astatline
  19. GO TOP
  20. STORE # TO arecord
  21. @ 05,00 SAY '='
  22. DISPLAY WHILE # <= arecord + 9 OFF FIELDS &afields
  23. DO WHILE T
  24. @ 18,00 SAY &setoend
  25. @ 19,07 SAY ' A - Add Account    '
  26. @ 19,30 SAY ' S - Search         '
  27. @ 19,53 SAY ' L - View Last Page '
  28. @ 20,07 SAY ' E - Edit Account   '
  29. @ 20,53 SAY ' N - View Next Page '
  30. @ 21,29 SAY '<RET> to Main Menu  '
  31. STORE ' ' TO amenu
  32. CLEAR GETS
  33. @ 23,16 SAY 'Select Choice: ' GET amenu PICTURE '!'
  34. READ
  35. @ 23,00
  36. CLEAR GETS
  37. DO CASE
  38. CASE amenu = 'A'
  39. @ 18,00 SAY &setoend
  40. STORE $(STR(0,80),1,27) TO aname
  41. STORE $(STR(0,80),1,3) TO anumber
  42. STORE $(STR(0,80),1,8) TO acategory
  43. STORE ' ' TO aok
  44. @ 19,00 SAY 'Account Name.............' GET aname
  45. READ
  46. IF TRIM(aname) <> ' '
  47. @ 20,00 SAY 'Account Number...........' GET anumber PICTURE '999'
  48. @ 21,00 SAY 'Categories...............'
  49. @ $,$+1 GET acategory PICTURE '!!!!!!!!'
  50. @ 23,00 SAY 'Enter <RET> when entry is OK and ready to post...'
  51. @ $,$+1 GET aok PICTURE '!'
  52. READ
  53. CLEAR GETS
  54. GO BOTTOM
  55. APPEND BLANK
  56. REPLACE a:name WITH aname, a:number WITH anumber
  57. REPLACE a:category WITH acategory
  58. STORE T TO asortflag
  59. @ 22,00 SAY &setoend
  60. @ 22,00 SAY 'Sorting Account File by Account Number...'
  61. SORT ON a:number TO temp
  62. USE
  63. DELETE FILE laccount.dbf
  64. RENAME temp TO laccount
  65. USE laccount
  66. @ 22,00
  67. LOCATE FOR a:name = aname
  68. STORE # TO arecord
  69. GO BOTTOM
  70. SKIP -9
  71. IF arecord > #
  72. STORE # TO arecord
  73. ENDI
  74. GOTO arecord
  75. @ 05,00 SAY '='
  76. DISPLAY WHILE # <= arecord + 9 OFF FIELDS &afields
  77. ENDI
  78. CASE amenu = 'E'
  79. @ 18,00 SAY &setoend
  80. STORE $(STR(0,80),1,27) TO aname
  81. STORE $(STR(0,80),1,8) TO acategory
  82. STORE $(STR(0,80),1,3) TO anumber
  83. STORE ' ' TO aok
  84. @ 20,00 SAY 'Account Number...........' GET anumber PICTURE '999'
  85. READ
  86. CLEAR GETS
  87. IF anumber <> ' '
  88. LOCATE FOR VAL(a:number) = VAL(anumber)
  89. IF .NOT. EOF
  90. STORE # TO arecord
  91. STORE a:name TO aname
  92. STORE a:number TO anumber
  93. STORE a:category TO acategory
  94. @ 20,25 SAY anumber
  95. @ 19,00 SAY 'Account Name.............' GET aname
  96. @ 21,00 SAY 'Categories...............'
  97. @ $,$+1 GET acategory PICTURE '!!!!!!!!'
  98. @ 19,25 SAY &srvideo + aname
  99. @ 21,25 SAY &srvideo + acategory
  100. @ 23,00 SAY 'Enter <RET> when entry is OK and ready to post...'
  101. @ $,$+1 GET aok PICTURE '!'
  102. READ
  103. CLEAR GETS
  104. REPLACE a:name WITH aname, a:number WITH anumber
  105. REPLACE a:category WITH acategory
  106. GO BOTTOM
  107. SKIP -9
  108. IF arecord  > #
  109. STORE # TO arecord
  110. ENDI
  111. GOTO arecord
  112. @ 05,00 SAY '='
  113. DISPLAY WHILE # <= arecord + 9 OFF FIELDS &afields
  114. ENDI
  115. ENDI
  116. CASE amenu = 'L'
  117. @ 19,53 SAY &srvideo + ' --> VIEW LAST PAGE ' + &snvideo
  118. @ 23,00
  119. STORE arecord - 10 TO arecord
  120. IF arecord < 1
  121. STORE 1 TO arecord
  122. ENDI
  123. GOTO arecord
  124. @ 05,00 SAY '='
  125. DISPLAY WHILE # <= arecord + 9 OFF FIELDS &afields
  126. @ 19,53 SAY ' L - View Last Page '
  127. @ 23,00
  128. CASE amenu = 'N'
  129. @ 20,53 SAY &srvideo + ' --> VIEW NEXT PAGE ' + &snvideo
  130. @ 23,00
  131. STORE arecord + 10 TO arecord
  132. GO BOTTOM
  133. IF arecord + 9 > #
  134. SKIP -9
  135. STORE # TO arecord
  136. ELSE
  137. GOTO arecord
  138. ENDI
  139. @ 05,00 SAY '='
  140. DISPLAY WHILE # <= arecord + 9 OFF FIELDS &afields
  141. @ 20,53 SAY ' N - View Next Page '
  142. @ 23,00
  143. CASE amenu = 'S'
  144. @ 19,30 SAY &srvideo + ' --> SEARCH  '
  145. @ 23,00
  146. @ 18,00 SAY &setoend
  147. STORE 'X' TO akey
  148. DO WHILE .NOT. akey$'AN '
  149. STORE ' ' TO akey
  150. @ 19,08 SAY 'Search for Account Name (A) '
  151. @ $,$+1 SAY 'or Account Number (N)?...'
  152. @ $,$+1 GET akey PICTURE '!'
  153. READ
  154. CLEAR GETS
  155. ENDD
  156. @ 18,0 SAY &setoend
  157. DO CASE
  158. CASE akey = ' '
  159. LOOP
  160. CASE akey = 'N'
  161. STORE '   ' TO anumber
  162. @ 19,08 SAY 'Enter Account Number...' GET anumber
  163. READ
  164. LOCATE FOR VAL(a:number) = VAL(anumber)
  165. IF .NOT. EOF
  166. STORE # TO arecord
  167. GO BOTTOM
  168. IF arecord + 9 > #
  169. SKIP -9
  170. STORE # TO arecord
  171. ELSE
  172. GOTO arecord
  173. ENDI
  174. @ 5,0 SAY '='
  175. DISPLAY OFF FIELDS &afields
  176. SKIP
  177. DISPLAY WHILE # <= arecord + 9 OFF FIELDS &afields
  178. ELSE
  179. STORE ' ' TO aok
  180. @ 18,00 SAY &setoend
  181. @ 21,08 SAY '+++ No other Account Entry matches these '
  182. @ $,$+1 SAY 'specifications +++ '
  183. @ 23,08 SAY 'Hit any key to continue...' GET aok
  184. READ
  185. ENDI
  186. CASE akey = 'A'
  187. STORE $(STR(0,80),1,27) TO aname
  188. STORE 'F' TO aok
  189. DO WHILE aok = 'F'
  190. @ 19,08 SAY "Enter Account Name..."
  191. @ 19,$+1 GET aname PICTURE '!!!!!!!!!!!!!!!!!!!!!!!!!!!'
  192. READ
  193. CLEAR GETS
  194. STORE TRIM(aname) TO aname
  195. IF aname = ' '
  196. LOOP
  197. ELSE
  198. STORE 'C' TO aok
  199. ENDI
  200. ENDD
  201. LOCATE FOR aname$!(a:name)
  202. STORE # TO arecord
  203. STORE 1 TO l
  204. @ 5,0 SAY '='
  205. DO WHILE aok = 'C'
  206. DO WHILE l < 11
  207. IF EOF
  208. STORE l + 5 TO cn
  209. @ cn,0
  210. ELSE
  211. DISPLAY OFF FIELDS &afields
  212. CONTINUE
  213. ENDI
  214. STORE l + 1 TO l
  215. ENDD
  216. IF .NOT. EOF
  217. STORE ' ' TO aok
  218. @ 19,08  SAY "Enter 'C' to continue or <RET> to "
  219. @ 19,$+1 SAY 'return to Menu...' GET aok PICTURE '!'
  220. READ
  221. IF aok = 'C'
  222. STORE 1 TO l
  223. @ 5,0 SAY '='
  224. ENDI
  225. ELSE
  226. STORE ' ' TO aok
  227. ENDI
  228. ENDD
  229. ENDC
  230. CASE amenu = 'Q'
  231. @ 21,00
  232. @ 21,28 SAY &srvideo + ' --> QUIT TO dBASE II  ' + &snvideo
  233. @ 23,00
  234. SAVE TO lsystem ALL LIKE s*
  235. SAVE TO &tledger ALL LIKE m*
  236. CANCEL
  237. CASE amenu = 'X'
  238. @ 21,00
  239. @ 21,28 SAY &srvideo + ' --> EXIT TO CP/M  ' + &snvideo
  240. @ 23,00
  241. SAVE TO lsystem ALL LIKE s*
  242. SAVE TO &tledger ALL LIKE m*
  243. QUIT
  244. CASE amenu = ' '
  245. @ 21,00
  246. @ 21,28 SAY &srvideo + ' --> MAIN MENU  ' + &snvideo
  247. @ 23,00
  248. RELEASE ALL LIKE a*
  249. USE &tledger
  250. @ 04,00 SAY &setoend
  251. @ 04,00 SAY 'CkNo Tr Date    Payee                    Memo       '
  252. @ $,$+1 SAY '             Acct    Amount'
  253. @ 05,00 SAY '===================================================='
  254. @ $,$+1 SAY '============================'
  255. @ 16,00 SAY '===================================================='
  256. @ $,$+1 SAY '============================'
  257. GO BOTTOM
  258. SKIP -9
  259. STORE # TO xrecord
  260. @ 05,00 SAY '='
  261. DISPLAY WHILE # <= xrecord + 10 OFF FIELDS &lfields
  262. @ 16,00 SAY '='
  263. ? &tstatline
  264. RETU
  265. ENDC
  266. ENDD
  267. RETU          @ 21,28 SAY &srvideo + ' --> EXIT TO CP/M  ' + &snvideo                         @ 23,00                                                                         SAVE TO lsystem ALL LIKE s*