Dominique.freyd 16 years ago
parent
commit
1722c5b302

+ 1 - 1
CG67.FicheCollege.root/CG67.FicheCollege/Core/CG67.FicheCollege.Domaine/Etablissement.cs

@@ -5,7 +5,7 @@ using System.Xml.Serialization;
 
 namespace CG67.FicheCollege.Domaine
 {
-    // pointeurs de fonction, easy-loading.
+    // pointeurs de fonction, lasy-loading.
 
     public delegate IList<ActionEducative> dlgLoadActionEducative(string codeRNE, int annee);
     public delegate IList<ATC> dlgLoadATC(string codeRNE);

+ 24 - 0
CG67.FicheCollege.root/CG67.FicheCollege/Core/CG67.FicheCollege.Entrepot/EntrepotEtablissement.cs

@@ -177,6 +177,30 @@ namespace CG67.FicheCollege.Entrepot
 
             resultat.Surface = 0;
 
+            using (SqlConnection connexion = new SqlConnection(this.ChaineDeConnexion))
+            {
+                try
+                {
+                    connexion.Open();
+                    using (SqlCommand command = connexion.CreateCommand())
+                    {
+                        command.CommandText= "select SUM(superficie) from dbo.salle where codeRNE =@RNE  and typeValeur= 'm2'";
+                        command.Parameters.AddWithValue("@rne", codeRNE);
+                        string sum = command.ExecuteScalar().ToString();
+                        resultat.Surface = string.IsNullOrEmpty(sum) ? 0 : Convert.ToDouble(sum);
+                    }
+                }
+                catch (Exception e)
+                {
+                    throw new Exception(e.ToString());
+                }
+                finally
+                {
+                    if (connexion.State == ConnectionState.Open)
+                        connexion.Close();
+                }
+            }
+
             //using (OracleConnection connexion = new OracleConnection(this.ChaineDeConnexion))
             //{
             //    try

+ 46 - 43
CG67.FicheCollege.root/CG67.FicheCollege/Core/CG67.FicheCollege.Service/ServiceFiche.cs

@@ -221,55 +221,58 @@ namespace CG67.FicheCollege.Service
             }
             return resultat;
         }
+        static XmlNode Serializer(Object objet, XmlDocument doc)
+        {
+            XmlNode resultat = doc.CreateElement(objet.GetType().Name);
+            foreach (PropertyInfo pi in objet.GetType().GetProperties())
+            {
+                // Si la propriété comporte une méthode "count" je considère c'est une Liste
+                if (pi.GetValue(objet, null) != null)
+                {
+                    MethodInfo mi = pi.GetValue(objet, null).GetType().GetMethod("get_Count");
+                    if (mi != null)
+                    {
+                        object objListe = pi.GetValue(objet, null);
+                        int nb = (int)(mi.Invoke(objListe, null));
+                        XmlNode item = resultat.AppendChild(doc.CreateElement(pi.Name));
+                        for (int i = 0; i < nb; i++)
+                        { // on sérialise tous les items de la liste
+                            object obj = objListe.GetType().GetMethod("get_Item").Invoke(objListe, new Object[] { i });
+                            item.AppendChild(Serializer(obj, doc));
+                        }
+                    }
+                    else // c'est pas une Liste
+                    {
+                        switch (pi.GetValue(objet, null).GetType().Name)
+                        { // si c'est une type de "base" on l'affiche
+                            case "String":
+                            case "Int16":
+                            case "Int32":
+                            case "Double":
+                            case "Single":
+                                resultat.AppendChild(doc.CreateElement(pi.Name)).InnerXml = pi.GetValue(objet, null).ToString();
+                                break;
+                            default: // sinon on le décompose recursivement
+                                resultat.AppendChild(Serializer(pi.GetValue(objet, null), doc));
+                                break;
+                        }
+                    }
+                }
+            }
+            return resultat;
+        }
+    
 
         public static XmlNode GetFicheCollege(string codeRNE, int annee)
         {
             XmlDocument resultat = new XmlDocument();
-            Etablissement etablissement = GetEtablissementByCodeRNEAndAnnee(codeRNE, annee);
-           
             XmlNode xmlCollege = resultat.AppendChild(resultat.CreateElement("college"));
-            XmlNode xmlEtablissement = GetXml(etablissement, resultat);
-            xmlCollege.AppendChild(xmlEtablissement);
-            XmlNode xmlActionsEducatives = xmlEtablissement.AppendChild(resultat.CreateElement("LstActionsEducatives"));
-            foreach (ActionEducative ae in etablissement.LstActionEducatives)
-                xmlActionsEducatives = GetXml(ae, resultat);
-
-            XmlNode xmlATC = xmlEtablissement.AppendChild(resultat.CreateElement("LstATC"));
-            foreach (ATC  atc in etablissement.LstATC)
-                xmlATC = GetXml(atc, resultat);
-
-            XmlNode xmlEffectifPrev = xmlEtablissement.AppendChild(resultat.CreateElement("LstEffectifPrevisionnel"));
-            foreach (int effectifPrev in etablissement.LstEffectifPrevisionnel)
-                xmlEffectifPrev= GetXml(effectifPrev , resultat);
-
-            XmlNode xmlEffectifReel = xmlEtablissement.AppendChild(resultat.CreateElement("LstEffectifReel"));
-            foreach (int effectifReel in etablissement.LstEffectifReel)
-                xmlEffectifReel = GetXml(effectifReel, resultat);
-
-            XmlNode xmlEquipement = xmlEtablissement.AppendChild(resultat.CreateElement("LstEquipement"));
-            foreach (Equipement  equipement in etablissement.LstEquipements)
-                xmlEquipement = GetXml(equipement  , resultat);
-
-            XmlNode xmlInvestissement = xmlEtablissement.AppendChild(resultat.CreateElement("LstInvestissement"));
-            foreach (Investissement investissement in etablissement.LstInvestissement)
-                xmlInvestissement = GetXml(investissement , resultat);
-
-            XmlNode xmlProjet = xmlEtablissement.AppendChild(resultat.CreateElement("LstProjetPilote"));
-            foreach (ProjetPilote  projet in etablissement.LstProjetPilote)
-                xmlProjet = GetXml(projet , resultat);
-
-            XmlNode xmlRestructuration = xmlEtablissement.AppendChild(resultat.CreateElement("LstRestructuration"));
-            foreach (int  restructuration in etablissement.LstRestructuration )
-                xmlRestructuration = GetXml(restructuration , resultat);
-
-            XmlNode xmlSecteur = xmlEtablissement.AppendChild(resultat.CreateElement("LstSecteurRecrutement"));
-            foreach (string secteur in etablissement.LstSecteurRecrutement)
-                xmlSecteur= GetXml(secteur , resultat);
-
-            XmlNode xmlTravaux = xmlEtablissement.AppendChild(resultat.CreateElement("LstTravaux"));
-            foreach (ProgTravaux  travaux in etablissement.LstTravaux)
-                xmlTravaux = GetXml(travaux , resultat);
+            Etablissement etablissement = GetEtablissementByCodeRNEAndAnnee(codeRNE, annee);
+            xmlCollege.AppendChild(Serializer(etablissement,resultat));
+            ChiffresSignificatifs chiffres = GetChiffresSignificatifsByAnnee(annee);
+            xmlCollege.AppendChild(Serializer(chiffres,resultat));     
             return resultat;
+        
         }
 
    

+ 6 - 1
CG67.FicheCollege.root/CG67.FicheCollege/Core/CG67.FicheCollege.Testeur/Program.cs

@@ -1,6 +1,7 @@
 using System;
 using System.Collections.Generic;
 using System.Text;
+using System.Xml;
 using CG67.FicheCollege.Domaine;
 using CG67.FicheCollege.Service;
 
@@ -17,7 +18,11 @@ namespace CG67.FicheCollege.Testeur
 
           //  ChiffresSignificatifs a = ServiceFiche.GetChiffresSignificatifsByAnnee(2009);
            // Console.WriteLine("{0}", a.MontantTotalFinancements);
-            Console.WriteLine(ServiceFiche.GetFicheCollege("0670107C", 2009).OuterXml) ;
+            XmlDocument d = new XmlDocument();
+            d.LoadXml(ServiceFiche.GetFicheCollege("0670107C", 2009).OuterXml);
+              
+            d.Save("test.xml");
+            //Console.WriteLine(ServiceFiche.GetFicheCollege("0670107C", 2009).OuterXml) ;
 
             Console.ReadKey();
         }

+ 3 - 1
CG67.FicheCollege.root/CG67.FicheCollege/Web/CG67.FicheCollege.Web/CG67.FicheCollege.Web.csproj

@@ -45,6 +45,7 @@
     <Reference Include="System.Web.Mobile" />
   </ItemGroup>
   <ItemGroup>
+    <Content Include="css\fichecollege.css" />
     <Content Include="Default.aspx" />
     <Content Include="FicheCollege.aspx" />
     <Content Include="GenerationFiche.aspx" />
@@ -73,6 +74,7 @@
     <Compile Include="GenerationFiche.aspx.designer.cs">
       <DependentUpon>GenerationFiche.aspx</DependentUpon>
     </Compile>
+    <Compile Include="HttpHandlerHistogramme.cs" />
     <Compile Include="Properties\AssemblyInfo.cs" />
   </ItemGroup>
   <ItemGroup>
@@ -86,7 +88,7 @@
     </ProjectReference>
   </ItemGroup>
   <ItemGroup>
-    <Folder Include="css\" />
+    <None Include="vide.histo" />
   </ItemGroup>
   <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
   <Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v8.0\WebApplications\Microsoft.WebApplication.targets" />

+ 2 - 2
CG67.FicheCollege.root/CG67.FicheCollege/Web/CG67.FicheCollege.Web/Default.aspx.cs

@@ -31,8 +31,8 @@ namespace CG67.FicheCollege
             HttpContext.Current.Session["Annee"] = annee;
             HttpContext.Current.Session["AnneeMoins1"] = annee - 1;
             HttpContext.Current.Session["RNE"] = ddlChoixCollege.SelectedValue;
-           Server.Transfer("GenerationFiche.aspx");
-         //   Server.Transfer("FicheCollege.aspx");
+         //   Server.Transfer("GenerationFiche.aspx");
+            Server.Transfer("FicheCollege.aspx");
         }
     }
 }

+ 2 - 1
CG67.FicheCollege.root/CG67.FicheCollege/Web/CG67.FicheCollege.Web/FicheCollege.aspx

@@ -4,7 +4,8 @@
 
 <html xmlns="http://www.w3.org/1999/xhtml" >
 <head runat="server">
-    <title>Page sans titre</title>
+    <title>Fiche collège</title>
+    <link href="css/fichecollege.css" rel="stylesheet" type="text/css" />
 </head>
 <body>
     <form id="form1" runat="server">

+ 1 - 0
CG67.FicheCollege.root/CG67.FicheCollege/Web/CG67.FicheCollege.Web/FicheCollege.aspx.cs

@@ -17,6 +17,7 @@ namespace CG67.FicheCollege
         {
             if (!this.IsPostBack)
             {
+               
                 this.Xml1.DocumentContent = ServiceFiche.GetFicheCollege(Session["RNE"].ToString(), int.Parse(Session["annee"].ToString())).OuterXml ;
                 this.DataBind();
             }

+ 87 - 0
CG67.FicheCollege.root/CG67.FicheCollege/Web/CG67.FicheCollege.Web/HttpHandlerHistogramme.cs

@@ -0,0 +1,87 @@
+using System;
+using System.Data;
+using System.Configuration;
+using System.Web;
+using System.Web.Security;
+using System.Web.UI;
+using System.Web.UI.WebControls;
+using System.Web.UI.WebControls.WebParts;
+using System.Web.UI.HtmlControls;
+using System.Drawing;
+using System.Drawing.Imaging; 
+namespace CG67.FicheCollege
+{
+    public class HttpHandlerHistogramme : IHttpHandler
+    {
+
+        public bool IsReusable
+        {
+            get { return true; }
+        }
+
+        public void ProcessRequest(HttpContext context)
+        {
+            const int ecartEntreBarre = 10;
+            const int largeurBarre = 30;
+
+            // recupération des parametres
+            int largeur = Convert.ToInt32(context.Request["l"]);
+            int hauteur = Convert.ToInt32(context.Request["h"]);
+            Color fond = Color.FromArgb(Convert.ToInt32(context.Request["f"]));
+            int nbBarre = Convert.ToInt32(context.Request["nb"]);
+
+            decimal[] valeurs = new decimal[nbBarre];
+            Color[] couleurs = new Color[nbBarre];
+            decimal valeurMaxi = decimal.MinValue;
+            decimal valeurMini = decimal.MaxValue;
+
+            //  chargement des valeurs et détermination de la valeur maxi et mini (bien que cette dernière ne serve pas pour le moment)
+            for (int i = 1; i < nbBarre + 1; i++)
+            {
+                valeurs[i - 1] = Convert.ToInt32(context.Request[string.Format("v{0}", i)]);
+                couleurs[i - 1] = Color.FromArgb(Convert.ToInt32(context.Request[string.Format("c{0}", i)]));
+                if (i == 1)
+                {
+                    valeurMaxi = valeurs[i - 1];
+                    valeurMini = valeurs[i - 1];
+                }
+                else
+                {
+                    if (valeurs[i - 1] > valeurMaxi)
+                        valeurMaxi = valeurs[i - 1];
+                    if (valeurs[i - 1] < valeurMini)
+                        valeurMini = valeurs[i - 1];
+                }
+            }
+            // calcul de l'échelle
+            decimal echelle = (hauteur - 40) / valeurMaxi;
+            Bitmap graphique = new Bitmap(largeur, hauteur);
+            Graphics g = Graphics.FromImage(graphique);
+
+            // affichage du fond d'écran
+
+            SolidBrush pinceau = new SolidBrush(fond);
+            g.FillRectangle(pinceau, 0, 0, largeur, hauteur);
+            pinceau.Dispose();
+            SolidBrush stylo = new SolidBrush(Color.Black);
+            Font police = new Font("Arial", 10, FontStyle.Bold);
+            // affichage des barres
+            for (int i = 0; i < nbBarre; i++)
+            {
+                pinceau = new SolidBrush(couleurs[i]);
+                g.FillRectangle(pinceau, ecartEntreBarre + ((largeurBarre + ecartEntreBarre) * i), (float)(hauteur - 20 - valeurs[i] * echelle), largeurBarre, (float)(valeurs[i] * echelle));
+                g.DrawString(valeurs[i].ToString(), police, stylo, ecartEntreBarre + ((largeurBarre + ecartEntreBarre) * i), (float)(hauteur - 35 - valeurs[i] * echelle));
+                pinceau.Dispose();
+            }
+
+            // Envoi de l'image dans le flux http de sortie
+            context.Response.ContentType = "image/bitmap";
+            graphique.Save(context.Response.OutputStream, ImageFormat.Gif);
+
+            // libération des ressources
+            graphique.Dispose();
+            g.Dispose();
+        }
+
+    }
+}

+ 5 - 0
CG67.FicheCollege.root/CG67.FicheCollege/Web/CG67.FicheCollege.Web/Web.config

@@ -35,5 +35,10 @@
             <error statusCode="404" redirect="FileNotFound.htm" />
         </customErrors>
         -->
+
+      <httpHandlers>
+        <add verb="*" path="*.histo" type="CG67.FicheCollege.HttpHandlerHistogramme, CG67.FicheCollege"/>
+      </httpHandlers>
+
     </system.web>
 </configuration>

+ 11 - 0
CG67.FicheCollege.root/CG67.FicheCollege/Web/CG67.FicheCollege.Web/css/fichecollege.css

@@ -0,0 +1,11 @@
+body
+{
+}
+.libelle
+{
+	width:300px;	
+}
+#graphique
+{
+	text-align: center;
+}

+ 0 - 0
CG67.FicheCollege.root/CG67.FicheCollege/Web/CG67.FicheCollege.Web/vide.histo


+ 298 - 9
CG67.FicheCollege.root/CG67.FicheCollege/Web/CG67.FicheCollege.Web/xslt/FicheCollege.xslt

@@ -2,11 +2,15 @@
 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
   <xsl:template match="college">
     <h1>
-      <xsl:text>Collège </xsl:text><xsl:value-of select="Etablissement/Nom"/>
+      <xsl:text>Collège </xsl:text><xsl:value-of select="Etablissement/NomCollegePourPresentation"/>
       
     </h1>
     <h2>1. Fiche d'identité du collège</h2>
     <table>
+      <colgroup>
+        <col class="libelle"></col>
+        <col class="information"></col>
+      </colgroup>
       <tr>
         <td>Code RNE du collège</td>
         <td><xsl:value-of select="Etablissement/CodeRNE"/></td>
@@ -16,15 +20,16 @@
         <td>
           <xsl:value-of select="Etablissement/Adresse"/>
           <xsl:text> </xsl:text>
-          <xsl:value-of select="Etablissement/ComplementAdresse"/>
+          <xsl:value-of select="Etablissement/ComplementAdresse"/>          
           <xsl:text> </xsl:text>
           <xsl:value-of select="Etablissement/CodePostal"/>
           <xsl:text> </xsl:text>          
           <xsl:value-of select="Etablissement/Ville"/>
-          <br/>
-          <xsl:value-of select="Etablissement/Telephone"/>
-          <xsl:text> </xsl:text>
+          <br/><xsl:text>Tel </xsl:text><xsl:value-of select="Etablissement/Telephone"/>
+          <xsl:text> Fax </xsl:text>
           <xsl:value-of select="Etablissement/Fax"/>
+          <br/>
+          <xsl:text>Email </xsl:text><xsl:value-of select="Etablissement/Email"/>
         </td>
       </tr>
       <tr>
@@ -49,24 +54,308 @@
         <td>MCG de rattachement et<BR/>directeur de la MCG
       </td>
         <td>
-       
+          <xsl:value-of select="Etablissement/McgRattachgement/Ville"/>
         </td>
       </tr>
       <tr>
         <td>Effectifs</td>
         <td>
-        
+          <xsl:value-of select ="Etablissement/Effectif"/>
         </td>
       </tr>
       <tr>
         <td>Demi pension
         </td>
         <td>
-
+          <xsl:value-of select ="Etablissement/Restaurer"/>
         </td>
       </tr>
     </table>
-    <h2>Structure Immobilière</h2>
+    <h2>2. Structure Immobilière</h2>
+    <table>
+      <colgroup>
+        <col class="libelle"></col>
+        <col class="information"></col>
+      </colgroup>
+      <tr>
+        <td>Propriétaire</td>
+        <td>
+          <xsl:value-of select="Etablissement/NomProprietaire"/>
+        </td>
+      </tr>
+      <tr>
+        <td>Année de construction</td>
+        <td>
+          <xsl:value-of select="Etablissement/AnneeConstruction"/>
+        </td>
+      </tr>
+      <tr>
+        <td>Année de restructuration lourde</td>
+        <td>
+          <xsl:value-of select="Etablissement/PhraseRestructuration"/>
+        </td>
+      </tr>
+      <tr>
+        <td>Superficie d'emprise</td>
+        <td>
+          <xsl:value-of select="Etablissement/Surface"/> m2
+        </td>
+      </tr>
+      <tr>
+        <td>Aménagements particuliers</td>
+        <td>
+          <xsl:value-of select="Etablissement/CommentaireAmenagementParticulier"/> m2
+        </td>
+      </tr>
+      <tr>
+        <td>Logement de fonction</td>
+        <td>
+          
+          <NbrAgentsLoges>0</NbrAgentsLoges>
+          <xsl:value-of select="Etablissement/LogementDeFonction/NbrLogements"/><xsl:text> logement(s) de fonction, dont </xsl:text>
+          <xsl:value-of select="Etablissement/LogementDeFonction/NbrAgentsLoges"/><xsl:text> agent(s) du CG67 logé(s)</xsl:text>
+          
+        </td>
+      </tr>
+      <tr>
+        <td>Programmation des travaux Maintenance de 2ième niveau (année n-1, n, n+1)</td>
+        <td>
+          <xsl:value-of select="Etablissement/PhraseProgTravaux"/>
+        </td>
+      </tr>
+      <tr>
+        <td></td>
+        <td>
+          <xsl:value-of select="Etablissement/CommentaireProgTravaux"/>
+        </td>
+      </tr>
+    </table>
+    <h2>3. Sectorisation des collèges - évolution des effectifs</h2>
+    <table>
+      <colgroup>
+        <col class="libelle"></col>
+        <col class="information"></col>
+      </colgroup>
+      <tr>
+        <td>Secteur de recrutement</td>
+        <td>
+          <xsl:value-of select="Etablissement/PhraseSecteurRecrutement"/> </td>
+      </tr>
+      <tr>
+        <td>Observation sur le secteur de recrutement</td>
+        <td>
+          <xsl:value-of select="Etablissement/CommentaireSecteurRecrutement"/>
+        </td>
+      </tr>
+      <tr>
+        <td>Prévisions sur les 5 prochaines années</td>
+        <td>
+          <xsl:value-of select="Etablissement/PhrasePrevision5Ans"></xsl:value-of>
+        </td>        
+      </tr>
+      <tr>
+        <td colspan="2" id="graphique">          
+          <img alt="graphique de test" src="vide.histo?l=400&amp;h=400&amp;f=-64&amp;nb=7&amp;v1=500&amp;c1=-65536&amp;v2=56&amp;c2=-65536&amp;v3=25&amp;c3=-65536&amp;v4=154&amp;c4=-65536&amp;v5=50&amp;c5=-16776961&amp;v6=254&amp;c6=-16776961&amp;v7=25&amp;c7=-16776961"></img>
+        </td>
+      </tr>
+      <tr>
+        <td colspan="2">
+          <xsl:value-of select="Etablissement/CommentaireGraphique"/>
+        </td>
+      </tr>
+    </table>
+    <h2>4. Intervention du Département</h2>    
+    <table>
+      <colgroup>
+        <col class="libelle"></col>
+        <col class="information"></col>
+      </colgroup>
+      <tr>
+        <td>Equipement en mobilier et matériel</td>
+        <td>
+          <ul>
+          <xsl:for-each select ="Etablissement/lstEquipements/Equipement">
+            <li>
+              <xsl:value-of select="Phrase" />
+            </li>         
+          </xsl:for-each>
+          </ul>
+        </td>
+      </tr>
+      <tr>
+        <td>Dotation de fonctionnement année N-1 et annee N</td>
+        <td>
+          <table>
+            <tr>
+              <td>Viabilisation</td>
+              <td>
+                <xsl:value-of select="Etablissement/Dotation[1]/Viabilisation" />
+              </td>
+              <td>
+                <xsl:value-of select="Etablissement/Dotation[2]/Viabilisation" />
+              </td>
+            </tr>
+            <tr>
+              <td>Entretien</td>
+              <td>
+                <xsl:value-of select="Etablissement/Dotation[1]/Entretien" />
+              </td>
+              <td>
+                <xsl:value-of select="Etablissement/Dotation[2]/Entretien" />
+              </td>
+            </tr>
+            <tr>
+              <td>Autres Depenses</td>
+              <td>
+                <xsl:value-of select="Etablissement/Dotation[1]/AutresDepenses" />
+              </td>
+              <td>
+                <xsl:value-of select="Etablissement/Dotation[2]/AutresDepenses" />
+              </td>
+            </tr>
+            
+          </table>
+        </td>
+      </tr>     
+      <tr>
+        <td>Investissement</td>
+        <td>
+          <table>
+            <xsl:for-each select="Etablissement/LstInvestissement/Investissement">
+              <tr>
+                <td><xsl:value-of select="Type"/></td>
+                <td><xsl:value-of select="Montant"/></td>
+                <td><xsl:value-of select="Commentaire"/></td>
+              </tr>
+            </xsl:for-each>
+          </table>
+        </td>
+      </tr>
+      <tr>
+        <td>Etat des réserves du collège</td>
+        <td>
+          <xsl:value-of select="Etablissement/Reserve"/>
+        </td>        
+      </tr>
+      <tr>
+        <td>Intervention remaquable du département sur les 5 dernières années</td>
+        <td></td>
+      </tr>
+    </table>
+    <h2>5. Gestion des adjoints techniques des collèges (ATC)</h2>
+    <table>
+      <colgroup>
+        <col class="libelle"></col>
+        <col class="information"></col>
+      </colgroup>
+      <tr>
+        <td>Nombre total d'ATC</td>
+        <td><xsl:value-of select="Etablissement/PhraseTotalATC"/> </td>
+      </tr>
+      <tr>
+        <td>Nombre d'ATC en valeur ETP</td>
+        <td>
+          <xsl:value-of select="Etablissement/PhraseValeurETP"/>
+        </td>
+      </tr>
+      <tr>
+        <td>Liste nominative des agents</td>
+        <td>
+          <table>
+            <xsl:for-each select="Etablissement/LstATC/ATC">
+              <tr>
+                <td><xsl:value-of select="Nom"/></td>
+                <td><xsl:value-of select="Prenom"/></td>
+                <td><xsl:value-of select="ValeurETP"/></td>                
+                <td><xsl:value-of select="Categorie"/></td>
+                <td><xsl:value-of select="TypeContact"/></td>
+                <td><xsl:value-of select="Fonction"/></td>
+              </tr>
+            </xsl:for-each>
+          </table>
+        </td>
+        <tr>
+          <td>Prévision d'effectif</td>
+          <td>
+            <xsl:value-of select="Etablissement/CommentairePrevisionEffectifATC"/>
+          </td>
+        </tr>
+        <tr>
+          <td>Nombre de jours de formation suivis par les ATC</td>
+          <td>
+            <xsl:value-of select="Etablissement/PhraseNombreJoursFormation"/>
+          </td>
+        </tr>
+      </tr>
+    </table>    
+    <h2>6. Actions édicatives territoriales</h2>
+    <table>
+      <colgroup>
+        <col class="libelle"></col>
+        <col class="information"></col>
+      </colgroup>
+      <xsl:for-each select="Etablissement/LstActionEducatives/ActionEducative">
+        <tr>
+          <td>
+            <xsl:value-of select="Libelle"/>
+          </td>
+          <td>Le nombre d'élèves concernés s'élève à <xsl:value-of select="NbrEleves"/><br/>
+          Le financement se monte à valeur de <xsl:value-of select ="MontantSubvention"/>  
+          </td>
+        </tr>
+      </xsl:for-each>
+    </table>
+    <h2>7. Participation à des projets pilotes du CG 67</h2>
+    <table>
+      <colgroup>
+        <col class="libelle"></col>
+        <col class="information"></col>
+      </colgroup>
+    <xsl:for-each select="Etablissement/LstProjetPilote/ProjetPilote">
+      <tr>
+        <td></td>  
+        <td>
+          <xsl:value-of select="Libelle"/>
+        </td>
+        <td>
+          
+        </td>
+      </tr>
+    </xsl:for-each>
+    </table>
+    <h2>8. Quelques chiffres significatifs sur l'ensemble des collèges (à définir)</h2>
+    <table>
+      <colgroup>
+        <col class="libelle"></col>
+        <col class="information"></col>
+      </colgroup>
+      <tr>
+        <td>Montant total des financements du département aux collèges</td>
+        <td>
+          <xsl:value-of select="ChiffresSignificatifs/MontantTotalFinancements"/>
+        </td>
+      </tr>
+      <tr>
+      <td>Nombre total d'élèves</td>
+      <td>
+        <xsl:value-of select="ChiffresSignificatifs/NbTotalEleves"/>
+      </td>
+      </tr>
+      <tr>
+        <td>Montant total des investissements</td>
+        <td>
+          <xsl:value-of select="ChiffresSignificatifs/MontantTotalInvestissement"/>
+        </td>
+      </tr>
+      <tr>
+        <td>Montant total des transports scolaires</td>
+        <td>
+          <xsl:value-of select="ChiffresSignificatifs/MontantTotalTransportScolaire"/>
+        </td>
+      </tr>
+
+    </table>
+    
   </xsl:template>
 
 </xsl:stylesheet>