*******************************************************************************************
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.
********************************************************************************************
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.
*********************************************************************************************
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.
*********************************************************************************************
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
************************************************************************
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
***********************************************************
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.
****************************************
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.
******************************************
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.
*************************************************************************
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.