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

  1. /** $VER: Récap4 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. Somme662=0
  35. Somme664=0
  36. Somme665=0
  37. Somme666=0
  38. Somme669=0
  39. Somme670=0
  40. Somme467=0
  41. Somme421=0
  42. Somme200=0
  43. Somme629=0
  44. SommeDiv=0
  45. TotalSomme662=0
  46. TotalSomme664=0
  47. TotalSomme665=0
  48. TotalSomme666=0
  49. TotalSomme669=0
  50. TotalSomme670=0
  51. TotalSomme467=0
  52. TotalSomme421=0
  53. TotalSomme200=0
  54. TotalSomme629=0
  55. TotalSommeDiv=0
  56. LettreMois.1='JANVIER'
  57. LettreMois.2='FEVRIER'
  58. LettreMois.3='MARS'
  59. LettreMois.4='AVRIL'
  60. LettreMois.5='MAI'
  61. LettreMois.6='JUIN'
  62. LettreMois.7='JUILLET'
  63. LettreMois.8='AOUT'
  64. LettreMois.9='SEPTEMBRE'
  65. LettreMois.10='OCTOBRE'
  66. LettreMois.11='NOVEMBRE'
  67. LettreMois.12='DECEMBRE'
  68. res=0
  69.  
  70. x=OPEN('infos','ram:recap4','w')  /* crée le fichier */
  71.  
  72. /* Entête du fichier */
  73. CALL EnTete
  74.  
  75. DO mois=1 TO 12
  76.   month mois                 /* se position sur le mois */
  77.  
  78.   Somme662=0
  79.   Somme664=0
  80.   Somme665=0
  81.   Somme666=0
  82.   Somme669=0
  83.   Somme670=0
  84.   Somme467=0
  85.   Somme421=0
  86.   Somme200=0
  87.   Somme629=0
  88.   SommeDiv=0
  89.  
  90.   numboperations             /* cherche le nombre d'opérations dans le mois */
  91.   nbre= result
  92.  
  93.   DO i=1 TO nbre             /* passe toutes les opérations une à une */
  94.    operation i
  95.    PARSE VAR result . '/' . '/' Nature '/' Somme '/' . '/' Poste '/' .
  96.  
  97.    IF Poste="662   " THEN Somme662=Somme662+Somme  /* calcul le total du mois */
  98.    IF Poste="664   " THEN Somme664=Somme664+Somme  /* suivant le poste        */
  99.    IF Poste="665   " THEN Somme665=Somme665+Somme
  100.    IF Poste="666   " THEN Somme666=Somme666+Somme
  101.    IF Poste="669   " THEN Somme669=Somme669+Somme
  102.    IF Poste="670   " THEN Somme670=Somme670+Somme
  103.    IF Poste="467   " THEN Somme467=Somme467+Somme
  104.    IF Poste="421   " THEN Somme421=Somme421+Somme
  105.    IF Poste="200   " THEN Somme200=Somme200+Somme
  106.    IF Poste="629   " THEN Somme629=Somme629+Somme
  107.    IF LEFT(Poste,3)="DIV" THEN SommeDiv=SommeDiv+Somme
  108.   END
  109.  
  110.   TotalSomme662=TotalSomme662+Somme662   /* somme total en fin d'année pour chaque */
  111.   TotalSomme664=TotalSomme664+Somme664   /* poste */
  112.   TotalSomme665=TotalSomme665+Somme665
  113.   TotalSomme666=TotalSomme666+Somme666
  114.   TotalSomme669=TotalSomme669+Somme669
  115.   TotalSomme670=TotalSomme670+Somme670
  116.   TotalSomme467=TotalSomme467+Somme467
  117.   TotalSomme421=TotalSomme421+Somme421
  118.   TotalSomme200=TotalSomme200+Somme200
  119.   TotalSomme629=TotalSomme629+Somme629
  120.   TotalSommeDiv=TotalSommeDiv+SommeDiv
  121.  
  122.  ligne='|'
  123.  CALL ComposeLigne
  124.  ligne= '|    'LEFT(lettremois.month,12' ')||ligne
  125.  
  126.  NumeroLigne=NumeroLigne+1
  127.  ligneImp= RIGHT(NumeroLigne,2,' ')||ligne
  128.  res=WRITELN('infos',ligneImp)
  129. END
  130.  
  131.  CALL Total
  132.  
  133. x=CLOSE('infos')       /* ferme le fichier */
  134. EXIT
  135.  
  136. /*---------------- Entête du Tableau --------------*/
  137. EnTete:
  138. traitH="  --------------------------------------------------------------------------------------------------------------------------------"
  139. Entete="  |    LIBELLE     |   662   |   664   |   665   |   666   |   669   |   670   |   467   |   421   |   200   |   629   |  Divers |"
  140. res=WRITELN('infos',ESC||'[4w')
  141. res=WRITELN('infos','                                            RECAPITULATION (4ème Partie)                             page 'NumeroPage)
  142. showyear
  143. res=WRITELN('infos','     ANNEE: '||result)
  144. res=WRITELN('infos','      MOIS: ')
  145. res=WRITELN('infos',traitH)
  146. res=WRITELN('infos',Entete)
  147. res=WRITELN('infos',traitH)
  148. /* Ecrit les lignes des données dans le fichier */
  149. ligne=" R|                |         |         |         |         |         |         |         |         |         |         |         |"
  150. res=WRITELN('infos',ligne)
  151. RETURN
  152.  
  153. /*----------------  Edition d'une ligne -----------------------*/
  154. ComposeLigne:
  155. IF Somme662>0 THEN ligne= ligne || RIGHT(Somme662,9,' ')
  156. ELSE ligne= ligne||"         "
  157. ligne= ligne'|'
  158. IF Somme664>0 THEN ligne= ligne || RIGHT(Somme664,9,' ')
  159. ELSE ligne= ligne||"         "
  160. ligne= ligne'|'
  161. IF Somme665>0 THEN ligne= ligne || RIGHT(Somme665,9,' ')
  162. ELSE ligne= ligne||"         "
  163. ligne= ligne'|'
  164. IF Somme666>0 THEN ligne= ligne || RIGHT(Somme666,9,' ')
  165. ELSE ligne= ligne||"         "
  166. ligne= ligne'|'
  167. IF Somme669>0 THEN ligne= ligne || RIGHT(Somme669,9,' ')
  168. ELSE ligne= ligne||"         "
  169. ligne= ligne'|'
  170. IF Somme670>0 THEN ligne= ligne || RIGHT(Somme670,9,' ')
  171. ELSE ligne= ligne||"         "
  172. ligne= ligne'|'
  173. IF Somme467>0 THEN ligne= ligne || RIGHT(Somme467,9,' ')
  174. ELSE ligne= ligne||"         "
  175. ligne= ligne'|'
  176. IF Somme421>0 THEN ligne= ligne || RIGHT(Somme421,9,' ')
  177. ELSE ligne= ligne||"         "
  178. ligne= ligne'|'
  179. IF Somme200>0 THEN ligne= ligne || RIGHT(Somme200,9,' ')
  180. ELSE ligne= ligne||"         "
  181. ligne= ligne'|'
  182. IF Somme629>0 THEN ligne= ligne || RIGHT(Somme629,9,' ')
  183. ELSE ligne= ligne||"         "
  184. ligne= ligne'|'
  185. IF SommeDiv>0 THEN ligne= ligne || RIGHT(SommeDiv,9,' ')
  186. ELSE ligne= ligne||"         "
  187. ligne= ligne'|'
  188. RETURN
  189.  
  190. /*---------------- Total du Tableau  --------------*/
  191. Total:
  192. res=WRITELN('infos',traitH)
  193. ligne="|"
  194. IF TotalSomme662>0 THEN ligne= ligne || RIGHT(TotalSomme662,9,' ')
  195. ELSE ligne= ligne||"         "
  196. ligne= ligne'|'
  197. IF TotalSomme664>0 THEN ligne= ligne || RIGHT(TotalSomme664,9,' ')
  198. ELSE ligne= ligne||"         "
  199. ligne= ligne'|'
  200. IF TotalSomme665>0 THEN ligne= ligne || RIGHT(TotalSomme665,9,' ')
  201. ELSE ligne= ligne||"         "
  202. ligne= ligne'|'
  203. IF TotalSomme666>0 THEN ligne= ligne || RIGHT(TotalSomme666,9,' ')
  204. ELSE ligne= ligne||"         "
  205. ligne= ligne'|'
  206. IF TotalSomme669>0 THEN ligne= ligne || RIGHT(TotalSomme669,9,' ')
  207. ELSE ligne= ligne||"         "
  208. ligne= ligne'|'
  209. IF TotalSomme670>0 THEN ligne= ligne || RIGHT(TotalSomme670,9,' ')
  210. ELSE ligne= ligne||"         "
  211. ligne= ligne'|'
  212. IF TotalSomme467>0 THEN ligne= ligne || RIGHT(TotalSomme467,9,' ')
  213. ELSE ligne= ligne||"         "
  214. ligne= ligne'|'
  215. IF TotalSomme421>0 THEN ligne= ligne || RIGHT(TotalSomme421,9,' ')
  216. ELSE ligne= ligne||"         "
  217. ligne= ligne'|'
  218. IF TotalSomme200>0 THEN ligne= ligne || RIGHT(TotalSomme200,9,' ')
  219. ELSE ligne= ligne||"         "
  220. ligne= ligne'|'
  221. IF TotalSomme629>0 THEN ligne= ligne || RIGHT(TotalSomme629,9,' ')
  222. ELSE ligne= ligne||"         "
  223. ligne= ligne'|'
  224. IF TotalSommeDiv>0 THEN ligne= ligne || RIGHT(TotalSommeDiv,9,' ')
  225. ELSE ligne= ligne||"         "
  226. ligne= ligne'|'
  227.  
  228. res=WRITELN('infos','14|     TOTAL      '||ligne)
  229. res=WRITELN('infos',ESC||'[3w')
  230. RETURN
  231.  
  232. /* Traite les messages d'erreurs */
  233. SYNTAX:
  234. IF RC=13 THEN call rtezrequest( "      Environnement serveur non trouvé !!!" || NL || NL ||,
  235.                                 "Le nom du port ARexx utilisé dans le script est : "|| NL || NL ||,
  236.                                 "-----------------------------------------------"|| NL ||,
  237.                                 "                  " || NOM_PORT_LIVRE || NL ||,
  238.                                 "-----------------------------------------------"|| NL || NL ||,
  239.                                 "Note : Pour réparer ceci, veuillez fermer le module"|| NL ||,
  240.                 "       'Livre' et modifier le type d'outil 'REXX' de"|| NL ||,
  241.                 "       l'icône, puis le relancer."|| NL || NL ||,
  242.                 "       ATTENTION aux minuscules/majuscules      ",,
  243.                 "OK", "Informations","rt_pubscrname="||NOM_ECRAN_PUB "rt_font=Gestacompte.font/8")
  244. ELSE call rtezrequest(errortext(RC),"Vu",,"rt_pubscrname="||NOM_PORT_LIVRE "rt_font=Gestacompte.font/8")
  245. EXIT
  246.