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