/** $VER: Export 1.4 (05.01.98) ** Auteur: Fabrice SABATIER ** ** Commande ARexx sous GestaLivre V2.0. ** ** Export des transactions vers GestaCompte Banque V2.1 ** **/ OPTIONS RESULTS NL = '0a'x Poste.1 ="100000" /* Définition de la correspondance entre les comptes comptable */ Poste.2 ="100000" /* de GestaLivre et les postes de GestaBanque */ Poste.3 ="100000" Poste.4 ="100000" Poste.5 ="100000" Poste.6 ="100000" Poste.7 ="100000" Poste.8 ="100000" Poste.9 ="100000" Poste.10="100000" Poste.11="100000" Poste.12="100000" Poste.13="100000" Poste.14="100000" Poste.15="100000" Poste.16="100000" Poste.17="100000" Poste.18="100000" Poste.19="100000" Poste.20="100000" Poste.21="100000" Poste.22="100000" Poste.23="100000" Poste.24="100000" Poste.25="100000" Poste.26="100000" Poste.27="100000" Poste.28="100000" Poste.29="100000" Poste.30="100000" /***************** 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_PORT_BANQUE1 =GETCLIP('Port_Banque1') NOM_PORT_BANQUE2 =GETCLIP('Port_Banque2') NOM_BANQUE1 =GETCLIP('Banque1') NOM_BANQUE2 =GETCLIP('Banque2') NOM_ECRAN1 =GETCLIP('Ecran_Banque1') NOM_ECRAN2 =GETCLIP('Ecran_Banque2') /************************************************************************/ SIGNAL ON SYNTAX /* détourne les messages d'erreurs */ IF~SHOW(L,"rexxsupport.library")THEN DO IF~ADDLIB("rexxsupport.library",0,-30,0) THEN DO SAY "rexxsupport.library est introuvable !" EXIT END END /* ouvre la library rexxreqtools.library pour les messages d'erreurs */ call addlib("rexxreqtools.library",0,-30,0) /* Ouverture de la première banque */ FermerLivre=FALSE IF~SHOW(p,NOM_PORT_BANQUE1) THEN DO FermerLivre=TRUE x=PRAGMA("STACK",10240) /* monte la pile à 10Ko */ ADDRESS COMMAND 'run Gesta:GestaCompte '||NOM_BANQUE1||' s='||NOM_ECRAN1' p='||NOM_PORT_BANQUE1 DO 10 IF SHOW(p,NOM_PORT_BANQUE1) THEN LEAVE CALL DELAY(100) END END ADDRESS VALUE NOM_PORT_LIVRE /* adresse du port Arexx du livre de caisse */ wait 5 /* attent pendant 5 secondes */ showyear /* recupère l'année sélectionnée sous GestaLivre */ AnneeEnCours=result exportdata gest "ram:fichier_export" display x=OPEN('infos','ram:fichier_export','R') /* ouvre le fichier exporté */ DO i=1 BY 1 WHILE ~EOF('infos') /* lit ce fichier jusqu'à la fin */ ligne.i=READLN('infos') /* et le place dans le tableau indicé i */ END ligne.0=i-2 /* place le nombre de lignes du tableau en 0 */ x=CLOSE('infos') /* ferme le fichier */ IF ligne.0=0 THEN DO ADDRESS VALUE NOM_PORT_BANQUE1 /* adresse du port Arexx de GestaCompte Banque1 */ quit /* ferme si aucune transaction à importer */ ADDRESS COMMAND 'delete ram:fichier_export' /* libère la mémoire */ EXIT END enregistre="NON" ADDRESS VALUE NOM_PORT_BANQUE1 /* adresse du port Arexx de GestaCompte Banque1 */ year AnneeEnCours /* positionne l'année */ load force /* charge le fichier */ display DO i=1 TO ligne.0 /* passe toutes les lignes du tableau en revue */ PARSE VAR ligne.i Banque operation /* récupère le type de banque */ transaction= DELSTR(operation,1,1) /* supprime l'espace de début */ Compte=RIGHT(transaction,6) /* récupère le compte comptable */ transaction=LEFT(transaction,LENGTH(transaction)-7) /* supprime le compte */ IF Banque= "Bank1" THEN DO DO Index=1 TO 30 /* conversion des comptes en poste pour GestaBanque */ IF Compte=Poste.Index THEN LEAVE END enter transaction'|'Index /* envoi la transaction à GestaCompte */ enregistre="OUI" month RIGHT(LEFT(transaction,5),2) /* calcule le mois de la transaction */ display /* affiche la transaction */ END END IF enregistre="OUI" THEN save force IF FermerLivre=TRUE THEN quit /* referme la banque */ ELSE DO PARSE VAR transaction jour '/' MoisEnCours '/' . month MoisEnCours display /* afficher les nouvelles écritures */ END enregistre="NON" /* Ouverture de la seconde banque */ FermerLivre=FALSE IF~SHOW(p,NOM_PORT_BANQUE2) THEN DO FermerLivre=TRUE x=PRAGMA("STACK",10240) /* monte la pile à 10Ko */ ADDRESS COMMAND 'run Gesta:GestaCompte '||NOM_BANQUE2||' s='||NOM_ECRAN2' p='||NOM_PORT_BANQUE2 DO 10 IF SHOW(p,NOM_PORT_BANQUE2) THEN LEAVE CALL DELAY(100) END END ADDRESS VALUE NOM_PORT_LIVRE /* adresse du port Arexx du livre de caisse */ wait 5 /* attent pendant 5 secondes */ ADDRESS VALUE NOM_PORT_BANQUE2 /* adresse du port Arexx de GestaCompte Banque2 */ year AnneeEnCours /* positionne l'année */ load force /* charge le fichier */ display DO i=1 TO ligne.0 /* passe toutes les lignes du tableau en revue */ PARSE VAR ligne.i Banque operation /* Récupère le type de banque */ transaction= DELSTR(operation,1,1) /* supprime l'espace de début */ Compte=RIGHT(transaction,6) /* récupère le compte comptable */ transaction=LEFT(transaction,LENGTH(transaction)-7) /* supprime le compte */ IF Banque= "Bank2" THEN DO DO Index=1 TO 30 /* conversion des comptes en poste pour GestaBanque */ IF Compte=Poste.Index THEN LEAVE END enter transaction'|'Index /* envoi la transaction à GestaCompte */ enregistre="OUI" month RIGHT(LEFT(transaction,5),2) /* calcule le mois de la transaction */ display /* affiche la transaction */ END END IF enregistre="OUI" THEN save force IF FermerLivre=TRUE THEN quit /* referme la banque */ ELSE DO PARSE VAR transaction jour '/' MoisEnCours '/' . month MoisEnCours display /* afficher les nouvelles écritures */ END ADDRESS COMMAND 'delete ram:fichier_export' /* libère la mémoire */ ADDRESS VALUE NOM_PORT_LIVRE /* adresse du port Arexx du livre de caisse */ display EXIT /* Traite les messages d'erreurs */ SYNTAX: IF RC=13 THEN call rtezrequest( " Environnement serveur non trouvé !!!" || NL ||NL ||, " Les noms des ports ARexx doivent être :" || NL || NL ||, " LIVRE : " || NOM_PORT_LIVRE || NL ||, " BANQUE1 : " || NOM_PORT_BANQUE1 || NL ||, " BANQUE2 : " || NOM_PORT_BANQUE2 || NL || NL ||, "-------------------------------------------------" || NL || NL ||, "Note : Pour réparer ceci, veuillez fermer le module"|| NL ||, " 'Livre' et modifier le type d'outil 'REXX' des"|| NL ||, " trois modules, 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),"Terminer","Informations","rt_pubscrname="||NOM_PORT_LIVRE "rt_font=Gestacompte.font/8") EXIT