***********************************************************************************
***********************************************************************************
**                                                                               **
** 				  INDICATEURS DE POPULATIONS                             **
**                                                                               **
***********************************************************************************
***********************************************************************************

SUBROUTINE SSIADSTATSEXEAGECONDVIE(RETURNVAL, ENTREE, SORTIE)
RETURNVAL=1000

***********************************************************************************
**                                                                               **
**                       Ouverture des fichiers                                  **
**                                                                               **
***********************************************************************************
EXECUTE "DATE.FORMAT"
EXECUTE "SET-DEC ,"
EXECUTE "SET-THOUS ."
OPEN "", "CIVILAIDE" TO F.CIVILAIDE ELSE STOP
OPEN "", "RESPONSABLE" TO F.RESPONSABLE ELSE STOP
OPEN "", "SECTEUR" TO F.SECTEUR ELSE STOP
OPEN "", "SSIADACCORDS" TO F.SSIADACCORDS ELSE STOP
OPEN "", "SSIADELEMGEST" TO F.SSIADELEMGEST ELSE STOP
OPEN "", "STATAIDE" TO F.STATAIDE ELSE STOP
OPEN "", "TABLES" TO F.TABLES ELSE STOP

EXECUTE "DATE.FORMAT"
W_RequeteSsiadAccord=""
W_RequeteSsiadAccord2=""

***********************************************************************************
**                                                                               **
**                      Rcupration des arguments                               **
**                                                                               **
***********************************************************************************

! le numro de l'association
W_Asso = ENTREE<1>

! le type de selection (A = activite SE= service SA= sans)
W_ChoixSelect = ENTREE<2>

! le numro de la selection
W_CodeSelect = ENTREE<3>

! le type de slection/tri (R= Responsable, S= Secteur, C=Commune ou T=Totalit)
W_ChoixTri = ENTREE<4>

! le code de cette slection (ou le libel pour la commune)
W_CodeTri = ENTREE<5>

! le dbut de la priode de rfrence
W_Debut = ICONV(ENTREE<6>,"D4/")

! la fin   de la priode de rfrence
W_Fin = ICONV(ENTREE<7>,"D4/")

! le type de statistique (S=Sexe et Age, C= Conditions de cohabitation) 
W_TypeStat = ENTREE<8>

! le type d'dition (F=fichier ou S=statistique)
W_Edit = ENTREE<9>

! le type de rsultat (P=Pourcentage ou N=nombre d'aid)
W_TypeResultat = ENTREE<10>

! La requte dynamique cre
W_Requete=""

W_Requete = 'SELECT SSIADACCORDS AVEC 3 ="':W_Asso:']" AND AVEC 1 <= "':W_Fin:'" AND AVEC 2 >= "':W_Debut:'"'

IF W_CodeSelect # "" THEN
	IF W_ChoixSelect="A" THEN
		W_Requete = W_Requete:' AND AVEC 3 = "':W_Asso:W_CodeSelect:'"'
	END ELSE
		IF W_ChoixSelect="S" THEN
			W_Requete = W_Requete:' AND AVEC CodeService = "':W_CodeSelect:'"'
		END
	END
END

IF W_ChoixTri = "R" THEN
   IF W_CodeTri # "" THEN
      W_Requete = W_Requete:' AND AVEC CodeResponsable ="':W_CodeTri:'"'
   END ELSE

      W_Requete = W_Requete:' PAR LibResponsable'
   END
END

IF W_ChoixTri = "S" THEN
   IF W_CodeTri # "" THEN
      W_Requete = W_Requete:' AND AVEC CodeSecteur ="':W_CodeTri:'"'
   END ELSE
      W_Requete = W_Requete:' PAR LibSecteur'
   END
END

IF W_ChoixTri = "C" THEN
   IF W_CodeTri # "" THEN
      W_Requete = W_Requete:' AND AVEC Commune ="':W_CodeTri:'"'
   END ELSE
      W_Requete = W_Requete:' PAR Commune'
   END
END

W_Requete = W_Requete:' PAR CodeAide PAR 1'

EXECUTE W_Requete
EXECUTE 'SAUVE-LISTE W_RequeteSsiadAccord'
EXECUTE "LISTE W_RequeteSsiadAccord" RETURNING MSGCODE
IF MSGCODE<1>=209 THEN
* Sortie de la SUBROUTINE
   RETURNVAL=2000
   RETURN
END ELSE
   SELECT F.SSIADACCORDS TO W_RequeteSsiadAccord
END

W_Fini = "Faux"
W_DernierAide = 0
W_Tableau ="" 
W_Libelle =""
W_LibellePrec =""
W_NbAide = 0
W_TableauCumul ="" 
W_NbTotalAide = 0
*******************************************************************************************************************
* 							TABLEAU STATISTIQUE SEXE ET AGE							*
*******************************************************************************************************************
IF W_TypeStat = "S" THEN

*entete du tableau

   W_TableauAge=""
   BEGIN CASE
      CASE W_ChoixTri ="R"
		   W_TableauAge = "Responsable"
      CASE W_ChoixTri ="S"
		   W_TableauAge = "Secteur"
      CASE W_ChoixTri ="C"
		   W_TableauAge = "Commune"
      CASE 1
		   W_TableauAge = "Totalit"
   END CASE
   W_TableauAge = W_TableauAge:";Sexe"
		   
   READ ENR_TABLES FROM F.TABLES, "AGEAIDESID" ELSE ENR_TABLES = ""	
   FOR i=1 TO DCOUNT(ENR_TABLES<3>,CHAR(253))
	   W_TableauAge =W_TableauAge :";de " :ENR_TABLES<3,i> :"  ":ENR_TABLES<4,i>-1 
   NEXT

   IF W_ChoixTri = "T" THEN
   	W_TableauAge<2,1> = ""
	  	W_TableauAge<2,2> = "Hommes"
   	W_TableauAge<3,1> = ""
	  	W_TableauAge<3,2> = "Femmes"
		W_NbLigne = 2
   END ELSE
		W_NbLigne = 0
   END 
   
*initialisation du tableau cumul 
   IF W_ChoixTri # "T" AND W_CodeTri = "" THEN
		W_TableauCumul<1,1> = "Cumul"
		W_TableauCumul<1,2> = "Homme"
		W_TableauCumul<2,2> = "Femme"

   END

	FOR j= 1 TO DCOUNT(ENR_TABLES<2>,CHAR(253))
      W_TableauCumul<1,j+2> = 0
		W_TableauCumul<2,j+2> = 0
      W_TableauAge<2,j+2> = 0
		W_TableauAge<3,j+2> = 0
	NEXT
   
   W_TabAnomalie = "" 
   iTab = 0

   LOOP

      READNEXT W_CodeSsiadAccords FROM W_RequeteSsiadAccord ELSE W_Fini = "Vrai"

   WHILE W_Fini = "Faux"


      IF W_CodeSsiadAccords[1,5] = W_DernierAide AND W_Presence # 0 THEN
      END ELSE
 
         W_DernierAide = W_CodeSsiadAccords[1,5]

         W_EntreePrActive=""
         READ ENR_SSIADACCORDS FROM F.SSIADACCORDS,W_CodeSsiadAccords THEN
            W_EntreePrActive<1>=W_CodeSsiadAccords 
            W_EntreePrActive<2>=W_Debut
            W_EntreePrActive<3>=W_Fin
            W_EntreePrActive<4>= "E" 
      	   W_EntreePrActive<5>=W_ChoixSelect
      	   IF W_ChoixSelect = "A" THEN
      	   	W_EntreePrActive<6>=W_Asso:W_CodeSelect
      	   END ELSE
         		W_EntreePrActive<6>=W_CodeSelect
      	   END
         END


         ! Appel de la fonction de calcul du nombre de jour ou de la prsence (E = prsent)
         CALL SSIADPERIODEACTIVE ("",W_EntreePrActive,W_Presence)

* l'aid est actif au moins une journe sur la selection
         IF W_Presence # 0 THEN
      	   W_CodeAide=W_CodeSsiadAccords[1,5]

      	   READ ENR_CIVILAIDE FROM F.CIVILAIDE,W_CodeAide THEN
               W_Libelle = ""
               IF W_ChoixTri = "R" THEN
                  READ ENR_RESPONSABLE FROM F.RESPONSABLE,ENR_CIVILAIDE<39> ELSE ENR_RESPONSABLE = ""
                  W_Libelle = ENR_RESPONSABLE<1>
               END

               IF W_ChoixTri = "S" THEN
                  READ ENR_SECTEUR FROM F.SECTEUR,ENR_CIVILAIDE<40>[1,3] ELSE ENR_SECTEUR = ""
                  W_Libelle = ENR_SECTEUR<1>
               END

               IF W_ChoixTri = "C" THEN
                  W_Libelle = ENR_CIVILAIDE<11>
               END
  
         		IF W_LibellePrec <> W_Libelle THEN
         		   IF W_LibellePrec <> "" THEN
            			IF W_NbAide # 0 THEN
                        IF W_TypeResultat = "P" THEN
*si regroupement par commune, secteur ou responsable il faut garder les totaux avant de faire les pourcentages
               			   IF W_ChoixTri # "T" AND W_CodeTri = "" THEN
                   				FOR j= 1 TO DCOUNT(ENR_TABLES<2>,CHAR(253))
                  			 	   W_TableauCumul<1,j+2> = W_TableauCumul<1,j+2> + W_TableauAge<W_NbLigne,j+2> 
                  				   W_NbTotalAide = W_NbTotalAide + W_TableauAge<W_NbLigne,j+2> 
                  				   W_TableauCumul<2,j+2> = W_TableauCumul<2,j+2> + W_TableauAge<W_NbLigne+1,j+2>
                  				   W_NbTotalAide = W_NbTotalAide + W_TableauAge<W_NbLigne+1,j+2>
                  				NEXT
               			   END

*il faut mettre les pourcentages dans le tableau
                		 	   W_Total = 0
               			   W_Diff = 0
               			   FOR j= 1 TO DCOUNT(ENR_TABLES<2>,CHAR(253))
               			      IF W_TableauAge<W_NbLigne,j+2> = "" THEN
               			         W_TableauAge<W_NbLigne,j+2> = 0
               			      END ELSE
               			         W_TableauAge<W_NbLigne,j+2> = W_TableauAge<W_NbLigne,j+2>/W_NbAide*100
               				      W_TableauAge<W_NbLigne,j+2> = (INT(W_TableauAge<W_NbLigne,j+2>*100+1/2))/100
               				      W_Total = W_Total + W_TableauAge<W_NbLigne,j+2> 
               			   	END
               			   	IF W_TableauAge<W_NbLigne+1,j+2> = "" THEN
               			         W_TableauAge<W_NbLigne+1,j+2> = 0
               			   	END ELSE
               			         W_TableauAge<W_NbLigne+1,j+2> = W_TableauAge<W_NbLigne+1,j+2>/W_NbAide*100
               				      W_TableauAge<W_NbLigne+1,j+2> = (INT(W_TableauAge<W_NbLigne+1,j+2>*100+1/2))/100
               				      W_Total = W_Total + W_TableauAge<W_NbLigne+1,j+2> 
               			   	END
               			   NEXT
* ajustemement pour que les pourcentages soient justes
               			   IF W_Total # 100 THEN	   
               			   	W_Max = 0
               			   	FOR j= 1 TO DCOUNT(ENR_TABLES<2>,CHAR(253))
                  				   IF W_TableauAge<W_NbLigne,j+2> > W_Max THEN
                  				   	W_Max = W_TableauAge<W_NbLigne,j+2>
                  				   	W_Compteur = j+2
                  				   	W_Ligne = W_NbLigne	
                  				   END 
                  				   IF W_TableauAge<W_NbLigne+1,j+2> > W_Max THEN
                  				   	W_Max = W_TableauAge<W_NbLigne+1,j+2>
                  				   	W_Compteur = j+2
                  				   	W_Ligne = W_NbLigne+1	
                  				   END 
               			      NEXT
               			      IF W_Total < 100 THEN
               			   	   W_Diff = 100-W_Total
               				      W_TableauAge<W_Ligne ,W_Compteur> =  W_TableauAge<W_Ligne ,W_Compteur> + W_Diff
               			   	END ELSE
               				      W_Diff = W_Total-100
               				      W_TableauAge<W_Ligne ,W_Compteur> =  W_TableauAge<W_Ligne ,W_Compteur> - W_Diff
               			   	END 
               			   END
               			   W_NbAide = 0
                        END
            			END   
         		   END 
         		   W_NbLigne = W_NbLigne + 2
* libelle de la selection
         		   W_TableauAge<W_NbLigne,1> = W_Libelle
         		   W_TableauAge<W_NbLigne,2> = "Hommes"
         		   W_TableauAge<W_NbLigne+1,1> = W_Libelle
         		   W_TableauAge<W_NbLigne+1,2> = "Femmes"
		   
         		END      
	
         		IF ENR_CIVILAIDE<20> = "" THEN
         		   iTab=iTab+1
         		   W_TabAnomalie<iTab,1> = W_CodeAide
         		   W_TabAnomalie<iTab,2> = ENR_CIVILAIDE<2>
         		   W_TabAnomalie<iTab,3> = ENR_CIVILAIDE<3> 
         		END ELSE
         		   W_Age = OCONV(W_Fin,"D4/")[7,4] - OCONV(ENR_CIVILAIDE<20>,"D4/")[7,4] 
         		   W_NbAide = W_NbAide +1
		
*on met +1 dans le bon encadrement 
         		   FOR j= 1 TO DCOUNT(ENR_TABLES<2>,CHAR(253))
                       IF W_TableauAge<W_NbLigne,j+2> = "" THEN
                            W_TableauAge<W_NbLigne,j+2> = 0
                       END
                       IF W_TableauAge<W_NbLigne+1,j+2> = "" THEN
                            W_TableauAge<W_NbLigne+1,j+2> = 0
                       END
                   NEXT

                   FOR j= 1 TO DCOUNT(ENR_TABLES<2>,CHAR(253))
         		      IF W_Age >= ENR_TABLES<3,j> AND W_Age < ENR_TABLES<4,j> THEN
            			   IF ENR_CIVILAIDE<17> = "M" THEN 
            			      W_TableauAge<W_NbLigne,j+2>= W_TableauAge<W_NbLigne,j+2> + 1
            		 	      EXIT
            			   END ELSE
            			      W_TableauAge<W_NbLigne+1,j+2>= W_TableauAge<W_NbLigne+1,j+2> + 1
            		 	      EXIT
            			   END   
         		      END 
         		   NEXT
      	      END
      	   END
      	   W_LibellePrec = W_Libelle
	   
      	END
      END

 
   REPEAT

   IF W_NbAide # 0 THEN
      IF W_TypeResultat = "P" THEN
*si regroupement par commune, secteur ou responsable il faut garder les totaux avant de faire les pourcentages
         IF W_ChoixTri # "T" AND W_CodeTri = "" THEN
         	FOR j= 1 TO DCOUNT(ENR_TABLES<2>,CHAR(253))
         	   W_TableauCumul<1,j+2> = W_TableauCumul<1,j+2> + W_TableauAge<W_NbLigne,j+2> 
         	   W_NbTotalAide = W_NbTotalAide + W_TableauAge<W_NbLigne,j+2> 
         	   W_TableauCumul<2,j+2> = W_TableauCumul<2,j+2> + W_TableauAge<W_NbLigne+1,j+2> 
         	   W_NbTotalAide = W_NbTotalAide + W_TableauAge<W_NbLigne+1,j+2> 
         	NEXT

*il faut mettre les pourcentages dans le tableau cumul
         	W_Total = 0
         	W_Diff = 0

         	FOR j= 1 TO DCOUNT(ENR_TABLES<2>,CHAR(253))
               W_TableauCumul<1,j+2> = W_TableauCumul<1,j+2>/W_NbTotalAide *100
            	W_TableauCumul<1,j+2> = (INT(W_TableauCumul<1,j+2>*100+1/2))/100
         	   W_Total = W_Total + W_TableauCumul<1,j+2> 
	    
         	   W_TableauCumul<2,j+2> = W_TableauCumul<2,j+2>/W_NbTotalAide *100
         	   W_TableauCumul<2,j+2> = (INT(W_TableauCumul<2,j+2>*100+1/2))/100
         	   W_Total = W_Total + W_TableauCumul<2,j+2> 	   
         	NEXT

* ajustemement pour que les pourcentages soient justes
         	IF W_Total # 100 THEN	   
         	   W_Max = 0
         	   FOR j= 1 TO DCOUNT(ENR_TABLES<2>,CHAR(253))
            		IF W_TableauCumul<1,j+2> > W_Max THEN
            		   W_Max = W_TableauCumul<1,j+2>
            		   W_Compteur = j+2
            		   W_Ligne = 1	
            		END 
            		IF W_TableauCumul<2,j+2> > W_Max THEN
            		   W_Max = W_TableauCumul<2,j+2>
            		   W_Compteur = j+2
            		   W_Ligne = 2	
            		END 
         	   NEXT
         	   IF W_Total < 100 THEN
         	   	W_Diff = 100-W_Total
            		W_TableauCumul<W_Ligne,W_Compteur> =  W_TableauCumul<W_Ligne,W_Compteur> + W_Diff
         	   END ELSE
            		W_Diff = W_Total-100
            		W_TableauCumul<W_Ligne,W_Compteur> =  W_TableauCumul<W_Ligne,W_Compteur> - W_Diff
         	   END 
         	END
         END

*il faut mettre les pourcentages dans le tableau
         W_Total = 0
         W_Diff = 0

      	FOR j= 1 TO DCOUNT(ENR_TABLES<2>,CHAR(253))
      	   IF W_TableauAge<W_NbLigne,j+2> = "" THEN
      	      W_TableauAge<W_NbLigne,j+2> = 0
      	   END ELSE
      	      W_TableauAge<W_NbLigne,j+2> = W_TableauAge<W_NbLigne,j+2>/W_NbAide*100
         		W_TableauAge<W_NbLigne,j+2> = (INT(W_TableauAge<W_NbLigne,j+2>*100+1/2))/100
         		W_Total = W_Total + W_TableauAge<W_NbLigne,j+2> 
      	   END
      	   IF W_TableauAge<W_NbLigne+1,j+2> = "" THEN
      	      W_TableauAge<W_NbLigne+1,j+2> = 0
      	   END ELSE
      	      W_TableauAge<W_NbLigne+1,j+2> = W_TableauAge<W_NbLigne+1,j+2>/W_NbAide*100
         		W_TableauAge<W_NbLigne+1,j+2> = (INT(W_TableauAge<W_NbLigne+1,j+2>*100+1/2))/100
         		W_Total = W_Total + W_TableauAge<W_NbLigne+1,j+2> 
      	   END
      	NEXT

* ajustemement pour que les pourcentages soient justes
      	IF W_Total # 100 THEN	   
      	   W_Max = 0
      	   FOR j= 1 TO DCOUNT(ENR_TABLES<2>,CHAR(253))
         		IF W_TableauAge<W_NbLigne,j+2> > W_Max THEN
         		   W_Max = W_TableauAge<W_NbLigne,j+2>
         		   W_Compteur = j+2
         		   W_Ligne = W_NbLigne	
         		END 
         		IF W_TableauAge<W_NbLigne+1,j+2> > W_Max THEN
         		   W_Max = W_TableauAge<W_NbLigne+1,j+2>
         		   W_Compteur = j+2
         		   W_Ligne = W_NbLigne+1	
         		END 
      	   NEXT
      	   IF W_Total < 100 THEN
      	   	W_Diff = 100-W_Total
         		W_TableauAge<W_Ligne ,W_Compteur> =  W_TableauAge<W_Ligne ,W_Compteur> + W_Diff
      	   END ELSE
         		W_Diff = W_Total-100
         		W_TableauAge<W_Ligne ,W_Compteur> =  W_TableauAge<W_Ligne ,W_Compteur> - W_Diff
      	   END 
      	END
      END
   END 

   IF W_Edit = "S" THEN

      IF W_TabAnomalie # "" THEN	
      	W_Tableau = W_TabAnomalie:CHAR(254):W_TableauAge
*   	W_Tableau = W_TabAnomalie:"":W_TableauAge
      END ELSE
      	W_Tableau = W_TableauAge
      END 
      IF W_ChoixTri # "T" AND W_CodeTri = "" THEN
      	W_Tableau = W_Tableau:CHAR(254):W_TableauCumul
*	W_Tableau = W_Tableau:"":W_TableauCumul
      END
      CONVERT ";" TO CHAR(253) IN W_Tableau	
      CONVERT "." TO "," IN W_Tableau
   END ELSE
      W_Tableau = W_TableauAge
   END


********************************
*  dition d'un fichier csv    * 
********************************
   W_Ordre = 0
   IF W_Edit = "F" THEN

      CONVERT CHAR(253) TO ";" IN W_Tableau
      CONVERT "." TO "," IN W_Tableau   

      W_Date = OCONV(DATE(),"D4/")
      W_Date = ICONV(W_Date,"MCN")
      W_Date=W_Date[5,4]:W_Date[3,2]:W_Date[1,2]

      W_ClefFichier = "SsiadStatSexeAge":"-":W_Asso:"-":W_Date:"-"

      W_Ordre = 0
      LOOP
         W_Ordre = W_Ordre + 1
         READ ENR_STATAIDE FROM F.STATAIDE,W_ClefFichier:W_Ordre:".csv" ELSE ENR_STATAIDE = ""
      UNTIL ENR_STATAIDE = ""
      REPEAT

      WRITE W_Tableau TO F.STATAIDE,W_ClefFichier:W_Ordre:".csv"
      W_Tableau =  W_TabAnomalie 
   END

*fin de la statistique sexe et age
END ELSE
*******************************************************************************************************************
* 						TABLEAU STATISTIQUE CONDITION DE COHABITATION						*
*******************************************************************************************************************
*entete du tableau
 	W_TableauCond=""
   BEGIN CASE
      CASE W_ChoixTri ="R"
   		W_TableauCond= "Responsable"
      CASE W_ChoixTri ="S"
	      W_TableauCond= "Secteur"
      CASE W_ChoixTri ="C"
	      W_TableauCond= "Commune"
	   CASE 1
	      W_TableauCond= "Totalit"
   END CASE

   W_TableauCond= W_TableauCond:";Condition cohabitation"
	
   IF W_TypeResultat = "P" THEN
      W_TableauCond= W_TableauCond:";Pourcentage"
   END ELSE
      W_TableauCond= W_TableauCond:";Nombre"
   END 
   	   
   READ ENR_TABLES FROM F.TABLES, "CONDITIONVIESID" ELSE ENR_TABLES = ""	
   FOR i=1 TO DCOUNT(ENR_TABLES<3>,CHAR(253))
      W_TableauCond<i+1,2>=ENR_TABLES<3,i> 
		W_TableauCond<i+1,3>=0
   NEXT

*initialisation du tableau cumul 
   IF W_ChoixTri # "T" AND W_CodeTri = "" THEN
 		FOR i=1 TO DCOUNT(ENR_TABLES<3>,CHAR(253))
		   W_TableauCumul<i,1> = "Cumul"	
		   W_TableauCumul<i,2> = ENR_TABLES<3,i> 
		   W_TableauCumul<i,3> = 0
		NEXT
   END


   W_NbLigne = 1

   LOOP

      READNEXT W_CodeSsiadAccords FROM W_RequeteSsiadAccord ELSE W_Fini = "Vrai"

   WHILE W_Fini = "Faux"


      IF W_CodeSsiadAccords[1,5] = W_DernierAide AND W_Presence # 0 THEN
      END ELSE
 
         W_DernierAide = W_CodeSsiadAccords[1,5]

         W_EntreePrActive=""
         READ ENR_SSIADACCORDS FROM F.SSIADACCORDS,W_CodeSsiadAccords THEN
            W_EntreePrActive<1>=W_CodeSsiadAccords 
            W_EntreePrActive<2>=W_Debut
            W_EntreePrActive<3>=W_Fin
            W_EntreePrActive<4>= "E" 
      	   W_EntreePrActive<5>=W_ChoixSelect
      	   IF W_ChoixSelect = "A" THEN
      	   	W_EntreePrActive<6>=W_Asso:W_CodeSelect
      	   END ELSE
         		W_EntreePrActive<6>=W_CodeSelect
      	   END
         END


         ! Appel de la fonction de calcul du nombre de jour ou de la prsence (E = prsent)
         CALL SSIADPERIODEACTIVE ("",W_EntreePrActive,W_Presence)

* l'aid est actif au moins une journe sur la selection
         IF W_Presence # 0 THEN
      	   W_CodeAide=W_CodeSsiadAccords[1,5]

      	   READ ENR_CIVILAIDE FROM F.CIVILAIDE,W_CodeAide THEN
               W_Libelle = ""
*on cherche le libelle quand il y a un tri
               IF W_ChoixTri = "R" THEN
                  READ ENR_RESPONSABLE FROM F.RESPONSABLE,ENR_CIVILAIDE<39> ELSE ENR_RESPONSABLE = ""
                  W_Libelle = ENR_RESPONSABLE<1>
               END

               IF W_ChoixTri = "S" THEN
                  READ ENR_SECTEUR FROM F.SECTEUR,ENR_CIVILAIDE<40>[1,3] ELSE ENR_SECTEUR = ""
                  W_Libelle = ENR_SECTEUR<1>
               END

               IF W_ChoixTri = "C" THEN
                  W_Libelle = ENR_CIVILAIDE<11>
               END
  
         		IF W_LibellePrec <> W_Libelle THEN
         		   IF W_LibellePrec <> "" THEN
         			   IF W_NbAide # 0 THEN
                        IF W_TypeResultat = "P" THEN
*si regroupement par commune, secteur ou responsable il faut garder les totaux avant de faire les pourcentages
         			         IF W_ChoixTri # "T" AND W_CodeTri = "" THEN
          				         FOR j= 1 TO DCOUNT(ENR_TABLES<2>,CHAR(253))
         			 	            W_TableauCumul<j,3> = W_TableauCumul<j,3> + W_TableauCond<W_NbLigne+j,3>
         				            W_NbTotalAide = W_NbTotalAide + W_TableauCond<W_NbLigne+j,3>
         				         NEXT
         			         END
                     
*il faut mettre les pourcentages dans le tableau
            			      W_Total = 0
            			      W_Diff = 0
            			      j=0
         			         FOR j= 1 TO DCOUNT(ENR_TABLES<2>,CHAR(253))
                  			   W_TableauCond<W_NbLigne+j,3> = W_TableauCond<W_NbLigne+j,3>/W_NbAide*100
            	   			   W_TableauCond<W_NbLigne+j,3> = (INT(W_TableauCond<W_NbLigne+j,3>*100+1/2))/100
            	   			   W_Total = W_Total + W_TableauCond<W_NbLigne+j,3> 
         			         NEXT
                        
* ajustemement pour que les pourcentages soient justes
         			         IF W_Total # 100 THEN	   
            	   			   W_Max = 0
	   	                     
            	   			   FOR j= 1 TO DCOUNT(ENR_TABLES<2>,CHAR(253))
            				         IF W_TableauCond<W_NbLigne+j,3> > W_Max THEN
            		   			      W_Max = W_TableauCond<W_NbLigne+j,3>
            		   			      W_Ligne = W_NbLigne+j
            				         END 
            	   			   NEXT
            	   			   IF W_Total < 100 THEN
            	   			      W_Diff = 100-W_Total
            				         W_TableauCond<W_Ligne ,3> =  W_TableauCond<W_Ligne ,3> + W_Diff
            	   			   END ELSE
               				      W_Diff = W_Total-100
               				      W_TableauCond<W_Ligne ,3> =  W_TableauCond<W_Ligne ,3> - W_Diff
               	   			END
                           END
               			END
			   
* on change de commune, secteur ou responsable donc il faut remettre les intituls de la table
               			W_NbLigne = W_NbLigne+DCOUNT(ENR_TABLES<2>,CHAR(253))
               			FOR i=1 TO DCOUNT(ENR_TABLES<2>,CHAR(253))
               	         W_TableauCond<W_NbLigne+i,2>=ENR_TABLES<3,i> 
               				W_TableauCond<W_NbLigne+i,3>=0
               	   	NEXT		
               			W_NbAide = 0
               		END   
* libelle de la selection
*W_TableauCond<W_NbLigne+1,1> = W_Libelle
         		   END
      		   END
* libelle de la selection
   		   	W_TableauCond<W_NbLigne+1,1> = W_Libelle 
      		END      

* on lit SSIADELEMGEST pour recuprer le code de condition de cohabitation	
      		W_CodeCond = ""	
      		READ ENR_SSIADELEMGEST FROM F.SSIADELEMGEST,W_CodeAide ELSE ENR_SSIADELEMGEST =""
      		IF ENR_SSIADELEMGEST<18> # "" THEN
      		   FOR j=1 TO DCOUNT(ENR_SSIADELEMGEST<18>,CHAR(253))
      	      	IF ENR_SSIADELEMGEST<18,j> <= W_Fin THEN
         			   W_CodeCond = ENR_SSIADELEMGEST<19,j> 
         			   EXIT
         			END 
   	   	   NEXT

      		   IF W_CodeCond # "" THEN
      		      W_NbAide = W_NbAide +1
*on met +1 au bon endroit en fonction du code 
      		   	FOR j= 1 TO DCOUNT(ENR_TABLES<2>,CHAR(253))
      		         IF W_CodeCond  = ENR_TABLES<2,j> THEN
         			   	W_TableauCond<W_NbLigne+j,3>= W_TableauCond<W_NbLigne+j,3> + 1
         		 	      EXIT   
      		         END 
      		   	NEXT
      		   END 
   	      END
   	   END
   	   W_LibellePrec = W_Libelle
	   
   	END
   REPEAT

   IF W_NbAide # 0 THEN

*si regroupement par commune, secteur ou responsable il faut garder les totaux avant de faire les pourcentages
      IF W_ChoixTri # "T" AND W_CodeTri = "" AND W_TypeResultat = "P" THEN
       	FOR j= 1 TO DCOUNT(ENR_TABLES<2>,CHAR(253))
      	   W_TableauCumul<j,3> = W_TableauCumul<j,3> + W_TableauCond<W_NbLigne+j,3>
      	   W_NbTotalAide = W_NbTotalAide + W_TableauCond<W_NbLigne+j,3>
      	NEXT
*il faut mettre les pourcentages dans le tableau
       	W_Total = 0
      	W_Diff = 0
      	j=0
   	   FOR j= 1 TO DCOUNT(ENR_TABLES<2>,CHAR(253))
         	W_TableauCumul<j,3> = W_TableauCumul<j,3>/W_NbTotalAide *100
   	   	W_TableauCumul<j,3> = (INT(W_TableauCumul<j,3>*100+1/2))/100
   	   	W_Total = W_Total + W_TableauCumul<j,3> 
   	   NEXT

* ajustemement pour que les pourcentages soient justes
   	   IF W_Total # 100 THEN	   
   	   	W_Max = 0
	   	   
   	   	FOR j= 1 TO DCOUNT(ENR_TABLES<2>,CHAR(253))
      		   IF W_TableauCumul<j,3> > W_Max THEN
      		   	W_Max = W_TableauCumul<j,3>
      		   	W_Ligne = j
      		   END 
   	   	NEXT
   	   	IF W_Total < 100 THEN
   	   	   W_Diff = 100-W_Total
      		   W_TableauCumul<W_Ligne ,3> =  W_TableauCumul<W_Ligne ,3> + W_Diff
   	   	END ELSE
      		   W_Diff = W_Total-100
      		   W_TableauCumul<W_Ligne ,3> =  W_TableauCumul<W_Ligne ,3> - W_Diff
   	    	END 
   	   END
      END	

*il faut mettre les pourcentages dans le tableau
      IF W_TypeResultat = "P" THEN
         W_Total = 0
         W_Diff = 0
         j=0
      	FOR j= 1 TO DCOUNT(ENR_TABLES<2>,CHAR(253))
            W_TableauCond<W_NbLigne+j,3> = W_TableauCond<W_NbLigne+j,3>/W_NbAide*100
      	   W_TableauCond<W_NbLigne+j,3> = (INT(W_TableauCond<W_NbLigne+j,3>*100+1/2))/100
      	   W_Total = W_Total + W_TableauCond<W_NbLigne+j,3> 
      	NEXT

* ajustemement pour que les pourcentages soient justes
      	IF W_Total # 100 THEN	   
      	   W_Max = 0
	   	   
      	   FOR j= 1 TO DCOUNT(ENR_TABLES<2>,CHAR(253))
         		IF W_TableauCond<W_NbLigne+j,3> > W_Max THEN
         		   W_Max = W_TableauCond<W_NbLigne+j,3>
         		   W_Ligne = W_NbLigne+j
         		END 
      	   NEXT
      	   IF W_Total < 100 THEN
      	   	W_Diff = 100-W_Total
         		W_TableauCond<W_Ligne ,3> =  W_TableauCond<W_Ligne ,3> + W_Diff
      	   END ELSE
         		W_Diff = W_Total-100
         		W_TableauCond<W_Ligne ,3> =  W_TableauCond<W_Ligne ,3> - W_Diff
      	   END 
      	END
      END
   END 

   IF W_Edit = "S" THEN
      IF W_ChoixTri # "T" AND W_CodeTri = "" THEN
      	W_TableauCond= W_TableauCond:CHAR(254):W_TableauCumul
*	W_TableauCond= W_TableauCond:"":W_TableauCumul
      END

      CONVERT ";" TO CHAR(253) IN W_TableauCond	
      CONVERT "." TO "," IN W_TableauCond
   END
   
   W_Tableau = W_TableauCond

********************************
*  dition d'un fichier csv    * 
********************************
   W_Ordre = 0
   IF W_Edit = "F" THEN

      CONVERT CHAR(253) TO ";" IN W_Tableau
      CONVERT "." TO "," IN W_Tableau   

      W_Date = OCONV(DATE(),"D4/")
      W_Date = ICONV(W_Date,"MCN")
      W_Date=W_Date[5,4]:W_Date[3,2]:W_Date[1,2]

      W_ClefFichier = "SsiadStatCondCohab":"-":W_Asso:"-":W_Date:"-"

      W_Ordre = 0
      LOOP
         W_Ordre = W_Ordre + 1
         READ ENR_STATAIDE FROM F.STATAIDE,W_ClefFichier:W_Ordre:".csv" ELSE ENR_STATAIDE = ""
      UNTIL ENR_STATAIDE = ""
      REPEAT

      WRITE W_Tableau TO F.STATAIDE,W_ClefFichier:W_Ordre:".csv"
   END

*fin de la statistique condition de cohabitation
END

SORTIE=W_Tableau
W_Ordre= W_Ordre "R%3"
RETURNVAL=3:W_Ordre
RETURN

