Fiche RDR

De Wiki ODR
Aller à : navigation, rechercher

Introduction

La fiche RDR est le premier tableau de bord d'une série prévue pour l'évaluation finale du règlement de développment rural. L'objet de cet article est de présenter ses fonctionnalitées et sa programmation.


La fiche RDR est écrite en PHP4 et est composée de 9 fichiers. Pour accèder aux données nécessaires à la création des tableaux des requêtes SQL sont exécutées dans la base MySql lors de l'affichage de la fiche.


Contenu des différents fichiers

Le premier fichier ficherdr.php est composé du modèle du menu (en forme d'onglet sur la partie supérieure de la fiche) à chaque clique de souris sur la fiche cette page est rechargée et inclu par un "require" une des pages de traitement demandée. Ce menu est intégré dans un formulaire qui renvoit une série d'informations permettant au tableau de s'exécuter correctement à chaque chargement de la page :

  • nom du projet d'origine
  • nom de la base de temporaire pour les traitements
  • paramètres de la carte


Dans ce fichier est aussi inclu le script affichant le message d'attente lors des traitements des requêtes SQL. Il est définit à partir d'un conteneur de type
<DIV></DIV>
affiché par la commande PHP
Flush()
et centré sur la page. Cette fenêtre flottante disparaît à la fin de l'exécution des différents fichiers appelés via une requête en javascript.
  • Paramétrage de la fenêtre flottante et affichage
echo "
<div id='messageChargement' style='display: none;height: 20px;padding: 1em;
width: 200px;text-align: center;position: absolute;top: 45%;left: 45%;z-index:1;'>
<table width='100%' style='background-color: #cc4444;border: 1px solid #fff;color: #fff;'>
<tr>
<td>
<center> <br>Traitement en<br>
cours... patientez<br><br>
<imgsrc='**/progressAnimation.gif'><br> </center>
</td>
</tr>
</table>
</div>

<script type='text/javascript' src='XHRConnection.js'></script>
<script type='text/javascript'>
//le message dès la soumission de la requête	
document.getElementById('messageChargement').style.display = 'block';
</script>" ;

flush();
  • supression de la fenêtre flottante (devient invisible)
echo"
<script type='text/javascript' src='XHRConnection.js'></script>
<script type='text/javascript'>
document.getElementById('messageChargement').style.display = 'none';
</script>" ;


La fonction de création et du formatage des tableaux de données est aussi incluse dans ce fichier. Elle est standard pour tous les tableaux de la fiche. elle nécessite pour son exécution, l'accès à la table temporaire des données pour affichage et à une variable désignant l'année en cours qui sera affichée dans l'entête du tableau.

function tableau()
{
global - contenu non affiché dans cartowiki - ;

$nbligne = mysql_num_rows($resultat) ;

for ( $i = 0 ; $i<mysql_num_fields($resultat) ; $i++)
	{
	$meta = mysql_fetch_field($resultat, $i);
	$test[] = $meta->name ;
	}

$styleTableau = "border:1px solid black;background-color:#DDDDDD" ;

echo "<br><br><table border='0' CELLPADDING='5' style='border:1px solid black;Border-collapse: collapse;'><tr bgcolor=\"#D3DCE3\" align='center'>" ;

echo "<TD style='$styleTableau'><B>Année</B></TD>" ;

for ($i = 0 ; $i<count($test) ; $i++)
	{
	$nomchamp = str_replace('_',' ',$test[$i]) ;
	echo "<TD style='$styleTableau'><B>".$nomchamp."</B></TD>" ;
	}

echo "</tr>";

	$numero_ligne = 0 ;
	$styleligne1 = "border:1px solid black;background-color:#DDDDDD" ;
	$styleligne2 = "border:1px solid black;background-color:#CCCCCC";
	
	// boucle pour afficher les lignes du tableau à partir des valeurs de la requête sql

	$premiere_ligne = TRUE ;

	while( $data = mysql_fetch_assoc( $resultat ) ) 
		{
		// alterner les couleurs entre lignes paires et impaires
		$alter_coul = ($numero_ligne % 2) ? $styleligne1 : $styleligne2; 
		
		echo "<tr>" ;

		if ( $premiere_ligne == TRUE )
			{
			echo "<td rowspan='".$nbligne."' style='$alter_coul' align=\"center\">$annee</td>" ;
			
			$premiere_ligne = FALSE ;
			}

		for ($i = 0 ; $i<count($test) ; $i++)
			{
			echo "<td Align=" ;
			
			if(eregi("[A-Z]",$data[$test[$i]])) echo "'left'" ;
			ELSE echo "'right'";
			
			echo " style='$alter_coul'>" ;
			

			if( is_numeric( $data[$test[$i]] ) ) echo sprintf( "%.0f", $data[$test[$i]] ) ;
			ELSE echo $data[$test[$i]] ;

			echo "</td>" ;
			}
	
		echo "</tr>" ;

		$numero_ligne++ ;
		}

echo "</table>" ;

echo "</td></tr></table>" ;