***********************************************************************************************
Ce programme permet la sélection des fivondronana par faritany et des
pays étrangers d'exportation des produits halieutiques.
***********************************************************************************************
* initialisation de la sous-routine.
SET PRINT ON
SET CONSOLE OFF
SET TALK OFF
* sélection des caractères a imprimer.
IF Fiv <> "000"
? " | "
STORE Fiv TO Chx
ELSE
IF Fiv = "000"
? " | "
STORE Fiv TO Chx
ELSE
RELEASE ALL
RETURN
ENDIF
ENDIF
* sélection des fivondronana du pays.
DO CASE
* sélection des fivondronana dans le faritany d'Antananarivo.
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'
?? "ARIVONIMAMO "
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. "
* sélection des fivondronana dans le faritany d'Antsiranana.
CASE Chx ="202'
?? "ANTSIRANANA "
CASE Chx ="203'
?? "AMBANJA "
CASE Chx ="204'
?? "AMBILOGE "
CASE Chx ="205'
?? "ANDAPA "
CASE Chx ="206'
?? "ANTALAHA "
CASE Chx ="207'
?? "NOSY-BE "
CASE Chx ="208'
?? "SAMBAVA "
CASE Chx ="209'
?? "VOHEMAR "
* sélection des fivondronana dans le faritany de Fianarantsoa.
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'
?? "FARAFANSANA "
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 "
* sélection des fivondronana dans le faritany de Mahajanga.
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'
?? "MAINTIRAND "
CASE Chx ="414'
?? "MAMPIKOMY "
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 "
* sélection des fivondronana dans le faritany de Toamasina.
CASE Chx = "502"
?? "TOAMASINA "
CASE Chx = "503"
?? "AMBATONDRAZA. "
CASE Chx = "504"
?? "AMPARAFARAVO. "
CASE Chx = "505"
?? "ANDILAMENA "
CASE Chx = "506"
?? "ANOSIDE 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 "
* sélection des fivondronana dans le faritany de Tulear.
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'
?? "île 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
* finalisation de la routine.
SET PRINT OFF
SET CONSOLE ON
RETURN
* retour au programme apellant.
****************************************************
Ce programme crée une ligne selon le tableau et l'entête sélectioné.
****************************************************
* initialisation de la routine.
SET PRINT ON
SET CONSOLE OFF
?? CHR(15)
* sélection de la longueur et l'emplacement de la ligne d'entête et des
* tableaux.
IF Reply = "2"
IF Fiv <> '000'
IF Part <> '2'
? " | "
?? REPLICATE("--",110)
ELSE
IF Part = "2"
? SPACE(25)
?? " | "
?? REPLICATE("--",72)
ENDIF
ENDIF
ELSE &&if fiv="000'
IF Part <> '2'
? " | "
?? REPLICATE("--",114)
ELSE
IF Part = "2"
? SPACE(25)
?? " | "
?? REPLICATE("--",72)
ENDIF
ENDIF
ENDIF
ELSE
IF Reply = "1"
? " | "
IF Fiv <> "000"
?? REPLICATE("--",209)
ELSE
?? REPLICATE("--",223)
ENDIF
ELSE
IF Reply = "3"
? " | "
?? REPLICATE("--",220)
ELSE
IF (Reply = "4" .OR. Reply = "6")
IF Part <> '2'
? " | "
?? REPLICATE("--",204)
ELSE
IF Part ="2'
? " | "
?? REPLICATE("-",188)
ENDIF
ENDIF
ELSE
IF Reply ="7'
? " | "
?? REPLICATE("-",224)
ELSE
IF Reply ="5'
? " | "
?? REPLICATE("-",224)
ENDIF &&Reply=5
ENDIF &&Reply=7
ENDIF &&Reply=4,6
ENDIF &&Reply=3,5
ENDIF &&Reply=1
ENDIF &&Reply=2
?? " | "
?? CHR(18)
SET PRINT OFF
RETURN
* retour au programme apellant.
************************************************************************************************
Ce programme initialise le traitement des données des cos sur une base
annuelle.
A partir du menu l'opérateur peut choisir quel type de résultats sont
désirés.
Le programme permet de vérifier si les bases de données sur disquette sont
en relation avec la sélection des choix du menu et permet le transfert
des données vers le disque dur.
Le programme s'ouvre sur un menu et une des options permet l'estimation du
prix moyen au kilo par fivondronana.
************************************************************************************************
* présentation du menu.
SET SAFETY OFF
STORE 1 TO Tour
STORE .T. TO Check
* boucle principale.
DO WHILE Check
CLEAR
STORE SPACE(1) TO Rep
* présentation du menu.
@ 2,3 TO 20,78 DOUBLE
@ 4, 17 SAY " *** TOTAL ANNUEL - EXPEDITION hors FARITANY ***"
@ 5, 17 SAY " --------------------------------------- "
@ 7, 17 SAY " -1- EXPEDITIONS par NATORE du PRODOIT"
@ 8, 17 SAY " -2- par MOYEN de CONSERVATION"
@ 9, 17 SAY " -3- par DESTINATION (Fivondronana)"
@ 10, 5 SAY " Frapper d'abord <9> si vous passez des expéditions aux exportations "
@ 12, 17 SAY " -5- EXPORTATIONS par NATURE du PRODUIT"
@ 13, 17 SAY " -6- par MOYEN DE CONSERVATION"
@ 14, 17 SAY " -7- par DESTINATION (pays étrangers)"
@ 16, 17 SAY " -8- PRIX MOYENS au kilo par PRODUIT / FIVONDRONANA"
@ 18, 17 SAY " -9- <RETOUR> au menu précédent : " GET Rep
READ
* si le choix est 9 destruction des fichiers et retour au menu principal.
IF Rep ="9'
STORE 1 TO Tour
CLOSE DATABASES
DELETE FILE C:ZANTA.DBF
DELETE FILE C:ZANTS.DBF
DELETE FILE C:ZFIAN.DBF
DELETE FILE C:ZMAHA.DBF
DELETE FILE C:ZTOAM.DBF
DELETE FILE C:ZTULE.DBF
RELEASE ALL
RETURN TO MASTER
ELSE
* tout autre choix se chargera de transférer les données sur disque dur en 6
* fichiers séparés.
* On traite soit les exportations soit les expéditions hors fivondronana
* soit on calcule le prix moyen au kilo par type de produit par fivondronana.
* Le transfert des données se fera donc en conséquence de l'option
* sélectionée.
IF Tour = 1
STORE .T. TO Floppy
STORE '1' TO Part
STORE 1 TO Count
STORE 1 TO Getal
* boucle pour le transfert des données sur disque dur.
* L'insertion des diquettes doit se faire dans l'ordre demandé.
DO WHILE Floopy
CLEAR
@ 5,15 SAY "Insérrez la disquette :<< A:COS _"
DO CASE
CASE Count = 1
@ 5,48 SAY "ANTA.DBF >>"
CASE Count = 2
@ 5,48 SAY "ANTS.DBF >>"
CASE Count = 3
@ 5,48 SAY "FIAN.DBF >>"
CASE Count = 4
@ 5,48 SAY "MAHA.DBF >>"
CASE Count = 5
@ 5,48 SAY "TOAM.DBF >>"
CASE Count = 6
@ 5,48 SAY "TULE.DBF >>"
ENDCASE
? CHR(7)
@ 7.15 SAY " puis taper <RETOUR>…"
@ 3,8 TO 10,62 Double
WAIT
CLEAR
* transfert vers disque dur selon l'option choisie.
IF (Rep < '9')
IF Count = 1 .AND. FILE ("A:COS_ANTA.DBF")
STORE .T. TO Floppy
USE A:COS_ANTA.DBF
COPY STRUCTURE TO C:ZANTA.DBF
USE C:ZANTA.DBF
IF (Rep ="5' .OR. Rep ="6' .OR. Rep ="7')
APPEND FROM A:COS_ANTA FOR(DESTIN > "700")
ELSE
IF Rep ="8'
APPEND FROM A:COS_ANTA FOR(Valeur > 0)
ELSE
APPEND FROM A:COS_ANTA FOR(DESTIN < "700")
ENDIF
ENDIF
ELSE
IF Count = 2 .AND. FILE ("A:COS_ANTS.DBF")
STORE .T. TO Floppy
USE A:COS_ANTS.DBF
COPY STRUCTURE TO C:ZANTS.DBF
USE C:ZANTS.DBF
IF (Rep ="5' .OR. Rep ="6' .OR. Rep ="7')
APPEND FROM A:COS_ANTS FOR(DESTIN > "700")
ELSE
IF Rep ="8'
APPEND FROM A:COS_ANTS FOR(VALEUR > 0)
ELSE
APPEND FROM A:COS_ANTS FOR(DESTIN < "700")
ENDIF
ENDIF
ELSE
IF Count = 3 .AND. FILE ("A:COS_FIAN.DBF")
STORE .T. TO Floppy
USE A:COS_FIAN.DBF
COPY STRUCTURE TO C:ZFIAN.DBF
USE C:ZFIAN.DBF
IF (Rep ="5' .OR. Rep ="6' .OR. Rep ="7')
APPEND FROM A:COS_FIAN FOR(DESTIN > "700")
ELSE
IF Rep ="8'
APPEND FROM A:COS_FIAN FOR VALEUR > 0
ELSE
APPEND FROM A:COS_FIAN FOR(DESTIN < "700")
ENDIF
ENDIF
ELSE
IF Count = 4 .AND. FILE ("A:COS_MAHA.DBF")
STORE .T. TO Floppy
USE A:COS_MAHA.DBF
COPY STRUCTURE TO C:ZMAHA.DBF
USE C:ZMAHA.DBF
IF (Rep ="5' .OR. Rep ="6' .OR. Rep ="7')
APPEND FROM A:COS_MAHA FOR(DESTIN > "700")
ELSE
IF Rep ="8'
APPEND FROM A:COS_MAHA FOR(VALEUR > 0)
ELSE
APPEND FROM A:COS_MAHA FOR(DESTIN < "700")
ENDIF
ENDIF
ELSE
IF Count = 5 .AND. FILE ("A:COS_TOAM.DBF")
STORE .T. TO Floppy
USE A:COS_TOAM.DBF
COPY STRUCTURE TO C:ZTOAM.DBF
USE C:ZTOAM.DBF
IF (Rep ="5' .OR. Rep ="6' .OR. Rep ="7')
APPEND FROM A:COS_TOAM FOR(DESTIN > "700")
ELSE
IF Rep ="8'
APPEND FROM A:COS_TOAM FOR VALEUR > 0
ELSE
APPEND FROM A:COS_TOAM FOR (DESTIN < "700")
ENDIF
ENDIF
ELSE
IF Count = 6 .AND. FILE ("A:COS_TULE.DBF")
STORE .F. TO Floppy
USE A:COS_TULE.DBF
COPY STRUCTURE TO C:ZTULE.DBF
USE C:ZTULE.DBF
IF (Rep ="5' .OR. Rep ="6' .OR. Rep ="7')
APPEND FROM A:COS_TULE FOR(DESTIN > "700")
ELSE
IF Rep ="8'
APPEND FROM A:COS_TULE FOR VALEUR > 0
ELSE
APPEND FROM A:COS_TULE FOR(DESTIN < "700")
ENDIF
ENDIF
ELSE
IF Count < 7
STORE .T. TO Floppy
STORE Count - 1 TO Count
Getal = Getal + 1
IF Getal > 2
CLEAR
@ 10,15 SAY " Merde, Vous êtes CON eu quoi…?"
WAIT
USE
DELETE FILE C:ZANTA.DBF
DELETE FILE C:ZANTS.DBF
DELETE FILE C:ZFIAN.DBF
DELETE FILE C:ZMAHA.DBF
DELETE FILE C:ZTOAM.DBF
DELETE FILE C:ZTULE.DBF
RELEASE ALL
RETURN TO MASTER
ENDIF &&Getal>2
ELSE
STORE .F. TO Floppy
STORE Count + 3 TO Count
ENDIF &&Count<7
ENDIF &&6
ENDIF &&5
ENDIF &&4
ENDIF &&3
ENDIF &&2
ENDIF &&1
ENDIF &&Rep=1,2
STORE (Count + 1) TO Count
USE &&close
ENDDO &&floppy
STORE Tour + 1 TO Tour
ENDIF &&Tour=1
ENDIF &&Rep=9
* le programme est dirigé vers des sous-programmes en fonction du choix
* effectué dans le menu (en fonction des tableaux désirés).
DO CASE
CASE Rep = "1"
* expédition annuelle à partir d'un FARITANY d'origine, présentation
* des résultats par nature des produits.
DO T_EXPE_1
CASE Rep = "2"
* expédition annuelle à partir d'un faritany d'origine, présentation
* des résultats par moyen de conservation.
DO T_EXPE_2
CASE Rep = "3"
* expédition annuelles par destination (fivondronana), présentation
* des résultats par nature du produit et par fivondronana recevant les
* produits.
DO T_EXPE_3
CASE Rep = "5"
* exportations annuelles à partir d'un faritany d'origine, présentation
* des résultats par nature des produits.
DO T_EXPE_1
CASE Rep = "6"
* exportations annuelles à partir d'un faritany d'origine, présentation
* des résultats par moyen de conservation.
DO T_EXPE_2
CASE Rep = "7"
* exportations annuelles à partir d'un faritany d'origine, présentation
* des résultats par moyen de conservation et par pays de destination.
DO T_EXPO_7
CASE Rep ="8'
* calcul des prix moyens par type de produit et par fivondronana.
DO AVRG
OTHERWISE
RELEASE ALL
RETURN
ENDCASE
* finalisation de la boucle uniquement si l'option 9 est choisie.
IF Rep ="9'
STORE .F. TO Check
ELSE
STORE .T. TO Check
ENDIF
ENDDO Check
* fin et remise en état d'origine.
USE
SET SAFETY ON
RELEASE ALL
RETURN
* retour au menu principal.
***********************************************************************************************
Ce programme calcule par année les expéditions/exportations hors faritany
par nature des produits. Les données ont été transférées sur disque dur
pour raison de sécurité. Le programme traite soit les expéditions soit
exportations.
Les résultats sont présentés annuellement par faritany. L'opérateur doit
inserrer successivement les 6 disquettes de base de donnée afin de consstituer
des fichiers sur le disque dur si il passe des expéditions aux
exportations.
***********************************************************************************************
* initialisation du sous programme.
SET CONSOLE OFF
SET TALK OFF
CLEAR
STORE '1' TO Part
* impression de l'entête.
DO SET_2_UP
DO LINE_2
STORE 1 TO Count
STORE .T. TO Process
* boucle principale.
DO WHILE Process
* mise à zéro des variables de travail.
STORE 0 TO T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18
STORE 0 TO T19,T20,Z19,Z20
STORE 0 TO Z1,Z2,Z3,Z4,Z5,Z6,Z7,Z8,Z9,Z10,Z11,Z12,Z13,Z14,Z15,Z16,Z17,Z18
* boucle des faritany.
DO WHILE Count < 7
* sélection des fichiers à utiliser à chaque passage.
DO CASE
CASE Count = 1
USE C:ZANTA.DBF
CASE Count = 2
USE C:ZANTS.DBF
CASE Count = 3
USE C:ZFIAN.DBF
CASE Count = 4
USE C:ZMAHA.DBF
CASE Count = 5
USE C:ZTOAM.DBF
CASE Count = 6
USE C:ZTULE.DBF
ENDCASE
* mise à 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,Q17,Q18
STORE 0 TO Q19,Q20,V1,V2,V3,V4,V5,V6,V7,V8,V9,V10,V11,V12,V13,V14,V15,V16
STORE 0 TO V17,V18,V19,V20
* 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 ="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 &&close
* utilisation des variables de travail pour addition finale plus rapide.
STORE Q1 + T1 TO T1
STORE Q2 + T2 TO T2
STORE Q3 + T3 TO T3
STORE Q4 + T4 TO T4
STORE Q5 + T5 TO T5
STORE Q6 + T6 TO T6
STORE Q7 + T7 TO T7
STORE Q8 + T8 TO T8
STORE Q9 + T9 TO T9
STORE Q10 + T10 TO T10
STORE Q11 + T11 TO T11
STORE Q12 + T12 TO T12
STORE Q13 + T13 TO T13
STORE Q14 + T14 TO T14
STORE Q15 + T15 TO T15
STORE Q16 + T16 TO T16
STORE Q17 + T17 TO T17
STORE Q18 + T18 TO T18
STORE Q19 + T19 TO T19
STORE Q20 + T20 TO T20
STORE V1 + Z1 TO Z1
STORE V2 + Z2 TO Z2
STORE V3 + Z3 TO Z3
STORE V4 + Z4 TO Z4
STORE V5 + Z5 TO Z5
STORE V6 + Z6 TO Z6
STORE V7 + Z7 TO Z7
STORE V8 + Z8 TO Z8
STORE V9 + Z9 TO Z9
STORE V10 + Z10 TO Z10
STORE V11 + Z11 TO Z11
STORE V12 + Z12 TO Z12
STORE V13 + Z13 TO Z13
STORE V14 + Z14 TO Z14
STORE V15 + Z15 TO Z15
STORE V16 + Z16 TO Z16
STORE V17 + Z17 TO Z17
STORE V18 + Z18 TO Z18
STORE V19 + Z19 TO Z19
STORE V20 + Z20 TO Z20
* impression des résultats et du nom du faritany.
SET PRINT ON
?? CHR(15)
DO CHX FAR
SET PRINT ON
SET CONSOLE OFF
?? CHR(15)
?? " Quantité | "+STR(Q1,8)+STR(Q2,8)+STR(Q3,8)+" | "+STR(Q4,8)+STR(Q5,9);
+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(16)+"Valeur|"+STR(V1/1000,8)+STR(V2/1000,8)+STR(V3/1000,8)+" | ";
+STR(V4/1000,8)+STR(V5/1000,9)+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)+" | ";
SET PRINT OFF
DO LINE_2
STORE Count + 1 TO Count
* arrangement pour terminer la routine.
IF Count < 7
STORE .T. TO Process
ELSE
STORE .F. TO Process
ENDIF
ENDDO &&Count
* fin de la boucle des faritany.
* impression des résultats totaux.
DO LINE_2
SET PRINT ON
?? CHR(15)
? " | TOTAUX"
?? SPACE(6)+"Quantité | "+STR(T1,8)+STR(T2,8)+STR(T3,8)+" | "+STR(T4,8);
+STR(T5,9)+STR(T6,8)+" | "+STR(T7,8)+STR(T8,8)+STR(T9,8)+" | "+STR(T10,8);
+STR(T11,8)+" | "+STR(T12,8)+" | "+STR(T13,8)+" | "+STR(T14,8)+" | "
?? STR(T15,8)+" | "+STR(T16,8)+" | "+STR(T17,8)+" | "+STR(T18,8)+" | ";
+STR(T19,8)+" | "+STR(T20,14)+" | "
? " |"+SPACE(16)+"Valeur|"+STR(Z1/1000,8)+STR(Z2/1000,8)+STR(Z3/1000,8)+" | ";
+STR(Z4/1000,8)+STR(Z5/1000,8)+STR(Z6/1000,8)+" | "+STR(Z7/1000,8);
+STR(Z8/1000,8)+STR(Z9/1000,8)+" | "+STR(Z10/1000,8)+STR(Z11/1000,8)+" | "
?? STR(Z12/1000,8)+" | "+STR(Z13/1000,8)+" | "+STR(Z14/1000,8)+" | ";
+STR(Z15/1000,8)+" | "+STR(Z16/1000,8)+" | "+STR(Z17/1000,8)+" | ";
+STR(Z18/1000,8)+" | "+STR(Z19/1000,8)+" | "+STR(Z20/1000,14)+" | "
SET PRINT OFF
DO LINE_2
ENDDO &&Process
* fin de la boucle principale.
* finalisation du sous-programme.
SET PRINT ON
EJECT
SET PRINT OFF
USE
RELEASE ALL
RETURN
* retour au menu.
**********************************************************************************************
Ce programme calcule par année les expéditions/exportations par faritany et
par méthode de conservation des produits. Les données ont été transférées
sur disgue dur pour raison de sécurité. Le programme traite soit les
EXPEDITIONS soit les EXPORTATIONS.
Les résultats sont présentés annuellement par faritany. L'opérateur doit
inserrer successivement les 6 disquettes de base de donnée afin de consstituer
des fichiers sur le disque dur si il passe des expéditions aux
exportations.
**********************************************************************************************
* initialisation du sous-programme.
SET CONSOLE OFF
SET TALK OFF
CLEAR
STORE '1' TO Part
STORE 1 TO Count
* impression de l'entête.
DO SET 2 UP
DO LINE 2
SET PRINT OFF
* boucle principale.
DO WHILE Count < 16
* calcul des résultats de la première partie du tableau.
IF PART ="1'
STORE 1 TO Count
STORE .T. TO Process
* boucle principale de la première partie du tableau.
DO WHILE Process
* mise à zéro des variables de travail.
STORE 0 TO T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18
STORE 0 TO T19,T20,T21,T22,Z19,Z20,Z21,Z22
STORE 0 TO Z1,Z2,Z3,Z4,Z5,Z6,Z7,Z8,Z9,Z10,Z11,Z12,Z13,Z14,Z15,Z16,Z17,Z18
* boucle des faritany.
DO WHILE Count < 7
* sélection des fichiers à utiliser à chaque passage.
DO CASE
CASE Count = 1
USE C:ZANTA.DBF
CASE Count = 2
USE C:ZANTS.DBF
CASE Count = 3
USE C:ZFIAN.DBF
CASE Count = 4
USE C:ZMAHA.DBF
CASE Count = 5
USE C:ZTOAM.DBF
CASE Count = 6
USE C:ZTULE.DBF
ENDCASE
* mise à 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,Q17,Q18
STORE 0 TO Q19,Q20,Q21,Q22,V1,V2,V3,V4,V5,V6,V7,V8,V9,V10,V11,V12,V13,V14
STORE 0 TO V15,V16,V17,V18,V19,V20,V21,V22
* calcul des résultats - première partie du tableau.
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 Q17,V17 FOR (CONSERV ="20')
SUM QUANTITE,VALEUR TO Q18,V18 FOR (CONSERV ="21')
SUM QUANTITE,VALEUR TO Q19,V19 FOR (CONSERV ="22')
USE &&close
* utilisation de variables pour la sommation plus rapide des résultats totaux.
STORE Q1 + T1 TO T1
STORE Q2 + T2 TO T2
STORE Q3 + T3 TO T3
STORE Q4 + T4 TO T4
STORE Q5 + T5 TO T5
STORE Q6 + T6 TO T6
STORE Q7 + T7 TO T7
STORE Q8 + T8 TO T8
STORE Q9 + T9 TO T9
STORE Q10 + T10 TO T10
STORE Q11 + T11 TO T11
STORE Q12 + T12 TO T12
STORE Q13 + T13 TO T13
STORE Q14 + T14 TO T14
STORE Q15 + T15 TO T15
STORE Q16 + T16 TO T16
STORE Q17 + T17 TO T17
STORE Q18 + T18 TO T18
STORE Q19 + T19 TO T19
STORE Q20 + T20 TO T20
STORE Q21 + T21 TO T21
STORE Q22 + T22 TO T22
STORE V1 + Z1 TO Z1
STORE V2 + Z2 TO Z2
STORE V3 + Z3 TO Z3
STORE V4 + Z4 TO Z4
STORE V5 + Z5 TO Z5
STORE V6 + Z6 TO Z6
STORE V7 + Z7 TO Z7
STORE V8 + Z8 TO Z8
STORE V9 + Z9 TO Z9
STORE V10 + Z10 TO Z10
STORE V11 + Z11 TO Z11
STORE V12 + Z12 TO Z12
STORE V13 + Z13 TO Z13
STORE V14 + Z14 TO Z14
STORE V15 + Z15 TO Z15
STORE V16 + Z16 TO Z16
STORE V17 + Z17 TO Z17
STORE V18 + Z18 TO Z18
STORE V19 + Z19 TO Z19
STORE V20 + Z20 TO Z20
STORE V21 + Z21 TO Z21
STORE V22 + Z22 TO Z22
* impression du nom du faritany.
SET PRINT ON
?? CHR(15)
DO CHX_FAR
* impression des résultats de la première partie du tableau par faritany.
SET PRINT ON
SET CONSOLE OFF
?? CHR(15)
?? "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,8)+STR(Q21,8);
+STR(Q22,8)+" | "
? SPACE(10)+" | "+SPACE(14)+"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,9)+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)+" | "
DO LINE 2
SET PRINT OFF
STORE Count + 1 TO Count
* arrangement pour terminer la routine.
IF Count < 7
STORE .T. TO Process
ELSE
STORE Count + 1 TO Count
STORE .F. TO Process
ENDIF
ENDDO &&Count <7
* fin de la boucle des faritany.
* impression des résultats totaux de la première partie du tableau.
DO LINE 2
SET PRINT ON
?? CHR(15)
? SPACE(10)
?? "| TOTAUX "
?? "Quantitél"+STR(T1,8)+STR(T2,8)+STR(T3,8)+STR(T4,8)+STR(T5,8);
+STR(T6,8)+STR(T7,8)+STR(T8,8)+STR(T9,8)+STR(T10,8)+" | "+STR(T11,8);
+STR(T12,8)+STR(T13,8)+STR(T14,8)+STR(T15,8)+STR(T16,8)+STR(T17,8)
?? STR(T18,8)+" | "+STR(T19,8)+STR(T20,8)+STR(T21,8)+STR(T22,8)+" | "
? SPACE(10)+" | "+SPACE(9)+"Valeur |"+STR(Z1/1000,8)+STR(Z2/1000,8);
+STR(Z3/1000,8)+STR(Z4/1000,8)+STR(Z5/1000,8)+STR(Z6/1000,8);
+STR(Z7/1000,8)+STR(Z8/1000,8)+STR(Z9/1000,8)
?? STR(Z10/1000,8)+" | "+STR(Z11/1000,8)+STR(Z12/1000,8)+STR(Z13/1000,8);
+STR(Z14/1000,9)+STR(Z15/1000,8)+STR(Z16/1000,8)+STR(Z17/1000,8);
+STR(Z18/1000,8)+" | "+STR(Z19/1000,8)
?? STR(Z20/1000,8)+STR(Z21/1000,8)+STR(Z22/1000,8)+" | "
SET PRINT OFF
DO LINE_2
* arrangements pour passer aux calculs de la seconde partie du tableau.
STORE '2' TO Part
STORE 1 TO Count
STORE .F. TO Process
ENDDO &&Process
* fin de la première partie du tableau.
ELSE
* seconde partie du tableau.
IF Part ="2'
SET PRINT ON
EJECT
SET PRINT OFF
* impression de l'entête.
DO SET 2 UP
DO LINE_2
STORE 1 TO Count
STORE .T. TO Process
* boucle principale de la seconde partie du tableau.
DO WHILE Process
* mise à zéro des variables de travail.
STORE 0 TO T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37
STORE 0 TO T38,Z23,Z24,Z25,Z26,Z27,Z28,Z29,Z30,Z31,Z32,Z33,Z34
STORE 0 TO Z35,Z36,Z37,Z38
* boucle des faritany.
DO WHILE Count < 7
* sélection des fichiers à chaque passage.
DO CASE
CASE Count = 1
USE C:ZANTA.DBF
CASE Count = 2
USE C:ZANTS.DBF
CASE Count = 3
USE C:ZFIAN.DBF
CASE Count = 4
USE C:ZMAHA.DBF
CASE Count = 5
USE C:ZTOAM.DBF
CASE Count = 6
USE C:ZTULE.DBF
ENDCASE
* mise à zéro des variables de travail.
STORE 0 TO Q23,Q24,Q25,Q26,Q27,Q28,Q29,Q30,Q31,Q32,Q33,Q34,Q35,Q36,Q37,Q38
STORE 0 TO V23,V24,V25,V26,V27,V28,V29,V30,V31,V32,V33,V34,V35,V36,V37,V38
* calcul des résultats de la seconde partie du tableau.
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
* utilisation de variables pour une sommation plus rapide des totaux.
STORE Q23 + T23 TO T23
STORE Q24 + T24 TO T24
STORE Q25 + T25 TO T25
STORE Q26 + T26 TO T26
STORE Q27 + T27 TO T27
STORE Q28 + T28 TO T28
STORE Q29 + T29 TO T29
STORE Q30 + T30 TO T30
STORE Q31 + T31 TO T31
STORE Q32 + T32 TO T32
STORE Q33 + T33 TO T33
STORE Q34 + T34 TO T34
STORE Q35 + T35 TO T35
STORE Q36 + T36 TO T36
STORE Q37 + T37 TO T37
STORE Q38 + T38 TO T38
STORE V23 + Z23 TO Z23
STORE V24 + Z24 TO Z24
STORE V25 + Z25 TO Z25
STORE V26 + Z26 TO Z26
STORE V27 + Z27 TO Z27
STORE V28 + Z28 TO Z28
STORE V29 + Z29 TO Z29
STORE V30 + Z30 TO Z30
STORE V31 + Z31 TO Z31
STORE V32 + Z32 TO Z32
STORE V33 + Z33 TO Z33
STORE V34 + Z34 TO Z34
STORE V35 + Z35 TO Z35
STORE V36 + Z36 TO Z36
STORE V37 + Z37 TO Z37
STORE V38 + Z38 TO Z38
* impression du nom du faritany.
SET PRINT ON
?? CHR(15)
DO CHX_FAR
* impression des résultats par faritany pour la seconde partie du tableau.
SET PRINT ON
SET CONSOLE OFF
?? CHR(15)
?? " Q |"+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,15)+" | "
? SPACE(10)+" | "+SPACE(14)+"V |"+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,15)+" | "
DO LINE 2
SET PRINT OFF
STORE Count + 1 TO Count
* arrangement pour terminer la routine.
IF Count < 7
STORE .T. TO Process
ELSE
STORE .F. TO Process
ENDIF
ENDDO &&Count <7
* fin de la boucle des faritany.
* impression des résultats totaux pour la seconde partie du tableau.
DO LINE 2
SET PRINT ON
?? CHR(15)
? SPACE(10)
?? "| TOTAUX"
?? "Quantité|"+STR(T23,8)+STR(T24,8)+STR(T25,8)+STR(T26,8)+" | "+STR(T27,8);
+STR(T28,8)+STR(T29,8)+" | "STR(T30,8)+" | "+STR(T31,8)+" | "+STR(T32,8);
+" | "+STR(T33,8)+STR(T34,8)+" | "+STR(T35,8)+" | "
?? STR(T36,8)+" | "+STR(T37,8)+"||"+STR(T38,15)+" | "
? SPACE(10)+" | "+SPACE(10)+"Valeur|"+STR(Z23/1000,8)+STR(Z24/1000,8);
+STR(Z25/1000,8)+STR(Z26/1000,8)+" | "+STR(Z27/1000,8)+STR(Z28/1000,8);
+STR(Z29/1000,8)+" | "+STR(Z30/1000,8)+" | "+STR(Z31/1000,8)+" | "
?? STR(Z32/1000,8)+" | "+STR(Z33/1000,8)+STR(Z34/1000,8)+" | ";
+STR(Z35/1000,8)+" | "+STR(Z36/1000,8)+" | "+STR(Z37/1000,8)+"||";
+STR(Z38/1000,15)+" | "
SET PRINT OFF
DO LINE_2
STORE Count + 15 TO Count
ENDO &&Process
* fin de la boucle principale de la seconde partie du tableau.
ENDIF &&Part="2'
ENDIF &&Part="1'
ENDDO &&Count<16
* fin de la boucle principale.
* remise en état et retour au menu.
SET PRINT ON
EJECT
SET PRINT OFF
USE
RELEASE ALL
RETURN
* retour au menu.
*************************************************************************************************
Ce programme calcule par année les expéditions hors faritany par nature des
produits et présente la ventilation des produits par faritany d'origine
et de destination.
Les données ont été transférées sur disque dur pour raison de sécurité.
Les résultats sont présentés annuellement par faritany.
*************************************************************************************************
* initialisation du sous-programme.
SET CONSOLE OFF
SET TALK OFF
CLEAR
STORE '1' TO Part
STORE 1 TO Teller, Comp, Count
STORE .T. TO Process
USE C: ZANTA.DBF
COPY STRUCTURE TO C:ZTOTAL
USE
* boucle principale.
DO WHILE Process
* mise à zéro des variables de travail.
STORE 0 TO T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18
STORE 0 TO T19,T20,Z19,Z20
STORE 0 TO Z1,Z2,Z3,Z4,Z5,Z6,Z7,Z8,Z9,Z10,Z11,Z12,Z13,Z14,Z15,Z16,Z17,Z18
* boucle des faritany.
DO WHILE Teller < 7
* impression de l'entête.
DO SET_2 UP
DO LINE_2
* sélection des fichiers à chaque passage.
DO CASE
CASE Count = 1
STORE "C:ZANTA" TO Base
CASE Count = 2
STORE "C:ZANTS" TO Base
CASE Count = 3
STORE "C:ZFIAN" TO Base
CASE Count = 4
STORE "C:ZMAHA" TO Base
CASE Count = 5
STORE "C:ZTOAM" TO Base
CASE Count = 6
STORE "C:ZTULE" TO Base
ENDCASE
* boucle de faritany.
DO WHILE COMP < 7
* sélection des fivondranana à chaque passage.
DO CASE
CASE Teller = 1
STORE '102' TO X
STORE '120' TO Y
CASE Teller = 2
STORE '201' TO X
STORE '210' TO Y
CASE Teller = 3
STORE '301' TO X
STORE '323' TO Y
CASE Teller = 4
STORE '401' TO X
STORE '422' TO Y
CASE Teller = 5
STORE '501' TO X
STORE '519' TO Y
CASE Teller = 6
STORE '601' TO X
STORE '622' TO Y
ENDCASE
* calcul des résultats du tableau.
USE C:ZTOTAL.DBF
APPEND FROM &Base FOR (DESTIN > X .AND. DESTIN < Y)
USE
USE C: ZTOTAL
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,V1,V2,V3,V4,V5,V6,V7,V8,V9,V10,V11,V12,V13,V14,V15,V16
STORE 0 TO V17,V18,V19,V20
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
* utilisation de variables pour sommation plus rapide des résultats totaux.
STORE Q1 + T1 TO T1
STORE Q2 + T2 TO T2
STORE Q3 + T3 TO T3
STORE Q4 + T4 TO T4
STORE Q5 + T5 TO T5
STORE Q6 + T6 TO T6
STORE Q7 + T7 TO T7
STORE Q8 + T8 TO T8
STORE Q9 + T9 TO T9
STORE Q10 + T10 TO T10
STORE Q11 + T11 TO T11
STORE Q12 + T12 TO T12
STORE Q13 + T13 TO T13
STORE Q14 + T14 TO T14
STORE Q15 + T15 TO T15
STORE Q16 + T16 TO T16
STORE Q17 + T17 TO T17
STORE Q18 + T18 TO T18
STORE Q19 + T19 TO T19
STORE Q20 + T20 TO T20
STORE V1 + Z1 TO Z1
STORE V2 + Z2 TO Z2
STORE V3 + Z3 TO Z3
STORE V4 + Z4 TO Z4
STORE V5 + Z5 TO Z5
STORE V6 + Z6 TO Z6
STORE V7 + Z7 TO Z7
STORE V8 + Z8 TO Z8
STORE V9 + Z9 TO Z9
STORE V10 + Z10 TO Z10
STORE V11 + Z11 TO Z11
STORE V12 + Z12 TO Z12
STORE V13 + Z13 TO Z13
STORE V14 + Z14 TO Z14
STORE V15 + Z15 TO Z15
STORE V16 + Z16 TO Z16
STORE V17 + Z17 TO Z17
STORE V18 + Z18 TO Z18
STORE V19 + Z19 TO Z19
STORE V20 + Z20 TO Z20
* impression du nom du faritany.
SET PRINT ON
?? CHR(15)
DO CHX_FAR
* impression des résultats par faritany.
SET PRINT ON
SET CONSOLE OFF
?? CHR(15)
?? " Quantité"+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(16)+"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_2
STORE Comp + 1 TO Comp
STORE Teller + 1 TO Teller
* arrangements pour terminer/reprendre la boucle des faritany.
IF Teller = 7
STORE 0 TO Teller
ENDIF
ENDDO &&Comp<7
* impression des résultats totaux.
DO LINE 2
SET PRINT ON
?? CHR(15)
? "| TOTAUX"
?? SPACE(6)+"Quantité|"+STR(T1,8)+STR(T2,8)+STR(T3,8)+" | "+STR(T4,8);
+STR(T5,8)+STR(T6,8)+" | "+STR(T7,8)+STR(T8,8)+STR(T9,8)+" | "+STR(T10,8);
+STR(T11,8)+" | "+STR(T12,8)+" | "+STR(T13,8)+" | "+STR(T14,8)+" | "
?? STR(T15,8)+" | "+STR(T16,8)+" | "+STR(T17,8)+" | "+STR(T18,8)+" | ";
+STR(T19,8)+" | "+STR(T20,14)+" | "
? "|"+SPACE(16)+"Valeur |"+STR(Z1/1000,8)+STR(Z2/1000,8)+STR(Z3/1000,8)+" | ";
+STR(Z4/1000,8)+STR(Z5/1000,8)+STR(Z6/1000,8)+" | "+STR(Z7/1000,8);
+STR(Z8/1000,8)+STR(Z9/1000,8)+" | "+STR(Z10/1000,8)+STR(Z11/1000,8)+" | "
?? STR(Z12/1000,8)+" | "+STR(Z13/1000,8)+" | "+STR(Z14/1000,8)+" | ";
+STR(Z15/1000,8)+" | "+STR(Z16/1000,8)+" | "+STR(Z17/1000,8)+" | ";
+STR(Z18/1000,8)+" | "+STR(Z19/1000,8)+" | "+STR(Z20/1000,14)+" | "
SET PRINT OFF
DO LINE_2
SET PRINT ON
EJECT
SET PRINT OFF
* mise à zéro des variables de travail.
STORE 0 TO T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18
STORE 0 TO T19,T20,Z19,Z20
STORE 0 TO Z1,Z2,Z3,Z4,Z5,Z6,Z7,Z8,Z9,Z10,Z11,Z12,Z13,Z14,Z15,Z16,Z17,Z18
STORE 1 TO Comp
STORE Count + 1 TO Count
* arrangements pour terminer/reprendre la boucle des faritany.
IF Count > 6
STORE Teller + 12 TO Teller
ELSE
STORE Teller + 1 TO Teller
ENDIF
ENDDO &&Teller < 7
STORE 1 TO Teller,Comp
STORE Count + 1 TO Count
* arrangements pour terminer la routine principale.
IF Count < 7
STORE .T. TO Process
ELSE
STORE .F. TO Process
ENDIF
ENDDO &&Process
USE
RELEASE ALL
RETURN
* retour au menu.
************************************************************************************************
Ce programme calcule par année les exportations hors faritany par nature des
produits et présente la ventilation des produits par faritany d'origine
et par pays de destination.
Les résultats sont présentés annuellement par faritany.
************************************************************************************************
* initialisation du programme.
SET CONSOLE OFF
SET TALK OFF
CLEAR
STORE '1' TO Part
STORE 1 TO Teller
STORE 1 TO Comp, Count
STORE .T. TO Process
USE C:ZANTA.DBF
COPY STRUCTURE TO C:ZTOTAL
USE
* boucle principale.
DO WHILE Process
* initialisation des variables de travail à zéro.
STORE 0 TO T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18
STORE 0 TO T19,T20,Z19,Z20
STORE 0 TO Z1,Z2,Z3,Z4,Z5,Z6,Z7,Z8,Z9,Z10,Z11,Z12,Z13,Z14,Z15,Z16,Z17,Z18
* boucle des six faritany.
DO WHILE Teller < 7
* impression de l'entête.
DO SET_2 UP
DO Line_2
* sélection des fichiers à utiliser.
DO CASE
CASE Count = 1
STORE "C:ZANTA" TO Base
CASE Count = 2
STORE "C:ZANTS" TO Base
CASE Count = 3
STORE "C:ZFIAN" TO Base
CASE Count = 4
STORE "C:ZMAHA" TO Base
CASE Count = 5
STORE "C:ZTOAM" TO Base
CASE Count = 6
STORE "C:ZTULE" TO Base
ENDCASE
* boucle des pays d'exportation.
DO WHILE COMP < 19
DO CASE
CASE Comp = 1
STORE '702' TO X
CASE Comp = 2
STORE '703' TO X
CASE Comp = 3
STORE '704' TO X
CASE Comp = 4
STORE '705' TO X
CASE Comp = 5
STORE '706' TO X
CASE Comp = 6
STORE '707' TO X
CASE Comp = 7
STORE '708' TO X
CASE Comp = 8
STORE '709' TO X
CASE Comp = 9
STORE '710' TO X
CASE Comp = 10
STORE '711' TO X
CASE Comp = 12
STORE '713' TO X
CASE Comp = 13
STORE '714' TO X
CASE Comp = 14
STORE '715' TO X
CASE Comp = 15
STORE '716' TO X
CASE Comp = 16
STORE '717' TO X
CASE Comp = 17
STORE '718' TO X
CASE Comp = 18
STORE '719' TO X
ENDCASE
* calcul des résultats d'exportation.
USE C:ZTOTAL.DBF
APPEND FROM & Base FOR (DESTIN = X)
USE
USE C:ZTOTAL
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,V1,V2,V3,V4,V5,V6,V7,V8,V9,V10,V11,V12,V13,V14,V15,V16
STORE 0 TO V17,V18,V19,V20
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
* utilisation de variables pour calcul de total plus rapide.
STORE Q1 + T1 TO T1
STORE Q2 + T2 TO T2
STORE Q3 + T3 TO T3
STORE Q4 + T4 TO T4
STORE Q5 + T5 TO T5
STORE Q6 + T6 TO T6
STORE Q7 + T7 TO T7
STORE Q8 + T8 TO T8
STORE Q9 + T9 TO T9
STORE Q10 + T10 TO T10
STORE Q11 + T11 TO T11
STORE Q12 + T12 TO T12
STORE Q13 + T13 TO T13
STORE Q14 + T14 TO T14
STORE Q15 + T15 TO T15
STORE Q16 + T16 TO T16
STORE Q17 + T17 TO T17
STORE Q18 + T18 TO T18
STORE Q19 + T19 TO T19
STORE Q20 + T20 TO T20
STORE V1 + Z1 TO Z1
STORE V2 + Z2 TO Z2
STORE V3 + Z3 TO Z3
STORE V4 + Z4 TO Z4
STORE V5 + Z5 TO Z5
STORE V6 + Z6 TO Z6
STORE V7 + Z7 TO Z7
STORE V8 + Z8 TO Z8
STORE V9 + Z9 TO Z9
STORE V10 + Z10 TO Z10
STORE V11 + Z11 TO Z11
STORE V12 + Z12 TO Z12
STORE V13 + Z13 TO Z13
STORE V14 + Z14 TO Z14
STORE V15 + Z15 TO Z15
STORE V16 + Z16 TO Z16
STORE V17 + Z17 TO Z17
STORE V18 + Z18 TO Z18
STORE V19 + Z19 TO Z19
STORE V20 + Z20 TO Z20
* si valeurs sont positives, impression des résultats par pays.
IF (Q20 > 0 .OR. V20 > 0)
* impression du nom du pays d'exportation..
SET PRINT ON
?? CHR(15)
DO CHX_PAYS
* impression des résultats par pays d'exportation.
SET PRINT ON
SET CONSOLE OFF
?? CHR(15)
?? " Quantité|"+STR(Q1,8)+STR(Q2,8)+STR(Q3,8)+" | "+STR(Q4,8)+STR(Q5,9);
+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(16)+"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_2
ENDIF
* passage au pays d'exportation suivant.
STORE Comp + 1 TO Comp
STORE Teller + 1 TO Teller
IF Teller = 7
STORE 0 TO Teller
ENDIF
ENDDO &&Comp<19
* fin de boucle des pays d'exportation.
************************************************************************************************
Ce sous-programme change les valeurs zéro des produits halieutiques des cos
par des prix moyens au kilo comme disponible à partir des quelques cos
mentionant les prix au kilo par site de délivrance des cos.
Les prix moyens en FMG se réfèrent ainsi au prix pratiqué dans chaque site
de délivrance de cos.
************************************************************************************************
* initialisation et présentation d'un menu.
STORE SPACE(1) TO Prix
CLEAR
@ 5,18 SAY "AJUSTEMENT DES VALEURS <0>"
@ 6,18 SAY "**************************"
@ 8,15 SAY "FARITANY → ANTANANARIVO -1-"
@ 9,15 SAY " → ANTSIRANANA -2-"
@ 10,15 SAY " → FIANARANTSOA -3-"
@ 11,15 SAY " → MAHAJANGA -4-"
@ 12,15 SAY " → TOAMASINA -5-"
@ 13,15 SAY " → TULEAR -6-"
@ 14,10 SAY "Pour quel FARITANY voulez-vous ajuster les PRIX ? " Get Prix
@ 4,8 TO 16,65 DOUBLE
READ
CLEAR
* sélection des fichiers en fonction du choix effectué.
DO CASE
CASE Prix ="1'
USE A:COS ANTA
CASE Prix ="2'
USE A:COS ANTS
CASE Prix ="3'
USE A:COS FIAN
CASE Prix ="4'
USE A:COS MAHA
CASE Prix ="5'
USE A:COS TOAM
CASE Prix ="6'
USE A:COS_TULE
OTHERWISE
RELEASE ALL
RETURN
ENDCASE
* transfert des données sur disque dur sur deux fichiers; l'un comprenant
* les données avec valeurs, l'autre celles sans valeurs.
COPY STRUCTURE TO C:PRX_1_AJU
COPY STRUCTURE TO C:PRX_2_AJU
USE
* fichier avec données à valeurs = 0.
USE C:PRX_1_AJU
DO CASE
CASE Prix ="1'
APPEND FROM A:COS_ANTA FOR VALEUR =0
CASE Prix ="2'
APPEND FROM A:COS_ANTS FOR VALEUR =0
CASE Prix ="3'
APPEND FROM A:COS_FIAN FOR VALEUR =0
CASE Prix ="4'
APPEND FROM A:COS_MAHA FOR VALEUR =0
CASE Prix ="5'
APPEND FROM A:COS_TOAM FOR VALEUR =0
CASE Prix ="6'
APPEND FROM A:COS_TULE FOR VALEUR =0
OTHERWISE
* impression des totaux par faritany.
DO LINE 2
SET PRINT ON
?? CHR(15)
? "| TOTAUX"
?? SPACE(6)+"Quantité|"+STR(T1,8)+STR(T2,8)+STR(T3,8)+" | "+STR(T4,8);
+STR(T5,9)+STR(T6,8)+" | "+STR(T7,8)+STR(T8,8)+STR(T9,8)+" | "+STR(T10,8);
+STR(T11,8)+" | "+STR(T12,8)+" | "+STR(T13,8)+" | "+STR(T14,8)+" | ";
?? STR(T15,8)+" | "+STR(T16,8)+" | "+STR(T17,8)+" | "+STR(T18,8)+" | ";
+STR(T19,8)+" | "+STR(T20,14)+" | ";
? " | "+SPACE(16)+"Valeur|"+STR(Z1/1000,8)+STR(Z2/1000,8)+STR(Z3/1000,8)+" | ";
+STR(Z4/1000,8)+STR(Z5/1000,9)+STR(Z6/1000,8)+" | "+STR(Z7/1000,8);
+STR(Z8/1000,8)+STR(Z9/1000,8)+" | "+STR(Z10/1000,8)+STR(Z11/1000,8)+" | ";
?? STR(Z12/1000,8)+" | "+STR(Z13/1000,8)+" | "+STR(Z14/1000,8)+" | ";
+STR(Z15/1000,8)+" | "+STR(Z16/1000,8)+" | "+STR(Z17/1000,8)+" | ";
+STR(Z18/1000,8)+" | "+STR(Z19/1000,8)+" | "+STR(Z20/1000,14)+" | ";
SET PRINT OFF
DO LINE 2
SET PRINT ON
EJECT
SET PRINT OFF
* remise à zéro des variables de travail.
STORE 0 TO T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18
STORE 0 TO T19,T20,Z19,Z20
STORE 0 TO Z1,Z2,Z3,Z4,Z5,Z6,Z7,Z8,Z9,Z10,Z11,Z12,Z13,Z14,Z15,Z16,Z17,Z18
* passage au faritany suivant avec remise à 1 du compteur des pays.
STORE 1 TO Comp
STORE Count + 1 TO Count
IF Count > 6
STORE Teller + 12 TO Teller
ELSE
STORE Teller + 1 TO Teller
ENDIF
ENDDO &&Teller <7
* fin de boucle des six faritany.
STORE 1 TO Teller, Comp
STORE Count + 1 TO Count
* arrangement pour terminer la routine.
IF Count < 7
STORE .T. TO Process
ELSE
STORE .F. TO Process
ENDIF
ENDDO && Process
* fin de la boucle principale.
USE
RELEASE ALL
RETURN
* retour au menu.
RELEASE ALL
USE
RETURN
ENDCASE
USE
* fichier avec données à valeurs positives.
USE C:PRX_2_AJU
DO CASE
CASE Prix ="1'
APPEND FROM A:COS_ANTA FOR VALEUR > 0
CASE Prix ="2'
APPEND FROM A:COS_ANTS FOR VALEUR > 0
CASE Prix ="3'
APPEND FROM A:COS_FIAN FOR VALEUR > 0
CASE Prix ="4'
APPEND FROM A:COS_MAHA FOR VALEUR > 0
CASE Prix ="5'
APPEND FROM A:COS_TOAM FOR VALEUR > 0
CASE Prix ="6'
APPEND FROM A:COS_TULE FOR VALEUR > 0
OTHERWISE
RELEASE ALL
RETURN
ENDCASE
USE
* pour le fichier contenant données à valeurs = 0, on remplace la valeur
* zéro par le prix moyen au kilo pratiqué dans le faritany (calculé à partir
* du programme AVRG COMMAND FILE.
USE C:PRX_1_AJU
GO TOP
* boucle de transformation / remplacement des valeur zéro.
DO WHILE .NOT. EOF()
SET CONSOLE ON
SET TALK ON
* sélection des sous-routines d'ajustement des valeurs.
DO CASE
CASE Prix ="5' &&Toamasina
DO AJU_5_PR
CASE Prix ="1' &&Antananarivo
DO AJU_1_PR
CASE Prix ="2' &&Antsiranana
DO AJU_2_PR
CASE Prix ="3' &&Fianarantsoa
DO AJU_3_PR
CASE Prix ="4' &&Mahajanga
DO AJU_4_PR
CASE Prix ="6' &&Tulear
DO AJU_6_PR
OTHERWISE
RELEASE ALL
USE
RETURN
ENDCASE
ENDDO
USE
* préparation au transfert des données valorisées vers une nouvelle disquette
* allant recevoir les deux fichiers créés plus haut.
SET BELL ON
CLEAR
? CHR(7)
? CHR(7)
@ 10,10 SAY "Insérrez la disquette devant recevoir le fichier avec valeurs"
@ 11,10 SAY "ajustées …"
? CHR(7)
? CHR(7)
WAIT
CLEAR
DO CASE
CASE Prix ="1'
USE A:COS_ANTA
CASE Prix ="2'
USE A:COS_ANTS
CASE Prix ="3'
USE A:COS_FIAN
CASE Prix ="4'
USE A:COS_MAHA
CASE Prix ="5'
USE A:COS_TOAM
CASE Prix ="6'
USE A:COS_TULE
OTHERWISE
RELEASE ALL
RETURN
ENDCASE
* destruction des données se trouvant sur la disquette recevant les données
* avec valeurs converties.
SET SAFETY OFF
ZAP
* ajouts des données avec valeurs positives sur la nouvelle disquette.
APPEND FROM C:PRX_1_AJU
APPEND FROM C:PRX_2_AJU
USE
* remise à l'état d'origine.
DELETE FILE C:PRX_1_AJU.DBF
DELETE FILE C:PRX_2_AJU.DBF
SET SAFETY ON
RELEASE ALL
RETURN
* retour au menu des totaux globaux.
***********************************************************************************************
Ce sous-programme change les valeurs zéro des produits halieutiques des cos
par des prix moyens au kilo comme disponible à partir des quelques cos
mentionant les prix au kilo pour le faritany de TULEAR.
************************************************************************************************
DO CASE
* poissons entiers.
CASE NAT_PROD ="01'
DO CASE
CASE CONSERV ="01'
REPLACE VALEUR WITH QUANTITE * 650
CASE CONSERV ="02'
REPLACE VALEUR WITH QUANTITE * 700
CASE CONSERV ="03'
REPLACE VALEUR WITH QUANTITE * 676
ENDCASE
* poissons éviscérés.
CASE NAT_PROD ="02'
DO CASE
CASE CONSERV ="04'
REPLACE VALEUR WITH QUANTITE * 580
CASE CONSERV ="05'
REPLACE VALEUR WITH QUANTITE * 750
CASE CONSERV ="06'
REPLACE VALEUR WITH QUANTITE * 860
CASE CONSERV ="07'
REPLACE VALEUR WITH QUANTITE * 860
ENDCASE
* poissons filetés.
CASE NAT_PROD ="03'
DO CASE
CASE CONSERV ="08'
REPLACE VALEUR WITH QUANTITE * 2000
CASE CONSERV ="09'
REPLACE VALEUR WITH QUANTITE * 938
CASE CONSERV ="10'
REPLACE VALEUR WITH QUANTITE * 1350
ENDCASE
* crevettes/camarons entiers.
CASE NAT_PROD ="04'
DO CASE
CASE CONSERV ="11'
REPLACE VALEUR WITH QUANTITE * 1250
CASE CONSERV ="12'
REPLACE VALEUR WITH QUANTITE * 1000
CASE CONSERV ="13'
REPLACE VALEUR WITH QUANTITE * 1500
ENDCASE
* crevettes/camarons étêtés.
CASE NAT_PROD ="05'
DO CASE
CASE CONSERV ="14'
REPLACE VALEUR WITH QUANTITE * 1500
CASE CONSERV ="15'
REPLACE VALEUR WITH QUANTITE * 2500
CASE CONSERV ="16'
REPLACE VALEUR WITH QUANTITE * 2500
ENDCASE
* crevettes/camarons décortiqués.
CASE NAT_PROD ="06'
DO CASE
CASE CONSERV ="17'
REPLACE VALEUR WITH QUANTITE * 2500
CASE CONSERV ="18'
REPLACE VALEUR WITH QUANTITE * 2500
ENDCASE
* crabes entiers.
CASE NAT_PROD ="07'
DO CASE
CASE CONSERV ="19'
REPLACE VALEUR WITH QUANTITE * 1650
CASE CONSERV ="20'
REPLACE VALEUR WITH QUANTITE * 1000
ENDCASE
* crabes morceaux.
CASE NAT_PROD ="08'
REPLACE VALEUR WITH QUANTITE * 1800
* crabes décortiqués.
CASE NAT_PROD ="09'
REPLACE VALEUR WITH QUANTITE * 1250
* langoustes entières.
CASE NAT_PROD ="10'
DO CASE
CASE CONSERV ="23'
REPLACE VALEUR WITH QUANTITE * 3517
CASE CONSERV ="24'
REPLACE VALEUR WITH QUANTITE * 7816
CASE CONSERV ="25'
REPLACE VALEUR WITH QUANTITE * 4350
ENDCASE
* langoustes gueues.
CASE NAT_PROD ="11'
REPLACE VALEUR WITH QUANTITE * 7340
* céphalopdes entiers.
CASE NAT_PROD ="12'
DO CASE
CASE CONSERV ="27'
REPLACE VALEUR WITH QUANTITE * 850
CASE CONSERV ="28'
REPLACE VALEUR WITH QUANTITE * 850
CASE CONSERV ="29'
REPLACE VALEUR WITH QUANTITE * 850
ENDCASE
* chevaquine.
CASE NAT_PROD ="13'
REPLACE VALEUR WITH QUANTITE * 1750
* algues.
CASE NAT_PROD ="14'
REPLACE VALEUR WITH QUANTITE * 679
* trépang.
CASE NAT_PROD ="15'
REPLACE VALEUR WITH QUANTITE * 7280
* bichique.
CASE NAT_PROD ="16'
DO CASE
CASE CONSERV ="33'
REPLACE VALEUR WITH QUANTITE * 2000
CASE CONSERV ="34'
REPLACE VALEUR WITH QUANTITE * 800
ENDCASE
* mollusques.
CASE NAT_PROD ="17'
REPLACE VALEUR WITH QUANTITE * 4150
* ailerons de requins.
CASE NAT_PROD ="18'
REPLACE VALEUR WITH QUANTITE * 14195
* autres.
CASE NAT_PROD ="19'
REPLACE VALEUR WITH QUANTITE * 6046
OTHERWISE
* pour changer des codes ne correspondant pas aux codes ci-hauts.
EDIT
ENDCASE
SKIP
RETURN
* retour au programme AJU_PRIX.
**********************************************************************************************
Ce sous-programme change les valeurs zéro des produits halieutiques des cos
par des prix moyens au kilo comme disponible à partir des quelques cos
mentionant les prix au kilo pour le faritany de MAHAJANGA.
***********************************************************************************************
DO CASE
* poissons entiers.
CASE NAT_PROD ="01'
DO CASE
CASE CONSERV ="01'
REPLACE VALEUR WITH QUANTITE * 2619
CASE CONSERV ="02'
REPLACE VALEUR WITH QUANTITE * 2100
CASE CONSERV ="03'
REPLACE VALEUR WITH QUANTITE * 850
ENDCASE
* poissons éviscérés.
CASE NAT_PROD ="02'
DO CASE
CASE CONSERV ="04'
REPLACE VALEUR WITH QUANTITE * 3358
CASE CONSERV ="05'
REPLACE VALEUR WITH QUANTITE * 850
CASE CONSERV ="06'
REPLACE VALEUR WITH QUANTITE * 950
CASE CONSERV ="07'
REPLACE VALEUR WITH QUANTITE * 2290
ENDCASE
* poissons filetés.
CASE NAT_PROD ="03'
DO CASE
CASE CONSERV ="08'
REPLACE VALEUR WITH QUANTITE * 4016
CASE CONSERV ="09'
REPLACE VALEUR WITH QUANTITE * 4829
CASE CONSERV ="10'
REPLACE VALEUR WITH QUANTITE * 1350
ENDCASE
* crevettes/camarons entiers.
CASE NAT_PROD ="04'
DO CASE
CASE CONSERV ="11'
REPLACE VALEUR WITH QUANTITE * 7619
CASE CONSERV ="12'
REPLACE VALEUR WITH QUANTITE * 1600
CASE CONSERV ="13'
REPLACE VALEUR WITH QUANTITE * 1250
ENDCASE
* crevettes/camarons étêtés.
CASE NAT_PROD ="05'
DO CASE
CASE CONSERV ="14'
REPLACE VALEUR WITH QUANTITE * 7813
CASE CONSERV ="15'
REPLACE VALEUR WITH QUANTITE * 2500
CASE CONSERV ="16'
REPLACE VALEUR WITH QUANTITE * 2500
ENDCASE
* crevettes/camarons décortiqués.
CASE NAT_PROD ="06'
DO CASE
CASE CONSERV ="17'
REPLACE VALEUR WITH QUANTITE * 2500
CASE CONSERV ="18'
REPLACE VALEUR WITH QUANTITE * 2500
ENDCASE
* crabes entiers.
CASE NAT_PROD ="07'
DO CASE
CASE CONSERV ="19'
REPLACE VALEUR WITH QUANTITE * 4632
CASE CONSERV ="20'
REPLACE VALEUR WITH QUANTITE * 850
ENDCASE
* crabes morceaux.
CASE NAT_PROD ="08'
REPLACE VALEUR WITH QUANTITE * 4243
* crabes décortiqués.
CASE NAT_PROD ="09'
REPLACE VALEUR WITH QUANTITE * 10878
* langoustes entières.
CASE NAT_PROD ="10'
DO CASE
CASE CONSERV ="23'
REPLACE VALEUR WITH QUANTITE * 2350
CASE CONSERV ="24'
REPLACE VALEUR WITH QUANTITE * 9800
CASE CONSERV ="25'
REPLACE VALEUR WITH QUANTITE * 2350
ENDCASE
* langoustes gueues.
CASE NAT_PROD ="11'
REPLACE VALEUR WITH QUANTITE * 17243
* céphalopodes entiers.
CASE NAT_PROD ="12'
DO CASE
CASE CONSERV ="27'
REPLACE VALEUR WITH QUANTITE * 850
CASE CONSERV ="28'
REPLACE VALEUR WITH QUANTITE * 850
CASE CONSERV ="29'
REPLACE VALEUR WITH QUANTITE * 850
ENDCASE
* chevaquines.
CASE NAT_PROD ="13'
REPLACE VALEUR WITH QUANTITE * 2795
* algues.
CASE NAT_PROD ="14'
REPLACE VALEUR WITH QUANTITE * 679
* trépang.
CASE NAT_PROD ="15'
REPLACE VALEUR WITH QUANTITE * 3466
* bichique.
CASE NAT_PROD ="16'
DO CASE
CASE CONSERV ="33'
REPLACE VALEUR WITH QUANTITE * 1200
CASE CONSERV ="34'
REPLACE VALEUR WITH QUANTITE * 1900
ENDCASE
* mollusques.
CASE NAT_PROD ="17'
REPLACE VALEUR WITH QUANTITE * 650
* ailerons de requins.
CASE NAT_PROD ="18'
REPLACE VALEUR WITH QUANTITE * 1400
* autres.
CASE NAT_PROD ="19'
REPLACE VALEUR WITH QUANTITE * 1700
* pour changer des codes ne correspondant pas aux codes ci-hauts.
OTHERWISE
EDIT
ENDCASE
SKIP
RETURN
* retour au programme AJU_PRIX.
************************************************************************************************
Ce sous-programme change les valeurs zéro des produits halieutiques des cos
par des prix moyens au kilo comme disponible à partir des quelques cos
mentionant les prix au kilo pour le faritany de FIANARANTSOA.
************************************************************************************************
DO CASE
* poissons entiers.
CASE NAT_PROD ="01'
DO CASE
CASE CONSERV ="01'
REPLACE VALEUR WITH QUANTITE * 600
CASE CONSERV ="02'
REPLACE VALEUR WITH QUANTITE * 600
CASE CONSERV ="03'
REPLACE VALEUR WITH QUANTITE * 650
ENDCASE
* poissons éviscérés.
CASE NAT_PROD ="02'
DO CASE
CASE CONSERV ="04'
REPLACE VALEUR WITH QUANTITE * 600
CASE CONSERV ="05'
REPLACE VALEUR WITH QUANTITE * 650
CASE CONSERV ="06'
REPLACE VALEUR WITH QUANTITE * 700
CASE CONSERV ="07'
REPLACE VALEUR WITH QUANTITE * 700
ENDCASE
* poissons filetés.
CASE NAT_PROD ="03'
DO CASE
CASE CONSERV ="08'
REPLACE VALEUR WITH QUANTITE * 700
CASE CONSERV ="09'
REPLACE VALEUR WITH QUANTITE * 700
CASE CONSERV ="10'
REPLACE VALEUR WITH QUANTITE * 700
ENDCASE
* crevettes/camarons entiers.
CASE NAT_PROD ="04'
DO CASE
CASE CONSERV ="11'
REPLACE VALEUR WITH QUANTITE * 1400
CASE CONSERV ="12'
REPLACE VALEUR WITH QUANTITE * 1500
CASE CONSERV ="13'
REPLACE VALEUR WITH QUANTITE * 1500
ENDCASE
* crevettes/camarons étêtés.
CASE NAT_PROD ="05'
DO CASE
CASE CONSERV ="14'
REPLACE VALEUR WITH QUANTITE * 1850
CASE CONSERV ="15'
REPLACE VALEUR WITH QUANTITE * 1500
CASE CONSERV ="16'
REPLACE VALEUR WITH QUANTITE * 1500
ENDCASE
* crevettes/camarons décotiqués.
CASE NAT_PROD ="06'
DO CASE
CASE CONSERV ="17'
REPLACE VALEUR WITH QUANTITE * 1500
CASE CONSERV ="18'
REPLACE VALEUR WITH QUANTITE * 1500
ENDCASE
* crabes entiers.
CASE NAT_PROD ="07'
DO CASE
CASE CONSERV ="19'
REPLACE VALEUR WITH QUANTITE * 480
CASE CONSERV ="20'
REPLACE VALEUR WITH QUANTITE * 480
ENDCASE
* crabes morceaux.
CASE NAT_PROD ="08'
REPLACE VALEUR WITH QUANTITE * 480
* crabes décotiqués.
CASE NAT_PROD ="09'
REPLACE VALEUR WITH QUANTITE * 480
* langoustes entiéres.
CASE NAT_PROD ="10'
DO CASE
CASE CONSERV ="23'
REPLACE VALEUR WITH QUANTITE * 1500
CASE CONSERV ="24'
REPLACE VALEUR WITH QUANTITE * 1500
CASE CONSERV ="25'
REPLACE VALEUR WITH QUANTITE * 1500
ENDCASE
* langoustes gueues.
CASE NAT_PROD ="11'
REPLACE VALEUR WITH QUANTITE * 2000
* céphalopodes entiers.
CASE NAT_PROD ="12'
DO CASE
CASE CONSERV ="27'
REPLACE VALEUR WITH QUANTITE * 850
CASE CONSERV ="28'
REPLACE VALEUR WITH QUANTITE * 850
CASE CONSERV ="29'
REPLACE VALEUR WITH QUANTITE * 850
ENDCASE
* chevaquines.
CASE NAT_PROD ="13'
REPLACE VALEUR WITH QUANTITE * 900
* algues.
CASE NAT_PROD ="14'
REPLACE VALEUR WITH QUANTITE * 650
* trépang.
CASE NAT PROD ="15'
REPLACE VALEUR WITH QUANTITE * 1850
* bichique.
CASE NAT_PROD ="16'
DO CASE
CASE CONSERV ="33'
REPLACE VALEUR WITH QUANTITE * 1200
CASE CONSERV ="34'
REPLACE VALEUR WITH QUANTITE * 1200
ENDCASE
* mollusques.
CASE NAT PROD ="17'
REPLACE VALEUR WITH QUANTITE * 450
* ailerons de requins.
CASE NAT PROD ="18'
REPLACE VALEUR WITH QUANTITE * 1850
* autres.
CASE NAT PROD ="19'
REPLACE VALEUR WITH QUANTITE * 1300
OTHERWISE
* pour changer des codes ne correspondant pas aux codes ci-hauts.
EDIT
ENDCASE
SKIP
RETURN
* retour au programme AJU_PRIX.
***********************************************************************************************
Ce sous-programme change les valeurs zéro des produits halieutiques des cos
par des prix moyens au kilo comme disponible à partir des quelques cos
mentionant les prix au kilo pour le faritany de ANTANANARIVO.
***********************************************************************************************
DO CASE
* poissons entiers.
CASE NAT_PROD ="01'
DO CASE
CASE CONSERV ="01'
REPLACE VALEUR WITH QUANTITE * 1500
CASE CONSERV ="02'
REPLACE VALEUR WITH QUANTITE * 1500
CASE CONSERV ="03'
REPLACE VALEUR WITH QUANTITE * 2400
ENDCASE
* poissons éviscérés.
CASE NAT_PROD ="02'
DO CASE
CASE CONSERV ="04'
REPLACE VALEUR WITH QUANTITE * 1600
CASE CONSERV ="05'
REPLACE VALEUR WITH QUANTITE * 3000
CASE CONSERV ="06'
REPLACE VALEUR WITH QUANTITE * 4500
CASE CONSERV ="07'
REPLACE VALEUR WITH QUANTITE * 2400
ENDCASE
* poissons filetés.
CASE NAT_PROD ="03'
DO CASE
CASE CONSERV ="08'
REPLACE VALEUR WITH QUANTITE * 4000
CASE CONSERV ="09'
REPLACE VALEUR WITH QUANTITE * 4500
CASE CONSERV ="10'
REPLACE VALEUR WITH QUANTITE * 3500
ENDCASE
* crevettes/camarons entiers.
CASE NAT_PROD ="04'
DO CASE
CASE CONSERV ="11'
REPLACE VALEUR WITH QUANTITE * 10600
CASE CONSERV ="12'
REPLACE VALEUR WITH QUANTITE * 2700
CASE CONSERV ="13'
REPLACE VALEUR WITH QUANTITE * 3200
ENDCASE
* crevettes/camarons étêtés.
CASE NAT_PROD ="05'
DO CASE
CASE CONSERV ="14'
REPLACE VALEUR WITH QUANTITE * 5950
CASE CONSERV ="15'
REPLACE VALEUR WITH QUANTITE * 6000
CASE CONSERV ="16'
REPLACE VALEUR WITH QUANTITE * 2500
ENDCASE
* crevettes/camarons décortiqués.
CASE NAT_PROD ="06'
DO CASE
CASE CONSERV ="17'
REPLACE VALEUR WITH QUANTITE * 4500
CASE CONSERV ="18'
REPLACE VALEUR WITH QUANTITE * 5500
ENDCASE
* crabes entiers.
CASE NAT_PROD ="07'
DO CASE
CASE CONSERV ="19'
REPLACE VALEUR WITH QUANTITE * 1100
CASE CONSERV ="20'
REPLACE VALEUR WITH QUANTITE * 1150
ENDCASE
* crabes morceaux.
CASE NAT_PROD ="08'
REPLACE VALEUR WITH QUANTITE * 4857
* crabes décortiqués.
CASE NAT_PROD ="09'
REPLACE VALEUR WITH QUANTITE * 6900
* langoustes entières.
CASE NAT_PROD ="10'
DO CASE
CASE CONSERV ="23'
REPLACE VALEUR WITH QUANTITE * 7950
CASE CONSERV ="24'
REPLACE VALEUR WITH QUANTITE * 14900
CASE CONSERV ="25'
REPLACE VALEUR WITH QUANTITE * 4000
ENDCASE
* langoustes queues.
CASE NAT_PROD ="11'
REPLACE VALEUR WITH QUANTITE * 15600
* céphalopodes entiers.
CASE NAT_PROD ="12'
DO CASE
CASE CONSERV ="27'
REPLACE VALEUR WITH QUANTITE * 1850
CASE CONSERV ="28'
REPLACE VALEUR WITH QUANTITE * 1850
CASE CONSERV ="29'
REPLACE VALEUR WITH QUANTITE * 1850
ENDCASE
* chevaquine.
CASE NAT_PROD ="13'
REPLACE VALEUR WITH QUANTITE * 4800
* algues.
CASE NAT_PROD ="14'
REPLACE VALEUR WITH QUANTITE * 700
* trépang.
CASE NAT_PROD ="15'
REPLACE VALEUR WITH QUANTITE * 7280
* bichique.
CASE NAT_PROD ="16'
DO CASE
CASE CONSERV ="33'
REPLACE VALEUR WITH QUANTITE * 3200
CASE CONSERV ="34'
REPLACE VALEUR WITH QUANTITE * 4000
ENDCASE
* mollusques.
CASE NAT_PROD ="17'
REPLACE VALEUR WITH QUANTITE * 9500
* ailerons de requins.
CASE NAT_PROD ="18'
REPLACE VALEUR WITH QUANTITE * 4750
* autres.
CASE NAT_PROD ="19'
REPLACE VALEUR WITH QUANTITE * 4500
* permet de corriger les codes qui ne correspondent pas aux codes ci-hauts.
OTHERWISE
EDIT
ENDCASE
SKIP
RETURN
* retour au programme AJU_PRIX.
************************************************************************************************
Ce sous-programme change les valeurs zéro des produits halieutiques des cos
par des prix moyens au kilo comme disponible à partir des quelques cos
mentionant les prix au kilo pour le faritany d'ANTSIRANANA.
************************************************************************************************
* démarrage du sous-programme.
DO CASE
* poissons entiers.
CASE NAT PROD ="01'
DO CASE
CASE CONSERV ="01'
REPLACE VALEUR WITH QUANTITE * 600
CASE CONSERV ="02'
REPLACE VALEUR WITH QUANTITE * 700
CASE CONSERV ="03'
REPLACE VALEUR WITH QUANTITE * 1405
ENDCASE
* poissons éviscérés.
CASE NAT_PROD ="02'
DO CASE
CASE CONSERV ="04'
REPLACE VALEUR WITH QUANTITE * 808
CASE CONSERV ="05'
REPLACE VALEUR WITH QUANTITE * 560
CASE CONSERV ="06'
REPLACE VALEUR WITH QUANTITE * 1375
CASE CONSERV ="07'
REPLACE VALEUR WITH QUANTITE * 1474
ENDCASE
* poissons filetés.
CASE NAT_PROD ="03'
DO CASE
CASE CONSERV ="08'
REPLACE VALEUR WITH QUANTITE * 1000
CASE CONSERV ="09'
REPLACE VALEUR WITH QUANTITE * 1500
CASE CONSERV ="10'
REPLACE VALEUR WITH QUANTITE * 1200
ENDCASE
* crevettes/camarons entiers.
CASE NAT_PROD ="04'
DO CASE
CASE CONSERV ="11'
REPLACE VALEUR WITH QUANTITE * 2546
CASE CONSERV ="12'
REPLACE VALEUR WITH QUANTITE * 1500
CASE CONSERV ="13'
REPLACE VALEUR WITH QUANTITE * 1201
ENDCASE
* crevettes/camarons étêtés.0
CASE NAT_PROD ="05'
DO CASE
CASE CONSERV ="14'
REPLACE VALEUR WITH QUANTITE * 2544
CASE CONSERV ="15'
REPLACE VALEUR WITH QUANTITE * 2500
CASE CONSERV ="16'
REPLACE VALEUR WITH QUANTITE * 1472
ENDCASE
* crevettes/camarons décortiqués.
CASE NAT_PROD ="06'
DO CASE
CASE CONSERV ="17'
REPLACE VALEUR WITH QUANTITE * 1500
CASE CONSERV ="18'
REPLACE VALEUR WITH QUANTITE * 1500
ENDCASE
* crabes entiers.
CASE NAT_PROD ="07'
DO CASE
CASE CONSERV ="19'
REPLACE VALEUR WITH QUANTITE * 483
CASE CONSERV ="20'
REPLACE VALEUR WITH QUANTITE * 483
ENDCASE
* crabes morceaux.
CASE NAT_PROD ="08'
REPLACE VALEUR WITH QUANTITE * 1399
* crabes décortiqués.
CASE NAT_PROD ="09'
REPLACE VALEUR WITH QUANTITE * 700
* langoustes entières.
CASE NAT_PROD ="10'
DO CASE
CASE CONSERV ="23'
REPLACE VALEUR WITH QUANTITE * 2350
CASE CONSERV ="24'
REPLACE VALEUR WITH QUANTITE * 3000
CASE CONSERV ="25'
REPLACE VALEUR WITH QUANTITE * 2350
ENDCASE
* langoustes queues.
CASE NAT_PROD ="11'
REPLACE VALEUR WITH QUANTITE * 3400
* céphalopodes.
CASE NAT_PROD ="12'
DO CASE
CASE CONSERV ="27'
REPLACE VALEUR WITH QUANTITE * 850
CASE CONSERV ="28'
REPLACE VALEUR WITH QUANTITE * 850
CASE CONSERV ="29'
REPLACE VALEUR WITH QUANTITE * 3026
ENDCASE
* chevaquine.
CASE NAT_PROD ="13'
REPLACE VALEUR WITH QUANTITE * 781
* algues.
CASE NAT_PROD ="14'
REPLACE VALEUR WITH QUANTITE * 679
* trépang.
CASE NAT_PROD ="15'
REPLACE VALEUR WITH QUANTITE * 2200
* bichique.
CASE NAT_PROD ="16'
DO CASE
CASE CONSERV ="33'
REPLACE VALEUR WITH QUANTITE * 1000
CASE CONSERV ="34'
REPLACE VALEUR WITH QUANTITE * 1120
ENDCASE
* mollusques.
CASE NAT_PROD ="17'
REPLACE VALEUR WITH QUANTITE * 1150
* ailerons de requins.
CASE NAT_PROD ="18'
REPLACE VALEUR WITH QUANTITE * 2850
* autres.
CASE NAT_PROD ="19'
REPLACE VALEUR WITH QUANTITE * 2000
* permet d'éditer l'enregistrement et de le modifier si ses codes ne
* correspondent pas à l'un des codes ci-haut.
OTHERWISE
EDIT
ENDCASE
SKIP
RETURN
* retour au programme AJU_PRIX.
***********************************************************************************************
Ce sous-programme change les valeurs zéro des produits halieutiques des cos
par des prix moyens au kilo comme disponible à partir des quelques cos
mentionant les prix au kilo pour le faritany de TOAMASINA.
***********************************************************************************************
* démarrage du sous-programme.
DO CASE
* poissons entiers.
CASE NAT_PROD ="01'
DO CASE
CASE CONSERV ="01'
REPLACE VALEUR WITH QUANTITE * 981
CASE CONSERV ="02'
REPLACE VALEUR WITH QUANTITE * 700
CASE CONSERV ="03'
REPLACE VALEUR WITH QUANTITE * 200
ENDCASE
* poissons éviscérés.
CASE NAT_PROD ="02'
DO CASE
CASE CONSERV ="04'
REPLACE VALEUR WITH QUANTITE * 1500
CASE CONSERV ="05'
REPLACE VALEUR WITH QUANTITE * 1500
CASE CONSERV ="06'
REPLACE VALEUR WITH QUANTITE * 3023
CASE CONSERV ="07'
REPLACE VALEUR WITH QUANTITE * 1422
ENDCASE
* poissons filetés.
CASE NAT_PROD ="03'
DO CASE
CASE CONSERV ="08'
REPLACE VALEUR WITH QUANTITE * 2004
CASE CONSERV ="09'
REPLACE VALEUR WITH QUANTITE * 10000
CASE CONSERV ="10'
REPLACE VALEUR WITH QUANTITE * 1750
ENDCASE
* crevettes / camarons entiers.
CASE NAT_PROD ="04'
DO CASE
CASE CONSERV ="11'
REPLACE VALEUR WITH QUANTITE * 5301
CASE CONSERV ="12'
REPLACE VALEUR WITH QUANTITE * 1350
CASE CONSERV ="13'
REPLACE VALEUR WITH QUANTITE * 1595
ENDCASE
* crevettes / camarons étêtés.
CASE NAT_PROD ="05'
DO CASE
CASE CONSERV ="14'
REPLACE VALEUR WITH QUANTITE * 4925
CASE CONSERV ="15'
REPLACE VALEUR WITH QUANTITE * 4500
CASE CONSERV ="16'
REPLACE VALEUR WITH QUANTITE * 1150
ENDCASE
* crevettes / camarons décortiqués.
CASE NAT_PROD ="06'
DO CASE
CASE CONSERV ="17'
REPLACE VALEUR WITH QUANTITE * 4600
CASE CONSERV ="18'
REPLACE VALEUR WITH QUANTITE * 3000
ENDCASE
* crabes entiers.
CASE NAT_PROD ="07'
DO CASE
CASE CONSERV ="19'
REPLACE VALEUR WITH QUANTITE * 1100
CASE CONSERV ="20'
REPLACE VALEUR WITH QUANTITE * 1000
ENDCASE
* crabes morceaux.
CASE NAT_PROD ="08'
REPLACE VALEUR WITH QUANTITE * 1748
* crabes décortiqués.
CASE NAT_PROD ="09'
REPLACE VALEUR WITH QUANTITE * 3892
* langoustes entiéres.
CASE NAT_PROD ="10'
DO CASE
CASE CONSERV ="23'
REPLACE VALEUR WITH QUANTITE * 2350
CASE CONSERV ="24'
REPLACE VALEUR WITH QUANTITE * 3011
CASE CONSERV ="25'
REPLACE VALEUR WITH QUANTITE * 2000
ENDCASE
* langoustes queues.
CASE NAT_PROD ="11'
REPLACE VALEUR WITH QUANTITE * 5575
* céphalopodes entiers.
CASE NAT_PROD ="12'
DO CASE
CASE CONSERV ="27'
REPLACE VALEUR WITH QUANTITE * 1233
CASE CONSERV ="28'
REPLACE VALEUR WITH QUANTITE * 1250
CASE CONSERV ="29'
REPLACE VALEUR WITH QUANTITE * 1167
ENDCASE
* chevaquine.
CASE NAT_PROD ="13'
REPLACE VALEUR WITH QUANTITE * 3128
* algues.
CASE NAT_PROD ="14'
REPLACE VALEUR WITH QUANTITE * 679
* trépang.
CASE NAT_PROD ="15'
REPLACE VALEUR WITH QUANTITE * 3840
* bichique.
CASE NAT_PROD ="16'
DO CASE
CASE CONSERV ="33'
REPLACE VALEUR WITH QUANTITE * 1631
CASE CONSERV ="34'
REPLACE VALEUR WITH QUANTITE * 1900
ENDCASE
* mollusques.
CASE NAT_PROD ="17'
REPLACE VALEUR WITH QUANTITE * 2521
* ailerons de requin.
CASE NAT_PROD ="18'
REPLACE VALEUR WITH QUANTITE * 4667
* autres.
CASE NAT_PROD ="19'
REPLACE VALEUR WITH QUANTITE * 1700
* permet d'éditer l'enrégistrement fautif ne correspondant pas à l'une
* des options ci-haut.
OTHERWISE
EDIT
ENDCASE
SKIP
RETURN
* retour au programme AJU-PRIX.
******************************************************************************
Ce programme imprime l'entête pour les estimations totales des expéditions
/ exportations hors Faritany.
******************************************************************************
* initialisation des paramètres de la routine.
SET PRINT OFF
STORE DATE() TO Mdate
SET PRINT ON
?? CHR(27) + CHR(88) + CHR(2) + CHR(232)
* initialisation de l'entête si le tableau ne comporte qu'une partie.
IF Part <> '2'
SET PRINT ON
SET CONSOLE OFF
SET MARGIN TO 0
?? 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 entre expéditions et exportations.
IF Rep < '4'
?? SPACE(12)+"EXPEDITIONS ANNUELLES hors FARITANY - 1987 -"
ELSE
?? SPACE(12)+"EXPORTATIONS ANNUELLES par FARITANY - 1987 -"
ENDIF
?? CHR(15)
?
?
?
? SPACE(4)+"Date : "+DTOC(Mdate)
ELSE
* si le tableau comporte deux partie.
IF Part ="2'
?? CHR(18)
? SPACE(10)+"Seconde Partie"
?? CHR(15)
? SPACE(10)+"Date : "+DTOC(Mdate)
?
? CHR(14)
IF (Rep ="1' .OR. Rep ="2')
?? SPACE(12)+"EXPEDITIONS ANNUELLES hors FARITANY - 1987 -"
ELSE
?? SPACE(12)+"EXPORTATIONS ANNUELLES par FARITANY - 1987 -"
ENDIF
?? CHR(15)
?
ENDIF &&Part="2'
ENDIF &&Part<> '2'
?? CHR(15)
* impression des unités.
IF (Rep ="1' .OR. Rep ="3' .OR. Rep ="5'. OR. Rep ="7')
?? SPACE(153)
ELSE
IF (Rep ="2' .OR. Rep ="4' .OR. Rep ="6')
?? SPACE(136)
ENDIF &&Rep=2
ENDIF &&Rep=1
?? "UNITES Poids : Kgs UNITES Valeur : x 1000 FMG"
SET PRINT OFF
DO LINE 2
SET PRINT ON
SET CONSOLE OFF
* sélection des diverses options.
DO CASE
CASE Rep ="1'
? SPACE(9)
?? CHR(27) + CHR(69)
?? SPACE(24)+ ' N A T U R E DES P R O D U I T S'
+ ' '
?? CHR(27) + CHR(70)
?? CHR(15)
DO LINE 2
SET PRINT ON
?? CHR(15)
? "| FARITANY"+SPACE(12)+"| POISSONS"+SPACE(15)+"| CREVETTES"+SPACE(14);
+"| CRABES"+" | LANGOUSTES | CEPHALOP. | CHEVAQUI.|";
+"ALGUES |"+"TREPANG | BICHIQUE | MOLLUSQU.| AIL.REQU.|"
?? +"AUTRES | TOTAL |"
? "|"+SPACE(22)+"| entier évisc. fileté | entier étêté décort |";
+"entier"+"morceau décorti | entière queue | entier | |";
+" | "+" | | | | "
?? "| FARITANY |"
CASE Rep ="2'
* première partie du tableau.
IF Part <> '2'
?? CHR(27) + CHR(69)
?? SPACE(39)+' M O Y E N DE C O N S E R V A ';
+'TION'
?? CHR(27) + CHR(70)
?? CHR(15)
DO LINE 2
SET PRINT ON
?? CHR(18)
?? CHR(15)
? SPACE(10)+"| FARITANY"+SPACE(5)+"| POISSON"+SPACE(72)+"| CREVETTE";
+"/CAMARON"+SPACE(47)+"| CRABE"+SPACE(26)+" |"
? SPACE(10)+" | "+SPACE(15)+"| entier eviscére ";
+"fileté | entier étêté"
?? "décortiqué | entier morcea décort |"
? SPACE(10)+" | "+SPACE(15)+"| congel cuit fumé congel cuit fumé";
+"séché congel fumé | congel bouill séché congel bouill";
+"cuit cuit séché | vivant cuit congel congel |"
ELSE
* seconde partie du tableau.
IF Part ="2'
SET CONSOLE OFF
?? CHR(27) + CHR(69)
? SPACE(28)+' M O Y E N DE C O N S E R V A T ';
+'ION'
?? CHR(27) + CHR(70)
?? CHR(15)
DO LINE 2
SET PRINT ON
?? CHR(15)
? SPACE(10)
?? "| FARITANY | LANGOUSTE"+SPACE(22)+"| CEPHALOPODE"+SPACE(12);
+"| CHEVAQUI. | ALGUES | TREPANG | BICHIQUE |";
+"MOLLUSQU.| AIL.REQU.| AUTRES || TOTAL |"
? SPACE(10)+" | "+SPACE(16)+"| entier queues | entier";
+" "+" | | | | |";
+" | | | | FARITANY |"
? SPACE(10)+" | "+SPACE(16)+"| vivant congelé cuit congelé | vivant";
+"fumé séché | séché| séché | congelé séché |;
séché | séché | ||
?? CHR(18)
SET CONSOLE ON
ENDIF
CASE Rep ="3'
SET CONSOLE OFF
SET PRINT ON
?? CHR(18)
?? CHR(27) + CHR(69)
? SPACE(9)
?? ' D I S T R I B U T I O N DES P R O D U I T S ;
P A R F A R I T A N Y '
?? CHR(27) + CHR(70)
?? CHR(15)
DO Line 2
SET PRINT ON
?? CHR(15)
? "| FARITANY"+SPACE(12)+"| POISSONS"+SPACE(15)+"| CREVETTES"+SPACE(14);
+"| CRABES"+"| LANGOUSTES | CEPHALOP.| CHEVAQUI.|";
+"ALGUES |"+"TREPANG | BICHIQUE | MOLLUSQU.| AIL.REQU.| AUTRES"
?? "| TOTAL |"
DO CASE
CASE Count = 1
? "| ANTANANARIVO "
CASE Count = 2
? "| ANTSIRANANA "
CASE Count = 3
? "| FIANARANTSOA "
CASE Count = 4
? "| MAHAJANGA "
CASE Count = 5
? "| TOAMASINA "
CASE Count = 6
? "| TOLIARA "
ENDCASE
?? SPACE(7)+"| entier évisc. fileté | entier étêté décort | entier";
+"morceau decorti | entiere queue | entier | | |";
+"| | | | | FARITANY |"
DO LINE_2
CASE Rep ="5'
? SPACE(9)
?? CHR(27) + CHR(69)
?? SPACE(24)+ ' 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 2
SET PRINT ON
?? CHR(15)
? "| FARITANY"+SPACE(12)+"| POISSONS"+SPACE(15)+"| CREVETTES"+SPACE(15);
+"| CRABES"+" | LANGOUSTES | CEPHALOP.| CHEVAQUI. |";
+"ALGUES |"+"TREPANG | BICHIQUE | MOLLUSQU. | AIL.REQU.|"
?? "AUTRES | TOTAL |"
? " | "+SPACE(22)+"| entier evisc. fileté | entier étêté décort |";
+"entier"+"morceau décorti | entière queue | entier | |";
+" | "+"| | | |"
?? "| FARITANY |"
CASE Rep ="6'
* première partie du tableu.
IF Part <> '2'
?? CHR(27) + CHR(69)
?? SPACE(39)+' 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 2
SET PRINT ON
?? CHR(18)
?? CHR(15)
? SPACE(10)+"| FARITANY"+SPACE(5)+"| POISSON"+SPACE(72)+" | ";
+"CREVETTE/CAMARON"+SPACE(48)+"| CRABE"+SPACE(26)+" | "
? SPACE(10)+" | "+SPACE(15)+"| entier éviscéré";
+" fileté | entier étêté"
?? " décortiqué | entier morcea décort |"
? SPACE(10)+" | "+SPACE(15)+"| congel cuit fumé congel cuit fumé";
+"séché congel fumé séché congel bouill";
+" cuit cuit séché | vivant cuit congel congel |"
ELSE
* seconde partie du tableau.
IF Part ="2'
SET CONSOLE OFF
?? CHR(27) + CHR(69)
? SPACE(28)+' 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 2
SET PRINT ON
?? CHR(15)
? SPACE(10)
?? "| FARITANY | LANGOUSTE"+SPACE(22)+"| CEPHALOPODE"+SPACE(12);
+"| CHEVAQUI. | ALGUES | TREPANG | BICHIQUE |";
+"MOLLUSQU. | AIL.REQU. | AUTRES || TOTAL |"
? SPACE(10)+" | "+SPACE(16)+"| entier queues | entier ";
+" | | | | |";
+" | | || FARITANY |"
? SPACE(10)+" | "+SPACE(16)+"| vivant congelé cuit congelé| vivant ";
+"fumé séché | séché | séché | séché | congelé séché |";
séché | séché | || |"
?? CHR(18)
SET CONSOLE ON
ENDIF
CASE Rep ="7'
SET CONSOLE OFF
SET PRINT ON
?? CHR(27) + CHR(69)
? SPACE(4)
?? " PAR N A T U R E DES P R O D U I T S ET PAR;
P A Y S D' E X P O R T A T I O N "
?? CHR(27) + CHR(70)
DO LINE 2
SET PRINT ON
?? CHR(15)
? "| FARITANY"+SPACE(12)+"| POISSONS"+SPACE(15)+"| CREVETTES"+SPACE(14);
+"| CRABES"+" | LANGOUSTES | CEPHALOP.| CHEVAQUI.|";
+" ALGUES |"+"TREPANG | BICHIQUE | MOLLUSQU.| AIL.REQU.| AUTRES |"
?? " TOTAL|"
DO CASE
CASE Count = 1
? "| ANTANANARIVO "
CASE Count = 2
? "| ANTSIRANANA "
CASE Count = 3
? "| FIANARANTSOA "
CASE Count = 4
? "| MAHAJANGA "
CASE Count = 5
? "| TOAMASINA "
CASE Count = 6
? "| TOLIARA "
ENDCASE
?? CHR(15)
?? SPACE(7)+"| entier évisc. fileté | entier étêté décort | entier";
+"morceau décorti | entiére queue | entier | | |";
+" | | | | | FARITANY |"
DO LINE 2
?? CHR(18)
ENDCASE
* fin et retour au programme.
SET PRINT OFF
SET CONSOLE ON
RETURN
**********************************************************
Ce programme crée une ligne pour le programme des TOTAUX (T_EXE_O).
**********************************************************
* initialisation de la routine.
SET PRINT ON
SET CONSOLE OFF
?? CHR(15)
* sélection en fonction des options choisies.
IF (Rep ="1' .OR. Rep ="3' .OR. Rep ="5' .OR. Rep ="7')
? " | "
IF Rep ="5'
?? REPLICATE ("-", 227)
ELSE
?? REPLICATE ("-", 226)
ENDIF
?? " | "
ELSE
IF (Rep ="2' .OR. Rep ="4' .OR. Rep ="6')
IF Part ="1'
? SPACE (10)
?? " | "
IF Rep ="6'
?? REPLICATE("-",201)
ELSE
?? REPLICATE("-",200)
ENDIF
?? " | "
ELSE
? SPACE(10)
?? " | "
?? REPLICATE("-",181)
?? " | "
ENDIF &&Part="1'
ENDIF &&Rep=2
ENDIF &&Rep=1
SET PRINT OFF
RETURN
* retour au programme apellant.
************************************************************************************************
Ce programme calcule la moyenne des prix par type de produit et par
Fivondronana ayant issu des cos comportants des valeurs.
*************************************************************************************************
* initialisation du sous-programme.
CLEAR
SET CONSOLE OFF
SET TALK OFF
SET SAFETY OFF
STORE DATE() TO Mdate
Myn ="103'
Deel ="1'
STORE .T. TO Draai
* impression de l'entête.
SET PRINT ON
? CHR(18)
? SPACE(45) +"PRIX MOYEN / KG. en FMG"
?? CHR(15)
?? "Date : "+DTOC(Mdate)
?? CHR(27) + CHR(88) + CHR(2) + CHR(232)
?? CHR(15)
? " | "+REPLICATE("-",200)+" | "
? "| FIVONDRONANA | POISSON"+SPACE (72)+"| CREVETTES / CAMARONS";
+SPACE(43)+"| CRABES"+SPACE(29)+" | "
? " | "+SPACE(14)+"| entiers"+SPACE(17)+"éviscérés"+SPACE(23)+"filetés";
+SPACE(16)+"| entières"+SPACE(16)+"étêtées"+SPACE(19)+"décortiquées |";
+"entiers morceau décorti. |"
? " | "+SPACE(14)+"| congel cuit fumé congel cuit fumé séché"
?? "congel fumé séché | congel bouill";
+ "séché cuit séché"
?? "| vivants cuits congelé congelé |"
? " | "+REPLICATE("-", 200)+" | "
SET PRINT OFF
* boucle principale - en fonction selon les fivondronana ayant émis des
* cos.
DO WHILE Draai
* initialisation des variables à zéro.
STORE 0.0 TO T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17
STORE 0.0 TO T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32
STORE 0.0 TO T33,T34,T35,T36,T37
* sélection succesive des divers fichiers pour chaque fivondronana dont
* ont désire connaitre le prix moyen au kilo par type de produit.
IF Deel ="1'
DO CASE
CASE Myn ="103'
USE C:ZANTA
CASE Myn ="202'
USE C:ZANTS
CASE Myn ="207'
USE C:ZANTS
CASE Myn ="209'
USE C:ZANTS
CASE Myn ="317'
USE C:ZFIAN
CASE Myn ="402'
USE C:ZMAHA
CASE Myn ="502'
USE C:ZTOAM
CASE Myn ="602'
USE C:ZTULE
CASE Myn ="618'
USE C:ZTULE
CASE Myn ="619'
USE C:ZTULE
CASE Myn ="614'
USE C:ZTULE
OTHERWISE
RELEASE ALL
USE
RETURN
ENDCASE
* copie de la structure vers le fichier c:avrg.
COPY STRUCTURE TO C:AVRG.DBF
USE
USE C:AVRG.DBF
* ajout des données au fichier avrg selon le fivondronana désiré.
DO CASE
CASE Myn ="402'
APPEND FROM C:ZMAHA FOR (FIVONDRON = Myn .AND. VALEUR > 0)
CASE Myn ="103'
APPEND FROM C:ZANTA FOR (FIVONDRON = Myn .AND. VALEUR > 0)
CASE Myn ="202'
APPEND FROM C:ZANTS FOR (FIVONDRON = Myn .AND. VALEUR > 0)
CASE Myn ="207'
APPEND FROM C:ZANTS FOR (FIVONDRON = Myn .AND. VALEUR > 0)
CASE Myn ="209'
APPEND FROM C:ZANTS FOR (FIVONDRON = Myn .AND. VALEUR > 0)
CASE Myn ="317'
APPEND FROM C:ZFIAN FOR (FIVONDRON = Myn .AND. VALEUR > 0)
CASE Myn ="402'
APPEND FROM C:ZMAHA FOR (FIVONDRON = Myn .AND. VALEUR > 0)
CASE Myn ="502'
APPEND FROM C:ZTOAM FOR (FIVONDRON = Myn .AND. VALEUR > 0)
CASE Myn ="602'
APPEND FROM C:ZTULE FOR (FIVONDRON = Myn .AND. VALEUR > 0)
CASE Myn ="618'
APPEND FROM C:ZTULE FOR (FIVONDRON = Myn .AND. VALEUR > 0)
CASE Myn ="619'
APPEND FROM C:ZTULE FOR (FIVONDRON = Myn .AND. VALEUR > 0)
CASE Myn ="614'
APPEND FROM C:ZTULE FOR (FIVONDRON = Myn .AND. VALEUR > 0)
ENDCASE
USE C:AVRG.DBF
INDEX ON NAT_PROD+CONSERV TO C:AVRG.NDX
* calcul des prix moyens des produits - première partie du tableau.
USE C:AVRG INDEX C:AVRG.NDX
AVERAGE VALEUR/QUANTITE TO T1 FOR(NAT_PROD ="01' .AND. CONSERV ="01')
AVERAGE VALEUR/QUANTITE TO T2 FOR(NAT_PROD ="01' .AND. CONSERV ="02')
AVERAGE VALEUR/QUANTITE TO T3 FOR(NAT_PROD ="01' .AND. CONSERV ="03')
AVERAGE VALEUR/QUANTITE TO T4 FOR(NAT_PROD ="02' .AND. CONSERV ="04')
AVERAGE VALEUR/QUANTITE TO T5 FOR(NAT_PROD ="02' .AND. CONSERV ="05')
AVERAGE VALEUR/QUANTITE TO T6 FOR(NAT_PROD ="02' .AND. CONSERV ="06')
AVERAGE VALEUR/QUANTITE TO T7 FOR(NAT_PROD ="02' .AND. CONSERV ="07')
AVERAGE VALEUR/QUANTITE TO T8 FOR(NAT_PROD ="03' .AND. CONSERV ="08')
AVERAGE VALEUR/QUANTITE TO T9 FOR(NAT_PROD ="03' .AND. CONSERV ="09')
AVERAGE VALEUR/QUANTITE TO T10 FOR(NAT_PROD ="03' .AND. CONSERV ="10')
AVERAGE VALEUR/QUANTITE TO T11 FOR(NAT_PROD ="04' .AND. CONSERV ="11')
AVERAGE VALEUR/QUANTITE TO T12 FOR(NAT_PROD ="04' .AND. CONSERV ="12')
AVERAGE VALEUR/QUANTITE TO T13 FOR(NAT_PROD ="04' .AND. CONSERV ="13')
AVERAGE VALEUR/QUANTITE TO T14 FOR(NAT_PROD ="05' .AND. CONSERV ="14')
AVERAGE VALEUR/QUANTITE TO T15 FOR(NAT_PROD ="05' .AND. CONSERV ="15')
AVERAGE VALEUR/QUANTITE TO T16 FOR(NAT_PROD ="05' .AND. CONSERV ="16')
AVERAGE VALEUR/QUANTITE TO T17 FOR(NAT_PROD ="06' .AND. CONSERV ="17')
AVERAGE VALEUR/QUANTITE TO T18 FOR(NAT_PROD ="06' .AND. CONSERV ="18')
AVERAGE VALEUR/QUANTITE TO T19 FOR(NAT_PROD ="07' .AND. CONSERV ="19')
AVERAGE VALEUR/QUANTITE TO T20 FOR(NAT_PROD ="07' .AND. CONSERV ="20')
AVERAGE VALEUR/QUANTITE TO T21 FOR(NAT_PROD ="08' .AND. CONSERV ="21')
AVERAGE VALEUR/QUANTITE TO T22 FOR(NAT_PROD ="09' .AND. CONSERV ="22')
* destruction du fichier c:avrg
USE
DELETE FILE C:AVRG.NDX
DELETE FILE C:AVRG.DBF
* impression des résultats - prix moyen au kilo pratiqué dans le fivondronana
* du choix.
SET PRINT ON
? " | "
DO CASE
CASE Myn ="103'
?? "Antananarivo "
CASE Myn ="202'
?? "Antsiranana "
CASE Myn ="207'
?? "Nosy - Be "
CASE Myn ="209'
?? "Vohémar "
CASE Myn ="317'
?? "Mananjary "
CASE Myn ="402'
?? "Mahajanga "
CASE Myn ="402'
?? "Mahajanga "
CASE Myn ="502'
?? "Toamasina "
CASE Myn ="602'
?? "Tulear "
CASE Myn ="608'
?? "Belo/Tsiribi "
CASE Myn ="614'
?? "Tolagnaro "
CASE Myn ="618'
?? "Morombe "
CASE Myn ="619'
?? "Morondava "
ENDCASE
?? " | "+STR(T1,8,1)+STR(T2,8,1)+STR(T3,8,1)+STR(T4,8,1)+STR(T5,8,1);
+STR(T6,8,1)+STR(T7,8,1)+STR(T8,8,1)+STR(T9,8,1)+STR(T10,8,1)+" | ";
+STR(T11,8,1)+STR(T12,8,1)+STR(T13,8,1)+STR(T14,8,1)+STR(T15,8,1)
?? STR(T16,8,1)+STR(T17,8,1)+STR(T18,8,1)+" | "+STR(T19,8,1);
+STR(T20,8,1)+STR(T21,9,1)+STR(T22,10,1)+" | "
? " | "+REPLICATE("-", 200)+" | "
SET PRINT OFF
* passage au fivondronana suivant.
DO CASE
CASE Myn ="103'
STORE '202' TO Myn
CASE Myn ="202'
STORE '207' TO Myn
CASE Myn ="207'
STORE '209' TO Myn
CASE Myn ="209'
STORE '317' TO Myn
CASE Myn ="317'
STORE '402' TO Myn
CASE Myn ="402'
STORE '502' TO Myn
CASE Myn ="502'
STORE '602' TO Myn
CASE Myn ="602'
STORE '614' TO Myn
CASE Myn ="614'
STORE '618' TO Myn
CASE Myn ="618'
STORE '619' TO Myn
CASE Myn ="619'
STORE '650' TO Myn
STORE '2' TO Deel
ENDCASE
* passage à la seconde partie du tableau ou passage à la première partie
* du tableau mais au fivondronana suivant.
IF Myn ="650'
STORE '2' TO Deel
STORE .T. TO Draai
STORE '103' TO Myn
ELSE
STORE '1' TO Deel
STORE .T. TO Draai
ENDIF
* fin de la première partie du tableau.
ELSE &&Deel=1of2
* seconde partie du tableau.
IF Deel ="2'
* impression de l'entête.
IF (Deel ="2' .AND. Myn ="103')
SET PRINT ON
?
? SPACE(15)
?? CHR(15)
?? "seconde partie"
? SPACE(16)+"Date : "+DTOC(Mdate)
?? CHR(18)
?? SPACE(30)+"<<< PRIX MOYEN / KG. en FMG >>>"
?? CHR(27) + CHR(88) + CHR(2) + CHR(232)
?? CHR(15)
? SPACE(15)+" | "+REPLICATE("-",152)+" | "
? SPACE(15)+"| FIVONDRONANA | LANGOUSTES"+SPACE(21)+"| CEPHALOPODES";
+SPACE(11)+"| CHEVAOUI.| ALGUES | TREPANG | BICHIQUE | MOLLUSQ.";
+"|AIL.REQU.| AUTRES |"
? SPACE(15)+" | "+SPACE(14)+"| entiers"+SPACE(17)+"queues | entiers";
+SPACE(16)+"lentières | | | entier | |";
+"| |"
? SPACE(15)+" | "+SPACE(14)+"| vivant congel cuit congel | congel";
+"fumé séché"+"| séchées | séchées | congelé séchés |";
+"| séché | |"
? SPACE(15)+" | "+REPLICATE("-",152)+" | "
SET PRINT OFF
ENDIF
* selection des fivondronana successifs.
DO CASE
CASE Myn ="103'
USE C:ZANTA
CASE Myn ="202'
USE C:ZANTS
CASE Myn ="207'
USE C:ZANTS
CASE Myn ="209'
USE C:ZANTS
CASE Myn ="217'
USE C:ZFIAN
CASE Myn ="402'
USE C:ZMAHA
CASE Myn ="502'
USE C:ZTOAM
CASE Myn ="602'
USE C:ZTULE
CASE Myn ="618'
USE C:ZTULE
CASE Myn ="619'
USE C:ZTULE
CASE Myn ="614'
USE C:ZTULE
OTHERWISE
RELEASE ALL
USE
RETURN
ENDCASE
* copie de la structure sur le fichier c:avrg.
COPY STRUCTURE TO C:AVRG.DBF
USE
USE C:AVRG.DBF
* transfert des données vers le fichier c:avrg selon le fivondronana
* sélectioné.
DO CASE
CASE Myn ="402'
APPEND FROM C:ZMAHA FOR(FIVONDRON = Myn .AND. VALEUR > 0)
CASE Myn ="103'
APPEND FROM C:ZANTA FOR(FIVONDRON = Myn .AND. VALEUR > 0)
CASE Myn ="202'
APPEND FROM C:ZANTS FOR(FIVONDRON = Myn .AND. VALEUR > 0)
CASE Myn ="207'
APPEND FROM C:ZANTS FOR(FIVONDRON = Myn .AND. VALEUR > 0)
CASE Myn ="209'
APPEND FROM C:ZANTS FOR(FIVONDRON = Myn .AND. VALEUR > 0)
CASE Myn ="317'
APPEND FROM C:ZFIAN FOR(FIVONDRON = Myn .AND. VALEUR > 0)
CASE Myn ="402'
APPEND FROM C:ZMAHA FOR(FIVONDRON = Myn .AND. VALEUR > 0)
CASE Myn ="502'
APPEND FROM C:ZTOAM FOR(FIVONDRON = Myn .AND. VALEUR > 0)
CASE Myn ="602'
APPEND FROM C:ZTULE FOR(FIVONDRON = Myn .AND. VALEUR > 0)
CASE Myn ="618'
APPEND FROM C:ZTULE FOR(FIVONDRON = Myn .AND. VALEUR > 0)
CASE Myn ="619'
APPEND FROM C:ZTULE FOR(FIVONDRON = Myn .AND. VALEUR > 0)
CASE Myn ="614'
APPEND FROM C:ZTULE FOR(FIVONDRON = Myn .AND. VALEUR > 0)
ENDCASE
USE C:AVRG.DBF
INDEX ON NAT_PROD+CONSERV TO C:AVRG.NDX
* calcul du prix moyen au kilo pratiqué par type de produit dans le
* fivondronana sélectioné - seconde partie du tableau.
USE C:AVRG INDEX C:AVRG.NDX
AVERAGE VALEUR/QUANTITE TO T23 FOR(NAT_PROD ="10'.AND. CONSERV ="23')
AVERAGE VALEUR/QUANTITE TO T24 FOR(NAT_PROD ="10'.AND. CONSERV ="24')
AVERAGE VALEUR/QUANTITE TO T25 FOR(NAT_PROD ="10'.AND. CONSERV ="25')
AVERAGE VALEUR/QUANTITE TO T26 FOR(NAT_PROD ="11'.AND. CONSERV ="26')
AVERAGE VALEUR/QUANTITE TO T27 FOR(NAT_PROD ="12'.AND. CONSERV ="27')
AVERAGE VALEUR/QUANTITE TO T28 FOR(NAT_PROD ="12'.AND. CONSERV ="28')
AVERAGE VALEUR/QUANTITE TO T29 FOR(NAT_PROD ="12'.AND. CONSERV ="29')
AVERAGE VALEUR/QUANTITE TO T30 FOR(NAT_PROD ="13'.AND. CONSERV ="30')
AVERAGE VALEUR/QUANTITE TO T31 FOR(NAT_PROD ="14'.AND. CONSERV ="31')
AVERAGE VALEUR/QUANTITE TO T32 FOR(NAT_PROD ="15'.AND. CONSERV ="32')
AVERAGE VALEUR/QUANTITE TO T33 FOR(NAT_PROD ="16'.AND. CONSERV ="33')
AVERAGE VALEUR/QUANTITE TO T34 FOR(NAT_PROD ="16'.AND. CONSERV ="34')
AVERAGE VALEUR/QUANTITE TO T35 FOR(NAT_PROD ="17'.AND. CONSERV ="35')
AVERAGE VALEUR/QUANTITE TO T36 FOR(NAT_PROD ="18'.AND. CONSERV ="36')
AVERAGE VALEUR/QUANTITE TO T37 FOR(NAT_PROD ="19'.AND. CONSERV ="37')
* destruction du fichier c:avrg
USE
DELETE FILE C:AVRG.NDX
DELETE FILE C:AVRG.DBF
* impression des résultats des prix moyens au kilo - seconde partie
* du tableau.
SET PRINT ON
? SPACE(15)+" | "
DO CASE
CASE Myn ="103'
?? "Antananarivo "
CASE Myn ="202'
?? "Antsiranana "
CASE Myn ="207'
?? "Nosy - Be "
CASE Myn ="209'
?? "Vohémar "
CASE Myn ="317'
?? "Mananjary "
CASE Myn ="402'
?? "Mahajanga "
CASE Myn ="402'
?? "Mahajanga "
CASE Myn ="502'
?? "Toamasina "
CASE Myn ="602'
?? "Tulear "
CASE Myn ="608'
?? "Belo/Tsiribi "
CASE Myn ="614'
?? "Tolagnaro "
CASE Myn ="618'
?? "Morombe "
CASE Myn ="619'
?? "Morondava "
ENDCASE
?? " | "+STR(T23,8,1)+STR(T24,8,1)+STR(T25,8,1)+STR(T26,8,1)+" | "+STR(T27,8,1);
+STR(T28,8,1)+STR(T29,8,1)+" | "+STR(T30,8,1)+" | "+STR(T31,8,1)+" | ";
+STR(T32,8,1)+" | "+STR(T33,8,1)+STR(T34,8,1)+" | "
?? STR(T35,8,1)+" | "+STR(T36,8,1)+" | "+STR(T37,8,1)+" | "
?SPACE(15)+" | "+REPLICATE("-",152)+" | "
SET PRINT OFF
* passage au fivondronana suivant - seconde partie - ou finalisation de
* la seconde partie du tableau.
DO CASE
CASE Myn ="103'
STORE '202' TO Myn
CASE Myn ="202'
STORE '207' TO Myn
CASE Myn ="207'
STORE '209' TO Myn
CASE Myn ="209'
STORE '317' TO Myn
CASE Myn ="317'
STORE '402' TO Myn
CASE Myn ="402'
STORE '502' TO Myn
CASE Myn ="502'