home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga ACS 1998 #4
/
amigaacscoverdisc1998-041998.iso
/
utilities
/
commercialdemos
/
gestacomptedemo
/
scripts_arexx
/
recap2.rexx
< prev
next >
Wrap
OS/2 REXX Batch file
|
1997-11-04
|
8KB
|
234 lines
/** $VER: Récap2 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
Somme590=0
Somme730=0
Somme600=0
Somme610=0
Somme611=0
Somme620=0
Somme620E=0
SommeSC=0
SommeSB1=0
SommeSB2=0
TotalSomme590=0
TotalSomme730=0
TotalSomme600=0
TotalSomme610=0
TotalSomme611=0
TotalSomme620=0
TotalSomme620E=0
TotalSommeSc=0
TotalSommeSB1=0
TotalSommeSB2=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:recap2','w') /* crée le fichier */
/* Entête du fichier */
CALL EnTete
DO mois=1 TO 12
month mois /* se position sur le mois */
Somme590=0
Somme730=0
Somme600=0
Somme610=0
Somme611=0
Somme620=0
Somme620E=0
SommeSC=0
SommeSB1=0
SommeSB2=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="590S " THEN Somme590=Somme590+Somme /* calcul le total du mois */
IF Poste="730 " THEN Somme730=Somme730+Somme /* suivant le poste */
IF Poste="600 " THEN Somme600=Somme600+Somme
IF Poste="610 " THEN Somme610=Somme610+Somme
IF Poste="611 " THEN Somme611=Somme611+Somme
IF Poste="620 " THEN Somme620=Somme620+Somme
IF Poste="620(1)" THEN Somme620E=Somme620E+Somme
IF Nature="CashPayment" THEN SommeSC=SommeSC+Somme
IF Nature="Bank2Outflow" THEN SommeSB2=SommeSB2+Somme
IF Nature="Bank1Outflow" THEN SommeSB1=SommeSB1+Somme
END
TotalSomme590=TotalSomme590+Somme590 /* somme total en fin d'année pour chaque */
TotalSomme730=TotalSomme730+Somme730 /* poste */
TotalSomme600=TotalSomme600+Somme600
TotalSomme610=TotalSomme610+Somme610
TotalSomme611=TotalSomme611+Somme611
TotalSomme620=TotalSomme620+Somme620
TotalSomme620E=TotalSomme620E+Somme620E
TotalSommeSC =TotalSommeSC +SommeSC
TotalSommeSB1=TotalSommeSB1+SommeSB1
TotalSommeSB2=TotalSommeSB2+SommeSB2
ligne='|'
CALL ComposeLigne
ligne= '| 'LEFT(lettremois.mois,16,' ')||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 | Banque1 | Banque2 | Caisse || 590 | 730 | 600 | 610 | 611 | 620 | 620(1) |"
res=WRITELN('infos',ESC||'[4w')
res=WRITELN('infos',' RECAPITULATION (2è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 SommeSC>0 THEN ligne= ligne || RIGHT(SommeSC,9,' ')
ELSE ligne= ligne||" "
ligne= ligne'|'
IF SommeSB2>0 THEN ligne= ligne || RIGHT(SommeSB2,9,' ')
ELSE ligne= ligne||" "
ligne= ligne'|'
IF SommeSB1>0 THEN ligne= ligne || RIGHT(SommeSB1,9,' ')
ELSE ligne= ligne||" "
ligne= ligne'||'
IF Somme590>0 THEN ligne= ligne || RIGHT(Somme590,9,' ')
ELSE ligne= ligne||" "
ligne= ligne'|'
IF Somme730>0 THEN ligne= ligne || RIGHT(Somme730,9,' ')
ELSE ligne= ligne||" "
ligne= ligne'|'
IF Somme600>0 THEN ligne= ligne || RIGHT(Somme600,9,' ')
ELSE ligne= ligne||" "
ligne= ligne'|'
IF Somme610>0 THEN ligne= ligne || RIGHT(Somme610,9,' ')
ELSE ligne= ligne||" "
ligne= ligne'|'
IF Somme611>0 THEN ligne= ligne || RIGHT(Somme611,9,' ')
ELSE ligne= ligne||" "
ligne= ligne'|'
IF Somme620>0 THEN ligne= ligne || RIGHT(Somme620,9,' ')
ELSE ligne= ligne||" "
ligne= ligne'|'
IF Somme620E>0 THEN ligne= ligne || RIGHT(Somme620E,9,' ')
ELSE ligne= ligne||" "
ligne= ligne'|'
RETURN
/*---------------- Total du Tableau --------------*/
Total:
res=WRITELN('infos',traitH)
ligne="|"
IF TotalSommeSC>0 THEN ligne= ligne || RIGHT(TotalSommeSC,9,' ')
ELSE ligne= ligne||" "
ligne= ligne'|'
IF TotalSommeSB2>0 THEN ligne= ligne || RIGHT(TotalSommeSB2,9,' ')
ELSE ligne= ligne||" "
ligne= ligne'|'
IF TotalSommeSB1>0 THEN ligne= ligne || RIGHT(TotalSommeSB1,9,' ')
ELSE ligne= ligne||" "
ligne= ligne'||'
IF TotalSomme590>0 THEN ligne= ligne || RIGHT(TotalSomme590,9,' ')
ELSE ligne= ligne||" "
ligne= ligne'|'
IF TotalSomme730>0 THEN ligne= ligne || RIGHT(TotalSomme730,9,' ')
ELSE ligne= ligne||" "
ligne= ligne'|'
IF TotalSomme600>0 THEN ligne= ligne || RIGHT(TotalSomme600,9,' ')
ELSE ligne= ligne||" "
ligne= ligne'|'
IF TotalSomme610>0 THEN ligne= ligne || RIGHT(TotalSomme610,9,' ')
ELSE ligne= ligne||" "
ligne= ligne'|'
IF TotalSomme611>0 THEN ligne= ligne || RIGHT(TotalSomme611,9,' ')
ELSE ligne= ligne||" "
ligne= ligne'|'
IF TotalSomme620>0 THEN ligne= ligne || RIGHT(TotalSomme620,9,' ')
ELSE ligne= ligne||" "
ligne= ligne'|'
IF TotalSomme620E>0 THEN ligne= ligne || RIGHT(TotalSomme620E,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