Page précédente Table des matières Page suivante


6. LISTING DES PROGRAMMES. (suite.)

EX(pédition)_5_MEN(suelle) COMMAND FILE

*******************************************************************************************
Ce programme calcule, par mois ou par année, les expéditions hors fivondronana par NATURE DES PRODUITS et par EXPEDITEUR.
Le programme ne traite que les informations des expéditions et non des exportations.
Les données ont été transférées sur disque dur pour raison de sécurité.
Les résultats sont présentés mensuellement par expéditeur ou annuellement pour tous les expéditeurs importants connus.
*******************************************************************************************

* initialisation et démarrage du sous-programme.
SET SAFETY OFF
USE C:Zipzip

* création de trois fichiers additionels pour traitement plus rapide.
COPY STRUCTURE TO C: Zip_4.DBF
COPY STRUCTURE TO C: Zip_3.DBF
COPY STRUCTURE TO C: Zip_2.DBF
USE

* sélection du mois de démarrage.
SET TALK OFF
IF VAL (Mois) < 10
   Mois = STR(VAL(Mois),2)
ELSE
   Mois = STR(VAL(Mois),2)
ENDIF
IF Des ="1'
   Tel = VAL (Mois)
ELSE
   Tel = 1
ENDIF

* initialisation des variables de travail.
STORE Fiv TO Twee
STORE .T. TO Process
STORE 1 TO Count,Exp
STORE '1' TO Part, Boucle

* copie des données sur fichier.
USE C:Zip_3
APPEND FROM C:Zipzip FOR(DESTIN < "700")
INDEX ON EXPEDITEUR TO C:Expdx.NDX
USE &&closeZip_3

* boucle principale.
DO WHILE Process

* si choix est "résultats mensuels par fivondronana".
   IF Des = "1"
* boucle de calculs par mois (mois 13 donne les résultats annuels).
      DO WHILE Tel < 14 &&13
         SET CONSOLE ON
         SET TALK OFF
         STORE SPACE (2) TO X
         IF Tel < 10
            STORE '0'+STR(Tel,1) TO X
         ELSE
            STORE STR (Tel,2) TO X
         ENDIF

* si mois est < à 13 = calcul par mois.
         IF Tel < 13
            USE C:Zip 4
            APPEND FROM C:Zip_3 FOR(SUBSTR<DTOC<DATE),4,2) = X)
            INDEX ON EXPEDITEUR TO C: Expd_2x.NDX
            USE &&closeZip_4
         ELSE
            USE C:Zip_4
            DELETE ALL
            PACK
            APPEND FROM C:Zip_3
            INDEX ON EXPEDITEOR TO C:Expd_2x.NDX
            USE &&CloseZip_4
         ENDIF

* initialisation de la variable expéditeur.
         IF Exp < 100
            STORE '00'+STR(Exp,1) TO Y
         ENDIF

* boucle des expéditeurs importants connus.
         DO WHILE Exp < 700

* impression de l'entête à chaque fois qu'un nouveau mois commence.
         IF (Part ="1' .AND. Boucle ="1')
             STORE Twee TO Fiv
             DO Setup
             DO Line
         ENDIF
         STORE '2' TO Boucle

* initialisation des expéditeurs àfin d'éffectuer une recherche rapide.
         IF Exp < 100
            STORE '00'+STR(Exp,1) TO Y, Key
         ELSE
            STORE STR(Exp,3) TO Y, Key
         ENDIF
         SET TALK OFF

* recherhe des espéditeurs sur fichiers indexé.
         USE C:Zip_3 INDEX C:Expdx
         FIND &Key

* si recherche fructueuse, calculs et impression des résultats.
         IF FOUND()
            USE C:Zip_4 INDEX C:Expd_2x
            FIND &Key
            IF FOUND()
               USE C:Zip_2.DBF
               APPEND FROM C:Zip_4 FOR (EXPEDITEUR = Y)
               IF .NOT. EOF()

* initialisation des variables à zéro.
STORE 0 TO Q1,Q2,Q3,Q4,Q5,Q6,Q7,Q8,Q9,Q10,Q11,Q12,Q13,Q14,Q15,Q16,Q17,Q18
STORE 0 TO Q19,Q20,V19,V20
STORE 0 TO V1,V2,V3,V4,V5,V6,V7,V8,V9,V10,V11,V12,V13,V14,V15,V16,V17,V18

* calcul des résultats.
                  SUM QUANTITE,VALEUR TO Q1,V1 FOR(NAT_PROD = "01")
                  SUM QUANTITE,VALEUR TO Q2,V2 FOR(NAT_PROD = "02")
                  SUM QUANTITE,VALEUR TO Q3,V3 FOR(NAT_PROD = "03")
                  SUM QUANTITE,VALEUR TO Q4,V4 FOR(NAT_PROD = "04")
                  SUM QUANTITE,VALEUR TO Q5,V5 FOR(NAT_PROD = "05")
                  SUM QUANTITE,VALEUR TO Q6,V6 FOR(NAT_PROD = "06")
                  SUM QUANTITE,VALEUR TO Q7,V7 FOR(NAT_PROD = "07")
                  SUM QUANTITE,VALEUR TO Q8,V8 FOR(NAT_PROD = "08")
                  SUM QUANTITE,VALEUR TO Q9,V9 FOR(NAT_PROD = "09")
                  SUM QUANTITE,VALEUR TO Q10,V10 FOR(NAT_PROD = "010")
                  SUM QUANTITE,VALEUR TO Q11,V11 FOR(NAT_PROD = "011")
                  SUM QUANTITE,VALEUR TO Q12,V12 FOR(NAT_PROD = "012")
                  SUM QUANTITE,VALEUR TO Q13,V13 FOR(NAT_PROD = "013")
                  SUM QUANTITE,VALEUR TO Q14,V14 FOR(NAT_PROD = "014")
                  SUM QUANTITE,VALEUR TO Q15,V15 FOR(NAT_PROD = "15")
                  SUM QUANTITE,VALEUR TO Q16,V16 FOR(NAT_PROD = "16")
                  SUM QUANTITE,VALEUR TO Q17,V17 FOR(NAT_PROD = "17")
                  SUM QUANTITE,VALEUR TO Q18,V18 FOR(NAT_PROD = "18")
                  SUM QUANTITE,VALEUR TO Q19,V19 FOR(NAT_PROD = "19")
                  SUM QUANTITE,VALEUR TO Q20,V20
                  DELETE ALL
                  PACK
                  USE &&closeZip_2

* impression du nom de l'expéditeur.
                  SET CONSOLE OFF
                  STORE Y TO Chx
                  SET PRINT ON
                  ?? CHR (15)
                  DO CHX_EXP

* impression des résultats si valeurs positives.
                  SET PRINT ON
                  SET CONSOLE OFF
                  IF (Q20 > 0 .OR. V20 > 0)

?? " Q"+STR (Q1,8)+STR(Q2,8)+STR(Q3,8)+" | "+STR(Q4,8)+STR(Q5,8)+STR(Q6,8);
+" | "+STR(Q7,8)+STR(Q8,8)+STR(Q9,8)+" | "+STR(Q10,8)+STR(Q11,8)+" | ";
+STR(Q12,8)+" | "+STR(Q13,8)+" | "+STR(Q14,8)+" | "+STR(Q15,8)+" | "
?? STR(Q16,8)+" | "+STR(Q17,8)+" | "+STR(Q18,8)+" | "+STR(Q19,8)+" | ";
+STR (Q20,14)+" |"
? "|"+SPACE(20)+"V"+STR(V1/1000,8)+STR(V2/1000,8)+STR(V3/1000,8)+" | ";
+STR(V4/1000,8)+STR(V5/1000,8)+STR(V6/1000,8)+" | "+STR(V7/1000,8);
+STR(V8/1000,8)+STR(V9/1000,8)+" | "+STR(V10/1000,8)
?? STR(V11/1000,8)+" | "+STR(V12/1000,8)+" | "+STR(V13/1000,8)+" | ";
+STR(V14/1000,8)+" | "+STR(V15/1000,8)+" | "+STR(V16/1000,8)+" | ";
+STR(V17/1000,8)+" | "+STR(V18/1000,8)+" | "+STR(V19/1000,8)+" | "
?? STR(V20/1000,14)+" | "
                    ELSE
                       ?? CHR(15)
   ?? "   pas de donnees d'expedition |_| ou donnees manquantes |_|…"
                    ENDIF &&Q,V20>0
                    SET PRINT OFF

* remise des variables à zéro.

      STORE 0 TO Q1,Q2,Q3,Q4,Q5,Q6,Q7,Q8,Q9,Q10,Q11,Q12,Q13,Q14,Q15,Q16,Q17
      STORE 0 TO Q18,Q19,Q20,V1,V2,V3,V4,V5,V6,V7,V8,V9,V10,V11,V12,V13,V14
      STORE 0 TO V15,V16,V17,V18,V19,V20
                 ENDIF &&.not.eof()
              ENDIF &&Found()
              USE &&closeZip_4
          ENDIF &&Found()
          USE &&closeZip_3

* passage á l'expéditeur suivant.

          DO CASE
             CASE Y ="001'
                  STORE (Exp+99) TO Exp
             CASE Y ="120'
                  STORE (Exp+80) TO Exp
             CASE Y ="250'
                  STORE (Exp+50) TO Exp
             CASE Y ="310'
                  STORE (Exp+90) TO Exp
             CASE Y ="455'
                  STORE (Exp+45) TO Exp
             CASE Y ="510'
                  STORE (Exp+90) TO Exp
             CASE Y ="660'
                  STORE (Exp+39) TO Exp
             CASE Y ="699'
                  STORE (Exp+10) TO Exp
             OTHERWISE
                  STORE (Exp+1) TO Exp
             ENDCASE

* si tous les expéditeurs ont été passé en revue, on calcule le total.
             IF EXP = 709

* initialisation des variables à zéro.
     STORE 0 TO Q1,Q2,Q3,Q4,Q5,Q6,Q7,Q8,Q9,Q10,Q11,Q12,Q13,Q14,Q15,Q16,Q17
     STORE 0 TO Q18,Q19,Q20,V1,V2,V3,V4,V5,V6,V7,V8,V9,V10,V11,V12,V13,V14
     STORE 0 TO V15,V16,V17,V18,V19,V20
           DO LINE
           SET CONSOLE OFF

* sélection selon que l'on veut des résultats mensuels ou annuels.
           IF Tel < 13
              USE C:Zip 2.DBF
              APPEND FROM C:Zip_3 FOR (SUBSTR(DTOC(DATE),4,2) = X)
           ELSE
              USE C:Zip_4.DBF
           ENDIF

* calculs des résultats totaux.
           SUM QUANTITE,VALEUR TO Q1,V1 FOR(NAT_PROD = "01")
           SUM QUANTITE,VALEUR TO Q2,V2 FOR(NAT_PROD = "02")
           SUM QUANTITE,VALEUR TO Q3,V3 FOR(NAT_PROD = "03")
           SUM QUANTITE,VALEUR TO Q4,V4 FOR(NAT_PROD = "04")
           SUM QUANTITE,VALEUR TO Q5,V5 FOR(NAT_PROD = "05")
           SUM QUANTITE,VALEUR TO Q6,V6 FOR(NAT_PROD = "06")
           SUM QUANTITE,VALEUR TO Q7,V7 FOR(NAT_PROD = "07")
           SUM QUANTITE,VALEUR TO Q8,V8 FOR(NAT_PROD = "08")
           SUM QUANTITE,VALEUR TO Q9,V9 FOR(NAT_PROD = "09")
           SUM QUANTITE,VALEUR TO Q10,V10 FOR(NAT_PROD = "10")
           SUM QUANTITE,VALEUR TO Q11,V11 FOR(NAT_PROD = "11")
           SUM QUANTITE,VALEUR TO Q12,V12 FOR(NAT_PROD = "12")
           SUM QUANTITE,VALEUR TO Q13,V13 FOR(NAT_PROD = "13")
           SUM QUANTITE,VALEUR TO Q14,V14 FOR(NAT_PROD = "14")
           SUM QUANTITE,VALEUR TO Q15,V15 FOR(NAT_PROD = "15")
           SUM QUANTITE,VALEUR TO Q16,V16 FOR(NAT_PROD = "16")
           SUM QUANTITE,VALEUR TO Q17,V17 FOR(NAT_PROD = "17")
           SUM QUANTITE,VALEUR TO Q18,V18 FOR(NAT_PROD = "18")
           SUM QUANTITE,VALEUR TO Q19,V19 FOR(NAT_PROD = "19")
           SUM QUANTITE,VALEUR TO Q20,V20
           DELETE ALL
           PACK
           USE &&closeZip_2

* impression des résultats totaux (mensuels ou annuels).
           SET PRINT ON
           ?? CHR (15)
           ? " | "+"TOTAUX"
?? " QUANTITE"+SPACE(4)+STR(Q1,8)+STR(Q2,8)+STR(Q3,8)+" | "+STR(Q4,8);
+STR(Q5,8)+STR(Q6,8)+" | "+STR(Q7,8)+STR(Q8,8)+STR(Q9,8)+" | "+STR(Q10,8);
+STR(Q11,8)+" | "+STR(Q12,8)+" | "+STR(Q13,8)+" | "+STR(Q14,8)
?? " | "+STR(Q15,8)+" | "+STR(Q16,8)+" | "+STR(Q17,8)+" | "+STR(Q18,8)+" | ";
+STR(Q19,8)+" | "+STR(Q20,14)+" |"
? "|"+SPACE(8)+"VALEUR"+SPACE(4)+STR(V1/1000,8)+STR(V2/1000,8);
+STR(V3/1000,8)+" | "+STR(V4/1000,8)+STR(V5/1000,8)+STR(V6/1000,8)+" | ";
+STR(V7/1000,8)+STR(V8/1000,8)+STR(V9/1000,8)+" | "+STR(V10/1000,8)
?? STR(V11/1000,8)+" | "+STR(V12/1000,8)+" | "+STR(V13/1000,8)+" | ";
+STR(V14/1000,8)+" | "+STR(V15/1000,8)+" | "+STR(V16/1000,8)+" | ";
+STR(V17/1000,8)+" | "+STR(V18/1000,8)+" | "+STR(V19/1000,8)
?? " | "+STR(V20/1000,14)+" | "
           SET PRINT OFF
           DO LINE
           USE C:Zip 4 INDEX C:Expd_2x
           DELETE ALL
           PACK
           USE &&closeZip_4
        ENDIF &&Exp=709

* si les totaux ont été imprimés ont passe au mois suivant en fermant les
* boucles.
           IF Exp= 709
              IF Tel < 13 &&12
                 STORE "1" TO Part, Boucle
              ELSE
                 STORE Tel + 2 TO Tel
                 STORE "2" TO Boucle
              ENDIF
           ENDIF &&Exp=709
        ENDDO &&Exp<700
        SET PRINT ON
        EJECT
        SET PRINT OFF

* finalisation de la boucle des mois.
        IF (Tel > 13 .AND. Boucle ="2")
           STORE .F. TO Process
           STORE Tel + 5 TO Tel
        ELSE
           IF (Tel < 14.AND. Boucle ="1")
              STORE Tel + 1 TO Tel
              STORE 1 TO Count, Exp
              STORE .T. TO Process
           ENDIF
        ENDIF
     ENDDO Tel

* fin de traitement de la boucle des calculs mensuels par fivondronana.

 ELSE

* debut de traitement de la boucle des calculs annuels par fivondronana et
* par expéditeur.
    IF Des = "2"
       STORE "1" TO Part, Boucle
       SET TALK OFF
       SET CONSOLE OFF
       STORE 1 TO Exp

* boucle de calcul pour tous les expéditeurs importants connus.
       DO WHILE Exp < 700

* impression de l'entête.
       IF (Part = "1" .AND. Boucle = "1")
          STORE Twee TO Fiv
          DO Setup
          DO Line
       ENDIF
       STORE "2" TO Boucle

* initialisation des variables de travail.
       IF Exp < 100
           STORE '00'+STR(Exp,1) TO Y,Key
       ELSE
           STORE STR(Exp,3) TO Y,Key
       ENDIF
       SET CONSOLE OFF
       STORE 0 TO Q1,Q2,Q3,Q4,Q5,Q6,Q7,Q8,Q9,Q10,Q11,Q12,Q13,Q14,Q15,Q16
       STORE 0 TO Q17,Q18,Q19,Q20,V17,V18,V19,V20
       STORE 0 TO V1,V2,V3,V4,V5,V6,V7,V8,V9,V10,V11,V12,V13,V14,V15,V16

* recherche sur fichier indexé.
       USE C:Zip_3 INDEX Expdx
       FIND &Key

* si recherche fructueuse, calcul et impression des résultats.
       IF FOUND()
          USE C:Zip 2.DBF
          APPEND FROM C:Zip_3 FOR (EXPEDITEUR = Y)
          IF .NOT. EOF()
             SUM QUANTITE,VALEUR TO Q1,V1 FOR(NAT_PROD = "01")
             SUM QUANTITE,VALEUR TO Q2,V2 FOR(NAT_PROD = "02")
             SUM QUANTITE,VALEUR TO Q3,V3 FOR(NAT_PROD = "03")
             SUM QUANTITE,VALEUR TO Q4,V4 FOR(NAT_PROD = "04")
             SUM QUANTITE,VALEUR TO Q5,V5 FOR(NAT_PROD = "05")
             SUM QUANTITE,VALEUR TO Q6,V6 FOR(NAT_PROD = "06")
             SUM QUANTITE,VALEUR TO Q7,V7 FOR(NAT_PROD = "07")
             SUM QUANTITE,VALEUR TO Q8,V8 FOR(NAT_PROD = "08")
             SUM QUANTITE,VALEUR TO Q9,V9 FOR(NAT_PROD = "09")
             SUM QUANTITE,VALEUR TO Q10,V10 FOR(NAT_PROD = "10")
             SUM QUANTITE,VALEUR TO Q11,V11 FOR(NAT_PROD = "11")
             SUM QUANTITE,VALEUR TO Q12,V12 FOR(NAT_PROD = "12")
             SUM QUANTITE,VALEUR TO Q13,V13 FOR(NAT_PROD = "13")
             SUM QUANTITE,VALEUR TO Q14,V14 FOR(NAT_PROD = "14")
             SUM QUANTITE,VALEUR TO Q15,V15 FOR(NAT_PROD = "15")
             SUM QUANTITE,VALEUR TO Q16,V16 FOR(NAT_PROD = "16")
             SUM QUANTITE,VALEUR TO Q17,V17 FOR(NAT_PROD = "17")
             SUM QUANTITE,VALEUR TO Q18,V18 FOR(NAT_PROD = "18")
             SUM QUANTITE,VALEUR TO Q19,V19 FOR(NAT_PROD = "19")
             SUM QUANTITE,VALEUR TO Q20,V20
             DELETE ALL
             PACK
             USE &&closeZip_2

* impression du nom de l'expéditeur.
             STORE Y TO Chx
             SET PRINT ON
             ?? CHR (15)
             DO CHX_EXP

* impression des résultats si valeurs sont positives.
             SET PRINT ON
             SET CONSOLE OFF
             IF (Q20 > 0 .OR. V20 > O)

?? " Q"+STR(Q1,8)+STR(Q2,8)+STR(Q3,8)+" | "+STR(Q4,8)+STR(Q5,8)+STR(Q6,8);
+" | "+STR(Q7,8)+STR(Q8,8)+STR(Q9,8)+" | "+STR(Q10,8)+STR(Q11,8)+" | ";
+STR(Q12,8)+" | "+STR(Q13,8)+" | "+STR(Q14,8)+" | "+STR(Q15,8)+" | "
?? STR(Q16,8)+" | "+STR(Q17,8)+" | "+STR(Q18,8)+" | "+STR(Q19,8)+" | ";
+STR(Q20,14)+" | "
? "|"+SPACE(20)+"V"+STR(V1/1000,8)+STR(V2/1000,8)+STR(V3/1000,8)+" | ";
+STR(V4/1000,8)+STR(V5/1000,8)+STR(V6/1000,8)+" | "+STR(V7/1000,8);
+STR(V8/1000,8)+STR(V9/1000,8)+" | "+STR(V10/1000,8)
?? STR(V11/1000,8)+" | "+STR(V12/1000,8)+" | "+STR(V13/1000,8)+" | ";
+STR(V14/1000,8)+" | "+STR(V15/1000,8)+" | "+STR(V16/1000,8)+" | ";
+STR(V17/1000,8)+" | "+STR(V18/1000,8)+" | "+STR(V19/1000,8)+" | "
?? STR(V20/1000,14)+" | "
             ELSE
                ?? CHR(15)
   ?? " pas de données d'expédition |_| ou données manquantes |_| …"
             ENDIF &&Q.V20>0
             SET PRINT OFF
          ENDIF &&.not.eof()
       ENDIF &&Found()
       USE &&closeZip_3

* passage à l'expéditeur suivant.
             DO CASE
                CASE Y ="001'
                     STORE (Exp+99) TO Exp
                CASE Y ="120'
                     STORE (Exp+80) TO Exp
                CASE Y ="250'
                     STORE (Exp+50) TO Exp
                CASE Y ="310'
                     STORE (Exp+90) TO Exp
                CASE Y ="455'
                     STORE (Exp+45) TO Exp
                CASE Y ="510'
                     STORE (Exp+90) TO Exp
                CASE Y ="660'
                     STORE (Exp+39) TO Exp
                CASE Y ="699'
                     STORE (Exp+10) TO Exp
                OTHERWISE
                     STORE (Exp+1) TO Exp
             ENDCASE
             
* si tous les expéditeurs connus ont été passés en revue, on calcule les
* totaux.
             IF Exp = 709
                DO LINE
                SET CONSOLE OFF
                USE C:Zip 2.DBF
                APPEND FROM C:Zip 3
                SUM QUANTITE,VALEUR TO Q1,V1 FOR(NAT PROD = "01")
                SUM QUANTITE,VALEUR TO Q2,V2 FOR(NAT PROD = "02")
                SUM QUANTITE,VALEUR TO Q3,V3 FOR(NAT PROD = "03")
                SUM QUANTITE,VALEUR TO Q4,V4 FOR(NAT PROD = "04")
                SUM QUANTITE,VALEUR TO Q5,V5 FOR(NAT PROD = "05")
                SUM QUANTITE,VALEUR TO Q6,V6 FOR(NAT PROD = "06")
                SUM QUANTITE,VALEUR TO Q7,V7 FOR(NAT PROD = "07")
                SUM QUANTITE,VALEUR TO Q8,V8 FOR(NAT PROD = "08")
                SUM QUANTITE,VALEUR TO Q9,V9 FOR(NAT PROD = "09")
                SUM QUANTITE,VALEUR TO Q10,V10 FOR(NAT PROD = "10")
                SUM QUANTITE,VALEUR TO Q11,V11 FOR(NAT PROD = "11")
                SUM QUANTITE,VALEUR TO Q12,V12 FOR(NAT PROD = "12")
                SUM QUANTITE,VALEUR TO Q13,V13 FOR(NAT PROD = "13")
                SUM QUANTITE,VALEUR TO Q14,V14 FOR(NAT PROD = "14")
                SUM QUANTITE,VALEUR TO Q15,V15 FOR(NAT PROD = "15")
                SUM QUANTITE,VALEUR TO Q16,V16 FOR(NAT PROD = "16")
                SUM QUANTITE,VALEUR TO Q17,V17 FOR(NAT PROD = "17")
                SUM QUANTITE,VALEUR TO Q18,V18 FOR(NAT PROD = "18")
                SUM QUANTITE,VALEUR TO Q19,V19 FOR(NAT PROD = "19")
                SUM QUANTITE,VALEUR TO Q20,V20
                DELETE ALL
                PACK
                USE &&closeZip_2

* impression des résultats totaux.
                SET PRINT ON
                ?? CHR(15)
                ? "| "+"TOTAUX"
?? " QUANTITE"+SPACE(5)+STR(Q1,8)+STR(Q2,8)+STR(Q3,8)+" | "+STR(Q4,8);
+STR(Q5,8)+STR(Q6,8)+" | "+STR(Q7,8)+STR(Q8,8)+STR(Q9,8)+" | "+STR(Q10,8);
+STR(Q11,8)+" | "+STR(Q12,8)+" | "+STR(Q13,8)+" | "+STR(Q14,8)+" | "
?? STR(Q15,8)+" | "+STR(Q16,8)+" | "+STR(Q17,8)+" | "+STR(Q18,8)+" | ";
+STR(Q19,8)+" | "+STR(Q20,14)+" | "
? "|"+SPACE(8)+"VALEUR"+SPACE(7)+STR(V1/1000,8)+STR(V2/1000,8)+STR(V3/1000,8);
+" | "+STR(V4/1000,8)+STR(V5/1000,8)+STR(V6/1000,8)+" | "+STR(V7/1000,8);
+STR(V8/1000,8)+STR(V9/1000,8)+" | "+STR(V10/1000,8)+STR(V11/1000,8)
?? " | "+STR(V12/1000,8)+" | "+STR(V13/1000,8)+" | "+STR(V14/1000,8);
+" | "+STR(V15/1000,8)+" | "+STR(V16/1000,8)+" | "+STR(V17/1000,8)+" | ";
+STR(V18/1000,8)+" | "+STR(V19/1000,8)+" | "+STR(V20/1000,14)+" | "
                SET PRINT OFF
                DO LINE
                SET PRINT ON
                EJECT
                SET PRINT OFF
                SET CONSOLE OFF
             ENDIF &&Exp=709

* si tous les expéditeurs connus ont été comptabilisés, on termine en
* beauté.
             IF Exp = 709
                STORE .F. TO Process
             ELSE
                STORE .T. TO Process
             ENDIF
          ENDDO &&Exp<700
       ELSE
          RELEASE ALL
          RETURN
       ENDIF
    ENDIF
    STORE .F. TO Process
 ENDDO Process

* remise à l'état d'origine avant de quitter le sous-programme.
USE
RELEASE ALL
DELETE FILE C:Zip_3.DBF
DELETE FILE C:Zip_4.DBF
DELETE FILE C:Zip_2.DBF
DELETE FILE C:Zipzip.DBF
DELETE FILE C:Expd_2x.NDX
DELETE FILE C:Expdx.NDX
SET TALK ON
RELEASE ALL
SET SAFETY OFF
RETURN TO MASTER
* retour au menu principal.

EXPORT (ations)_1 COMMAND FILE

********************************************************************************************
Ce programme calcule par année ou par mois les exportations hors faritany par MOYEN DE CONSERVATION et par DESTINATION. Les données ont été transférées sur disque dur pour raison de sécurité.
********************************************************************************************

* première partie des estimations des exportations annuelles.
USE C:ZIPZIP
INDEX ON DESTIN TO C:des_1.NDX

* création de deux fichiers pour traitement plus rapide.
COPY STRUCTURE TO C:ZIP_2.DBF
COPY STRUCTURE TO C:ZIP_3.DBF
USE

* initialisation des paramètres.
SET TALK OFF
SET CONSOLE OFF
STORE "1" TO Boucle,Part
IF VAL(Mois) < 10
   STORE STR(VAL(Mois),2) TO Mois
ELSE
   STORE STR(VAL(Mois),2) TO Mois
ENDIF
IF Res ="1'
   STORE VAL (Mois) TO Tel
ELSE
   STORE 1 TO Tel
ENDIF
STORE 1 TO Count
STORE 702 TO YY
STORE .T. TO Process

* boucle principale
DO WHILE Process

* si l'on désire des résultats annuels.
  IF Res = "2"
* boucle des pays d'exportation.
  DO WHILE YY < 721

* première partie du tableau.
     IF Part ="1'
* impression de l'entête.
        IF (Part ="1' .AND. Boucle = "1")
            DO SETUP
            DO LINE
        ENDIF
        STORE "2" TO Boucle

* initialisation des variables de travail.
        STORE STR(YY,3) TO Y
        STORE Y TO Key
STORE O TO Q1,Q2,Q3,Q4,Q5,Q6,Q7,Q8,Q9,Q10,Q11,Q12,Q13,Q14,Q15,Q16,Q17
    STORE O TO Q18,Q19,Q20,Q21,Q22,V20,V21,V22,V18,V19
STORE O TO V1,V2,V3,V4,V5,V6,V7,V8,V9,V10,V11,V12,V13,V14,V15,V16,V17

* recherche du pays sur fichier indexé.
    USE C:Zipzip INDEX C:des_1
    FIND &Key

* si recherche fructueuse, calcul et impression des résultats de la
* première partie du tableau.
    IF FOUND()
       USE C:ZIP_2.DBF
       APPEND FROM C:ZIPZIP FOR (DESTIN = Y .AND. CONSERV < "23")
       IF .NOT. EOF()
          SUM QUANTITE,VALEUR TO Q1,V1 FOR(CONSERV = "01")
          SUM QUANTITE,VALEUR TO Q2,V2 FOR(CONSERV = "02")
          SUM QUANTITE,VALEUR TO Q3,V3 FOR(CONSERV = "03")
          SUM QUANTITE,VALEUR TO Q4,V4 FOR(CONSERV = "04")
          SUM QUANTITE,VALEUR TO Q5,V5 FOR(CONSERV = "05")
          SUM QUANTITE,VALEUR TO Q6,V6 FOR(CONSERV = "06")
          SUM QUANTITE,VALEUR TO Q7,V7 FOR(CONSERV = "07")
          SUM QUANTITE,VALEUR TO Q8,V8 FOR(CONSERV = "08")
          SUM QUANTITE,VALEUR TO Q9,V9 FOR(CONSERV = "09")
          SUM QUANTITE,VALEUR TO Q10,V10 FOR(CONSERV = "10")
          SUM QUANTITE,VALEUR TO Q11,V11 FOR(CONSERV = "11")
          SUM QUANTITE,VALEUR TO Q12,V12 FOR(CONSERV = "12")
          SUM QUANTITE,VALEUR TO Q13,V13 FOR(CONSERV = "13")
          SUM QUANTITE,VALEUR TO Q14,V14 FOR(CONSERV = "14")
          SUM QUANTITE,VALEUR TO Q15,V15 FOR(CONSERV = "15")
          SUM QUANTITE,VALEUR TO Q16,V16 FOR(CONSERV = "16")
          SUM QUANTITE,VALEUR TO Q17,V17 FOR(CONSERV = "17")
          SUM QUANTITE,VALEUR TO Q18,V18 FOR(CONSERV = "18")
          SUM QUANTITE,VALEUR TO Q19,V19 FOR(CONSERV = "19")
          SUM QUANTITE,VALEUR TO Q20,V20 FOR(CONSERV = "20")
          SUM QUANTITE,VALEUR TO Q21,V21 FOR(CONSERV = "21")
          SUM QUANTITE,VALEUR TO Q22,V22 FOR(CONSERV = "22")

* impression du nom du pays d'exportation.

          STORE Y TO Fiv
          SET PRINT ON
          ?? CHR(15)
          DO CHX_FIV

* impression des résultats si les valeurs sont positives.

          SET PRINT ON
IF(Q1>0 .OR. Q2>0 .OR. Q3>0 .OR. Q4>0 .OR. Q5>0 .OR. Q6>0 .OR. Q7>O .OR.;
 Q8>0 .OR. Q9>0 .OR. Q10>0 .OR. Q11>0 .OR. Q12>0 .OR. Q13>0 .OR. Q14>0 .OR.;
 Q15>0 .OR. Q16>0 .OR. Q17>0 .OR. Q18>0 .OR. Q19>0 .OR. Q20>0 .OR. Q21>0 .OR.;
 Q22>O)
          SET CONSOLE OFF
?? " Quant "+STR(Q1,8)+STR(Q2,8)+STR(Q3,8)+STR(Q4,8)+STR(Q5,8)+STR(Q6,8);
+STR(Q7,8)+STR(Q8,8)+STR(Q9,8)+STR(Q10,8)+" | "+STR(Q11,8)+STR(Q12,8);
+STR(Q13,8)+STR(Q14,8)+STR(Q15,8)+STR(Q16,8)+STR(Q17,8)+STR(Q18,8)
?? " | "+STR(Q19,8)+STR(Q20,8)+STR(Q21,8)+STR(Q22,8)+" | "
?" | "+SPACE(14)+"Val."+STR(V1/1000,8)+STR(V2/1000,8)+STR(V3/1000,8);
+STR(V4/1000,8)+STR(V5/1000,8)+STR(V6/1000,8)+STR(V7/1000,8)+STR(V8/1000,8);
+STR(V9/1000,8)+STR(V10/1000,8)+" | "+STR(V11/1000,8)+STR(V12/1000,8)
?? STR(V13/1000,8)+STR(V14/1000,8)+STR(V15/1000,8)+STR(V16/1000,8);
+STR(V17/1000,8)+STR(V18/1000,8)+" | "+STR(V19/1000,8)+STR(V20/1000,8);
+STR(V21/1000,8)+STR(V22/1000,8)+" | "
          ENDIF &&Q1..Q22>O
          DO LINE
          SET PRINT OFF
       ENDIF &&.not.eof()
       DELETE ALL
       PACK
       USE &&closeZip_2
       ENDIF &&found()
       USE &&closeZipzip

* passage au pays suivant.
       STORE (YY+1) TO YY

       IF YY = 720
* impression des totaux de la première partie du tableau.

          STORE '1' TO Part
          DO LINE
          SET CONSOLE OFF

* initialisation des variables àzéro.
          STORE 0 TO Q1,Q2,Q3,Q4,Q5,Q6,Q7,Q8,Q9,Q10,Q11,Q12,Q13,Q14,Q15
          STORE 0 TO Q16,Q17,Q18,Q19,Q20,Q21,Q22,V1,V2,V3,V4,V5,V6,V7,V8
          STORE 0 TO V9,V10,V11,V12,V13,V14,V15,V16,V17,V18,V19,V20,V21,V22

* calcul des résultats totaux du premier tableau.
              USE C:Zip_2.DBF &&open
              APPEND FROM C:Zipzip FOR(CONSERV < "23")
              SUM QUANTITE,VALEUR TO Q1,V1 FOR(CONSERV = "01")
              SUM QUANTITE,VALEUR TO Q2,V2 FOR(CONSERV = "02")
              SUM QUANTITE,VALEUR TO Q3,V3 FOR(CONSERV = "03")
              SUM QUANTITE,VALEUR TO Q4,V4 FOR(CONSERV = "04")
              SUM QUANTITE,VALEUR TO Q5,V5 FOR(CONSERV = "05")
              SUM QUANTITE,VALEUR TO Q6,V6 FOR(CONSERV = "06")
              SUM QUANTITE,VALEUR TO Q7,V7 FOR(CONSERV = "07")
              SUM QUANTITE,VALEUR TO Q8,V8 FOR(CONSERV = "08")
              SUM QUANTITE,VALEUR TO Q9,V9 FOR(CONSERV = "09")
              SUM QUANTITE,VALEUR TO Q10,V10 FOR(CONSERV = "10")
              SUM QUANTITE,VALEUR TO Q11,V11 FOR(CONSERV = "11")
              SUM QUANTITE,VALEUR TO Q12,V12 FOR(CONSERV = "12")
              SUM QUANTITE,VALEUR TO Q13,V13 FOR(CONSERV = "13")
              SUM QUANTITE,VALEUR TO Q14,V14 FOR(CONSERV = "14")
              SUM QUANTITE,VALEUR TO Q15,V15 FOR(CONSERV = "15")
              SUM QUANTITE,VALEUR TO Q16,V16 FOR(CONSERV = "16")
              SUM QUANTITE,VALEUR TO Q17,V17 FOR(CONSERV = "17")
              SUM QUANTITE,VALEUR TO Q18,V18 FOR(CONSERV = "18")
              SUM QUANTITE,VALEUR TO Q19,V19 FOR(CONSERV = "19")
              SUM QUANTITE,VALEUR TO Q20,V20 FOR(CONSERV = "20")
              SUM QUANTITE,VALEUR TO Q21,V21 FOR(CONSERV = "21")
              SUM QUANTITE,VALEUR TO Q22,V22 FOR(CONSERV = "22")
              DELETE ALL
              PACK
              USE &&close

* impression des totaux du premier tableau.
              SET PRINT ON
              ?? CHR(15)
              ? "|"+SPACE(1)+"TOTAUX"
?? SPACE(6)+"QUANTITE"+STR(Q1,8)+STR(Q2,8)+STR(Q3,8)+STR(Q4,8)+STR(Q5,8);
+STR(Q6,8)+STR(Q7,8)+STR(Q8,8)+STR(Q9,8)+STR(Q10,8)+" | "+STR(Q11,8);
+STR(Q12,8)+STR(Q13,8)+STR(Q14,8)+STR(Q15,8)+STR(Q16,8)+STR(Q17,8)+STR(Q18,8)
?? " | "+STR(Q19,8)+STR(Q20,8)+STR(Q21,8)+STR(Q22,8)+" | "
? " | "+SPACE (13)+"VALEUR"+STR(V1/1000,8)+STR(V2/1000,8)+STR(V3/1000,8);
+STR(V4/1000,8)+STR(V5/1000,8)+STR(V6/1000,8)+STR(V7/1000,8)+STR(V8/1000,8);
+STR(V9/1000,8)+STR(V10/1000,8)+" | "+STR(V11/1000,8)+STR(V12/1000,8)
?? STR(V13/1000,8)+STR(V14/1000,8)+STR(V15/1000,8)+STR(V16/1000,8);
+STR(V17/1000,8)+STR(V18/1000,8)+" | "+STR(V19/1000,8)+STR(V20/1000,8);
+STR(V21/1000,8)+STR(V22/1000,8)+" | "
              SET PRINT OFF
              DO LINE

* initialisation de la seconde partie du tableau.
              STORE "2" TO Part,Boucle
           ENDIF &&YY=721
* fin du premier tableau.

        ELSE

* seconde partie du tableau.

              IF Part = "2"
* impression de l'entête de la seconde partie du tableau.
                 IF (Boucle = "2" .AND. Part = "2")
                    SET PRINT ON
                    EJECT
                    ?? CHR(27) + CHR(69)
                    ? "Seconde partie"
                    ?? CHR(27) + CHR (70)
                    ?? CHR(14)
                    ?? SPACE(8)+"EXPORTATIONS par FARITANY"
                    ?? CHR(20)
                    ?? CHR(15)
                    ?? SPACE(7) + "Date :"+DTOC (Mdate)
                    ?? CHR(18)
                    SET PRINT OFF
                    DO SETUP
                    DO LINE
                 ENDIF
                 STORE "3" TO Boucle
                 SET TALK OFF

* remise du code pays au début et remise des variables de travail à
* zéro.
                 IF YY = 720
                    STORE 702 TO YY
                 ENDIF
                 STORE STR(YY,3) TO Y
                 SET CONSOLE OFF
                 STORE 0 TO Q23,Q24,Q25,Q26,Q27,Q28,Q29,Q30,Q31,Q32,Q33
                 STORE 0 TO Q34,Q35,Q36,Q37,Q38,V23,V24,V25,V26,V27,V28
                 STORE 0 TO V29,V30,V31,V32,V33,V34,V35,V36,V37,V38

* calcul des résultats de la seconde partie du tableau.
                 USE C:ZIP_2.DBF
                 APPEND FROM C:ZIPZIP FOR (DESTIN = Y)
                 IF .NOT. EOF ()
                    SUM QUANTITE,VALEUR TO Q23,V23 FOR(CONSERV = "23")
                    SUM QUANTITE,VALEUR TO Q24,V24 FOR(CONSERV = "24")
                    SUM QUANTITE,VALEUR TO Q25,V25 FOR(CONSERV = "25")
                    SUM QUANTITE,VALEUR TO Q26,V26 FOR(CONSERV = "26")
                    SUM QUANTITE,VALEUR TO Q27,V27 FOR(CONSERV = "27")
                    SUM QUANTITE,VALEUR TO Q28,V28 FOR(CONSERV = "28")
                    SUM QUANTITE,VALEUR TO Q29,V29 FOR(CONSERV = "29")
                    SUM QUANTITE,VALEUR TO Q30,V30 FOR(CONSERV = "30")
                    SUM QUANTITE,VALEUR TO Q31,V31 FOR(CONSERV = "31")
                    SUM QUANTITE,VALEUR TO Q32,V32 FOR(CONSERV = "32")
                    SUM QUANTITE,VALEUR TO Q33,V33 FOR(CONSERV = "33")
                    SUM QUANTITE,VALEUR TO Q34,V34 FOR(CONSERV = "34")
                    SUM QUANTITE,VALEUR TO Q35,V35 FOR(CONSERV = "35")
                    SUM QUANTITE,VALEUR TO Q36,V36 FOR(CONSERV = "36")
                    SUM QUANTITE,VALEUR TO Q37,V37 FOR(CONSERV = "37")
                    DELETE ALL
                    PACK
                    USE &&close
                    USE C:ZIPZIP &&open
                    SUM QUANTITE,VALEUR TO Q38,V38 FOR (DESTIN = Y)
                    USE &&close

* impression du nom du pays d'exportation.
                    STORE Y TO Fiv
                    SET PRINT ON
                    ?? CHR(15)
                    DO CHX_FIV

* impression si les résultats des calculs sont positifs.
                    SET PRINT ON
                    IF Q38 > 0
                       SET CONSOLE OFF

?? " Quantité"+STR(Q23,8)+STR(Q24,8)+STR(Q25,8)+STR(Q26,8)+" | "STR(Q27,8);
+STR(Q28,8)+STR(Q29,8)+" | "+STR(Q30,8)+" | "+STR(Q31,8)+" | "+STR(Q32,8);
+" | "+STR(Q33,8)+STR(Q34,8)+" | "+STR(Q35,8)+" | "+STR(Q36,8);
?? " | "+STR(Q37,8)+"||"+STR(Q38,14)+" | "
? " | "+SPACE(15)+"Valeur"+STR(V23/1000,8)+STR(V24/1000,8)+STR(V25/1000,8);
+STR(V26/1000,8)+" | "+STR(V27/1000,8)+STR(V28/1000,8)+STR(V29/1000,8);
+" | "+STR(V30/1000,8)+" | "+STR(V31/1000,8)+" | "+STR(V32/1000,8)+" | "
?? STR(V33/1000,8)+STR(V34/1000,8)+" | "+STR(V35/1000,8)+" | ";
+STR(V36/1000,8)+" | "+STR(V37/1000,8)+"||"+STR(V38/1000,14)+" | "
                    ENDIF &&Q38>0
                    DO LINE
                    SET PRINT OFF
                 ENDIF &&.not.eof()
                 STORE (YY+1) TO YY

* calcul et impression des résultats totaux de la seconde partie du
* tableau.

                 IF YY = 720
                    DO LINE
                    SET CONSOLE OFF

* remise à zéro des variables de travail.
                    STORE 0 TO Q23,Q24,Q25,Q26,Q27,Q28,Q29,Q30,Q31,Q32,Q33
                    STORE 0 TO Q34,Q35,Q36,Q37,Q38,V23,V24,V25,V26,V27,V28
                    STORE 0 TO V29,V30,V31,V32,V33,V34,V35,V36,V37,V38

* calcul des résultats totaux de la seconde partie du tableau.
                    USE C:Zipzip.DBF
                    SUM QUANTITE,VALEUR TO Q23,V23 FOR(CONSERV = "23")
                    SUM QUANTITE,VALEUR TO Q24,V24 FOR(CONSERV = "24")
                    SUM QUANTITE,VALEUR TO Q25,V25 FOR(CONSERV = "25")
                    SUM QUANTITE,VALEUR TO Q26,V26 FOR(CONSERV = "26")
                    SUM QUANTITE,VALEUR TO Q27,V27 FOR(CONSERV = "27")
                    SUM QUANTITE,VALEUR TO Q28,V28 FOR(CONSERV = "28")
                    SUM QUANTITE,VALEUR TO Q29,V29 FOR(CONSERV = "29")
                    SUM QUANTITE,VALEUR TO Q30,V30 FOR(CONSERV = "30")
                    SUM QUANTITE,VALEUR TO Q31,V31 FOR(CONSERV = "31")
                    SUM QUANTITE,VALEUR TO Q32,V32 FOR(CONSERV = "32")
                    SUM QUANTITE,VALEUR TO Q33,V33 FOR(CONSERV = "33")
                    SUM QUANTITE,VALEUR TO Q34,V34 FOR(CONSERV = "34")
                    SUM QUANTITE,VALEUR TO Q35,V35 FOR(CONSERV = "35")
                    SUM QUANTITE,VALEUR TO Q36,V36 FOR(CONSERV = "36")
                    SUM QUANTITE,VALEUR TO Q37,V37 FOR(CONSERV = "37")
                    SUM QUANTITE,VALEUR TO Q38,V38
                    USE &&close

* impression des résultats totaux de la seconde partie du tableau.
                    SET PRINT ON
                    ?? CHR(15)
                    ? " | "+SPACE(5)+"TOTAUX"+SPACE(5)

?? SPACE(1)+"QUANTITE"+STR(Q23,8)+STR(Q24,8)+STR(Q25,8)+STR(Q26,8)+" | ";
+STR(Q27,8)+STR(Q28,8)+STR(Q29,8)+" | "+STR(Q30,8)+" | "+STR(Q31,8)+" | ";
+STR(Q32,8)+" | "+STR(Q33,8)+STR(Q34,8)+" | "+STR(Q35,8)+" | "
?? STR(Q36,8)+" | "+STR(Q37,8)+"||"+STR(Q38,14)+" | "
? " | "+SPACE(17)+"VALEUR"+STR(V23/1000,8)+STR(V24/1000,8)+STR(V25/1000,8);
+STR(V26/1000,8)+" | "+STR(V27/1000,8)+STR(V28/1000,8)+STR(V29/1000,8)+" | ";
+STR(V30/1000,8)+" | "+STR(V31/1000,8)+" | "+STR(V32/1000,8)+" | "
?? STR(V33/1000,8)+STR(V34/1000,8)+" | "+STR(V35/1000,8)+" | ";
+STR(V36/1000,8)+" | "+STR(V37/1000,8)+"||"+STR(V38/1000,14)+" | "
                    SET PRINT OFF
                    DO LINE
                 ENDIF && YY=720
                 SET PRINT ON

* préparation de la fin.
                 IF YY = 720
                    STORE (YY+1) TO YY
                    STORE "2" TO Part
                 ENDIF && YY = 720
                 SET PRINT OFF

* si la boucle est terminée, retour au point de départ ou retour au menu.
                 IF (YY > 720 .AND. Part = "2")
                    STORE .F. TO Process
                 ELSE
                    STORE .T. TO Process
                 ENDIF
              ELSE
                 RELEASE ALL
                 RETURN
              ENDIF &&Part=2
           ENDIF &&Part=1
        ENDDO &&YY<721

* fin du tableau des résultats annuels.

  ELSE

* si le choix porte sur des résultats mensuels.
     IF Res ="1'
        STORE "  " TO X

* boucle des mois.
        DO WHILE Tel < 13
           IF Tel < 10
              STORE "0"+STR(Tel,1) TO X
           ELSE
              STORE STR(Tel,2) TO X
           ENDIF &&Tel<10

* préparation de l'environnement de travail mensuel.
           USE C:Zip_3
APPEND FROM C:Zipzip FOR (DESTIN > "700" .AND. SUBSTR(DTOC(DATE),4,2) = X)
           USE

* boucle des pays.
           DO WHILE YY < 721

* impression de la première partie du tableau.
              IF Part ="1'
                 IF (Part ="1' .AND. Boucle ="1')
                    DO SETUP
                    DO LINE
                 ENDIF
                 STORE "2" TO Boucle
                 STORE STR (YY,3) TO Y
                 USE C:ZIP_2.DBF
                 APPEND FROM C:ZIP_3 FOR (DESTIN = Y .AND. CONSERV < "23")
     STORE 0 TO Q1,Q2,Q3,Q4,Q5,Q6,Q7,Q8,Q9,Q10,Q11,Q12,Q13,Q14,Q15,Q16,Q17
     STORE 0 TO Q18,Q19,Q20,Q21,Q22,V20,V21,V22,V18,V19
     STORE 0 TO V1,V2,V3,V4,V5,V6,V7,V8,V9,V10,V11,V12,V13,V14,V15,V16,V17

* calcul des résultats annuels - première partie du tableau.
                  IF .NOT. EOF()
                     SUM QUANTITE,VALEUR TO Q1,V1 FOR(CONSERV = "01")
                     SUM QUANTITE,VALEUR TO Q2,V2 FOR(CONSERV = "02")
                     SUM QUANTITE,VALEUR TO Q3,V3 FOR(CONSERV = "03")
                     SUM QUANTITE,VALEUR TO Q4,V4 FOR(CONSERV = "04")
                     SUM QUANTITE,VALEUR TO Q5,V5 FOR(CONSERV = "05")
                     SUM QUANTITE,VALEUR TO Q6,V6 FOR(CONSERV = "06")
                     SUM QUANTITE,VALEUR TO Q7,V7 FOR(CONSERV = "07")
                     SUM QUANTITE,VALEUR TO Q8,V8 FOR(CONSERV = "08")
                     SUM QUANTITE,VALEUR TO Q9,V9 FOR(CONSERV = "09")
                     SUM QUANTITE,VALEUR TO Q10,V10 FOR(CONSERV = "10")
                     SUM QUANTITE,VALEUR TO Q11,V11 FOR(CONSERV = "11")
                     SUM QUANTITE,VALEUR TO Q12,V12 FOR(CONSERV = "12")
                     SUM QUANTITE,VALEUR TO Q13,V13 FOR(CONSERV = "13")
                     SUM QUANTITE,VALEUR TO Q14,V14 FOR(CONSERV = "14")
                     SUM QUANTITE,VALEUR TO Q15,V15 FOR(CONSERV = "15")
                     SUM QUANTITE,VALEUR TO Q16,V16 FOR(CONSERV = "16")
                     SUM QUANTITE,VALEUR TO Q17,V17 FOR(CONSERV = "17")
                     SUM QUANTITE,VALEUR TO Q18,V18 FOR(CONSERV = "18")
                     SUM QUANTITE,VALEUR TO Q19,V19 FOR(CONSERV = "19")
                     SUM QUANTITE,VALEUR TO Q20,V20 FOR(CONSERV = "20")
                     SUM QUANTITE,VALEUR TO Q21,V21 FOR(CONSERV = "21")
                     SUM QUANTITE,VALEUR TO Q22,V22 FOR(CONSERV = "22")

* impression du nom du pays d'exportation.
                     STORE Y TO Fiv
                     SET PRINT ON
                     ?? CHR(15)
                     DO CHX_FIV

* impression des résultats si les valeurs sont positives.
                     SET PRINT ON
IF(Q1>0 .OR. Q2>0 .OR. Q3>0 .OR. Q4>0 .OR. Q5>0 .OR. Q6>0 .OR. Q7>0 .OR. Q8>0;
 .OR. Q9>0 .OR. Q10>0 .OR. Q11>0 .OR. Q12>0 .OR. Q13>0 .OR. Q14>0 .OR. Q15>0;
 .OR. Q16>0 .OR. Q17>0 .OR. Q18>0 .OR. Q19>0 .OR. Q20>0 .OR. Q21>0 .OR. Q22>0)
                     SET CONSOLE OFF

?? " Quant "+STR(Q1,8)+STR(Q2,8)+STR(Q3,8)+STR(Q4,8)+STR(Q5,8)+STR(Q6,8);
+STR(Q7,8)+STR(Q8,8)+STR(Q9,8)+STR(Q10,8)+" | "+STR(Q11,8)+STR(Q12,8);
+STR(Q13,8)+STR(Q14,8)+STR(Q15,8)+STR(Q16,8)+STR(Q17,8)+STR(Q18,8)+" | "
?? STR(Q19,8)+STR(Q20,8)+STR(Q21,8)+STR(Q22,8)+" | "
? " | "+SPACE(14)+"Val,"+STR(V1/1000,8)+STR(V2/1000,8)+STR(V3/1000,8);
+STR(V4/1000,8)+STR(V5/1000,8)+STR(V6/1000,8)+STR(V7/1000,8)+STR(V8/1000,8);
+STR(V9/1000,8)+STR(V10/1000,8)+" | "+STR(V11/1000,8)+STR(V12/1000,8)
?? STR(V13/1000,8)+STR(V14/1000,8)+STR(V15/1000,8)+STR(V16/1000,8);
+STR(V17/1000,8)+STR(V18/1000,8)+" | "+STR(V19/1000,8)+STR(V20/1000,8);
+STR(V21/1000,8)+STR(V22/1000,8)+" | "
                     ENDIF &&O1..Q22>0
                     SET PRINT OFF
                  ENDIF &&.not.eof()
                  DELETE ALL
                  PACK
                  USE &&close c:ZIP_2.DBF

* remise à zéro des variables de travail.
        STORE 0 TO Q1,Q2,Q3,Q4,Q5,Q6,Q7,Q8,Q9,Q10,Q11,Q12,Q13,Q14,Q15,Q16
        STORE 0 TO Q17,Q18,Q19,Q20,Q21,Q22
        STORE 0 TO V1,V2,V3,V4,V5,V6,V7,V8,V9,V10,V11,V12,V13,V14,V15,V16
        STORE 0 TO V17,V18,V19,V20,V21,V22
                  STORE (YY+1) TO YY

                  IF YY = 720
* calcul et impression des totaux de la première partie du tableau des
* résultats annuels.
                     STORE '1' TO Part
                     DO LINE
                     SET CONSOLE OFF
                     USE C:ZIP 3.DBF
                     SUM QUANTITE,VALEUR TO Q1,V1 FOR(CONSERV = "01")
                     SUM QUANTITE,VALEUR TO Q2,V2 FOR(CONSERV = "02")
                     SUM QUANTITE,VALEUR TO Q3,V3 FOR(CONSERV = "03")
                     SUM QUANTITE,VALEUR TO Q4,V4 FOR(CONSERV = "04")
                     SUM QUANTITE,VALEUR TO Q5,V5 FOR(CONSERV = "05")
                     SUM QUANTITE,VALEUR TO Q6,V6 FOR(CONSERV = "06")
                     SUM QUANTITE,VALEUR TO Q7,V7 FOR(CONSERV = "07")
                     SUM QUANTITE,VALEUR TO Q8,V8 FOR(CONSERV = "08")
                     SUM QUANTITE,VALEUR TO Q9,V9 FOR(CONSERV = "09")
                     SUM QUANTITE,VALEUR TO Q10,V10 FOR(CONSERV = "10")
                     SUM QUANTITE,VALEUR TO Q11,V11 FOR(CONSERV = "11")
                     SUM QUANTITE,VALEUR TO Q12,V12 FOR(CONSERV = "12")
                     SUM QUANTITE,VALEUR TO Q13,V13 FOR(CONSERV = "13")
                     SUM QUANTITE,VALEUR TO Q14,V14 FOR(CONSERV = "14")
                     SUM QUANTITE,VALEUR TO Q15,V15 FOR(CONSERV = "15")
                     SUM QUANTITE,VALEUR TO Q16,V16 FOR(CONSERV = "16")
                     SUM QUANTITE,VALEUR TO Q17,V17 FOR(CONSERV = "17")
                     SUM QUANTITE,VALEUR TO Q18,V18 FOR(CONSERV = "18")
                     SUM QUANTITE,VALEUR TO Q19,V19 FOR(CONSERV = "19")
                     SUM QUANTITE,VALEUR TO Q20,V20 FOR(CONSERV = "20")
                     SUM QUANTITE,VALEUR TO Q21,V21 FOR(CONSERV = "21")
                     SUM QUANTITE,VALEUR TO Q22,V22 FOR(CONSERV = "22")
                     USE &&close C:ZIP_3.DBF

* impression des totaux du premier tableau.
                     SET PRINT ON
                     ?? CHR (15)
                     ? " | "+SPACE(1)+"TOTAUX"
?? SPACE(6)+"QUANTITE"+STR(Q1,8)+STR(Q2,8)+STR(Q3,8)+STR(Q4,8)+STR(Q5,8);
+STR(Q6,8)+STR(Q7,8)+STR(Q8,8)+STR(Q9,8)+STR(Q10,8)+" | "+STR(Q11,8);
+STR(Q12,8)+STR(Q13,8)+STR(Q14,8)+STR(Q15,8)+STR(Q16,8)+STR(Q17,8)
?? STR(Q18,8)+" | "+STR(Q19,8)+STR(Q20,8)+STR(Q21,8)+STR(Q22,8)+" | "
? "|"+SPACE(13)+"VALEUR  "+STR(V1/1000,8)+STR(V2/1000,8)+STR(V3/1000,8);
+STR(V4/1000,8)+STR(V5/1000,8)+STR(V6/1000,8)+STR(V7/1000,8)+STR(V8/1000,8);
+STR(V9/1000,8)+STR(V10/1000,8)+" | "+STR(V11/1000,8)+STR(V12/1000,8)
?? STR(V13/1000,8)+STR(V14/1000,8)+STR(V15/1000,8)+STR(V16/1000,8);
+STR(V17/1000,8)+STR(V18/1000,8)+" | "+STR(V19/1000,8)+STR(V20/1000,8);
+STR(V21/1000,8)+STR(V22/1000,8)+" | "
                     SET PRINT OFF
                     DO LINE
                     STORE "2" TO Part, Boucle
                  ENDIF &&YY=720
               ELSE

* seconde partie du tableau.
                  IF Part = "2"
* impression de l'entête de la seconde partie du tableau des résultats
* annuels.
                     IF (Boucle = "2" .AND. Part = "2")
                     SET PRINT ON
                     ?
                     ?? CHR(27) + CHR(69)
                     ? "Seconde partie"
                     ?? CHR(27) + CHR(70)
                     ?? CHR(14)
                     ?? SPACE(8)+"EXPORTATIONS par FARITANY"
                     ?? CHR(15)
                     ?? SPACE(5)+"Date :"+DTOC(Mdate)
                     ?? CHR(20)
                     SET PRINT OFF
                     DO SETUP
                     DO LINE
                  ENDIF
                  STORE "3" TO Boucle
                  SET TALK OFF

* remise du code pays au départ et remise des variables de travail à
* zéro.

                  IF YY = 720
                     STORE 702 TO YY
                  ENDIF
                  STORE STR(YY,3) TO Y
                  SET CONSOLE OFF
                  STORE 0 TO Q23,Q24,Q25,Q26,Q27,Q28,Q29,Q30,Q31,Q32,Q33
                  STORE 0 TO Q34,Q35,Q36,Q37,Q38,V23,V24,V25,V26,V27,V28
                  STORE 0 TO V29,V30,V31,V32,V33,V34,V35,V36,V37,V38

* calcul des résultats totaux.
                  USE C:Zip 3
                  SUM QUANTITE,VALEUR TO Q38,V38 FOR (DESTIN = Y)
                  USE &&CLOSE
                  USE C:ZIP_2.DBF
                  APPEND FROM C:ZIP_3 FOR (DESTIN = Y .AND. CONSERY > "22"
                  IF .NOT. EOF()
                     SUM QUANTITE,VALEUR TO Q23,V23 FOR(CONSERV = "23")
                     SUM QUANTITE,VALEUR TO Q24,V24 FOR(CONSERV = "24")
                     SUM QUANTITE,VALEUR TO Q25,V25 FOR(CONSERV = "25")
                     SUM QUANTITE,VALEUR TO Q26,V26 FOR(CONSERV = "26")
                     SUM QUANTITE,VALEUR TO Q27,V27 FOR(CONSERV = "27")
                     SUM QUANTITE,VALEUR TO Q28,V28 FOR(CONSERV = "28")
                     SUM QUANTITE,VALEUR TO Q29,V29 FOR(CONSERV = "29")
                     SUM QUANTITE,VALEUR TO Q30,V30 FOR(CONSERV = "30")
                     SUM QUANTITE,VALEUR TO Q31,V31 FOR(CONSERV = "31")
                     SUM QUANTITE,VALEUR TO Q32,V32 FOR(CONSERV = "32")
                     SUM QUANTITE,VALEUR TO Q33,V33 FOR(CONSERV = "33")
                     SUM QUANTITE,VALEUR TO Q34,V34 FOR(CONSERV = "34")
                     SUM QUANTITE,VALEUR TO Q35,V35 FOR(CONSERV = "35")
                     SUM QUANTITE,VALEUR TO Q36,V36 FOR(CONSERV = "36")
                     SUM QUANTITE,VALEUR TO Q37,V37 FOR(CONSERV = "37")
                     DELETE ALL
                     PACK
                     USE &&close C:ZIP_2.DBF
                  ENDIF &&.not.eof()

* impression du nom du pays d'exportation.

                  IF (Q38 >0 .OR. V38 >0)
                     STORE Y TO Fiv
                     SET PRINT ON
                     ?? CHR(15)
                     DO CHX_FIV

* impression des résultats des calculs.
                     SET PRINT ON
                     SET CONSOLE OFF

?? " Quantité "+STR(Q23,8)+STR(Q24,8)+STR(Q25,8)+STR(Q26,8)+" | "+STR(Q27,8);
+STR(Q28,8)+STR(Q29,8)+" | "+STR(Q30,8)+" | "+STR(Q31,8)+" | "+STR(Q32,8);
+" | "+STR(Q33,8)+STR(Q34,8)+" | "+STR(Q35,8)+" | "+STR(Q36,8)
?? " | "+STR(Q37,8)+"||"+STR(Q38,14)+" | "
?"|"+SPACE(15)+"Valeur"+STR(V23/1000,8)+STR(V24/1000,8)+STR(V25/1000,8);
+STR(V26/1000,8)+" | "+STR(V27/1000,8)+STR(V28/1000,8)+STR(V29/1000,8);
+" | "+STR(V30/1000,8)+" | "+STR(V31/1000,8)+" | "+STR(V32/1000,8)+" | "
?? STR(V33/1000,8)+STR(V34/1000,8)+" | "+STR(V35/1000,8)+" | "+STR(V36/1000,8);
+" | "+STR(V37/1000,8)+" | "+STR(V38/1000,14)+" | "
                     SET PRINT OFF
                  ENDIF &&Q,V38 >0
                  STORE (YY+1) TO YY

* calcul et impression des résultats totaux de la seconde partie du
* tableau des résultats annuels.
                  IF YY = 720
                     DO LINE
                     SET CONSOLE OFF
                     STORE 0 TO Q23,Q24,Q25,Q26,Q27,Q28,Q29,Q30,Q31,Q32,Q33
                     STORE 0 TO Q34,Q35,Q36,Q37,Q38,V23,V24,V25,V26,V27,V28
                     STORE 0 TO V29,V30,V31,V32,V33,V34,V35,V36,V37,V38
                     USE C:ZIP 3 &&open C:ZIP_3.DBF
                     SUM QUANTITE,VALEUR TO Q23,V23 FOR(CONSERV = "23")
                     SUM QUANTITE,VALEUR TO Q24,V24 FOR(CONSERV = "24")
                     SUM QUANTITE,VALEUR TO Q25,V25 FOR(CONSERV = "25")
                     SUM QUANTITE,VALEUR TO Q26,V26 FOR(CONSERV = "26")
                     SUM QUANTITE,VALEUR TO Q27,V27 FOR(CONSERV = "27")
                     SUM QUANTITE,VALEUR TO Q28,V28 FOR(CONSERV = "28")
                     SUM QUANTITE,VALEUR TO Q29,V29 FOR(CONSERV = "29")
                     SUM QUANTITE,VALEUR TO Q30,V30 FOR(CONSERV = "30")
                     SUM QUANTITE,VALEUR TO Q31,V31 FOR(CONSERV = "31")
                     SUM QUANTITE,VALEUR TO Q32,V32 FOR(CONSERV = "32")
                     SUM QUANTITE,VALEUR TO Q33,V33 FOR(CONSERV = "33")
                     SUM QUANTITE,VALEUR TO Q34,V34 FOR(CONSERV = "34")
                     SUM QUANTITE,VALEUR TO Q35,V35 FOR(CONSERV = "35")
                     SUM QUANTITE,VALEUR TO Q36,V36 FOR(CONSERV = "36")
                     SUM QUANTITE,VALEUR TO Q37,V37 FOR(CONSERV = "37")
                     SUM QUANTITE,VALEUR TO Q38,V38
                     USE &&close c:ZIP_3.DBF

* impression des résultats totaux.
                     SET PRINT ON
                     ?? CHR(15)
                     ? "|"+SPACE(10)+"TOTAUX"
?? SPACE(1)+"QUANTITE"+STR(Q23,8)+STR(Q24,8)+STR(Q25,8)+STR(Q26,8)+" | ";
+STR(Q27,8)+STR(Q28,8)+STR(Q29,8)+" | "+STR(Q30,8)+" | "+STR(Q31,8)+" | ";
+STR(Q32,8)+" | "+STR(Q33,8)+STR(Q34,8)+" | "+STR(Q35,8)+" | "
?? STR(Q36,8)+" | "+STR(Q37,8)+"||"+STR(Q38,8)+" | "
? "|"+SPACE(17)+"VALEUR"+STR(V23/1000,8)+STR(V24/1000,8)+STR(V25/1000,8);
+STR(V26/1000,8)+" | "+STR(V27/1000,8)+STR(V28/1000,8)+STR(V29/1000,8)+" | "
+STR(V30/1000,8)+" | "+STR(V31/1000,8)+" | "+STR(V32/1000,8)+" | "
?? STR(V33/1000,8)+STR(V34/1000,8)+" | "+STR(V35/1000,8)+" | ";
+STR(V36/1000,8)+" | "+STR(V37/1000,8)+" || "+STR(V38/1000,14)+" | "
                     DO LINE
                     STORE '1' TO Boucle,Part
                     IF Tel = 12
                        STORE .F. TO Process
                        STORE (YY+3) TO YY
                     ELSE
                        STORE .T. TO Process
                        STORE (YY+3) TO YY
                     ENDIF
                  ENDIF &&YY=720
               ENDIF &&Part=2
            ENDIF &&Part=1
         ENDDO &&YY<721
         STORE Tel + 1 TO Tel
         STORE 702 TO YY
         USE C:Zip 3
         DELETE ALL
         PACK
         USE
         SET PRINT ON
         EJECT
         SET PRINT OFF
      ENDDO &&Tel<13
   ELSE
      RELEASE ALL
      RETURN
   ENDIF &&Res="1"
ENDIF &&Res="2"
* fin de boucle principale.
ENDDO &&Process

* remise à l'état d'origine et préparation de retour au programme apellant.
USE
DELETE FILE C:ZIP_2.DBF
DELETE FILE C:ZIP_3.DBF
DELETE FILE C:ZIPZIP.DBF
DELETE FILE C:des_1.NDX
SET CONSOLE ON
SET PRINT ON
EJECT
SET PRINT OFF
RETURN
* retour vers le menu des expéditions hors fivondronana.

EXPORT(ations)_2 COMMAND FILE

*********************************************************************************************
Ce programme calcule, par mois ou par année, les exportations hors fivondronana par NATURE de PRODUIT et par EXPORTATEUR. Les données ont été transférées sur disque dur pour raison de sécurité. Le programme ne traite que les données des exportations et non des expéditions.
Les résultats sont présentés mensuellement ou annuellement par exportateur.
*********************************************************************************************

* création de deux fichiers additionnels pour traitement plus rapide.
USE
USE C:Zipzip.DBF
COPY STRUCTURE TO C:ZIP_2.DBF
COPY STRUCTURE TO C:Zip_3.DBF
USE

* initialisation des variables de travail.
IF Fivon ="000'
   STORE Fivon TO F1
   STORE '623' TO F2
ELSE
set console on
set talk on
   STORE STR (((Val(Fivon))-1),3) TO F1
   STORE STR (((Val(Fivon))+1),3) TO F2
ENDIF
SET TALK OFF
SET CONSOLE ON
STORE SPACE(1) TO Far_1
STORE "1" TO Part,Boucle
STORE 1 TO Count, Exp
IF Val(Mois) < 10
   STORE STR(VAL(Mois),2) TO Mois
ELSE
   STORE STR(VAL(Mois),2) TO Mois
ENDIF
IF Res ="1'
   STORE VAL(Mois) TO Tel
ELSE
   STORE 1 TO Tel
ENDIF
STORE .T. TO Process

* boucle principale.
DO WHILE Process

* premiére partie : calcul et présentation des résultats annuels par
* fivondronana / faritany d'origine par exportateur.
   IF Res ="2'
      USE C:Zip_3
APPEND FROM C:Zipzip FOR((FIVONDRON > F1 .AND. FIVONDRON < F2) .AND. DESTIN > "700"
      INDEX ON EXPEDITEUR TO C:Exp_1.NDX
      USE

* boucle des exportateurs.
      DO WHILE Exp < 700
       
* impression de l'entête.
      IF Part ="1'
         IF (Part ="1' .AND. Boucle ="1')
            DO Setup
            DO Line
         ENDIF
         STORE '2' TO Boucle

* préparation des codes exportateurs et mise à zéro des variables.
         IF Exp < 100
            STORE '00'+STR(Exp,1) TO Y
         ELSE
            STORE STR(Exp,3) TO Y
         ENDIF
         STORE 0 TO Q1,Q2,Q3,Q4,Q5,Q6,Q7,Q8,Q9,Q10,Q11,Q12,Q13,Q14,Q15,Q16
         STORE 0 TO Q17,Q18,Q19,Q20,V17,V18,V19,V20
         STORE 0 TO V1,V2,V3,V4,V5,V6,V7,V8,V9,V10,V11,V12,V13,V14,V15,V16

* recherche des exportateurs sur fichier indexé.
         STORE Y TO Key
         USE C:ZIP_3 INDEX C:Exp_1
         FIND &Key

* si recherche fructueuse, calcul et impression des résultats annuels.
         IF FOUND()
            USE C:ZIP 2.DBF
            APPEND FROM C:Zip_3 FOR(EXPEDITEUR = Y)
            IF .NOT. EOF()
               SUM QUANTITE,VALEUR TO Q1,V1 FOR(NAT_PROD ="01')
               SUM QUANTITE,VALEUR TO Q2,V2 FOR(NAT_PROD ="02')
               SUM QUANTITE,VALEUR TO Q3,V3 FOR(NAT_PROD ="03')
               SUM QUANTITE,VALEUR TO Q4,V4 FOR(NAT_PROD ="04')
               SUM QUANTITE,VALEUR TO Q5,V5 FOR(NAT_PROD ="05')
               SUM QUANTITE,VALEUR TO Q6,V6 FOR(NAT_PROD ="06')
               SUM QUANTITE,VALEUR TO Q7,V7 FOR(NAT_PROD ="07')
               SUM QUANTITE,VALEUR TO Q8,V8 FOR(NAT_PROD ="08')
               SUM QUANTITE,VALEUR TO Q9,V9 FOR(NAT_PROD ="09')
               SUM QUANTITE,VALEUR TO Q10,V10 FOR(NAT_PROD ="10')
               SUM QUANTITE,VALEUR TO Q11,V11 FOR(NAT_PROD ="11')
               SUM QUANTITE,VALEUR TO Q12,V12 FOR(NAT_PROD ="12')
               SUM QUANTITE,VALEUR TO Q13,V13 FOR(NAT_PROD ="13')
               SUM QUANTITE,VALEUR TO Q14,V14 FOR(NAT_PROD ="14')
               SUM QUANTITE,VALEUR TO Q15,V15 FOR(NAT_PROD ="15')
               SUM QUANTITE,VALEUR TO Q16,V16 FOR(NAT_PROD ="16')
               SUM QUANTITE,VALEUR TO Q17,V17 FOR(NAT_PROD ="17')
               SUM QUANTITE,VALEUR TO Q18,V18 FOR(NAT_PROD ="18')
               SUM QUANTITE,VALEUR TO Q19,V19 FOR(NAT_PROD ="19')
               SUM QUANTITE,VALEUR TO Q20,V20
               DELETE ALL
               PACK
               USE &&closeZip_2
	               
* impression du nom de l'exportateur.
               STORE Y TO Chx
               SET PRINT ON
               ?? CHR(15)
               DO CHX_EXP

* impression des résultats si les valeurs sont positives.

               SET PRINT ON
               SET CONSOLE OFF

?? " Q"+STR(Q1,8)+STR(Q2,8)+STR(Q3,8)+" | "+STR(Q4,8)+STR(Q5,8)+STR(Q6,8);
+" | "+STR(Q7,8)+STR(Q8,8)+STR(Q9,8)+" | "+STR(Q10,8)+STR(Q11,8)+" | ";
+STR(Q12,8)+" | "+STR(Q13,8)+" | "+STR(Q14,8)
?? " | "+STR(Q15,8)+" | "+STR(Q16,8)+" | "+STR(Q17,8)+" | "+STR(Q18,8)+" | ";
+STR(Q19,8)+" | "+STR(Q20.14)+" | "
? " | "+SPACE(19)+"V"+STR(V1/1000,8)+STR(V2/1000,8)+STR(V3/1000,8)+" | ";
+STR(V4/1000,8)+STR(V5/1000,8)+STR(V6/1000,8)+" | "+STR(V7/1000,8);
+STR(V8/1000,8)+STR(V9/1000,8)+" | "+STR(V10/1000,8)+STR(V11/1000,8)
?? " | "+STR(V12/1000,8)+" | "+STR(V13/1000,8)+" | "+STR(V14/1000,8)+" | ";
+STR(V15/1000,8)+" | "+STR(V16/1000,8)+" | "+STR(V17/1000,8)+" | ";
+STR(V18/1000,8)+" | "+STR(V19/1000,8)+" | "+STR(V20/1000,14)+" | "
               SET PRINT OFF
            ELSE
	           DELETE ALL
               PACK
               USE
            ENDIF &&.NOT.EOF()
         ENDIF &&Found()
		 USE &&closeZip_3

* passage à l'exportateur suivant.
         SET CONSOLE ON
         DO CASE
             CASE Y ="001'
                  STORE (Exp+99) TO Exp
             CASE Y = "120"
                  STORE (Exp+80) TO Exp
             CASE Y ="240'
                  STORE (Exp+60) TO Exp
             CASE Y ="310'
                  STORE (Exp+90) TO Exp
             CASE Y ="460'
                  STORE (Exp+40) TO Exp
             CASE Y ="510'
                  STORE (Exp+90) TO Exp
             CASE Y ="660'
                  STORE (Exp+39) TO Exp
             CASE Y ="699'
                  STORE .F. TO Process
          OTHERWISE
                  STORE (Exp + 1) TO Exp
          ENDCASE
          SET CONSOLE OFF

* calcul et impression des totaux annuels si tous les exportateurs ont
* été passé en revue.
          IF Exp = 699
             DO Line
             USE C:ZIP 3.DBF
             SUM QUANTITE,VALEUR TO Q1,V1 FOR(NAT_PROD = "01")
             SUM QUANTITE,VALEUR TO Q2,V2 FOR(NAT_PROD = "02")
             SUM QUANTITE,VALEUR TO Q3,V3 FOR(NAT_PROD = "03")
             SUM QUANTITE,VALEUR TO Q4,V4 FOR(NAT_PROD = "04")
             SUM QUANTITE,VALEUR TO Q5,V5 FOR(NAT_PROD = "05")
             SUM QUANTITE,VALEUR TO Q6,V6 FOR(NAT_PROD = "06")
             SUM QUANTITE,VALEUR TO Q7,V7 FOR(NAT_PROD = "07")
             SUM QUANTITE,VALEUR TO Q8,V8 FOR(NAT_PROD = "08")
             SUM QUANTITE,VALEUR TO Q9,V9 FOR(NAT_PROD = "09")
             SUM QUANTITE,VALEUR TO Q10,V10 FOR(NAT_PROD = "10")
             SUM QUANTITE,VALEUR TO Q11,V11 FOR(NAT_PROD = "11")
             SUM QUANTITE,VALEUR TO Q12,V12 FOR(NAT_PROD = "12")
             SUM QUANTITE,VALEUR TO Q13,V13 FOR(NAT_PROD = "13")
             SUM QUANTITE,VALEUR TO Q14,V14 FOR(NAT_PROD = "14")
             SUM QUANTITE,VALEUR TO Q15,V15 FOR(NAT_PROD = "15")
             SUM QUANTITE,VALEUR TO Q16,V16 FOR(NAT_PROD = "16")
             SUM QUANTITE,VALEUR TO Q17,V17 FOR(NAT_PROD = "17")
             SUM QUANTITE,VALEUR TO Q18,V18 FOR(NAT_PROD = "18")
             SUM QUANTITE,VALEUR TO Q19,V19 FOR(NAT_PROD = "19")
             SUM QUANTITE,VALEUR TO Q20,V20
             USE

* impression des résultats totaux annuels des exportations.
             SET CONSOLE OFF
             SET PRINT ON
             ?? CHR(15)
             ? "| TOTAUX"
?? SPACE(5)+"QUANTITE"+STR(Q1,8)+STR(Q2,8)+STR(Q3,8)+" | "+STR(Q4,8);
+STR(Q5,8)+STR(Q6,8)+" | "+STR(Q7,8)+STR(Q8,8)+STR(Q9,8)+" | "+STR(Q10,8);
+STR(Q11,8)+" | "+STR(Q12,8)+" | "+STR(Q13,8)+" | "+STR(Q14,8)+" | "
?? STR(Q15,8)+" | "+STR(Q16,8)+" | "+STR(Q17,8)+" | "+STR(Q18,8)+" | ";
+STR(Q19,8)+" | "+STR(Q20,14)+" | "
? "|"+SPACE(13)+"VALEUR "+STR(V1/1000,8)+STR(V2/1000,8)+STR(V3/1000,8)+" | ";
+STR(V4/1000,8)+STR(V5/1000,8)+STR(V6/1000,8)+" | "+STR(V7/1000,8);
+STR(V8/1000,8)+STR(V9/1000,8)+" | "+STR(V10/1000,8)+STR(V11/1000,8)
?? " | "+STR(V12/1000,8)+" | "+STR(V13/1000,8)+" | "+STR(V14/1000,8)+" | ";
+STR(V15/1000,8)+" | "+STR(V16/1000,8)+" | "+STR(V17/1000,8)+" | ";
+STR(V18/1000,8)+" | "+STR(V19/1000,8)+" | "+STR(V20/1000,14)+" | "
             SET PRINT OFF
             DO Line
          ENDIF &&Exp=699

* préparation à la sortie de la boucle principale.
          IF Exp = 699
             STORE (EXP + 2) TO Exp
             STORE .F. TO Process
          ELSE
             STORE .T. TO Process
          ENDIF &&Exp=699
       ENDIF &&Part="1'
    ENDDO &&Exp<700
* fin de la partie des résultats annuels.

  ELSE

* si des résultats annuels sont demandés.
       IF Res ="1'
          DO EXPORT_3
       ELSE
          RELEASE ALL
          RETURN
       ENDIF &&Res=1
    ENDIF &&Res=2

* fin de la boucle principale.
ENDDO &&Process

* remise à l'état d'origineet retour au menu principal.
SET PRINT ON
EJECT
SET PRINT OFF
USE
DELETE FILE C:ZIP_2.DBF
DELETE FILE C:ZIP_3.DBF
DELETE FILE C:Zipzip.DBF
DELETE FILE C:Exp_1.NDX
SET CONSOLE ON
RELEASE ALL
RETURN
* fin du programme.

EXPORT(ations)_3 COMMAND FILE

*********************************************************************************************
Ce programme calcule, par mois, les exportations hors fivondronana par NATURE de PRODUIT et par EXPORTATEUR.
Les données ont été transférées sur disque dur pour raison de sécurité.
*********************************************************************************************

* première partie : calcul et présentation des résultats annuels par faritany
* et par exportateur.

STORE "  " TO X
SET TALK OFF
SET CONSOLE OFF

* boucle principale des mois.
DO WHILE Tel < 13
   IF Tel < 10
      STORE "0"+STR(Tel,1) TO X
   ELSE
      STORE STR(Tel,2) TO X
   ENDIF &&Tel <10

* ajout des données mensuelles au fichier.
   USE C:Zip 3.DBF
APPEND FROM C:Zipzip FOR((FIVONDRON > F1 .AND. FIVONDRON < F2) .AND.;
 SUBSTR(DTOC(DATE) ,4,2) = X)
   INDEX ON EXPEDITEUR TO C:zap_dx.ndx
   USE
   STORE 1 TO Exp

* boucle des exportateurs.
   DO WHILE Exp < 700

* impression de l'entête.
      IF (Part ="1' .AND. Boucle ="1')
         DO Setup
         DO Line
      ENDIF
      STORE '2' TO Boucle
      clear
      set console on
      set talk on

* initialisation ou préparation des variables de travail.
      IF Exp = 1
         STORE '001' TO Y,Key
      ELSE
         STORE STR(Exp,3) TO Y
      ENDIF
      set talk off
      set console off
      STORE 0 TO Q1,Q2,Q3,Q4,Q5,Q6,Q7,Q8,Q9,Q10,Q11,Q12,Q13,Q14,Q15,Q16
      STORE 0 TO Q17,Q18,Q19,Q20,V17,V18,V19,V20
      STORE 0 TO V1,V2,V3,V4,V5,V6,V7,V8,V9,V10,V11,V12,V13,V14,V15,V16
      
* recherche de l'exportateur sur fichier indexé.

      IF Exp <> 1
         STORE STR(Exp,3) TO Key
      ENDIF
      USE C:Zip_3 INDEX C:Zap_dx
      FIND &Key

* si recherche fructueuse, calcul et impression des résultats du tableau
* des résultats mensuels.

      IF FOUND()
         USE C:ZIP P.DBF
         APPEND FROM C:Zip_3 FOR(EXPEDITEUR = Y)
         SUM QUANTITE,VALEUR TO Q1,V1 FOR(NAT-PROD ="01')
         SUM QUANTITE,VALEUR TO Q2,V2 FOR(NAT-PROD ="02')
         SUM QUANTITE,VALEUR TO Q3,V3 FOR(NAT-PROD ="03')
         SUM QUANTITE,VALEUR TO Q4,V4 FOR(NAT-PROD ="04')
         SUM QUANTITE,VALEUR TO Q5,V5 FOR(NAT-PROD ="05')
         SUM QUANTITE,VALEUR TO Q6,V6 FOR(NAT-PROD ="06')
         SUM QUANTITE,VALEUR TO Q7,V7 FOR(NAT-PROD ="07')
         SUM QUANTITE,VALEUR TO Q8,V8 FOR(NAT-PROD ="08')
         SUM QUANTITE,VALEUR TO Q9,V9 FOR(NAT-PROD ="09')
         SUM QUANTITE,VALEUR TO Q10,V10 FOR(NAT-PROD ="10')
         SUM QUANTITE,VALEUR TO Q11,V11 FOR(NAT-PROD ="11')
         SUM QUANTITE,VALEUR TO Q12,V12 FOR(NAT-PROD ="12')
         SUM QUANTITE,VALEUR TO Q13,V13 FOR(NAT-PROD ="13')
         SUM QUANTITE,VALEUR TO Q14,V14 FOR(NAT-PROD ="14')
         SUM QUANTITE,VALEUR TO Q15,V15 FOR(NAT-PROD ="15')
         SUM QUANTITE,VALEUR TO Q16,V16 FOR(NAT-PROD ="16')
         SUM QUANTITE,VALEUR TO Q17,V17 FOR(NAT-PROD ="17')
         SUM QUANTITE,VALEUR TO Q18,V18 FOR(NAT-PROD ="18')
         SUM QUANTITE,VALEUR TO Q19,V19 FOR(NAT-PROD ="19')
         SUM QUANTITE,VALEUR TO Q20,V20
         DELETE ALL
         PACK
         USE &&close

* impression du nom de l'exportateur.
         STORE Y TO chx
         SET PRINT ON
         ?? CHR(15)
         DO CHX-EXP

* impression des résultats si les valeurs sont positives.
         SET PRINT ON
         SET CONSOLE OFF

?? " Q"+STR(Q1,8)+STR(Q2,8)+STR(Q3,8)+" | "+STR(Q4,8)+STR(Q5,8)+STR(Q6,8);
+" | "+STR(Q7,8)+STR(Q8,8)+STR(Q9,8)+" | "+STR(Q10,8)+STR(Q11,8)+" | ";
+STR(Q12,8)+" | "+STR(Q13,8)+" | "+STR(Q14,8)+" | "+STR(Q15,8)+" | "
?? STR(Q16,8)+" | "+STR(Q17,8)+" | "+STR(Q18,8)+" | "+STR(Q19,8)+" | ";
+STR(Q20,14)+" | "
? "|"+SPACE(19)+"V"+STR(V1/1000,8)+STR(V2/1000,8)+STR(V3/1000,8)+" | ";
+STR(V4/1000,8)+STR(V5/1000,8)+STR(V6/1000,8)+" | "+STR(V7/1000,8);
+STR(V8/1000,8)+STR(V9/1000,8)+" | "+STR(V10/1000,8)
?? STR(V11/1000,8)+" | "+STR(V12/1000,8)+" | "+STR(V13/1000,8)+" | ";
+STR(V14/1000,8)+" | "+STR(V15/1000,8)+" | "+STR(V16/1000,8)+" | ";
+STR(V17/1000,8)+" | "+STR(V18/1000,8)+" | "+STR(V19/1000,8)
?? " | "+STR(V20/1000,14)+" | "
         SET PRINT OFF
      ENDIF &&found()

* passage à l'exportateur suivant.
      DO CASE
         CASE Y ="001'
              STORE (Exp+99) TO Exp
         CASE Y = "115"
              STORE (Exp+85) TO Exp
         CASE Y ="225'
              STORE (Exp+75) TO Exp
         CASE Y ="310'
              STORE (Exp+90) TO Exp
         CASE Y ="460'
              STORE (Exp+40) TO Exp
         CASE Y ="507'
              STORE (Exp+93) TO Exp
         CASE Y ="650'
              STORE (Exp+49) TO Exp
         CASE Y ="699'
              STORE .F. TO Process
         OTHERWISE
              STORE (Exp+1) TO Exp
      ENDCASE

* si touts les exportateurs ont été passés en revue.
      IF Exp = 699

* calcul et impression des totaux avec remise des variables à zéro.
      DO Line
      STORE 0 TO Q1,Q2,Q3,Q4,Q5,Q6,Q7,Q8,Q9,Q10,Q11,Q12,Q13,Q14,Q15,Q16
      STORE 0 TO Q17,Q18,Q19,Q20,V17,V18,V19,V20
      STORE 0 TO V1,V2,V3,V4,V5,V6,V7,V8,V9,V10,V11,V12,V13,V14,V15,V16
      USE C:ZIP 3.DBF
      SUM QUANTITE,VALEUR TO Q1,V1 FOR(NAT-PROD = "01")
      SUM QUANTITE,VALEUR TO Q2,V2 FOR(NAT-PROD = "02")
      SUM QUANTITE,VALEUR TO Q3,V3 FOR(NAT-PROD = "03")
      SUM QUANTITE,VALEUR TO Q4,V4 FOR(NAT-PROD = "04")
      SUM QUANTITE,VALEUR TO Q5,V5 FOR(NAT-PROD = "05")
      SUM QUANTITE,VALEUR TO Q6,V6 FOR(NAT-PROD = "06")
      SUM QUANTITE,VALEUR TO Q7,V7 FOR(NAT-PROD = "07")
      SUM QUANTITE,VALEUR TO Q8,V8 FOR(NAT-PROD = "08")
      SUM QUANTITE,VALEUR TO Q9,V9 FOR(NAT-PROD = "09")
      SUM QUANTITE,VALEUR TO Q10,V10 FOR(NAT-PROD = "10")
      SUM QUANTITE,VALEUR TO Q11,V11 FOR(NAT-PROD = "11")
      SUM QUANTITE,VALEUR TO Q12,V12 FOR(NAT-PROD = "12")
      SUM QUANTITE,VALEUR TO Q13,V13 FOR(NAT-PROD = "13")
      SUM QUANTITE,VALEUR TO Q14,V14 FOR(NAT-PROD = "14")
      SUM QUANTITE,VALEUR TO Q15,V15 FOR(NAT-PROD = "15")
      SUM QUANTITE,VALEUR TO Q16,V16 FOR(NAT-PROD = "16")
      SUM QUANTITE,VALEUR TO Q17,V17 FOR(NAT-PROD = "17")
      SUM QUANTITE,VALEUR TO Q18,V18 FOR(NAT-PROD = "18")
      SUM QUANTITE,VALEUR TO Q19,V19 FOR(NAT-PROD = "19")
      SUM QUANTITE,VALEUR TO Q20,V20
      DELETE ALL
      PACK
      USE &&close
      DELETE FILE C:Zap_dx.NDX
      SET CONSOLE OFF

* impression des totaux.
      SET PRINT ON
      ?? CHR(15)
      ? "| TOTAUX "
?? SPACE(5)+"QUANTITE"+STR(Q1,8)+STR(Q2,8)+STR(Q3,8)+" | "+STR(Q4,8)+STR(Q5,8);
+STR(Q6,8)+" | "+STR(Q7,8)+STR(Q8,8)+STR(Q9,8)+" | "+STR(Q10,8)+STR(Q11,8)+" | ";
+STR(Q12,8)+" | "+STR(Q13,8)+" | "+STR(014,8)+" | "
?? STR(Q15,8)+" | "+STR(Q16,8)+" | "+STR(Q17,8)+" | "+STR(Q18,8)+" | "+STR(Q19,8);
+" | "+STR(Q20,14)+" | "
? " | "+SPACE(13)+"VALEUR"+STR(V1/1000,8)+STR(V2/1000,8)+STR(V3/1000,8)+" | ";
+STR(V4/1000,8)+STR(V5/1000,8)+STR(V6/1000,8)+" | "+STR(V7/1000,8)+STR(V8/1000,8);
+STR(V9/1000,8)+" | "+STR(V10/1000,8)+STR(V11/1000,8)
?? " | "+STR(V12/1000,8)+" | "+STR(V13/1000,8)+" | "+STR(V14/1000,8)+" | ";
+STR(V15/1000,8)+" | "+STR(V16/1000,8)+" | "+STR(V17/1000,8)+" | "+STR(V18/1000,8)+" | ";
+STR(V19/1000,8)+" | "+STR(V20/1000,14)+" | "
      SET PRINT OFF
      DO Line
      STORE '1' TO Part, Boucle
      SET PRINT ON
      EJECT
      SET PRINT OFF
      STORE (Exp+5) TO Exp
   ENDIF &&Exp=699

* préparation à la sortie de la boucle des exportateurs.
   IF (Exp > 700)
      STORE Tel + 1 TO Tel
      STORE .T. TO Process
   ENDIF

* préparation à la sortie de la boucle des mois.
      IF (Tel > 12 .AND. Exp > 700)
         STORE .F. TO Process
      ENDIF &&Tel>12andexp>700
   ENDDO &&Exp<700
   STORE 1 TO Exp
ENDDO &&Tel>13

* remise à l'état d'origine.
RELEASE ALL
RETURN
* retour au programme EXPORT_2.PRG

SETUP COMMAND FILE

************************************************************************
Ce programme imprime l'entête pour les estimations mensuelles et annuelles des expéditions hors FIVONDRONANA/EXPORTATIONS.
************************************************************************

* initialisation de la routine d'entête des tableaux.
SET PRINT OFF
STORE DATE() TO Mdate
SET PRINT ON

* si les tableaux ne comportent qu'une seule partie.
IF Part <> '2'
   SET PRINT ON

* impression de l'entête générale.
   SET CONSOLE OFF
   SET MARGIN TO O
   ?? CHR(18) &&normal printing mode
   ?? CHR(27) + CHR(88) + CHR(2) + CHR(232)
   ? SPACE(37)+'MINISTERE DE LA PRODUCTION ANIMALE ET DES EAUX ET FORETS.'
   ?
   ? "REPUBLIQUE DEMOCRATIQUE"+SPACE(21)+"DIRECTION DE LA PECHE ET DE"
   ?? "L'AQUACULTURE".
   ? SPACE(6)+"DE MADAGASCAR"
   ? CHR(14)

* sélection pour les expéditions hors fivondronana ou les exportations.
   IF (Reply="1' .OR. Reply="2' .OR. Reply="3' .OR. Reply="4' .OR. Reply="5')
      ?? SPACE(13)+"EXPEDITION hors FIVONDRONANA - 1987 -"
   ELSE
      ?? SPACE(16)+"EXPORTATIONS par FARITANY - 1987 -"
   ENDIF
   ?? CHR(15)
   ? SPACE(4)+"Date : "+DTDC (Mdate)
   ?? CHR(18)
ENDIF

* sélection du faritany.
SET PRINT ON
? "Faritany : "
DO CASE
   CASE Far ="5'
        ?? "TOAMASINA"
   CASE Far ="3'
        ?? "FIANARANTSOA"
   CASE Far ="6'
        ?? "TULEAR"
   CASE Far ="4'
        ?? "MAHAJANGA"
   CASE Far ="2'
        ?? "ANTSIRANANA"
   CASE Far ="1'
        ?? "ANTANANARIVO"
ENDCASE

* sélection plus fine des fivondronana d'origine.
   IF (Reply = "1" .OR. Reply = "2" .OR. Reply ="3" .OR. Reply="5')
   ?? "   Fivondronana d'origine :"
   IF Fiv ="000'
      ?? "TOUS"
   ELSE
      DO Choix-fiv
   ENDIF

* impression des unités.
   SET PRINT ON
   SET CONSOLE OFF
   ?? CHR(15)
   ?? SPACE(54)+"UNITES Poids : Kgs         UNITES Valeur : x 1000 FMG"
   ?? CHR (18)
   SET PRINT OFF
   ELSE
* sélection plus fine pour option 4.
   IF Reply = "4"
   SET CONSOLE OFF
   ?? "   Fivondronana d'origine :"
   DO CHOIX FIV
   SET PRINT ON
   SET CONSOLE OFF
   ?? CHR(15)
   ?? SPACE(50)+"UNITES Poids : Kgs         UNITES Valeur : x 1000 FMG"
   ?? CHR(18)
   SET PRINT OFF
ELSE

* sélection pour options 6 et 7.

   IF (Reply ="6" .OR. Reply ="7")
      SET CONSOLE OFF
      SET PRINT ON
      IF Reply ="7'
         ?? SPACE(10)+"FIVONDRONANA :"
         DO CASE
            CASE Fivon ="000'
                 ?? "Tous "
            CASE Fivon ="103'
                  ?? "Antananarivo "
             CASE Fivon ="202'
                  ?? "Antsiranana "
             CASE Fivon ="207'
                  ?? "Nosy-Be "
             CASE Fivon ="209'
                  ?? "Vohémar "
             CASE Fivon ="302'
                  ?? "Fianarantsoa "
             CASE Fivon ="317'
                  ?? "Manajary "
             CASE Fivon ="402'
                  ?? "Mahajanga "
             CASE Fivon ="502'
                  ?? "Toamasina "
             CASE Fivon ="602'
                  ?? "Toliary "
             CASE Fivon ="608'
                  ?? "Belo/Tsiribin "
             CASE Fivon ="614'
                  ?? "Tolagnaro "
             CASE Fivon ="618'
                  ?? "Morombe "
             CASE Fivon ="619'
                  ?? "Morondava "
          ENDCASE
       ENDIF
       ?? CHR(15)
       ?? SPACE(70)+"UNITES Poids : Kgs UNITES Valeur : x 1000 FMG"
       ?? CHR(18)
       SET PRINT OFF
    ENDIF &&Reply="6","7"
 ENDIF &&Reply="4"
 ENDIF &&Reply="1,2,3"
 SET PRINT OFF
 DO LINE

* sélection des titres selon le tableau désiré.
SET PRINT ON
SET CONSOLE OFF
DO CASE
   CASE Reply ="1'
        ? SPACE (9)
        ?? CHR(27) + CHR(69)
?? SPACE(23)+ '***** N A T U R E ***** D E S *****':
+' P R O D U I T S  *****'
        ?? CHR(27) + CHR(70)
        ?? CHR(15)
        DO LINE
        SET PRINT ON
        ?? CHR(18)
        IF Fiv <> '000'
           ?? CHR(15)
? "| MOIS     POISSONS|  CREVETTES | CRABES";
+" | LANGOUSTES | CEPHALOP | CHEVAQUI. | ALGUES| "
+"TREPANG | BICHIQUE | COQUILLA | AIL.REQU. | AUTRES | TOTAL| "
? "|  "+SPACE(8)+"entier évisc. fileté | entier étêté décort | entier";
+"morceau décorti | entière queue | entier | | |";
+"| | | | | FIVONDRONANA|"
           ?? CHR(18)
        ELSE
           ?? CHR(15)
? "|  FIVONDRONANA"+SPACE(9)+"POISSONS | CREVETTES";
+"| CRABES"+" | LANGOUSTES | CEPHALOP".;
+"|  CHAVAQUI. | ALGUES | "+"TREPANG | BICHIQUE | COQUILLA.| "
?? "AIL.REQU. |  AUTRES | TOTAL| "
?"|  "+SPACE(22)+"entier évisc.  fileté | entier étêtédécort | entier";
+"morceau décorti | entière queue | entier | | |";
+"| | | | | FIVONDRONANA| "
           ?? CHR(18)
           ENDIF

   CASE Reply ="2'
* première partie du tableau.
        IF Part <> '2'
           ?? CHR(27) + CHR(69)
?? SPACE(31)+ ' M O Y E N  ***** DE  ***** C O N S E R V A T I O N';
+'  *****'
           ?? CHR(27) + CHR(70)
           ?? CHR(15)
           DO LINE
           SET PRINT ON
           ?? CHR(18)
           IF Fiv >< '000'
              ?? CHR(15)
? "|MOIS POISSON"+SPACE(72)+"|CREVETTE/CAMARON"+SPACE(47)+"| CRABE";
+SPACE(26)+"| LANGOUSTE"+SPACE(22)+" | "
? "| entier éviscéré fileté";
+" |"+"entier étêté"
+"décortiqué|entier morcea"
?? "décort | entier queue |"
? "| congel cuit fumé congel cuit fumé séché congel";
+"fumé séché"+"congel bouill séché congel bouill cuit";
+"cuit séché|vivant cuit congel"
?? "congel|vivant congel cuit congel|"
           ELSE
              ?? CHR(15)

?"|FIVONDRONANA"+SPACE(3)+"POISSON"+SPACE(72)+"|CREVETTE/CAMARON";
+SPACE(47)+"| CRABE"+SPACE(26)+"| LANGOUSTE"+SPACE(22)+" | "
?" | "+SPACE(15)+"entieréviscéré
+"fileté|"+"entier étêté";
+"décortiqué|entier morcea"
?? "décort|entier queue|"
?" | "+SPACE(15)+"congel cuit fumé congel cuit fumé séché";
+"congel fume séché|"+"congel bouill séché congel bouill";
+"cuit séché| vivant cuit congel"
?? "congel | vivant congel cuit congel|"
              ?? CHR(18)
           ENDIF
        ELSE

* seconde partie du tableau.
           IF Part ="2'
              SET CONSOLE OFF
              ?? CHR(27) + CHR(69)

? SPACE(19) + '   M O Y E N      DE     C O N S E R V A T I O N';
              ?? CHR(27) + CHR(70)
              ?? CHR(15)
              DO LINE
              SET PRINT ON
              ?? CHR(15)
              
			  IF Fiv ="000'
                 ? SPACE(25)+" | "
                 ?? SPACE(16)
              ELSE
                 ? SPACE(25)+"| MOIS"+SPACE(11)
              ENDIF

?? "CEPHALOPODE"+SPACE(12)+"| CHEVAQUI. | ALGUES | TREPANS |";
+" BICHIQUE | COQUILLA. | AIL.REQU. | AUTRES | | TOTAL |".

? SPACE(25)+" | "+SPACE(18)+"entier|||"
+"| | | | | |";
+"  FIVONDRONANA  |"
? SPACE(25)+" | "+SPACE(18)+"vivant fumé séché| séché| séché|";
+"séché| congel séché| séché| séché| ||";
+"  | "
              ?? CHR (18)
              SET CONSOLE ON
           ENDIF
        ENDIF

  CASE Reply ="3'
        SET CONSOLE OFF
        SET PRINT ON
        ?? CHR(18)
        ?? CHR(27) + CHR(69)
?'       PAR     NATURE       DES       PRODU';
+" I T S ;
   PAR      D E S T I N A T I O N     '
        ?? CHR(27) + CHR(70)
        ?? CHR(15)
        DO Line
        SET PRINT ON
        IF Fiv <>'000'
           ?? CHR(15)

? "|"+SPACE(16)+ | POISSONS | CREVETTES"+SPACE(14)+" | ";
+"CRABES"+" | LANGOUSTES | CEPHALOP. | CHEVAQUI. | ";
+"ALGUES |"+"TREPANG | BICHIQUE | COQUILLA. |AIL.REQU. | AUTRES | "
?? "   TOTAL | "
        IF Des ="1'
           ? " | "
           DO MOIS
        ENDIF
        
		SET PRINT ON
        ?? CHR(15)
?? SPACE(7)+"| entier évisc. fileté | entier étêté décort | entier";
+"morceau décorti | entière queue | entier | | |";
+" | | | | | FIVONDRDNANA |"
        ?? CHR(18)
     ELSE
        SET PRINT ON
        ?? CHR(15)

? " | "+SPACE(16)+"| POISSONS | CREVETTES | ";
+"CRABES"+"| LANGOUSTES | CEPHALOP. | CHEVAQUI. | ";
+"ALGUES | "+"TREPANG | BICHIQUE | COQUILLA. | AIL.REQU. | AUTRES | "
?? "TOTAL |"
        IF Des = "2"
           SET CONSOLE OFF
           SET PRINT ON
           ?? CHR(15)
           ? "| ANNEE 87"
?? SPACE (7)+"| entier évisc. fileté | entier étêté décort | entier";
+" morceau décorti | entière queue | entier | | | ";
+" | | | | | FIVONDRONANA | "
        ?? CHR(18)
     ENDIF

  CASE Reply ="4'
* première partie du tableau.

        SET CONSOLE OFF
        IF Part<>'2'
           SET PRINT ON
           ?? CHR(27) + CHR(69)
? '   PAR      M O Y E N    DE    C O N S E R V A T I O N   ;
  ET  PAR      D E S T I N A T I O N    '
           ?? CHR(27) + CHR(70)
           DO LINE
           SET PRINT ON
           ?? CHR(15)

? "|"+SPACE(20)+"| POISSON"+SPACE(72)+"| CREVETTE/CAMARON"+SPACE(48);
+"| CRABE"+SPACE(26)+" | "
           ? " | "
        
		   IF Des ="1'
              DO MOIS
           ELSE
              IF Des = "2"
                 SET CONSOLE OFF
                 SET PRINT ON
                 ?? CHR(15)
                 ?? "ANNEE 87"
                 ?? CHR(27) + CHR(70)
                 SET PRINT OFF
              ELSE
              RELEASE ALL
              RETURN
           ENDIF
       ENDIF

	   SET PRINT ON
       ?? CHR(15)
?? SPACE(11)+"| entier éviscéré"
+"fileté | entier étêté"
+"décortiqué | entier morecea décort |"
? " | "+SPACE(16)+"| congel cuit fumé congel cuit fumé";
+"séché congel fumé séché | congel bouill séché congel bouill";
+"cuit cuit séché | vivant cuit congel congel |"
       ?? CHR(18)
    ELSE

* seconde partie du tableau.

        IF Part ="2'
           SET PRINT ON
           ?? CHR(27) + CHR(88) + CHR(2) + CHR(232)
           ?? CHR(27) + CHR(69)

? '    PAR        M O Y E N     DE            C O N S E R V A T I O N   ET    ;
  PAR    D E S T I N A T I O N '
           ?? CHR(27) + CHR(70)
           DO LINE
           SET PRINT ON
           ?? CHR(15)

?" | "+SPACE(24)+"LANGOUSTES"+SPACE(20)+"|CEPHALOPODES"+SPACE(11);
+"|CHEVAQUIN.| ALGUES |TREPANGS |BICHIQUES |COQUILLA|.";
+"AIL.REQU.| AUTRES|| TOTAL|"
           ?" | "
           IF Des ="1'
              DO MOIS
           ELSE
              IF Des ="2"
                 SET CONSOLE OFF
                 SET PRINT ON
                 ?? CHR(15)
                 ?? "ANNEE 87"
                 ?? CHR(27) +CHR(70)
                 SET PRINT OFF
              ELSE
                 RELEASE ALL
                 RETURN
             ENDIF
          ENDIF
          SET PRINT ON
          ?? CHR(15)

?? SPACE(15)+"| entier"+SPACE(18)+"queues|entier|";
+"| | | | | |";
+"||FIVONDRONANA|"
?" | "+SPACE(24)+"| vivant congelé cuit congelé|vivant fumé";
+"séché"+"|séché"+"|séché|séché|congelé séché|";
         ?? CHR(18)
         SET CONSOLE ON
      ENDIF
   ENDIF

   CASE Reply ="5'
        SET CONSOLE OFF
        SET PRINT ON
        ?? CHR(18)
        ?? CHR(27) + CHR(69)

? '   PAR       N A T U R E       D E S     P R O';
+' D U I T S     PAR     E X P E D I T E U R     '
        ?? CHR(27) + CHR(70)
        ?? CHR(15)
        DO Line
        SET PRINT ON
        IF Fiv <> '000'
           ?? CHR (15)

? " | "+SPACE(23)+"POISSONS | CREVETTES | CRABES";
+" | LANGOUSTES | CEPHALOP.| CHEVAQUI.| ALGUES |";
+"TREPANG | BICHIQUE | COQUILLA.| AIL.REQU.| AUTRES | TOTAL |"
? " | "
        IF Des ="1'
           DO MOIS
        ENDIF
        SET PRINT ON
        ?? CHR(15)

?? SPACE(13)+"entier évisc. fileté | entier étêté décort | entier";
+"morceau décorti | entière queue | entier | | |";
+" | | | | | EXPEDITEUR |";
     ELSE
        ?? CHR(15)

? " | "+SPACE(23)+"POISSONS | CREVETTES | CRABES";
+" | LANGOUSTES | CEPHALOP.| CHEVAQUI.| ALGUES |";
+" TREPANG | BICHIQUE | COQUILLA.| AIL.REQU.| AUTRES | TOTAL |"
? "| ANNEE 1987 "+SPACE(11)+"entier évisc. fileté | entier étêté ";
+"décort | entier"+" morceau décorti | entière queue | entier |";
+" | | "+" | | | | "
?? " | EXPEDITEUR |"
        ENDIF

   CASE Reply ="6'
* première partie du tableau.
        SET CONSOLE OFF
        IF Part <> '2'
           SET PRINT ON
           ?? CHR(27) + CHR(69)

? '    PAR     M O Y E N     DE    C O N S E R V A T I O N ;
 ET     PAR     D E S T I N A T I O N    '
           ?? CHR(27) + CHR(70)
           DO LINE
           SET PRINT ON
           ?? CHR(15)

? "|"+SPACE(23)+"POISSON"+SPACE(72)+"| CREVETTE/CAMARON"+SPACE(47)+"|";
+"  CRABE"+SPACE(26)+"|"
           IF Res ="1'
              ? " | "
              DO MOIS
           ELSE
           IF Res = "2"
              SET CONSOLE OFF
              SET PRINT ON
              ?? CHR(15)
              ? "| ANNEE 87"
              ?? CHR(27) + CHR(70)
              SET PRINT OFF
           ELSE
              RELEASE ALL
              RETURN
           ENDIF
        ENDIF
        SET PRINT ON
        
		?? CHR(15)
?? SPACE(7)+" entier éviscéré ";
+" fileté | entier étêté";
+" décortiqué | entier morcea décort |"
? " | "+SPACE(16)+" congel cuit fumé congel cuit fumé";
+"séché congel fumé séché | congel bouill séché congel bouill";
+"  cuit cuit séché | vivant cuit congel congel |"
        ?? CHR(18)
     ELSE

* seconde partie du tableau.
        IF Part ="2'
           SET PRINT ON
           ?? CHR(27) + CHR(69)
? '   PAR    M O Y E N     DE    C O N S E R V A T I O N    ET;
 PAR    D E S T I N A T I O N  '
           ?? CHR(27) + CHR(70)
           DO LINE
           SET PRINT ON
           ?? CHR(15)

? "|"+SPACE(27)+"LANGOUSTES"+SPACE(20)+" | CEPHALOPODES"+SPACE(11);
+"|CHEVAQUIN.| ALGUES | TREPANGS | BICHIQUES | COQUILLA. | AIL.REQU.|";
+"AUTRES | | TOTAL |"
        IF Res ="1'
           ? " | "
           DO MOIS
        ELSE
           IF Res = "2"
              SET CONSOLE OFF
              SET PRINT ON
              ?? CHR(15)
              ? "| ANNEE 87"
              ?? CHR(27) + CHR(70)
              SET PRINT OFF
           ELSE
              RELEASE ALL
              RETURN
        ENDIF
    ENDIF
    SET PRINT ON
    ?? CHR(15)

?? SPACE(18)+"entier"+SPACE(18)+"queues | entier |";
+" | | | | | |";
+" | | FARITANY |"
? " | "+SPACE(25)+" vivant congelé cuit congelé | vivant fumé séché";
+" | séché | séché | séché | séché congelé | |";
+" | | | |"
        ?? CHR(18)
        SET CONSOLE ON
     ENDIF
ENDIF

   CASE Reply = "7"
        
		SET CONSOLE OFF
        SET PRINT ON
        ?? CHR(18)
        ?? CHR(27) + CHR(69)
? ' PAR   N A T U R E   DES    P R O D U';
+' I T S     PAR       E X P O R T A T E U R   '
        ?? CHR(27) + CHR(70)
        DO Line
        SET PRINT ON
        ?? CHR(15)

?" | "+SPACE(23)+"POISSONS | CREVETTES | CRABES";
+" | LANGOUSTES | CEPHALOP.| CHEVAQUI. | ALGUES |";
+" TREPANG | BICHIQUE | COQUILLA.| AIL.REQU.| AUTRES | TOTAL |"
        ? " | "
        IF Res ="1'
           DO MOIS
        ELSE
           IF Res = "2"
              SET CONSOLE OFF
              SET PRINT ON
              ?? CHR(15)
              ?? "ANNEE 87"
              SET PRINT OFF
           ELSE
              RELEASE ALL
              RETURN
           ENDIF
        ENDIF
        SET PRINT ON
        ?? CHR(15)

?? SPACE(14)+"entier évisc.  fileté | entier étêté décort | entier";
+" morceau décorti | entière quoue | entier | | |"
+" | | | | | EXPORTATEUR |"
     ENDIF

ENDCASE

* finalisation de la routine et retour vers le programme apellant.
SET PRINT OFF
SET CONSOLE ON
RETURN
* retour

CHOIX_FIV(ondronana) COMMAND FILE

***********************************************************
Ce programme permet la sélection des fivodronana par faritany.
***********************************************************

* initialisation du programme.
SET PRINT ON
SET CONSOLE OFF
SET TALK OFF

* sélection des caractères à imprimer.
IF Fiv <> "000"
   STORE Fiv TO Chx
ELSE
   IF Fiv = "000"
      STORE Y TO Chx
      IF (Part <> '2' .AND. Reply <> '2')
         ? " | "
      ELSE
         IF (Part ="2' .AND. Reply ="2')
            ? SPACE(25)+" | "
         ELSE
            ? " | "
         ENDIF
      ENDIF
   ELSE
      RELEASE ALL
      RETURN
  ENDIF
ENDIF

* sélection des fivondronana du pays.
DO CASE
   CASE Chx="103'
        ?? "ANTANANARIVO "
   CASE Chx="104'
        ?? "AMBATOLAMPY "
   CASE Chx="105'
        ?? "AMBOHIDRATR "
   CASE Chx="106'
        ?? "ANDRAMASINA "
   CASE Chx="107'
        ?? "ANJOZOROBE "
   CASE Chx="108'
        ?? "ANKAZOBE "
   CASE Chx="109'
        ?? "ANTANIFOTSY "
   CASE Chx="110'
        ?? "ANTSIRABE "
   CASE Chx="112'
        ?? "ARIVONIMANO "
   CASE Chx="113'
        ?? "BETAFO "
   CASE Chx="114'
        ?? "FARATSIHO "
   CASE Chx="115'
        ?? "FENOARIVO-BE "
   CASE Chx="116'
        ?? "MANJAKANDRIA. "
   CASE Chx="117'
        ?? "MIARINARIVO. "
   CASE Chx="118'
        ?? "SOAVINANDRIA. "
   CASE Chx="119'
        ?? "TSIROANOMAND. "
   CASE Chx="202'
        ?? "ANTSIRANANA "
   CASE Chx="203'
        ?? "AMBANJA "
   CASE Chx="204'
        ?? "AMBILOBE "
   CASE Chx="205'
        ?? "ANDAPA "
   CASE Chx="206'
        ?? "ANTALAHA "
   CASE Chx="207'
        ?? "NOSY-BE "
   CASE Chx="208'
        ?? "SAMBAVA "
   CASE Chx="209'
        ?? "VOHEMAR "
   CASE Chx="302'
        ?? "FIANARANTSOA "
   CASE Chx="303'
        ?? "AMBALAVAO "
   CASE Chx="304'
        ?? "AMBATOFINAND "
   CASE Chx="305'
        ?? "AMBOHIMAHASO. "
   CASE Chx="306'
        ?? "AMBOSITRA "
   CASE Chx="307'
        ?? "BEFOTAKA "
   CASE Chx="308'
        ?? "FANDRIANA "
   CASE Chx="309'
        ?? "FARAFANGANA "
   CASE Chx="310'
        ?? "FORT-CARNOT "
   CASE Chx="311'
        ?? "IAKORA "
   CASE Chx="312'
        ?? "IFANADIANA "
   CASE Chx="313'
        ?? "IHOSY "
   CASE Chx="314'
        ?? "IKALAMAVONY "
   CASE Chx="315'
        ?? "IVOHIBE "
   CASE Chx="316'
        ?? "MANAKARA "
   CASE Chx="317'
        ?? "MANANJARY "
   CASE Chx="318'
        ?? "MIDONGY SUD "
   CASE Chx="319'
        ?? "NOSY-VARIKA "
   CASE Chx="320'
        ?? "VANGAINDRANO "
   CASE Chx="321'
        ?? "VOHIPENO "
   CASE Chx="322'
        ?? "VONDROZO "
   CASE Chx="402'
        ?? "MAHAJANGA "
   CASE Chx="403'
        ?? "AMBATO-BOENY "
   CASE Chx="404'
        ?? "AMBATOMAINTY "
   CASE Chx="405'
        ?? "ANALALAVA "
   CASE Chx="406'
        ?? "ANTSALOVA "
   CASE Chx="407'
        ?? "ANTSOHIHY "
   CASE Chx="408'
        ?? "BEALANANA "
   CASE Chx="409'
        ?? "BEFANDRIANA "
   CASE Chx="410'
        ?? "BESALAMPY "
   CASE Chx="411'
        ?? "KANDREHO "
   CASE Chx="412'
        ?? "MAEVATANANA "
   CASE Chx="413'
        ?? "MAINTIRANO "
   CASE Chx="414'
        ?? "MAMPIKONY "
   CASE Chx="415'
        ?? "MANDRITSARA "
   CASE Chx="416'
        ?? "MAROVOAY "
   CASE Chx="417'
        ?? "MITSINJO "
   CASE Chx="418'
        ?? "MORAFENOBE "
   CASE Chx="419'
        ?? "PORT-BERGE "
   CASE Chx="420'
        ?? "SOALALA "
   CASE Chx="421'
        ?? "TSARATANANA "
   CASE Chx="502'
        ?? "TOAMASINA "
   CASE Chx="503'
        ?? "AMBATONDRAZA. "
   CASE Chx="504'
        ?? "AMPARAFARAVO. "
   CASE Chx="505'
        ?? "ANDILAMENA "
   CASE Chx="506'
        ?? "ANOSIBE AN'AL "
   CASE Chx="507'
        ?? "ANT.MANAMPOT. "
   CASE Chx="508'
        ?? "BRICKAVILLE "
   CASE Chx="509'
        ?? "FENERIVE EST "
   CASE Chx="510'
        ?? "MAHANORO "
   CASE Chx="511'
        ?? "MANANARA NORD "
   CASE Chx="512'
        ?? "MAROANTSETRA "
   CASE Chx="513'
        ?? "MAROLAMBO "
   CASE Chx="514'
        ?? "MORAMANGA "
   CASE Chx="515'
        ?? "SAINTE MARIE "
   CASE Chx="516'
        ?? "SOANIER.IVON. "
   CASE Chx="517'
        ?? "VATOMANDRY "
   CASE Chx="518'
        ?? "VAVATENINA "
   CASE Chx="602'
        ?? "TOLIARA "
   CASE Chx="603'
        ?? "AMBOASARY SUD "
   CASE Chx="604'
        ?? "AMBOVOMBE "
   CASE Chx="605'
        ?? "AMPANIHY OUES "
   CASE Chx="606'
        ?? "ANKAZOABO SUD "
   CASE Chx="607'
        ?? "BEKILY "
   CASE Chx="608'
        ?? "BELO/TSIRIBI. "
   CASE Chx="609'
        ?? "BELOHA "
   CASE Chx="610'
        ?? "BENENITRA "
   CASE Chx="611'
        ?? "BEROROHA "
   CASE Chx="612'
        ?? "BETIOKY SUD "
   CASE Chx="613'
        ?? "BETROKA "
   CASE Chx="614'
        ?? "TOLAGNARO "
   CASE Chx="615'
        ?? "MAHABO "
   CASE Chx="616'
        ?? "MANJA "
   CASE Chx="617'
        ?? "MIANDRIVAZO "
   CASE Chx="618'
        ?? "MOROMBE "
   CASE Chx="619'
        ?? "MORONDAVA "
   CASE Chx="620'
        ?? "SAKARAHA "
   CASE Chx="621'
        ?? "TSIHOMBE "
* sélection des pays d'exportation.
   CASE Chx="702'
        ?? "île REUNION "
   CASE Chx="703'
        ?? "îles MAURICE "
   CASE Chx="704'
        ?? "îles COMORES "
   CASE Chx="705'
        ?? "FRANCE "
   CASE Chx="706'
        ?? "JAPON "
   CASE Chx="707'
        ?? "R.F.ALLEMAGNE "
   CASE Chx="708'
        ?? "ANGLETERRE "
   CASE Chx="709'
        ?? "ITALIE "
   CASE Chx="710'
        ?? "U.S.A. "
   CASE Chx="711'
        ?? "HONG-KONG "
   CASE Chx="712'
        ?? "U.R.S.S. "
   CASE Chx="713'
        ?? "CANADA "
   CASE Chx="714'
        ?? "SEYCHELLES "
   CASE Chx="715'
        ?? "SINGAPOURE "
   CASE Chx="716'
        ?? "BELGIQUE "
   CASE Chx="717'
        ?? "MOZAMBIQUE "
   CASE Chx="718'
        ?? " "
   CASE Chx="719'
        ?? "AUTRES PAYS "
ENDCASE

SET PRINT OFF
SET CONSOLE ON
RETURN
* fin du sous-programme et retour au programme apellant.

MOIS COMMAND FILE

****************************************
Ce programme imprime les mois de l'année.
****************************************

* impression des mois.
SET PRINT ON
?? CHR(15)
DO CASE
   CASE Tel = 1
        ?? "JANVIER "
   CASE Tel = 2
        ?? "FEVRIER "
   CASE Tel = 3
        ?? "MARS "
   CASE Tel = 4
        ?? "AVRIL "
   CASE Tel = 5
        ?? "MAI "
   CASE Tel = 6
        ?? "JUIN "
   CASE Tel = 7
        ?? "JUILLET "
   CASE Tel = 8
        ?? "AOUT "
   CASE Tel = 9
        ?? "SEPTEMBRE "
   CASE Tel = 10
        ?? "OCTOBRE "
   CASE Tel = 11
        ?? "NOVEMBRE "
   CASE Tel = 12
        ?? "DECEMBRE "
   CASE Tel = 13
        ?? "ANNEE 87 "
ENDCASE
SET PRINT OFF
RETURN
* retour au programme appelant.

CH(oi)X_PAYS COMMAND FILE

******************************************
Ce programme permet la sélection des pays.
******************************************

* initialisation de la sous-routine
SET PRINT ON
?? CHR(15)
SET CONSOLE OFF
SET TALK OFF
STORE Comp TO Far
IF Far < 10
   Chx = "0"+STR(Far,1)
ELSE
   Chx = STR(Far,2)
ENDIF

* sélection des pays d'exportation.
DO CASE 
   CASE Chx = "01"
        ? "| île REUNION "
   CASE Chx = "02"
        ? "| île MAURICE "
   CASE Chx = "03"
        ? "| île COMORES "
   CASE Chx ="04'
        ? "| FRANCE "
   CASE Chx = "05"
        ? "| JAPON "
   CASE Chx = "06"
        ? "|R.F.ALLEMAGN "
   CASE Chx = "07"
        ? "| ANGLETERRE "
   CASE Chx = "08"
        ? "| ITALIE "
   CASE Chx = "09"
        ? "| U.S.A. "
   CASE Chx ="10'
        ? "| HONG KONG "
   CASE Chx = "11"
        ? "| U.R.S.S. "
   CASE Chx = "12"
        ? "| CANADA "
   CASE Chx = "13"
        ? "| SEYCHELLES "
   CASE Chx = "14"
        ? "| SINGAPOURE "
   CASE Chx = "15"
        ? "| BELGIQUE "
   CASE Chx = "16"
        ? "| MOZAMBIQUE "
   CASE Chx = "17"
        ? "| "
   CASE Chx = "18"
        ? "| "
   CASE Chx = "19"
        ? "| AUTRES PAYS "
ENDCASE
RETURN
* retour au programme appellant.

CH(oi)X_EX(péditeur) COMMAND FILE

*************************************************************************
Ce programme permet la sélection des expéditeurs et exportateurs importants par faritany.
*************************************************************************

* initialisation du sous-programme.
SET PRINT ON
?? CHR(15)
SET CONSOLE OFF
SET TALK OFF
IF Exp < 100
   STORE '00'+STR(Exp,1) TO Chx
ELSE
   STORE STR(Exp,3) TO Chx
ENDIF
? "|"
* sélection des expéditeurs/exportateurs.
DO CASE 
   CASE Chx = "001"
        ?? "Particuliers "
   CASE Chx = "100"
        ?? "Mr. Chen POOMIS M. "
   CASE Chx = "101"
        ?? "Mr. Ralibera "
   CASE Chx = "102"
        ?? "Mme Clothilde "
   CASE Chx = "103"
        ?? "Mr. Razanamanana "
   CASE Chx = "104"
        ?? "Mme Razafi "
   CASE Chx = "105"
        ?? "Mr. Andriambolalona "
   CASE Chx = "106"
        ?? "Mr. Pascal "
   CASE Chx = "107"
        ?? "Mr. Armand "
   CASE Chx = "108"
        ?? "Mr. Randriamiary "
   CASE Chx = "109"
        ?? "Mr. Razanakolo J.J. "
   CASE Chx = "110"
        ?? "Mr. Rakotomalala "
   CASE Chx = "111"
        ?? "Mr. Jean Henry "
   CASE Chx = "112"
        ?? "REFRIGEPECHE - Tana "
   CASE Chx = "113"
        ?? "Scté MISTER BLUE "
   CASE Chx = "114"
        ?? "Scté C. Prod. Locaux "
   CASE Chx = "115"
        ?? "Scté SOANALA "
   CASE Chx = "116"
        ?? "S. Tranomb. MIRINDRA "
   CASE Chx = "117"
        ?? "Scté C.I.A.A.L. "
   CASE Chx = "118"
        ?? "Mme Andrianjaka M. "
   CASE Chx = "119"
        ?? "Scté COMICOR "
   CASE Chx = "200"
        ?? "Mr Sam Van Sam Tap. "
   CASE Chx = "201"
        ?? "Mme Autier Annette "
   CASE Chx = "202"
        ?? "King's Club "
   CASE Chx = "203"
        ?? "Mme Voahangy "
   CASE Chx = "204"
        ?? "Scté SAFARIMER "
   CASE Chx = "205"
        ?? "Scté NOSY KELY "
   CASE Chx = "206"
        ?? "Précoop AVOTRA "
   CASE Chx = "207"
        ?? "Mr.Randrianasolo "
   CASE Chx = "208"
        ?? "Scté MALAGASY MIASA "
   CASE Chx = "209"
        ?? "Scté SOPEMA "
   CASE Chx = "210"
        ?? "Scté TAVARATRA EXPO "
   CASE Chx = "211"
        ?? "Scté TRANS 7 nosybe "
   CASE Chx = "212"
        ?? "Mr. Ibrahim Ali "
   CASE Chx = "213"
        ?? "Mme Ratefiarinosy "
   CASE Chx = "214"
        ?? "Mme Tam-Teo Elianne "
   CASE Chx = "215"
        ?? "Mme Rasoamananoro "
   CASE Chx = "216"
        ?? "Mme Berc Elianne "
   CASE Chx = "217"
        ?? "Mr. Rarinesy "
   CASE Chx = "218"
        ?? "Mr.Amedjee "
   CASE Chx = "219"
        ?? "Mr.Milsony "
   CASE Chx = "220"
        ?? "Scté Pech.NOSY-BE "
   CASE Chx = "221"
        ?? "Mr. Ravoatisoa "
   CASE Chx = "222"
        ?? "Mr. Basile "
   CASE Chx = "223"
        ?? "Scté TRANS 7 antsir "
   CASE Chx = "224"
        ?? "Mr. Daniel Ernest "
   CASE Chx = "225"
        ?? "Scté SOCOBEX "
   CASE Chx = "226"
        ?? "Scté TSARALAOKO "
   CASE Chx = "227"
        ?? "Scté MAMICO "
   CASE Chx = "228"
        ?? "SctéIND.COM.REPRES "
   CASE Chx = "229"
        ?? "MALAGASY MIASA Ants "
   CASE Chx = "230"
        ?? "Scté SOPEMA Ants. "
   CASE Chx = "231"
        ?? "Pech.d'Iharana "
   CASE Chx = "232"
        ?? "Mr. Roger AHTOY "
   CASE Chx = "233"
        ?? "Mme Masiliny "
   CASE Chx = "234"
        ?? "Mme Florine Paulett "
   CASE Chx = "235"
        ?? "Mr. Salepa M. "
   CASE Chx = "236"
        ?? "Mme Justine "
   CASE Chx = "237"
        ?? "Mr. Rakotoson G. "
   CASE Chx = "238"
        ?? "Mme Taizandry "
   CASE Chx = "239"
        ?? "Mme Jaosolo "
   CASE Chx = "240"
        ?? "Mme Céline "
   CASE Chx = "241"
        ?? "Mme Hamina "
   CASE Chx = "242"
        ?? "Mme Mboty "
   CASE Chx = "243"
        ?? "Mr. Vanona C. "
   CASE Chx = "244"
        ?? "Mr. Besonina "
   CASE Chx = "245"
        ?? "Mr. Bemanarina "
   CASE Chx ="300'
        ?? "Mme Rasoarilalao "
   CASE Chx = "301"
        ?? "Mme Ranaosolo "
   CASE Chx = "302"
        ?? "Mme Rasoanirina "
   CASE Chx = "303"
        ?? "Mme Marceline "
   CASE Chx = "304"
        ?? "Mr. Ra Charles "
   CASE Chx = "305"
        ?? "Mr. Anjoma J. "
   CASE Chx = "306"
        ?? "Mr. Rajoanarisoa A. "
   CASE Chx = "307"
        ?? "Mme Razanamaro "
   CASE Chx = "308"
        ?? "Mr. Chan-Tave "
   CASE Chx = "309"
        ?? "Mr. Razafimanjaka "
   CASE Chx = "400"
        ?? "Martin Pech. Mahaja "
   CASE Chx = "401"
        ?? "Mr. Rakotomandrimby "
   CASE Chx ="402'
        ?? "Mr. Rakotonirina "
   CASE Chx = "403"
        ?? "Réfrigépêche Quest "
   CASE Chx = "404"
        ?? "Mme Rasoarinelina "
   CASE Chx = "405"
        ?? "Scté D.A.I.E.C. "
   CASE Chx = "406"
        ?? "Mr Rakotondramanana "
   CASE Chx = "407"
        ?? "Scté SOGEDIS Mahaja "
   CASE Chx ="408'
        ?? "Scté SOPEBO Mahajan "
   CASE Chx = "409"
        ?? "Mme Razanamiadana "
   CASE Chx = "410"
        ?? "Mr Razafindrabe "
   CASE Chx = "411"
        ?? "Mr. Rakotondramaro "
   CASE Chx = "412"
        ?? "Mr. Abdallah Foahaya "
   CASE Chx = "413"
        ?? "Mr. Ralainandro "
   CASE Chx ="414'
        ?? "Mme Arison "
   CASE Chx = "415"
        ?? "Mme Razafindralambo "
   CASE Chx = "416"
        ?? "Mme Hinaribo "
   CASE Chx = "417"
        ?? "Mr. Rakotondrabe "
   CASE Chx = "418"
        ?? "Randriamiarintsoa "
   CASE Chx = "419"
        ?? "Mr. Razanaparany "
   CASE Chx = "420"
        ?? "Mme Rakotovao Joana "
   CASE Chx = "421"
        ?? "Mr. Bearivo "
   CASE Chx = "422"
        ?? "Mr. Rainijaoana "
   CASE Chx = "423"
        ?? "Mr. Razanajatovo "
   CASE Chx = "424"
        ?? "Mr. Rakotomanonjy "
   CASE Chx = "425"
        ?? "Mr. Ambovalana "
   CASE Chx = "426"
        ?? "Mr. Randriatavy "
   CASE Chx = "427"
        ?? "Mr. Ravoavy "
   CASE Chx = "428"
        ?? "Mr. Amborovy "
   CASE Chx = "429"
        ?? "Mme Razanadraibe "
   CASE Chx = "430"
        ?? "M. Razanakotoarinana "
   CASE Chx = "431"
        ?? "Mr. Razafindrazaka "
   CASE Chx ="432'
        ?? "Rasolofoarimanana "
   CASE Chx = "433"
        ?? "Rakotondrazanany "
   CASE Chx = "434"
        ?? "Mr. Randriamanga "
   CASE Chx = "435"
        ?? "Mme Rakotomalala "
   CASE Chx = "436"
        ?? "Mr. Rasoazanamino "
   CASE Chx = "437"
        ?? "Mme Razafimbolona "
   CASE Chx ="438'
        ?? "Mme Ducaud "
   CASE Chx = "439"
        ?? "Mme Ratovoarisoa "
   CASE Chx = "440"
        ?? "Mr. Ranaivoson "
   CASE Chx ="441'
        ?? "Mme Ramadison "
   CASE Chx = "442"
        ?? "Mme Rabearisoa "
   CASE Chx = "443"
        ?? "Scté COPEMAD "
   CASE Chx ="444'
        ?? "Scté Trans 7 "
   CASE Chx = "445"
        ?? "Mr. Rasolo "
   CASE Chx ="446'
        ?? "Scté SOMAPECHE "
   CASE Chx ="447'
        ?? "Mr. Aimé J-Freddy "
   CASE Chx ="448'
        ?? "Scté PECHE EXPORT "
   CASE Chx ="449'
        ?? "Mr. Said Allaoui "
   CASE Chx ="450'
        ?? "Mr. Manavotsa J.M. "
   CASE Chx = "451"
        ?? "Mr. Andrianasolomi "
   CASE Chx ="452'
        ?? "SctéLANDY SARC "
   CASE Chx ="453'
        ?? "Mr. Said Soaliny Id "
   CASE Chx ="454'
        ?? "SctéC.Ind.Agr.Alim "
   CASE Chx ="500'
        ?? "Scté KWAI CHUNG "
   CASE Chx ="501'
        ?? "La Bouffe Tamatave "
   CASE Chx ="502'
        ?? "SctéSORAKO "
   CASE Chx ="503'
        ?? "Scté SIMETO "
   CASE Chx ="504'
        ?? "Réfrigépêche Est. "
   CASE Chx ="505'
        ?? "Scté SOMIEX Toamas. "
   CASE Chx = "600"
        ?? "Scté S.I.C.A.-Mordv "
   CASE Chx ="601'
        ?? "Scté SO.PE.MO. "
   CASE Chx ="602'
        ?? "Mme Clothilde "
   CASE Chx ="603'
        ?? "Mr. Zarheraly "
   CASE Chx ="604'
        ?? "Mr. Bien Bartel "
   CASE Chx ="605'
        ?? "Mr. Kotovelo "
   CASE Chx ="606'
        ?? "Mr. Ranosifararano "
   CASE Chx ="607'
        ?? "Mr. Rasoanindrina "
   CASE Chx ="608'
        ?? "Mr. Ravoadriana "
   CASE Chx ="609'
        ?? "Mr. Ravoadriana "
   CASE Chx ="610'
        ?? "Mr. Mohamed ABAS "
   CASE Chx ="611'
        ?? "Mme Zisy "
   CASE Chx ="612'
        ?? "Mr. Rakotondravelo "
   CASE Chx ="613'
        ?? "Mme Randrianarisoa "
   CASE Chx ="614'
        ?? "Mme Rasoavolalona "
   CASE Chx ="615'
        ?? "Mme Saila "
   CASE Chx ="616'
        ?? "Mme Raberojo "
   CASE Chx ="617'
        ?? "Mme Joasy "
   CASE Chx ="618'
        ?? "Mr. Ralav Ranaivo "
   CASE Chx ="619'
        ?? "SctéLANSU "
   CASE Chx ="620'
        ?? "Mr. Ranaivo "
   CASE Chx ="621'
        ?? "Mr. Alibay Lakoubay "
   CASE Chx ="622'
        ?? "Scté COFRITO "
   CASE Chx ="623'
        ?? "Mme Marie Vivianne "
   CASE Chx ="624'
        ?? "Mr. Tealongo "
   CASE Chx ="625'
        ?? "Mme Chan-Tave "
   CASE Chx ="626'
        ?? "Mr. Furdosy I. "
   CASE Chx ="627'
        ?? "Mme Rasoazanany "
   CASE Chx = "628"
        ?? "Mme Randrianarson "
   CASE Chx ="629'
        ?? "Mme Vao "
   CASE Chx = "630"
        ?? "Mr. Narikely "
   CASE Chx ="631'
        ?? "Mr. Fatora A. "
   CASE Chx ="632'
        ?? "Mr. Tranombarotra M "
   CASE Chx ="633'
        ?? "Mr. Ramamonjisoa "
   CASE Chx ="634'
        ?? "Mme Razamalala C. "
   CASE Chx ="635'
        ?? "Mr. Rakotoarisoa A. "
   CASE Chx ="636'
        ?? "Scté H.H.TAHORA "
   CASE Chx ="637'
        ?? "Mme Gandgee "
   CASE Chx ="638'
        ?? "Mr. Nassor "
   CASE Chx ="639'
        ?? "MARTIN PECH.Moromb "
   CASE Chx ="640'
        ?? "Mr. Bakary M. "
   CASE Chx ="641'
        ?? "Mr. Fatex "
   CASE Chx ="642'
        ?? "Mr. Andriamanpionona "
   CASE Chx ="643'
        ?? "SctéGr. KALETA "
   CASE Chx ="644'
        ?? "Mme Randriamamonjy "
   CASE Chx ="645'
        ?? "Mme Famie "
   CASE Chx ="646'
        ?? "étbl. Ralambomanana "
   CASE Chx ="647'
        ?? "MARTIN PECH. Tolagn "
   CASE Chx ="648'
        ?? "TRANS 7 Tolagn "
   CASE Chx ="649'
        ?? "Conserv. RIAKE "
   CASE Chx ="650'
        ?? "Mme Razafimamonjy "
   CASE Chx ="651'
        ?? "Mr. Rakoto Bruno "
   CASE Chx ="652'
        ?? "Boto Tarina "
   CASE Chx ="653'
        ?? "Mr. Rakotoarisoa "
   CASE Chx ="654'
        ?? "Mr. Ramboanarivo "
   CASE Chx ="655'
        ?? "Scté SOPADI - mordv "
   CASE Chx ="656'
        ?? "Mme Razafindramiand "
   CASE Chx ="657'
        ?? "Mr. Rakoto Endor "
   CASE Chx ="658'
        ?? "Mr.Stherland "
   CASE Chx ="659'
        ?? "Mme Rasoloarivelo "
   CASE Chx ="660'
        ?? "Mme Razanany "
   OTHERWISE
        ?? "rien à déclarer"
ENDCASE
SET PRINT OFF
SET CONSOLE ON
RETURN
* retour au programme appelant.

Page précédente Début de page Page suivante