home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga ACS 1998 #4
/
amigaacscoverdisc1998-041998.iso
/
utilities
/
commercialdemos
/
gestacomptedemo
/
scripts_arexx
/
recap4.rexx
< prev
next >
Wrap
OS/2 REXX Batch file
|
1997-11-04
|
8KB
|
246 lines
/** $VER: Récap4 1.1 (05.09.97)
** Auteur: Fabrice SABATIER
**
** Commande ARexx sous GestaLivre V2.0.
**
** Composition des pages d'écriture.
**
**/
OPTIONS RESULTS
NL = '0a'x
SautPage = '0C'x /* caractère de saut de page */
ESC = '1B'x
/***************** Définit les variables d'environnement ***********************/
ADDRESS COMMAND "SYS:Rexxc/rx ENV:GestaCompte.ARexxPréfs" /* execute le script de définitions des préférences */
NOM_PORT_LIVRE =GETCLIP('Port_Livre')
NOM_ECRAN_PUB =GETCLIP('Ecran_Livre')
/************************************************************************/
SIGNAL ON SYNTAX /* détourne les messages d'erreurs */
/* ouvre la library rexxreqtools.library pour les messages d'erreurs */
call addlib("rexxreqtools.library",0,-30,0)
ADDRESS VALUE NOM_PORT_LIVRE /* adresse du port Arexx */
nbre=0
NumeroLigne=0 /* initialisation des variables */
NumeroPage=1
Somme662=0
Somme664=0
Somme665=0
Somme666=0
Somme669=0
Somme670=0
Somme467=0
Somme421=0
Somme200=0
Somme629=0
SommeDiv=0
TotalSomme662=0
TotalSomme664=0
TotalSomme665=0
TotalSomme666=0
TotalSomme669=0
TotalSomme670=0
TotalSomme467=0
TotalSomme421=0
TotalSomme200=0
TotalSomme629=0
TotalSommeDiv=0
LettreMois.1='JANVIER'
LettreMois.2='FEVRIER'
LettreMois.3='MARS'
LettreMois.4='AVRIL'
LettreMois.5='MAI'
LettreMois.6='JUIN'
LettreMois.7='JUILLET'
LettreMois.8='AOUT'
LettreMois.9='SEPTEMBRE'
LettreMois.10='OCTOBRE'
LettreMois.11='NOVEMBRE'
LettreMois.12='DECEMBRE'
res=0
x=OPEN('infos','ram:recap4','w') /* crée le fichier */
/* Entête du fichier */
CALL EnTete
DO mois=1 TO 12
month mois /* se position sur le mois */
Somme662=0
Somme664=0
Somme665=0
Somme666=0
Somme669=0
Somme670=0
Somme467=0
Somme421=0
Somme200=0
Somme629=0
SommeDiv=0
numboperations /* cherche le nombre d'opérations dans le mois */
nbre= result
DO i=1 TO nbre /* passe toutes les opérations une à une */
operation i
PARSE VAR result . '/' . '/' Nature '/' Somme '/' . '/' Poste '/' .
IF Poste="662 " THEN Somme662=Somme662+Somme /* calcul le total du mois */
IF Poste="664 " THEN Somme664=Somme664+Somme /* suivant le poste */
IF Poste="665 " THEN Somme665=Somme665+Somme
IF Poste="666 " THEN Somme666=Somme666+Somme
IF Poste="669 " THEN Somme669=Somme669+Somme
IF Poste="670 " THEN Somme670=Somme670+Somme
IF Poste="467 " THEN Somme467=Somme467+Somme
IF Poste="421 " THEN Somme421=Somme421+Somme
IF Poste="200 " THEN Somme200=Somme200+Somme
IF Poste="629 " THEN Somme629=Somme629+Somme
IF LEFT(Poste,3)="DIV" THEN SommeDiv=SommeDiv+Somme
END
TotalSomme662=TotalSomme662+Somme662 /* somme total en fin d'année pour chaque */
TotalSomme664=TotalSomme664+Somme664 /* poste */
TotalSomme665=TotalSomme665+Somme665
TotalSomme666=TotalSomme666+Somme666
TotalSomme669=TotalSomme669+Somme669
TotalSomme670=TotalSomme670+Somme670
TotalSomme467=TotalSomme467+Somme467
TotalSomme421=TotalSomme421+Somme421
TotalSomme200=TotalSomme200+Somme200
TotalSomme629=TotalSomme629+Somme629
TotalSommeDiv=TotalSommeDiv+SommeDiv
ligne='|'
CALL ComposeLigne
ligne= '| 'LEFT(lettremois.month,12' ')||ligne
NumeroLigne=NumeroLigne+1
ligneImp= RIGHT(NumeroLigne,2,' ')||ligne
res=WRITELN('infos',ligneImp)
END
CALL Total
x=CLOSE('infos') /* ferme le fichier */
EXIT
/*---------------- Entête du Tableau --------------*/
EnTete:
traitH=" --------------------------------------------------------------------------------------------------------------------------------"
Entete=" | LIBELLE | 662 | 664 | 665 | 666 | 669 | 670 | 467 | 421 | 200 | 629 | Divers |"
res=WRITELN('infos',ESC||'[4w')
res=WRITELN('infos',' RECAPITULATION (4ème Partie) page 'NumeroPage)
showyear
res=WRITELN('infos',' ANNEE: '||result)
res=WRITELN('infos',' MOIS: ')
res=WRITELN('infos',traitH)
res=WRITELN('infos',Entete)
res=WRITELN('infos',traitH)
/* Ecrit les lignes des données dans le fichier */
ligne=" R| | | | | | | | | | | | |"
res=WRITELN('infos',ligne)
RETURN
/*---------------- Edition d'une ligne -----------------------*/
ComposeLigne:
IF Somme662>0 THEN ligne= ligne || RIGHT(Somme662,9,' ')
ELSE ligne= ligne||" "
ligne= ligne'|'
IF Somme664>0 THEN ligne= ligne || RIGHT(Somme664,9,' ')
ELSE ligne= ligne||" "
ligne= ligne'|'
IF Somme665>0 THEN ligne= ligne || RIGHT(Somme665,9,' ')
ELSE ligne= ligne||" "
ligne= ligne'|'
IF Somme666>0 THEN ligne= ligne || RIGHT(Somme666,9,' ')
ELSE ligne= ligne||" "
ligne= ligne'|'
IF Somme669>0 THEN ligne= ligne || RIGHT(Somme669,9,' ')
ELSE ligne= ligne||" "
ligne= ligne'|'
IF Somme670>0 THEN ligne= ligne || RIGHT(Somme670,9,' ')
ELSE ligne= ligne||" "
ligne= ligne'|'
IF Somme467>0 THEN ligne= ligne || RIGHT(Somme467,9,' ')
ELSE ligne= ligne||" "
ligne= ligne'|'
IF Somme421>0 THEN ligne= ligne || RIGHT(Somme421,9,' ')
ELSE ligne= ligne||" "
ligne= ligne'|'
IF Somme200>0 THEN ligne= ligne || RIGHT(Somme200,9,' ')
ELSE ligne= ligne||" "
ligne= ligne'|'
IF Somme629>0 THEN ligne= ligne || RIGHT(Somme629,9,' ')
ELSE ligne= ligne||" "
ligne= ligne'|'
IF SommeDiv>0 THEN ligne= ligne || RIGHT(SommeDiv,9,' ')
ELSE ligne= ligne||" "
ligne= ligne'|'
RETURN
/*---------------- Total du Tableau --------------*/
Total:
res=WRITELN('infos',traitH)
ligne="|"
IF TotalSomme662>0 THEN ligne= ligne || RIGHT(TotalSomme662,9,' ')
ELSE ligne= ligne||" "
ligne= ligne'|'
IF TotalSomme664>0 THEN ligne= ligne || RIGHT(TotalSomme664,9,' ')
ELSE ligne= ligne||" "
ligne= ligne'|'
IF TotalSomme665>0 THEN ligne= ligne || RIGHT(TotalSomme665,9,' ')
ELSE ligne= ligne||" "
ligne= ligne'|'
IF TotalSomme666>0 THEN ligne= ligne || RIGHT(TotalSomme666,9,' ')
ELSE ligne= ligne||" "
ligne= ligne'|'
IF TotalSomme669>0 THEN ligne= ligne || RIGHT(TotalSomme669,9,' ')
ELSE ligne= ligne||" "
ligne= ligne'|'
IF TotalSomme670>0 THEN ligne= ligne || RIGHT(TotalSomme670,9,' ')
ELSE ligne= ligne||" "
ligne= ligne'|'
IF TotalSomme467>0 THEN ligne= ligne || RIGHT(TotalSomme467,9,' ')
ELSE ligne= ligne||" "
ligne= ligne'|'
IF TotalSomme421>0 THEN ligne= ligne || RIGHT(TotalSomme421,9,' ')
ELSE ligne= ligne||" "
ligne= ligne'|'
IF TotalSomme200>0 THEN ligne= ligne || RIGHT(TotalSomme200,9,' ')
ELSE ligne= ligne||" "
ligne= ligne'|'
IF TotalSomme629>0 THEN ligne= ligne || RIGHT(TotalSomme629,9,' ')
ELSE ligne= ligne||" "
ligne= ligne'|'
IF TotalSommeDiv>0 THEN ligne= ligne || RIGHT(TotalSommeDiv,9,' ')
ELSE ligne= ligne||" "
ligne= ligne'|'
res=WRITELN('infos','14| TOTAL '||ligne)
res=WRITELN('infos',ESC||'[3w')
RETURN
/* Traite les messages d'erreurs */
SYNTAX:
IF RC=13 THEN call rtezrequest( " Environnement serveur non trouvé !!!" || NL || NL ||,
"Le nom du port ARexx utilisé dans le script est : "|| NL || NL ||,
"-----------------------------------------------"|| NL ||,
" " || NOM_PORT_LIVRE || NL ||,
"-----------------------------------------------"|| NL || NL ||,
"Note : Pour réparer ceci, veuillez fermer le module"|| NL ||,
" 'Livre' et modifier le type d'outil 'REXX' de"|| NL ||,
" l'icône, puis le relancer."|| NL || NL ||,
" ATTENTION aux minuscules/majuscules ",,
"OK", "Informations","rt_pubscrname="||NOM_ECRAN_PUB "rt_font=Gestacompte.font/8")
ELSE call rtezrequest(errortext(RC),"Vu",,"rt_pubscrname="||NOM_PORT_LIVRE "rt_font=Gestacompte.font/8")
EXIT