";
// affichage du tableau des procédures
$requete = "SELECT idproc, name, requete, comment, autorisations, libproc_classement, num_classement FROM procs left join procs_classements on idproc_classement=num_classement ORDER BY libproc_classement,name ";
$res = mysql_query($requete, $dbh);
$nbr = mysql_num_rows($res);
$class_prec=$msg[proc_clas_aucun];
$buf_tit="";
$buf_class=0;
$parity=1;
for($i=0;$i<$nbr;$i++) {
$row=mysql_fetch_row($res);
$rqt_autorisation=explode(" ",$row[4]);
if (($PMBuserid==1 || array_search ($PMBuserid, $rqt_autorisation)!==FALSE) && pmb_strtolower(pmb_substr(trim($row[2]),0,6))=='select') {
$classement=$row[5];
if ($class_prec!=$classement) {
if (!$row[5]) $row[5]=$msg[proc_clas_aucun];
if ($buf_tit) {
$buf_contenu="".$buf_tit." |
".$buf_contenu."
";
print gen_plus("procclass".$buf_class,$buf_tit,$buf_contenu);
$buf_contenu="";
}
$buf_tit=$row[5];
$buf_class=$row[6];
$class_prec=$classement;
}
if ($parity % 2) {
$pair_impair = "even";
} else {
$pair_impair = "odd";
}
$parity++;
$tr_javascript=" onmouseover=\"this.className='surbrillance'\" onmouseout=\"this.className='$pair_impair'\" onmousedown=\"document.location='./edit.php?categ=procs&sub=&action=execute&id_proc=$row[0]';\" ";
$buf_contenu.="\n
$row[1]
$row[3] |
";
}
}
$buf_contenu="".$buf_tit." |
".$buf_contenu."
";
print gen_plus("procclass".$buf_class,$buf_tit,$buf_contenu);
}
switch($dest) {
case "TABLEAU":
$fichier_temp_nom=str_replace(" ","",microtime());
$fichier_temp_nom=str_replace("0.","",$fichier_temp_nom);
$fname = tempnam("./temp", $fichier_temp_nom.".xls");
$workbook = &new writeexcel_workbook($fname);
$worksheet = &$workbook->addworksheet();
break;
case "TABLEAUHTML":
echo "".$msg[1130]." : ".$msg[1131]."
";
break;
case "TABLEAUCSV":
break;
case "EXPORT_NOTI":
$fichier_temp_nom=str_replace(" ","",microtime());
$fichier_temp_nom=str_replace("0.","",$fichier_temp_nom);
$fname = tempnam("./temp", $fichier_temp_nom.".doc");
break;
default:
echo "".$msg[1130]." : ".$msg[1131]."
";
break;
}
if (!$id_proc) {
show_procs($dbh);
} else {
@set_time_limit ($pmb_set_time_limit);
//Récupération des variables postées, on en aura besoin pour les liens
$page=$_SERVER[SCRIPT_NAME];
$requete = "SELECT idproc, name, requete, comment, proc_notice_tpl, proc_notice_tpl_field FROM procs where idproc='".$id_proc."' ";
$res = mysql_query($requete, $dbh) or die ("
SQL error :
".mysql_error()."
SQL Query :
".$requete);
$row=mysql_fetch_row($res);
//Requete et calcul du nombre de pages à afficher selon la taille de la base 'pret'
//********************************************************************************/
// récupérer ici la procédure à lancer
$sql = $row[2];
//$proc_notice_tpl=$row[4];
$proc_notice_tpl_field=$row[5];
if (preg_match_all("|!!(.*)!!|U",$sql,$query_parameters) && $form_type=="") {
$hp=new parameters($id_proc,"procs");
$hp->gen_form("edit.php?categ=procs&sub=&action=execute&id_proc=$id_proc");
} else {
if (preg_match_all("|!!(.*)!!|U",$sql,$query_parameters)) {
$hp=new parameters($id_proc,"procs");
$hp->get_final_query();
$sql=$hp->final_query;
$isparameters=1;
}
// la procédure n'a pas de parm ou les paramètres ont été reçus
if (!explain_requete($sql)) die("
".$sql."
".$msg["proc_param_explain_failed"]."
".$erreur_explain_rqt);
$req_nombre_lignes = mysql_query($sql);
$nombre_lignes = mysql_numrows($req_nombre_lignes);
//Si aucune limite_page n'a été passée, valeur par défaut : 10
if (!$limite_page) $limite_page = 10;
$nbpages= $nombre_lignes / $limite_page;
// on arondi le nombre de page pour ne pas avoir de virgules, ici au chiffre supérieur
$nbpages_arrondi = ceil($nbpages);
// on enlève 1 au nombre de pages, car la 1ere page affichée ne fait pas partie des pages suivantes
$nbpages_arrondi = $nbpages_arrondi - 1;
if (!$numero_page) $numero_page=0;
$limite_mysql = $limite_page * $numero_page;
//REINITIALISATION DE LA REQUETE SQL
switch($dest) {
case "TABLEAU":
case "TABLEAUHTML":
case "TABLEAUCSV":
case "EXPORT_NOTI":
break;
default:
echo "$row[1]
$row[3]
";
$sql = $sql." LIMIT ".$limite_mysql.", ".$limite_page;
echo "";
break;
}
// on compte tout et on avise
if (!explain_requete($sql)) die("
".$sql."
".$msg["proc_param_explain_failed"]);
$res = @mysql_query($sql, $dbh) or die($sql."
".mysql_error());
$nbr_lignes = @mysql_num_rows($res);
$nbr_champs = @mysql_num_fields($res);
if ($nbr_lignes) {
switch($dest) {
case "TABLEAU":
$worksheet->write(0,0,$row[1]);
$worksheet->write(0,1,$row[3]);
for($i=0; $i < $nbr_champs; $i++) {
// entête de colonnes
$fieldname = mysql_field_name($res, $i);
$worksheet->write(1,$i,${fieldname});
}
for($i=0; $i < $nbr_lignes; $i++) {
$row = mysql_fetch_row($res);
$j=0;
foreach($row as $dummykey=>$col) {
if(trim($col)=='') $col=" ";
$worksheet->write(($i+2),$j,$col);
$j++;
}
}
$workbook->close();
header("Content-Type: application/x-msexcel; name=\""."Procedure_$id_proc".".xls"."\"");
header("Content-Disposition: inline; filename=\""."Procedure_$id_proc".".xls"."\"");
$fh=fopen($fname, "rb");
fpassthru($fh);
unlink($fname);
break;
case "TABLEAUHTML":
echo "
$row[1]
$row[3]
$sql
";
echo "";
for($i=0; $i < $nbr_champs; $i++) {
$fieldname = mysql_field_name($res, $i);
print("${fieldname} | ");
}
for($i=0; $i < $nbr_lignes; $i++) {
$row = mysql_fetch_row($res);
echo "";
foreach($row as $dummykey=>$col) {
if (is_numeric($col)){
$col = "'".$col ;
}
if(trim($col)=='') $col=" ";
print ''.$col.' | ';
}
echo "
";
}
echo "
";
break;
case "TABLEAUCSV":
for($i=0; $i < $nbr_champs; $i++) {
$fieldname = mysql_field_name($res, $i);
print("${fieldname}\t");
}
for($i=0; $i < $nbr_lignes; $i++) {
$row = mysql_fetch_row($res);
echo "\n";
foreach($row as $dummykey=>$col) {
/* if (is_numeric($col)) {
$col = "\"'".(string)$col."\"" ;
} */
print "$col\t";
}
}
break;
case "EXPORT_NOTI":
$noti_tpl=new notice_tpl_gen($form_notice_tpl);
for($i=0; $i < $nbr_lignes; $i++) {
$row = mysql_fetch_object($res);
$contents.=$noti_tpl->build_notice($row->$proc_notice_tpl_field)."
";
}
header("Content-Disposition: attachment; filename='bibliographie.doc';");
header('Content-type: application/msword');
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0,pre-check=0");
header("Pragma: public");
echo "".$contents."";
break;
default:
echo "";
for($i=0; $i < $nbr_champs; $i++) {
$fieldname = mysql_field_name($res, $i);
print("${fieldname} | ");
}
$odd_even=0;
for($i=0; $i < $nbr_lignes; $i++) {
$row = mysql_fetch_row($res);
if ($odd_even==0) {
echo " ";
$odd_even=1;
} elseif ($odd_even==1) {
echo "
";
$odd_even=0;
}
foreach($row as $dummykey=>$col) {
if(trim($col)=='') $col=" ";
print ''.$col.' | ';
}
echo "
";
}
echo "
";
echo "
";
break;
}
} else {
echo $msg["etatperso_aucuneligne"];
}
mysql_free_result ($res);
} // fin if else proc paramétrée
}