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

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