/** $VER: ImprimerBC 1.2 (05.05.98) ** Auteur: Fabrice SABATIER ** ** Macros d'impression du bon de commande sous WordWoth7® ** ( 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 WW=1 IF~SHOW(p,NOM_PORT_FINAL||'.1') THEN DO WW=0 ADDRESS COMMAND "WBStarter "||REPERTOIRE||" >NIL:" CALL TestPort END CALL LectureDesFournisseurs /* lecture des noms des fournisseurs */ ADDRESS VALUE NOM_PORT_FINAL||'.1' IF WW THEN DO DO Index=1 TO NomFours.0 Open Filename "GESTA:FeuillesdeStyle/BondeCommande.ww" /* ouvre le fichier BondeCommande.ww */ CALL TestPort ADDRESS VALUE NOM_PORT_FINAL||'.'||Index /* adresse du port ARexx de Wordworth7® */ CALL LectureDesDonnees /* lecture des données */ CALL MiseEnPageEntete /* mise en page fait par Wordworth7® */ CALL MiseEnPageArticles /* mise en page fait par Wordworth7® */ CALL MiseEnPageMontant /* mise en page fait par Wordworth7® */ fichier="GESTA:BonsDeCommande/Bon_"||Numero /* chemin et nom du fichier sauvegardé */ SAVEAS NAME 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 Wordworth7® */ /*-----------------------------------------------------------*/ TestPort: DO 10 IF SHOW(p,NOM_PORT_FINAL||'.'||Index) THEN DO WW=1 LEAVE END CALL DELAY(100) END RETURN /*-----------------------------------------------------------*/ /* Mise en page sous Wordworth7® de l'entête */ /*-----------------------------------------------------------*/ MiseEnPageEntete: GotoLine 4 Text Tab /* envoie le caractère de tabulation (09 en ASCII) */ Text Numero /* envoie le numéro du BC à Wordworth7® */ Text Tab /* envoie le caractère de tabulation (09 en ASCII) */ Text Date /* envoie la date à Wordworth7® */ GotoLine 8 Font SIZE "14" BOLD DO i=1 TO 5 /* saisie les 5 lignes de l'adresse du fournisseur */ Text Tab /* envoie le caractère de tabulation (09 en ASCII) */ Text LEFT(Adresse.i,26) Line 1 END RETURN /*-----------------------------------------------------------*/ /* Mise en page des articles commandés */ /*-----------------------------------------------------------*/ MiseEnPageArticles: GotoLine 17 Font SIZE "8" PLAIN DO Ligne=1 TO NbreArticles /* Saisie les articles */ PARSE VAR Articles.Ligne Ref '|' Designation '|' Qte '|' Prix '|' Montant Text Tab /* envoie le caractère de tabulation (09 en ASCII) */ Text Ref /* envoie la Référence à Wordworth7® */ Text Tab /* envoie le caractère de tabulation (09 en ASCII) */ Text Designation /* envoie la désignation à Wordworth7® */ Text Tab /* envoie le caractère de tabulation (09 en ASCII) */ Text Qte /* envoie la quantité à Wordworth7® */ Text Tab /* envoie le caractère de tabulation (09 en ASCII) */ Text Prix /* envoie le prix HT à Wordworth7® */ Text Tab /* envoie le caractère de tabulation (09 en ASCII) */ Text Montant /* envoie le montant à Wordworth7® */ Line 1 END RETURN /*-----------------------------------------------------------*/ /* Mise en page des différents montants */ /*-----------------------------------------------------------*/ MiseEnPageMontant: GotoLine 64 /* positionne le curseur en fin de page */ Font SIZE "12" BOLD Text Tab Text MontantTotal /* envoie le montant total à Wordworth7® */ 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