home *** CD-ROM | disk | FTP | other *** search
/ Amiga ACS 1998 #4 / amigaacscoverdisc1998-041998.iso / utilities / commercialdemos / gestacomptedemo / scripts_arexx / recap2.rexx < prev    next >
OS/2 REXX Batch file  |  1997-11-04  |  8KB  |  234 lines

  1. /** $VER: Récap2 1.1 (05.09.97)
  2.  ** Auteur: Fabrice SABATIER
  3.  **
  4.  ** Commande ARexx sous GestaLivre V2.0.
  5.  **
  6.  ** Composition des pages d'écriture.
  7.  **
  8.  **/
  9. OPTIONS RESULTS
  10.  
  11. NL                  = '0a'x
  12. SautPage            = '0C'x   /* caractère de saut de page */
  13. ESC                 = '1B'x
  14.  
  15. /*****************  Définit les variables d'environnement   ***********************/
  16.  
  17. ADDRESS COMMAND "SYS:Rexxc/rx ENV:GestaCompte.ARexxPréfs" /* execute le script de définitions des préférences */
  18. NOM_PORT_LIVRE   =GETCLIP('Port_Livre')
  19. NOM_ECRAN_PUB    =GETCLIP('Ecran_Livre')
  20.  
  21. /************************************************************************/
  22.  
  23. SIGNAL ON SYNTAX        /* détourne les messages d'erreurs */
  24.  
  25. /* ouvre la library rexxreqtools.library pour les messages d'erreurs */
  26. call addlib("rexxreqtools.library",0,-30,0)
  27.  
  28. ADDRESS VALUE NOM_PORT_LIVRE /* adresse du port Arexx */
  29.  
  30. nbre=0
  31. NumeroLigne=0          /* initialisation des variables */
  32. NumeroPage=1
  33. Somme590=0
  34. Somme730=0
  35. Somme600=0
  36. Somme610=0
  37. Somme611=0
  38. Somme620=0
  39. Somme620E=0
  40. SommeSC=0
  41. SommeSB1=0
  42. SommeSB2=0
  43. TotalSomme590=0
  44. TotalSomme730=0
  45. TotalSomme600=0
  46. TotalSomme610=0
  47. TotalSomme611=0
  48. TotalSomme620=0
  49. TotalSomme620E=0
  50. TotalSommeSc=0
  51. TotalSommeSB1=0
  52. TotalSommeSB2=0
  53. LettreMois.1='JANVIER'
  54. LettreMois.2='FEVRIER'
  55. LettreMois.3='MARS'
  56. LettreMois.4='AVRIL'
  57. LettreMois.5='MAI'
  58. LettreMois.6='JUIN'
  59. LettreMois.7='JUILLET'
  60. LettreMois.8='AOUT'
  61. LettreMois.9='SEPTEMBRE'
  62. LettreMois.10='OCTOBRE'
  63. LettreMois.11='NOVEMBRE'
  64. LettreMois.12='DECEMBRE'
  65. res=0
  66.  
  67. x=OPEN('infos','ram:recap2','w')  /* crée le fichier */
  68.  
  69. /* Entête du fichier */
  70. CALL EnTete
  71.  
  72. DO mois=1 TO 12
  73.   month mois                 /* se position sur le mois */
  74.  
  75. Somme590=0
  76. Somme730=0
  77. Somme600=0
  78. Somme610=0
  79. Somme611=0
  80. Somme620=0
  81. Somme620E=0
  82. SommeSC=0
  83. SommeSB1=0
  84. SommeSB2=0
  85.  
  86.   numboperations             /* cherche le nombre d'opérations dans le mois */
  87.   nbre= result
  88.  
  89.   DO i=1 TO nbre             /* passe toutes les opérations une à une */
  90.    operation i
  91.    PARSE VAR result . '/' . '/' Nature '/' Somme '/' . '/' Poste '/' .
  92.  
  93.    IF Poste="590S  " THEN Somme590=Somme590+Somme  /* calcul le total du mois */
  94.    IF Poste="730   " THEN Somme730=Somme730+Somme  /* suivant le poste        */
  95.    IF Poste="600   " THEN Somme600=Somme600+Somme
  96.    IF Poste="610   " THEN Somme610=Somme610+Somme
  97.    IF Poste="611   " THEN Somme611=Somme611+Somme
  98.    IF Poste="620   " THEN Somme620=Somme620+Somme
  99.    IF Poste="620(1)" THEN Somme620E=Somme620E+Somme
  100.    IF Nature="CashPayment" THEN SommeSC=SommeSC+Somme
  101.    IF Nature="Bank2Outflow" THEN SommeSB2=SommeSB2+Somme
  102.    IF Nature="Bank1Outflow" THEN SommeSB1=SommeSB1+Somme
  103.   END
  104.  
  105.   TotalSomme590=TotalSomme590+Somme590   /* somme total en fin d'année pour chaque */
  106.   TotalSomme730=TotalSomme730+Somme730   /* poste */
  107.   TotalSomme600=TotalSomme600+Somme600
  108.   TotalSomme610=TotalSomme610+Somme610
  109.   TotalSomme611=TotalSomme611+Somme611
  110.   TotalSomme620=TotalSomme620+Somme620
  111.   TotalSomme620E=TotalSomme620E+Somme620E
  112.   TotalSommeSC =TotalSommeSC +SommeSC
  113.   TotalSommeSB1=TotalSommeSB1+SommeSB1
  114.   TotalSommeSB2=TotalSommeSB2+SommeSB2
  115.  
  116.  ligne='|'
  117.  CALL ComposeLigne
  118.  ligne= '|    'LEFT(lettremois.mois,16,' ')||ligne
  119.  
  120.  NumeroLigne=NumeroLigne+1
  121.  ligneImp= RIGHT(NumeroLigne,2,' ')||ligne
  122.  res=WRITELN('infos',ligneImp)
  123. END
  124.  
  125.  CALL Total
  126.  
  127. x=CLOSE('infos')       /* ferme le fichier */
  128. EXIT
  129.  
  130. /*---------------- Entête du Tableau --------------*/
  131. EnTete:
  132. traitH="  ---------------------------------------------------------------------------------------------------------------------------"
  133. Entete="  |      LIBELLE       | Banque1 | Banque2 |  Caisse ||   590   |   730   |   600   |   610   |   611   |   620   |  620(1) |"
  134. res=WRITELN('infos',ESC||'[4w')
  135. res=WRITELN('infos','                                            RECAPITULATION (2ème Partie)                             page 'NumeroPage)
  136. showyear
  137. res=WRITELN('infos','     ANNEE: '||result)
  138. res=WRITELN('infos','      MOIS: ')
  139. res=WRITELN('infos',traitH)
  140. res=WRITELN('infos',Entete)
  141. res=WRITELN('infos',traitH)
  142. /* Ecrit les lignes des données dans le fichier */
  143. ligne=" R|                    |         |         |         ||         |         |         |         |         |         |         |"
  144. res=WRITELN('infos',ligne)
  145. RETURN
  146.  
  147. /*----------------  Edition d'une ligne -----------------------*/
  148. ComposeLigne:
  149. IF SommeSC>0 THEN ligne= ligne || RIGHT(SommeSC,9,' ')
  150. ELSE ligne= ligne||"         "
  151. ligne= ligne'|'
  152. IF SommeSB2>0 THEN ligne= ligne || RIGHT(SommeSB2,9,' ')
  153. ELSE ligne= ligne||"         "
  154. ligne= ligne'|'
  155. IF SommeSB1>0 THEN ligne= ligne || RIGHT(SommeSB1,9,' ')
  156. ELSE ligne= ligne||"         "
  157. ligne= ligne'||'
  158. IF Somme590>0 THEN ligne= ligne || RIGHT(Somme590,9,' ')
  159. ELSE ligne= ligne||"         "
  160. ligne= ligne'|'
  161. IF Somme730>0 THEN ligne= ligne || RIGHT(Somme730,9,' ')
  162. ELSE ligne= ligne||"         "
  163. ligne= ligne'|'
  164. IF Somme600>0 THEN ligne= ligne || RIGHT(Somme600,9,' ')
  165. ELSE ligne= ligne||"         "
  166. ligne= ligne'|'
  167. IF Somme610>0 THEN ligne= ligne || RIGHT(Somme610,9,' ')
  168. ELSE ligne= ligne||"         "
  169. ligne= ligne'|'
  170. IF Somme611>0 THEN ligne= ligne || RIGHT(Somme611,9,' ')
  171. ELSE ligne= ligne||"         "
  172. ligne= ligne'|'
  173. IF Somme620>0 THEN ligne= ligne || RIGHT(Somme620,9,' ')
  174. ELSE ligne= ligne||"         "
  175. ligne= ligne'|'
  176. IF Somme620E>0 THEN ligne= ligne || RIGHT(Somme620E,9,' ')
  177. ELSE ligne= ligne||"         "
  178. ligne= ligne'|'
  179. RETURN
  180.  
  181. /*---------------- Total du Tableau  --------------*/
  182. Total:
  183. res=WRITELN('infos',traitH)
  184. ligne="|"
  185. IF TotalSommeSC>0 THEN ligne= ligne || RIGHT(TotalSommeSC,9,' ')
  186. ELSE ligne= ligne||"         "
  187. ligne= ligne'|'
  188. IF TotalSommeSB2>0 THEN ligne= ligne || RIGHT(TotalSommeSB2,9,' ')
  189. ELSE ligne= ligne||"         "
  190. ligne= ligne'|'
  191. IF TotalSommeSB1>0 THEN ligne= ligne || RIGHT(TotalSommeSB1,9,' ')
  192. ELSE ligne= ligne||"         "
  193. ligne= ligne'||'
  194. IF TotalSomme590>0 THEN ligne= ligne || RIGHT(TotalSomme590,9,' ')
  195. ELSE ligne= ligne||"         "
  196. ligne= ligne'|'
  197. IF TotalSomme730>0 THEN ligne= ligne || RIGHT(TotalSomme730,9,' ')
  198. ELSE ligne= ligne||"         "
  199. ligne= ligne'|'
  200. IF TotalSomme600>0 THEN ligne= ligne || RIGHT(TotalSomme600,9,' ')
  201. ELSE ligne= ligne||"         "
  202. ligne= ligne'|'
  203. IF TotalSomme610>0 THEN ligne= ligne || RIGHT(TotalSomme610,9,' ')
  204. ELSE ligne= ligne||"         "
  205. ligne= ligne'|'
  206. IF TotalSomme611>0 THEN ligne= ligne || RIGHT(TotalSomme611,9,' ')
  207. ELSE ligne= ligne||"         "
  208. ligne= ligne'|'
  209. IF TotalSomme620>0 THEN ligne= ligne || RIGHT(TotalSomme620,9,' ')
  210. ELSE ligne= ligne||"         "
  211. ligne= ligne'|'
  212. IF TotalSomme620E>0 THEN ligne= ligne || RIGHT(TotalSomme620E,9,' ')
  213. ELSE ligne= ligne||"         "
  214. ligne= ligne'|'
  215.  
  216. res=WRITELN('infos','14|       TOTAL        '||ligne)
  217. res=WRITELN('infos',ESC||'[3w')
  218. RETURN
  219.  
  220. /* Traite les messages d'erreurs */
  221. SYNTAX:
  222. IF RC=13 THEN call rtezrequest( "      Environnement serveur non trouvé !!!" || NL || NL ||,
  223.                                 "Le nom du port ARexx utilisé dans le script est : "|| NL || NL ||,
  224.                                 "-----------------------------------------------"|| NL ||,
  225.                                 "                  " || NOM_PORT_LIVRE || NL ||,
  226.                                 "-----------------------------------------------"|| NL || NL ||,
  227.                                 "Note : Pour réparer ceci, veuillez fermer le module"|| NL ||,
  228.                 "       'Livre' et modifier le type d'outil 'REXX' de"|| NL ||,
  229.                 "       l'icône, puis le relancer."|| NL || NL ||,
  230.                 "       ATTENTION aux minuscules/majuscules      ",,
  231.                 "OK", "Informations","rt_pubscrname="||NOM_ECRAN_PUB "rt_font=Gestacompte.font/8")
  232. ELSE call rtezrequest(errortext(RC),"Vu",,"rt_pubscrname="||NOM_PORT_LIVRE "rt_font=Gestacompte.font/8")
  233. EXIT
  234.