/** $VER: ImprimerBC 1.2 (05.08.97) ** Auteur: Fabrice SABATIER ** ** Macros d'impression du bon de commande sous FinalCopy® ou FinalWriter® ** ( Ce script est lancé par GestaStock ) ** ******************************************************** ** NE PAS METTRE DE COMMANDES DESTINNEES A GESTASTOCK ** ******************************************************** ** **/ Tab = '09'x /* caractère de tabulation */ /***************** Définit les variables d'environnement ***********************/ ADDRESS COMMAND "SYS:Rexxc/rx ENV:GestaCompte.ARexxPréfs" /* exécute le script de définitions des préférences */ NOM_PORT_STOCK =GETCLIP('Port_Stock') NOM_PORT_FINAL =GETCLIP('Port_TraitementTexte') REPERTOIRE =GETCLIP('Chemin') /************************************************************************/ NOM_PORT_FINAL=STRIP(NOM_PORT_FINAL,'T','.1') /* supprimer extension .1 */ Index=1 IF~SHOW(L,"rexxsupport.library")THEN DO 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||'.1') THEN DO FinalCopy_II=0 ADDRESS COMMAND "RUN >NIL: "||REPERTOIRE||" >NIL:" CALL TestPort END CALL LectureDesFournisseurs /* lecture des noms des fournisseurs */ ADDRESS VALUE NOM_PORT_FINAL||'.1' IF FinalCopy_II THEN DO DO Index=1 TO NomFours.0 IF NOM_PORT_FINAL='FINALC' THEN open "GESTA:FeuillesdeStyle/BonDeCommande.final" /* ouvre le fichier BondeCommande.final */ IF NOM_PORT_FINAL='FINALW' THEN open "GESTA:FeuillesdeStyle/BonDeCommande.fw" /* ouvre le fichier BondeCommande.fw */ CALL TestPort ADDRESS VALUE NOM_PORT_FINAL||'.'||Index /* adresse du port ARexx de FinalCopy® */ CALL LectureDesDonnees /* lecture des données */ CALL MiseEnPageEntete /* mise en page fait par le traitement de texte */ CALL MiseEnPageArticles /* mise en page fait par le traitement de texte */ CALL MiseEnPageMontant /* mise en page fait par le traitement de texte */ fichier="GESTA:BonsDeCommande/Bon_"||Numero /* chemin et nom du fichier sauvegardé */ SAVE fichier ADDRESS COMMAND 'delete ram:BC_'||NomFours.index /* libère la mémoire */ END END ADDRESS COMMAND 'delete ram:BC_Fournisseurs' /* libère la mémoire */ EXIT /*------------------------------------------------------------------*/ /* Attend que la page soit chargée sous FinalCopy® ou FinalWriter® */ /*------------------------------------------------------------------*/ TestPort: DO 10 IF SHOW(p,NOM_PORT_FINAL||'.'||Index) THEN DO FinalCopy_II=1 LEAVE END CALL DELAY(100) END RETURN /*-----------------------------------------------------------*/ /* Mise en page sous FinalCopy® ou FinalWriter® de l'entête */ /*-----------------------------------------------------------*/ MiseEnPageEntete: cursor down /* passe 5 lignes */ cursor down cursor down cursor down cursor down type Tab /* envoie le caractère de tabulation (09 en ASCII) */ type Numero /* envoie le numéro du BC au traitement de texte */ type Tab /* envoie le caractère de tabulation (09 en ASCII) */ type Date /* envoie la date au traitement de texte */ cursor down /* passe 3 lignes */ cursor down cursor down DO i=1 TO 5 /* saisie les 5 lignes de l'adresse du fournisseur */ type Tab /* envoie le caractère de tabulation (09 en ASCII) */ type LEFT(Adresse.i,26) cursor down END RETURN /*-----------------------------------------------------------*/ /* Mise en page des articles commandés */ /*-----------------------------------------------------------*/ MiseEnPageArticles: cursor down /* passe 4 lignes */ cursor down cursor down cursor down DO Ligne=1 TO NbreArticles /* Saisie les articles */ PARSE VAR Articles.Ligne Ref '|' Designation '|' Qte '|' Prix '|' Montant type Tab /* envoie le caractère de tabulation (09 en ASCII) */ type Ref /* envoie la Référence au traitement de texte */ type Tab /* envoie le caractère de tabulation (09 en ASCII) */ type Designation /* envoie la désignation au traitement de texte */ type Tab /* envoie le caractère de tabulation (09 en ASCII) */ type Qte /* envoie la quantité au traitement de texte */ type Tab /* envoie le caractère de tabulation (09 en ASCII) */ type Prix /* envoie le prix HT au traitement de texte */ type Tab /* envoie le caractère de tabulation (09 en ASCII) */ type Montant /* envoie le montant au traitement de texte */ cursor down END RETURN /*-----------------------------------------------------------*/ /* Mise en page des différents montants */ /*-----------------------------------------------------------*/ MiseEnPageMontant: altdown /* positionne le curseur en début de page */ ctrldown cursor up altup ctrlup DO i=1 TO 65 /* positionne le curseur dans la case après le tableau */ cursor down END type Tab type MontantTotal /* envoie le montant total au traitement de texte */ RETURN /*-----------------------------------------------------------*/ /* Lecture du fichier des fournisseurs consernés */ /*-----------------------------------------------------------*/ LectureDesFournisseurs: x=OPEN('infos','ram:BC_Fournisseurs','R') /* ouvre le fichier créé par GestaStock */ DO i=1 BY 1 WHILE ~EOF('infos') /* lit ce fichier jusqu'à la fin */ NomFours.i=READLN('infos') /* et le place dans le tableau indicé i */ END NomFours.0=i-2 /* place le nombre de fournisseurs en .0 */ x=CLOSE('infos') /* ferme le fichier */ RETURN /*-----------------------------------------------------------*/ /* Lecture des bons de commande par fournisseurs */ /*-----------------------------------------------------------*/ LectureDesDonnees: x=OPEN('infos','ram:BC_'NomFours.index,'R') /* ouvre le fichier créé par GestaStock */ Numero=READLN('infos') Date=READLN('infos') /* lit le numéro du BC */ NbreArticles=READLN('infos') /* lit le nombre d'articles dans le tableau */ DO i=1 TO 5 Adresse.i=READLN('infos') /* lit les lignes de l'adresse */ END DO i=1 TO NbreArticles Articles.i=READLN('infos') /* lit les lignes des articles */ END MontantTotal=READLN('infos') /* lit la ligne du montant total */ x=CLOSE('infos') /* ferme le fichier */ RETURN