home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga ACS 1998 #4
/
amigaacscoverdisc1998-041998.iso
/
utilities
/
commercialdemos
/
gestacomptedemo
/
scripts_arexx
/
récapitulationfc.rexx
< prev
next >
Wrap
OS/2 REXX Batch file
|
1997-11-13
|
10KB
|
293 lines
/** $VER: RécapitulationFC 1.1 (05.09.97)
** Auteur: Fabrice SABATIER
**
** Commande ARexx sous GestaLivre V2.0.
**
** Composition des pages d'écriture sous FinalCopy®.
**
**/
/***************** 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')
NOM_PORT_FINAL =GETCLIP('Port_TraitementTexte')
REPERTOIRE =GETCLIP('Chemin')
NOM_FICHIER ="Gesta:FeuillesdeStyle/Récapitulation.final" /* nom du document sous FinalCopy® */
/************************************************************************/
OPTIONS RESULTS
NL = '0a'x /* caractère de fin de ligne */
Tab = '09'x /* caractère de tabulation */
Colonne.1 ="420 " /* repère des colonnes */
Colonne.2 ="761 "
Colonne.3 ="700 "
Colonne.4 ="790 "
Colonne.5 ="590 "
Colonne.12="590S "
Colonne.13="730 "
Colonne.14="600 "
Colonne.15="610 "
Colonne.16="611 "
Colonne.17="620 "
Colonne.18="620(1)"
Colonne.19="630 "
Colonne.20="635 "
Colonne.21="631 "
Colonne.22="633 "
Colonne.23="634 "
Colonne.24="637 "
Colonne.25="638 "
Colonne.26="641 "
Colonne.27="640 "
Colonne.28="650 "
Colonne.29="661 "
Colonne.30="662 "
Colonne.31="664 "
Colonne.32="665 "
Colonne.33="666 "
Colonne.34="669 "
Colonne.35="670 "
Colonne.36="467 "
Colonne.37="421 "
Colonne.38="200 "
Colonne.39="629 "
IF NOM_PORT_FINAL='FINALC.1' THEN Ecran='ScrToFront'
IF NOM_PORT_FINAL='FINALW.1' THEN Ecran='ScreenToFront'
SIGNAL ON SYNTAX /* détourne les messages d'erreurs */
IF~SHOW(L,"rexxsupport.library")THEN DO /* teste si la library est présente */
IF~ADDLIB("rexxsupport.library",0,-30,0) THEN DO
SAY "rexxsupport.library est introuvable !"
EXIT
END
END
FinalCopy_II=1
IF~SHOW(p,NOM_PORT_FINAL) THEN DO
FinalCopy_II=0
ADDRESS COMMAND "RUN >NIL: "||REPERTOIRE||" >NIL:"
DO 10
IF SHOW(p,NOM_PORT_FINAL) THEN DO
FinalCopy_II=1
LEAVE
END
CALL DELAY(100)
END
END
IF FinalCopy_II THEN DO
/* 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 */
DO i=1 TO 40
SommeTotale.i=0
END
showyear /* demande l'année actuelle */
AnneeActuelle=result /* et la mémorise dans la variable 'AnneeActuelle'*/
ADDRESS VALUE NOM_PORT_FINAL /* adresse du port ARexx de FinalCopy® */
open NOM_FICHIER /* ouvre la mise en page sous FinalCopy® */
CALL ComposePage1 /* rempli la première page de gauche */
ADDRESS VALUE NOM_PORT_FINAL /* adresse du port ARexx de FinalCopy® */
CALL ComposePage2 /* rempli la première page de droite */
FICHIER="GESTA:Récapitulations/Récap_" || AnneeActuelle /* chemin et nom du fichier sauvegardé */
Save FICHIER
END
EXIT /* sort */
/**********************************************/
/* Rempli chaque colonne de la page de gauche */
/**********************************************/
ComposePage1:
fontsize 6 /* règle la taille de la fonte à 6 */
Ecran /* passe l'écran de FinalCopy® au premier plan */
altdown /* position le curseur en début de page */
ctrldown
cursor up
altup
ctrlup
cursor down /* va à la ligne */
type Tab||AnneeActuelle /* saisie l'année */
cursor down /* va deux fois à la ligne */
cursor down
DO i=1 TO 9 /* positionne le curseur sur la première */
cursor down /* ligne du tableau */
END
DO mois=1 TO 12 /* passe les 12 mois en revus */
ADDRESS VALUE NOM_PORT_LIVRE /* adresse du port Arexx */
DO i=1 TO 18 /* initialise le tableau de calcul des colonnes */
Somme.i=0
END
month mois /* positionne le mois */
numboperations /* demande le nombre d'opérations dans le mois */
NbreLigne=result /* et le mémorise dans la variable 'NbreLigne' */
/* examine toutes les opérations une à une */
DO i=1 TO NbreLigne
operation i
PARSE VAR result . '/' . '/' Nature '/' Somme '/' . '/' NomPoste '/' .
DO C=1 TO 18
IF NomPoste=Colonne.C THEN Somme.C=Somme.C+Somme /* calcule la somme des colonnes */
END
IF Nature="CashInflow" THEN Somme.6=Somme.6+Somme /* calcule la somme des */
IF Nature="Bank2Entry" THEN Somme.7=Somme.7+Somme /* des 'ENTREES' et 'SORTIES' */
IF Nature="Bank1Entry" THEN Somme.8=Somme.8+Somme
IF Nature="Bank1Outflow" THEN Somme.9=Somme.9+Somme
IF Nature="Bank2Outflow" THEN Somme.10=Somme.10+Somme
IF Nature="CashPayment" THEN Somme.11=Somme.11+Somme
END
CALL CreerLignePage1 /* appel la routine de saisie des lignes */
DO C=1 TO 18
SommeTotale.C=SommeTotale.C+Somme.C /* calcule la ligne des totaux */
END
END
CALL TotauxPage1 /* appel la routine de saisie des totaux */
RETURN
/*--------------------------------------------*/
/* Rempli chaque ligne de la page de gauche */
/*--------------------------------------------*/
CreerLignePage1:
ADDRESS VALUE NOM_PORT_FINAL /* adresse du port ARexx de FinalCopy® */
DO C=1 TO 8
type Tab || Somme.C /* saisie les colonnes des 'ENTREES' */
END
type Tab || Tab
DO C=9 TO 18
type Tab || Somme.C /* saisie les colonnes des 'SORTIES' */
END
cursor down /* va deux fois à la ligne */
cursor down
RETURN
/*-----------------------------------------------*/
/* Rempli la dernière ligne de la page de gauche */
/*-----------------------------------------------*/
ToTauxPage1:
ADDRESS VALUE NOM_PORT_FINAL /* adresse du port ARexx de FinalCopy® */
altdown /* position le curseur en début de page */
ctrldown
cursor up
altup
ctrlup
DO L=1 TO 44 /* position le curseur sur la dernière ligne */
cursor down
END
DO C=1 TO 8
type Tab || SommeTotale.C /* saisie le total des colonnes 'ENTREES' */
END
type Tab || Tab
DO C=9 TO 18
type Tab || SommeTotale.C /* saisie le total des colonnes 'SORTIES' */
END
RETURN
/**********************************************/
/* Rempli chaque colonne de la page de droite */
/**********************************************/
ComposePage2:
DO i=1 TO 40 /* positionne le curseur dans le tableau */
cursor down
END
DO mois=1 TO 12 /* passe les mois en revus */
ADDRESS VALUE NOM_PORT_LIVRE /* adresse du port Arexx */
DO i=19 TO 40
Somme.i=0
END
month mois /* position le mois */
numboperations /* demande le nombre d'opérations dans le mois */
NbreLigne=result /* et le mémorise dans la variable 'NbreLigne' */
/* examine toutes les opérations une à une */
DO i=1 TO NbreLigne
operation i
PARSE VAR result . '/' . '/' . '/' Somme '/' . '/' NomPoste '/' .
DO C=19 TO 39
IF NomPoste=Colonne.C THEN Somme.C=Somme.C+Somme
END
IF LEFT(NomPoste,3)="DIV" THEN Somme.40=Somme.40+Somme /* calcule la colonne 'DIVERS' */
END
CALL CreerLignePage2 /* appel la routine de saisie des lignes */
DO C=19 TO 40
SommeTotale.C=SommeTotale.C+Somme.C /* calcule la ligne des totaux */
END
END
CALL TotauxPage2 /* appel la routine de saisie des totaux */
RETURN
/*--------------------------------------------*/
/* Rempli chaque ligne de la page de droite */
/*--------------------------------------------*/
CreerLignePage2:
ADDRESS VALUE NOM_PORT_FINAL /* adresse du port ARexx de FinalCopy® */
DO C=19 TO 39
type Tab||Somme.C /* saisie les colonnes */
END
type Tab||Tab||Somme.40 /* saisie la colonne 'DIVERS' */
cursor down /* va deux fois à la ligne */
cursor down
RETURN
/*-----------------------------------------------*/
/* Rempli la dernière ligne de la page de droite */
/*-----------------------------------------------*/
ToTauxPage2:
ADDRESS VALUE NOM_PORT_FINAL /* Adresse du port ARexx de FinalCopy® */
altdown /* position le curseur en fin de page */
ctrldown
cursor down
altup
ctrlup
DO C=19 TO 40 /* saisie la ligne des totaux */
type Tab || SommeTotale.C
END
type Tab || SommeTotale.40 /* renseigne la colonne 'DIVERS montants' */
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")
ADDRESS VALUE NOM_PORT_FINAL
QUIT (force)
EXIT