Files
ms1inscription-v5/php/inc_fx_excell.php
2026-05-13 09:43:32 -04:00

417 lines
17 KiB
PHP

<?php
/**
* Program inc_fx_excell.php.
* Usager: stephan
* Date : 14-09-05
* Time : 09:02
*/
function fxrapportexcellold($men_id, $strLangue)
{
global $objDatabase;
$mem_int_ligne_entete=3;
$intMenudecode = base64_decode(urldecode($men_id));
$tabResults = fxGetListData($men_id, '', '', 1, $strLangue);
// lire les entetes
$sqlentetes = "SELECT * from adm_forms f,adm_labels l where f.men_id=". $intMenudecode ." and l.men_id=". $intMenudecode ." and l.lab_code=f.for_field and l.lab_langue='".$strLangue."' and f.for_actif=1 and f.for_tri<>0 order by for_tri";
$tabentetes = $objDatabase->fxGetResults($sqlentetes);
// lire les données
$memexcfichier=$tabResults['menu']['mem_exc_fichier'];
$memexctitre=$tabResults['menu']['mem_exc_titre'];
$memdata=$tabResults['data'];
$memfields=$tabResults['fields'];
/** Error reporting */
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
/** Include PHPExcel */
require_once dirname(__FILE__) . '/Classes/PHPExcel.php';
// Create new PHPExcel object
$objPHPExcel = new PHPExcel();
// Set document properties
// $objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
// ->setLastModifiedBy("Maarten Balliauw")
// ->setTitle("PHPExcel Test Document")
// ->setSubject("PHPExcel Test Document")
// ->setDescription("Test document for PHPExcel, generated using PHP classes.")
// ->setKeywords("office PHPExcel php")
// ->setCategory("Test result file");
if (1 ==1) {
$sharedStyle1 = new PHPExcel_Style();
$sharedStyle1->applyFromArray(
array('fill' => array(
'type' => PHPExcel_Style_Fill::FILL_SOLID,
'color' => array('argb' => 'FF969696')
) ));
$sharedStyle2 = new PHPExcel_Style();
$sharedStyle2->applyFromArray(
array('fill' => array(
'type' => PHPExcel_Style_Fill::FILL_SOLID,
'color' => array('argb' => 'FFC0C0C0')
) ));
$sharedStyle3 = new PHPExcel_Style();
$sharedStyle3->applyFromArray(
array('fill' => array(
'type' => PHPExcel_Style_Fill::FILL_SOLID,
'color' => array('argb' => 'FFFFFF00')
) ));
// Add header
$c='A';
for ($intCtr2 = 1; $intCtr2 <= $tabResults['nb_fields']; $intCtr2++) {
$memtitre= $tabResults['fields'][$intCtr2]['lab_texte_list'] ;
$memwidth=$tabResults['fields'][$intCtr2]['for_exc_width'] ;
$objPHPExcel->getActiveSheet()->getColumnDimension($c)->setWidth($memwidth);
$objPHPExcel->getActiveSheet()->setCellValue($c.$mem_int_ligne_entete, ($memtitre));
$objPHPExcel->getActiveSheet()->getStyle($c.$mem_int_ligne_entete)->getFont()->setBold(true);
$objPHPExcel->getActiveSheet()->setSharedStyle($sharedStyle2, $c.$mem_int_ligne_entete);
++$c;
}
if (1==1) {
// details
$mem_ligne = $mem_int_ligne_entete + 1;
$mem_debut_ligne = $mem_ligne;
// effacer les ligne endouble
$mem_avant = "";
$mem_skip = 0;
$mem_sup = 1;
for ($intCtr = 1; count($memdata) >= $intCtr; $intCtr++) {
// trouve le premier d'une série
if (trim($tabResults["menu"]["mem_ligne_double1"]) != '') {
if ($mem_avant != $tabResults['data'][$intCtr][$tabResults["menu"]["mem_ligne_double1"]]) {
$mem_avant = $tabResults['data'][$intCtr][$tabResults["menu"]["mem_ligne_double1"]];
$mem_skip = 0;
$mem_groupe1 = 1;
$mem_max_ligne = 1;
for ($intgroupe = 1; $intgroupe <= 5; $intgroupe++) {
$memgroupe = "groupe_" . $intgroupe;
$mem_count_groupe[$intgroupe] = 0;
if (isset($tabResults[$memgroupe]['data'][$mem_avant])) {
$mem_countmax_groupe[$intgroupe] = count($tabResults[$memgroupe]['data'][$mem_avant]);
$mem_count_groupe[$intgroupe] = 1;
} else
$mem_countmax_groupe[$intgroupe] = 0;
if ($mem_countmax_groupe[$intgroupe] > $mem_max_ligne)
$mem_max_ligne = $mem_countmax_groupe[$intgroupe];
}
} else {
$mem_skip = 1;
}
}
for ($mem_sup=1;$mem_sup<=$mem_max_ligne;$mem_sup++) {
echo($mem_sup);
$c = 'A';
for ($intCtr2 = 1; count($memfields) >= $intCtr2; $intCtr2++) {
$mem_result="";
$mem_champaffiche = 1;
// mettre la valeur dans une variable pour faire la gestion des groupe
$groupecourant = $tabResults['fields'][$intCtr2]['for_groupe'];
if ($groupecourant <> 0) {
// $mem_champaffiche=0;
$memgroupe = "groupe_" . $groupecourant;
if (isset($tabResults[$memgroupe]['data'][$mem_avant][$mem_sup][$tabResults['fields'][$intCtr2]['for_field']]))
$mem_result = $tabResults[$memgroupe]['data'][$mem_avant][$mem_sup][$tabResults['fields'][$intCtr2]['for_field']];
else{
$mem_champaffiche = 0;
$mem_result="";
}
} else {
if ($mem_sup > 1 && $tabResults['fields'][$intCtr2]['for_double'] <> 1)
{
$mem_champaffiche = 0;
$mem_result="";
}else
$mem_result = $tabResults['data'][$intCtr][$tabResults['fields'][$intCtr2]['for_field']];
}
// if ($mem_champaffiche == 1) {
$objPHPExcel->getActiveSheet()->setCellValue($c . $mem_ligne, ($mem_result));
$objPHPExcel->getActiveSheet()->getstyle($c . $mem_ligne)->getAlignment()->setHorizontal($tabResults['fields'][$intCtr2]['for_double']['for_align']);
// }
++$c;
}
$mem_ligne = $mem_ligne + 1;
}
}
$mem_fin_ligne = $mem_ligne - 1;
// total
$c = 'A';
for ($intCtr = 1; count($memfields) >= $intCtr; $intCtr++) {
if ($memfields[$intCtr]['for_somme'] == 1) {
$objPHPExcel->getActiveSheet()->setCellValue($c . $mem_ligne, ('tot'));
$objPHPExcel->getActiveSheet()->setCellValue($c . $mem_ligne, '=SUM(' . $c . $mem_debut_ligne . ':' . $c . $mem_fin_ligne . ')');
$objPHPExcel->getActiveSheet()->getstyle($c . $mem_ligne)->getAlignment()->setHorizontal($memfields[$intCtr]['for_align']);
$objPHPExcel->getActiveSheet()->setSharedStyle($sharedStyle2, $c . $mem_ligne);
}
++$c;
}
$mem_ligne = $mem_ligne + 1;
}
}
$objPHPExcel->getActiveSheet()->setCellValue('A'.($mem_ligne+2),('Vous avez la responsabilité de vérifier l\'exactitude des données et des résultats du rapports.'));
$objPHPExcel->getActiveSheet()->setCellValue('A'.($mem_ligne+3),('Veuillez nous avisez de toutes irrégularités n\'étant pas causées par une saisie de donnée erronnée ou manquante le plus rapidement possible.'));
// Rename worksheet
$objPHPExcel->getActiveSheet()->setTitle($memexctitre);
// Set active sheet index to the first sheet, so Excel opens this as the first sheet
$objPHPExcel->setActiveSheetIndex(0);
// Save Excel 2007 file
$mem_file_location= $_SERVER['DOCUMENT_ROOT'].'/data/'. $memexcfichier. '.xls';
$mem_file= $memexcfichier. '.xls';
$callStartTime = microtime(true);
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save( $mem_file_location);
$callEndTime = microtime(true);
$callTime = $callEndTime - $callStartTime;
$memurl="?fl=".$mem_file_location."&f=".$mem_file;
header('location: ../php/download.php'.$memurl );
}
function fxrapportexcell($men_id, $strLangue, $strorder = '', $strwhere = '', $mem_actif = 1)
{
global $objDatabase;
$mem_int_ligne_entete = 1;
error_reporting(E_ALL);
//ini_set('display_errors', TRUE);
// ini_set('display_startup_errors', TRUE);
ini_set("memory_limit", "500M");
$intMenudecode = base64_decode(urldecode($men_id));
$tabResults = fxGetListData($men_id, $strorder, $strwhere, '', 1, $strLangue, "", $mem_actif);
// lire les entetes
$sqlentetes = "SELECT * FROM adm_forms f, adm_labels l WHERE f.men_id = " . $intMenudecode . " AND l.men_id = " . $intMenudecode . " AND l.lab_code = f.for_field AND l.lab_langue = '" . $strLangue . "' AND f.for_actif = 1 AND f.for_tri <> 0 ORDER BY for_tri";
$tabentetes = $objDatabase->fxGetResults($sqlentetes);
// lire les donnés
$memexcfichier = $tabResults['menu']['mem_exc_fichier'];
$memexctitre = $tabResults['menu']['mem_exc_titre'];
$memdata = $tabResults['data'];
$memfields = $tabResults['fields'];
define('EOL', (PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
/** Include PHPExcel */
require_once dirname(__FILE__) . '/Classes/PHPExcel.php';
// Create new PHPExcel object
$objPHPExcel = new PHPExcel();
// Set document properties
// $objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
// ->setLastModifiedBy("Maarten Balliauw")
// ->setTitle("PHPExcel Test Document")
// ->setSubject("PHPExcel Test Document")
// ->setDescription("Test document for PHPExcel, generated using PHP classes.")
// ->setKeywords("office PHPExcel php")
// ->setCategory("Test result file");
if (1 == 1) {
$sharedStyle1 = new PHPExcel_Style();
$sharedStyle1->applyFromArray(
array('fill' => array(
'type' => PHPExcel_Style_Fill::FILL_SOLID,
'color' => array('argb' => 'FF969696')
)));
$sharedStyle2 = new PHPExcel_Style();
$sharedStyle2->applyFromArray(
array('fill' => array(
'type' => PHPExcel_Style_Fill::FILL_SOLID,
'color' => array('argb' => 'FFC0C0C0')
)));
$sharedStyle3 = new PHPExcel_Style();
$sharedStyle3->applyFromArray(
array('fill' => array(
'type' => PHPExcel_Style_Fill::FILL_SOLID,
'color' => array('argb' => 'FFFFFF00')
)));
// Add header
$c = 'A';
for ($intCtr2 = 1; $intCtr2 <= $tabResults['nb_fields']; $intCtr2++) {
$memtitre = $tabResults['fields'][$intCtr2]['lab_texte_list'];
$memwidth = $tabResults['fields'][$intCtr2]['for_exc_width'];
$objPHPExcel->getActiveSheet()->getColumnDimension($c)->setWidth($memwidth);
$objPHPExcel->getActiveSheet()->setCellValue($c . $mem_int_ligne_entete, ($memtitre));
$objPHPExcel->getActiveSheet()->getStyle($c . $mem_int_ligne_entete)->getFont()->setBold(true);
$objPHPExcel->getActiveSheet()->setSharedStyle($sharedStyle2, $c . $mem_int_ligne_entete);
++$c;
}
if (1 == 1) {
// details
$mem_ligne = $mem_int_ligne_entete + 1;
$mem_debut_ligne = $mem_ligne;
// effacer les ligne endouble
$mem_avant = "";
$mem_skip = 0;
$mem_sup = 1;
$mem_max_ligne = 1;
for ($intCtr = 1; count($memdata) >= $intCtr; $intCtr++) {
// trouve le premier d'une série
if (trim($tabResults["menu"]["mem_ligne_double1"]) != '') {
if ($mem_avant != $tabResults['data'][$intCtr][$tabResults["menu"]["mem_ligne_double1"]]) {
$mem_avant = $tabResults['data'][$intCtr][$tabResults["menu"]["mem_ligne_double1"]];
$mem_skip = 0;
$mem_groupe1 = 1;
$mem_max_ligne = 1;
for ($intgroupe = 1; $intgroupe <= 5; $intgroupe++) {
$memgroupe = "groupe_" . $intgroupe;
$mem_count_groupe[$intgroupe] = 0;
if (isset($tabResults[$memgroupe]['data'][$mem_avant])) {
$mem_countmax_groupe[$intgroupe] = count($tabResults[$memgroupe]['data'][$mem_avant]);
$mem_count_groupe[$intgroupe] = 1;
} else
$mem_countmax_groupe[$intgroupe] = 0;
if ($mem_countmax_groupe[$intgroupe] > $mem_max_ligne)
$mem_max_ligne = $mem_countmax_groupe[$intgroupe];
}
} else {
$mem_skip = 1;
}
}
for ($mem_sup = 1; $mem_sup <= $mem_max_ligne; $mem_sup++) {
$c = 'A';
for ($intCtr2 = 1; count($memfields) >= $intCtr2; $intCtr2++) {
$mem_result = "";
$mem_champaffiche = 1;
// mettre la valeur dans une variable pour faire la gestion des groupe
$groupecourant = $tabResults['fields'][$intCtr2]['for_groupe'];
if ($groupecourant <> 0) {
// $mem_champaffiche=0;
$memgroupe = "groupe_" . $groupecourant;
if (isset($tabResults[$memgroupe]['data'][$mem_avant][$mem_sup][$tabResults['fields'][$intCtr2]['for_field']]))
$mem_result = $tabResults[$memgroupe]['data'][$mem_avant][$mem_sup][$tabResults['fields'][$intCtr2]['for_field']];
else {
$mem_champaffiche = 0;
$mem_result = "";
}
} else {
if ($mem_sup > 1 && $tabResults['fields'][$intCtr2]['for_double'] <> 1) {
$mem_champaffiche = 0;
$mem_result = "";
} else
$mem_result = $tabResults['data'][$intCtr][$tabResults['fields'][$intCtr2]['for_field']];
}
// if ($mem_champaffiche == 1) {
$objPHPExcel->getActiveSheet()->setCellValue($c . $mem_ligne, ($mem_result));
//$objPHPExcel->getActiveSheet()->getstyle($c . $mem_ligne)->getAlignment()->setHorizontal($tabResults['fields'][$intCtr2]['for_double']['for_align']);
$objPHPExcel->getActiveSheet()->getstyle($c . $mem_ligne)->getAlignment()->setHorizontal($tabResults['fields'][$intCtr2]['for_align']);
// }
++$c;
}
$mem_ligne = $mem_ligne + 1;
}
}
$mem_fin_ligne = $mem_ligne - 1;
// total
$c = 'A';
for ($intCtr = 1; count($memfields) >= $intCtr; $intCtr++) {
if ($memfields[$intCtr]['for_somme'] == 1) {
$objPHPExcel->getActiveSheet()->setCellValue($c . $mem_ligne, ('tot'));
$objPHPExcel->getActiveSheet()->setCellValue($c . $mem_ligne, '=SUM(' . $c . $mem_debut_ligne . ':' . $c . $mem_fin_ligne . ')');
$objPHPExcel->getActiveSheet()->getstyle($c . $mem_ligne)->getAlignment()->setHorizontal($memfields[$intCtr]['for_align']);
$objPHPExcel->getActiveSheet()->setSharedStyle($sharedStyle2, $c . $mem_ligne);
}
++$c;
}
$mem_ligne = $mem_ligne + 1;
}
}
// $objPHPExcel->getActiveSheet()->setCellValue('A'.($mem_ligne+2),('Vous avez la responsabilité de vérifier l exactitude des données et des résultats du rapports.'));
// $objPHPExcel->getActiveSheet()->setCellValue('A'.($mem_ligne+3),('Veuillez nous avisez de toutes irrégularités n étant pas causées par une saisie de donnée erronnée ou manquante le plus rapidement possible.'));
// Rename worksheet
$objPHPExcel->getActiveSheet()->setTitle($memexctitre);
// Set active sheet index to the first sheet, so Excel opens this as the first sheet
$objPHPExcel->setActiveSheetIndex(0);
// Save Excel 2007 file
$mem_file_location = $_SERVER['DOCUMENT_ROOT'] . '/data/' . $memexcfichier . '.xls';
$mem_file = $memexcfichier . '.xls';
$callStartTime = microtime(true);
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save($mem_file_location);
$callEndTime = microtime(true);
$callTime = $callEndTime - $callStartTime;
$memurl = "?fl=" . $mem_file_location . "&f=" . $mem_file;
header('location: ../php/download.php' . $memurl);
}