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

  1.  
  2. NOTE * Program...: LRSMO.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. IF 'A'$rn2
  8. SELECT PRIMARY
  9. SET INDEX TO ndx1
  10. SELECT SECONDARY
  11. USE laccount
  12. STORE 0 TO rincome
  13. STORE 0 TO rexpense
  14. STORE "a:number, ' ... ',a:name,'  ',rtrans,'  ',rctot" TO rfields
  15. ?
  16. ?
  17. ? rline1
  18. ?
  19. ? rline2
  20. ?
  21. ? '==================================================================='
  22. ? 'Account   Description                    Transactions        Amount'
  23. ? '==================================================================='
  24. DO WHILE .NOT. EOF
  25. STORE a:number + rmonth TO rfind
  26. SELECT PRIMARY
  27. FIND &rfind
  28. IF # <> 0
  29. STORE 0 TO rtrans
  30. STORE 0 TO rctot
  31. DO WHILE l:account = a:number .AND. $(l:date,3,3) = rmonth.AND. .NOT. EOF
  32. IF 'I'$l:category
  33. STORE rincome + l:amount TO rincome
  34. ELSE
  35. IF ('E'$l:category .OR. 'X'$l:category) .AND. l:type <> 'Mo'
  36. STORE rexpense + l:amount TO rexpense
  37. ENDI
  38. ENDI
  39. STORE rtrans + 1 TO rtrans
  40. STORE rctot + l:amount TO rctot
  41. SKIP
  42. ENDD
  43. DISPLAY OFF FIELDS &rfields
  44. ENDI
  45. GO TOP
  46. SELECT SECONDARY
  47. SKIP
  48. ENDD
  49. ? '==================================================================='
  50. ? '          Total Income For The Month......................'+ STR(rincome,9,2)
  51. ? '          Total Expenditures For The Month................'+ STR(rexpense,9,2)
  52. ? '==================================================================='
  53. STORE rincome - rexpense TO rnet
  54. ? '          TOTAL NET INCOME................................'+ STR(rnet,9,2)
  55. IF rloop
  56. STORE rincome + rit TO rit
  57. STORE rexpense + ret TO ret
  58. ENDI
  59. IF 'AC'$rn2 .OR. 'E'$rperiod
  60. ? CHR(12)
  61. ENDI
  62. ENDI
  63. IF 'C'$rn2
  64. SELECT PRIMARY
  65. SET INDEX TO ndx2
  66. SELECT SECONDARY
  67. USE lcat
  68. STORE 'I' TO r1
  69. STORE 'Income:   ' TO r1d
  70. STORE c:category TO r2
  71. STORE c:desc TO r2d
  72. STORE 0 TO rctot
  73. STORE $(STR(0,80),1,30) TO rsp
  74. STORE "r1+r2,'...',$(r1d+TRIM(r2d)+rsp,1,33), rtrans, '  ',rctot"TO rfields
  75. ?
  76. ?
  77. ? rline1
  78. ?
  79. ? rline2
  80. ?
  81. ? '==================================================================='
  82. ? 'Categories                               Transactions        Amount'
  83. ? '==================================================================='
  84. DO WHILE .NOT. EOF
  85. STORE r1 TO rfind
  86. STORE rmonth + rfind TO rdfind
  87. SELECT PRIMARY
  88. FIND &rdfind
  89. IF # <> 0
  90. STORE 0 TO rtrans
  91. STORE 0 TO rctot
  92. DO WHILE rfind$l:category .AND. $(l:date,3,3) = rmonth.AND. .NOT. EOF
  93. IF r2$l:category
  94. STORE rtrans + 1 TO rtrans
  95. STORE rctot + l:amount TO rctot
  96. ENDI
  97. SKIP
  98. ENDD
  99. IF rctot <> 0
  100. DISPLAY OFF FIELDS &rfields
  101. ENDI
  102. ENDI
  103. SELECT SECONDARY
  104. STORE T TO rnext
  105. DO WHILE rnext .AND. .NOT. EOF
  106. SKIP
  107. IF c:category = 'E' .OR. c:category = 'I' .OR. c:category = 'O'.OR. c:category = 'X'
  108. LOOP
  109. ELSE
  110. STORE c:category TO r2
  111. STORE c:desc TO r2d
  112. ENDI
  113. STORE F TO rnext
  114. ENDD
  115. IF EOF .AND. r1 = 'I'
  116. STORE 'E' TO r1
  117. STORE 'Expense:  ' TO r1d
  118. ?
  119. GO TOP
  120. STORE c:category TO r2
  121. STORE c:desc TO r2d
  122. ELSE
  123. IF EOF .AND. r1 = 'E'
  124. STORE 'X' TO r1
  125. STORE 'Capital:  ' TO r1d
  126. ?
  127. GO TOP
  128. STORE c:category TO r2
  129. STORE c:desc TO r2d
  130. ENDI
  131. ENDI
  132. ENDD
  133. ? '==================================================================='
  134. ENDI
  135. RETU                                                                                   STORE F TO rnext                                                             ENDDO                                                                                                                                                           IF EOF .AND. r1 = 'I'