par
Luverger » 06 mars 2007, 14:44
Bon problème résolu ...
Par contre j'aimerais savoir comment je peux modifier ce code pour qu'il ajuste la taille des cellules de mon tableau aux nombres MAX de caractères étant présent dans ma BDD ???
Car là j'ai des cellules trop grandes pour ce qu'il y a dedans et d'autre beaucoup trop petites !!!
Comment modifier le code pour y arriver ???
Le revoilà:
<?php
require_once('../Connexions/ConnexionArchives.php');
mysql_select_db($database_ConnexionArchives, $ConnexionArchives);
$orderby = isset($_GET['orderby']) ? $_GET['orderby'] : 'numaff';
$export = isset($_GET['export']) ? $_GET['export'] : '';
$query_rsDossiers = "SELECT Archives.Numaff, Archives.Client, Archives.Nomaff, Archives.Resprojet, Archives.Annee, Archives.Numcd FROM Archives ORDER BY $orderby";
$rsDossiers = mysql_query($query_rsDossiers, $ConnexionArchives) or die(mysql_error());
$totalRows_rsDossiers = mysql_num_rows($rsDossiers);
if ($export === 'excel') {
header("Content-Type: text/x-csv");
header('Content-Disposition: attachement; filename="Exportexcel.csv"');
$list = "\"N° affaires\"; \"Clients\"; \"Noms d'affaires\"; \"Responsables projets\"; \"Années\"; \"N° CD/DVD\";\r\n";
while ($row_rsDossiers = mysql_fetch_assoc($rsDossiers)) {
$list .= $row_rsDossiers['Numaff'] .";". $row_rsDossiers['Client'] .";"
. $row_rsDossiers['Nomaff'] .";". $row_rsDossiers['Resprojet'] .";"
. $row_rsDossiers['Annee'] .";". $row_rsDossiers['Numcd'] ."\r\n";
}
echo $list;
} elseif ( $export === 'pdf' ) {
require('fpdf.php');
$x = '10';
$y = '10';
$pdf=new FPDF();
$pdf->AliasNbPages();
$pdf->AddPage('P','mm','A4');
$pdf->SetXY($x, $y);
$pdf->SetFont('Times','BIU',20);
$pdf->Cell(127,10,'Exportation de la liste des affaires en PDF',1);
// calcul de chaque colonne
$nb_col = 7;
$largeur_total_page = 210;
$largeure_colonne = ($largeur_total_page - 20) / $nb_col;
$pdf->SetXY($x, $y+10);
$pdf->SetFont('Times', '', 7);
while ($row_rsDossiers = mysql_fetch_assoc($rsDossiers)) {
$pdf->Cell($largeure_colonne, 5, $row_rsDossiers['Numaff'], 1, 0, 'C', 0);
$pdf->Cell($largeure_colonne, 5, $row_rsDossiers['Client'], 1, 0, 'C', 0);
$pdf->Cell($largeure_colonne, 5, $row_rsDossiers['Nomaff'], 1, 0, 'C', 0);
$pdf->Cell($largeure_colonne, 5, $row_rsDossiers['Resprojet'], 1, 0, 'C', 0);
$pdf->Cell($largeure_colonne, 5, $row_rsDossiers['Resprojet'], 1, 0, 'C', 0);
$pdf->Cell($largeure_colonne, 5, $row_rsDossiers['Annee'], 1, 0, 'C', 0);
$pdf->Cell($largeure_colonne, 5, $row_rsDossiers['Numcd'], 1, 1, 'C', 0);
}
$pdf->Output();
}
?>
---------------------
J'aimerais aussi pouvoir mettre en début de page le nom de chaque cellules ... Nom affaire, nom client, etc ...
J'ai essayé ce code:
//En-tête
function Header()
{
//Logo
$this->Image('logo_pb.png',10,8,33);
//Police Arial gras 15
$this->SetFont('Arial','B',15);
//Décalage à droite
$this->Cell(80);
//Titre
$this->Cell(30,10,'Titre',1,0,'C');
//Saut de ligne
$this->Ln(20);
}
//Pied de page
function Footer()
{
//Positionnement à 1,5 cm du bas
$this->SetY(-15);
//Police Arial italique 8
$this->SetFont('Arial','I',8);
//Numéro de page
$this->Cell(0,10,'Page '.$this->PageNo().'/{nb}',0,0,'C');
}
}
Mais il me dit :
Fatal error: Cannot redeclare header() in C:\wamp\www\Archives\Listes\liste.php on line 31
La ligne 31 est celle-ci:
function Header()
Et voilà où j'ai insérer ce bout de code ...
<?php
require_once('../Connexions/ConnexionArchives.php');
mysql_select_db($database_ConnexionArchives, $ConnexionArchives);
$orderby = isset($_GET['orderby']) ? $_GET['orderby'] : 'numaff';
$export = isset($_GET['export']) ? $_GET['export'] : '';
$query_rsDossiers = "SELECT Archives.Numaff, Archives.Client, Archives.Nomaff, Archives.Resprojet, Archives.Annee, Archives.Numcd FROM Archives ORDER BY $orderby";
$rsDossiers = mysql_query($query_rsDossiers, $ConnexionArchives) or die(mysql_error());
$totalRows_rsDossiers = mysql_num_rows($rsDossiers);
if ($export === 'excel') {
header("Content-Type: text/x-csv");
header('Content-Disposition: attachement; filename="Exportexcel.csv"');
$list = "\"N° affaires\"; \"Clients\"; \"Noms d'affaires\"; \"Responsables projets\"; \"Années\"; \"N° CD/DVD\";\r\n";
while ($row_rsDossiers = mysql_fetch_assoc($rsDossiers)) {
$list .= $row_rsDossiers['Numaff'] .";". $row_rsDossiers['Client'] .";"
. $row_rsDossiers['Nomaff'] .";". $row_rsDossiers['Resprojet'] .";"
. $row_rsDossiers['Annee'] .";". $row_rsDossiers['Numcd'] ."\r\n";
}
echo $list;
} elseif ( $export === 'pdf' ) {
require('fpdf.php');
$x = '10';
$y = '10';
//En-tête
function Header()
{
//Logo
$this->Image('logo_pb.png',10,8,33);
//Police Arial gras 15
$this->SetFont('Arial','B',15);
//Décalage à droite
$this->Cell(80);
//Titre
$this->Cell(30,10,'Titre',1,0,'C');
//Saut de ligne
$this->Ln(20);
}
//Pied de page
function Footer()
{
//Positionnement à 1,5 cm du bas
$this->SetY(-15);
//Police Arial italique 8
$this->SetFont('Arial','I',8);
//Numéro de page
$this->Cell(0,10,'Page '.$this->PageNo().'/{nb}',0,0,'C');
}
$pdf=new FPDF();
$pdf->AliasNbPages();
$pdf->AddPage('P','mm','A4');
$pdf->SetXY($x, $y);
$pdf->SetFont('Times','BIU',20);
$pdf->Cell(190,10,'Exportation de la liste des affaires en PDF',1);
// calcul de chaque colonne
$nb_col = 6;
$largeur_total_page = 210;
$largeure_colonne = ($largeur_total_page -20) / $nb_col;
$pdf->SetXY($x, $y+10);
$pdf->SetFont('Times', '', 7);
while ($row_rsDossiers = mysql_fetch_assoc($rsDossiers)) {
$pdf->Cell($largeure_colonne, 5, $row_rsDossiers['Numaff'], 1, 0, 'C', 0);
$pdf->Cell($largeure_colonne, 5, $row_rsDossiers['Client'], 1, 0, 'C', 0);
$pdf->Cell($largeure_colonne, 5, $row_rsDossiers['Nomaff'], 1, 0, 'C', 0);
$pdf->Cell($largeure_colonne, 5, $row_rsDossiers['Resprojet'], 1, 0, 'C', 0);
$pdf->Cell($largeure_colonne, 5, $row_rsDossiers['Annee'], 1, 0, 'C', 0);
$pdf->Cell($largeure_colonne, 5, $row_rsDossiers['Numcd'], 1, 1, 'C', 0);
}
$pdf->Output();
}
?>
Pour le logo_pb.png ce n'est pas un oubli ... j'ai laissé la ligne telle qu'elle mais je l'enleverrai après ...
Bon problème résolu ...
Par contre j'aimerais savoir comment je peux modifier ce code pour qu'il ajuste la taille des cellules de mon tableau aux nombres MAX de caractères étant présent dans ma BDD ???
Car là j'ai des cellules trop grandes pour ce qu'il y a dedans et d'autre beaucoup trop petites !!!
Comment modifier le code pour y arriver ???
Le revoilà:
[php]
<?php
require_once('../Connexions/ConnexionArchives.php');
mysql_select_db($database_ConnexionArchives, $ConnexionArchives);
$orderby = isset($_GET['orderby']) ? $_GET['orderby'] : 'numaff';
$export = isset($_GET['export']) ? $_GET['export'] : '';
$query_rsDossiers = "SELECT Archives.Numaff, Archives.Client, Archives.Nomaff, Archives.Resprojet, Archives.Annee, Archives.Numcd FROM Archives ORDER BY $orderby";
$rsDossiers = mysql_query($query_rsDossiers, $ConnexionArchives) or die(mysql_error());
$totalRows_rsDossiers = mysql_num_rows($rsDossiers);
if ($export === 'excel') {
header("Content-Type: text/x-csv");
header('Content-Disposition: attachement; filename="Exportexcel.csv"');
$list = "\"N° affaires\"; \"Clients\"; \"Noms d'affaires\"; \"Responsables projets\"; \"Années\"; \"N° CD/DVD\";\r\n";
while ($row_rsDossiers = mysql_fetch_assoc($rsDossiers)) {
$list .= $row_rsDossiers['Numaff'] .";". $row_rsDossiers['Client'] .";"
. $row_rsDossiers['Nomaff'] .";". $row_rsDossiers['Resprojet'] .";"
. $row_rsDossiers['Annee'] .";". $row_rsDossiers['Numcd'] ."\r\n";
}
echo $list;
} elseif ( $export === 'pdf' ) {
require('fpdf.php');
$x = '10';
$y = '10';
$pdf=new FPDF();
$pdf->AliasNbPages();
$pdf->AddPage('P','mm','A4');
$pdf->SetXY($x, $y);
$pdf->SetFont('Times','BIU',20);
$pdf->Cell(127,10,'Exportation de la liste des affaires en PDF',1);
// calcul de chaque colonne
$nb_col = 7;
$largeur_total_page = 210;
$largeure_colonne = ($largeur_total_page - 20) / $nb_col;
$pdf->SetXY($x, $y+10);
$pdf->SetFont('Times', '', 7);
while ($row_rsDossiers = mysql_fetch_assoc($rsDossiers)) {
$pdf->Cell($largeure_colonne, 5, $row_rsDossiers['Numaff'], 1, 0, 'C', 0);
$pdf->Cell($largeure_colonne, 5, $row_rsDossiers['Client'], 1, 0, 'C', 0);
$pdf->Cell($largeure_colonne, 5, $row_rsDossiers['Nomaff'], 1, 0, 'C', 0);
$pdf->Cell($largeure_colonne, 5, $row_rsDossiers['Resprojet'], 1, 0, 'C', 0);
$pdf->Cell($largeure_colonne, 5, $row_rsDossiers['Resprojet'], 1, 0, 'C', 0);
$pdf->Cell($largeure_colonne, 5, $row_rsDossiers['Annee'], 1, 0, 'C', 0);
$pdf->Cell($largeure_colonne, 5, $row_rsDossiers['Numcd'], 1, 1, 'C', 0);
}
$pdf->Output();
}
?>
[/php]
---------------------
J'aimerais aussi pouvoir mettre en début de page le nom de chaque cellules ... Nom affaire, nom client, etc ...
J'ai essayé ce code:
[php]
//En-tête
function Header()
{
//Logo
$this->Image('logo_pb.png',10,8,33);
//Police Arial gras 15
$this->SetFont('Arial','B',15);
//Décalage à droite
$this->Cell(80);
//Titre
$this->Cell(30,10,'Titre',1,0,'C');
//Saut de ligne
$this->Ln(20);
}
//Pied de page
function Footer()
{
//Positionnement à 1,5 cm du bas
$this->SetY(-15);
//Police Arial italique 8
$this->SetFont('Arial','I',8);
//Numéro de page
$this->Cell(0,10,'Page '.$this->PageNo().'/{nb}',0,0,'C');
}
}
[/php]
Mais il me dit :
Fatal error: Cannot redeclare header() in C:\wamp\www\Archives\Listes\liste.php on line 31
La ligne 31 est celle-ci:
[php]
function Header()
[/php]
Et voilà où j'ai insérer ce bout de code ...
[php]
<?php
require_once('../Connexions/ConnexionArchives.php');
mysql_select_db($database_ConnexionArchives, $ConnexionArchives);
$orderby = isset($_GET['orderby']) ? $_GET['orderby'] : 'numaff';
$export = isset($_GET['export']) ? $_GET['export'] : '';
$query_rsDossiers = "SELECT Archives.Numaff, Archives.Client, Archives.Nomaff, Archives.Resprojet, Archives.Annee, Archives.Numcd FROM Archives ORDER BY $orderby";
$rsDossiers = mysql_query($query_rsDossiers, $ConnexionArchives) or die(mysql_error());
$totalRows_rsDossiers = mysql_num_rows($rsDossiers);
if ($export === 'excel') {
header("Content-Type: text/x-csv");
header('Content-Disposition: attachement; filename="Exportexcel.csv"');
$list = "\"N° affaires\"; \"Clients\"; \"Noms d'affaires\"; \"Responsables projets\"; \"Années\"; \"N° CD/DVD\";\r\n";
while ($row_rsDossiers = mysql_fetch_assoc($rsDossiers)) {
$list .= $row_rsDossiers['Numaff'] .";". $row_rsDossiers['Client'] .";"
. $row_rsDossiers['Nomaff'] .";". $row_rsDossiers['Resprojet'] .";"
. $row_rsDossiers['Annee'] .";". $row_rsDossiers['Numcd'] ."\r\n";
}
echo $list;
} elseif ( $export === 'pdf' ) {
require('fpdf.php');
$x = '10';
$y = '10';
//En-tête
function Header()
{
//Logo
$this->Image('logo_pb.png',10,8,33);
//Police Arial gras 15
$this->SetFont('Arial','B',15);
//Décalage à droite
$this->Cell(80);
//Titre
$this->Cell(30,10,'Titre',1,0,'C');
//Saut de ligne
$this->Ln(20);
}
//Pied de page
function Footer()
{
//Positionnement à 1,5 cm du bas
$this->SetY(-15);
//Police Arial italique 8
$this->SetFont('Arial','I',8);
//Numéro de page
$this->Cell(0,10,'Page '.$this->PageNo().'/{nb}',0,0,'C');
}
$pdf=new FPDF();
$pdf->AliasNbPages();
$pdf->AddPage('P','mm','A4');
$pdf->SetXY($x, $y);
$pdf->SetFont('Times','BIU',20);
$pdf->Cell(190,10,'Exportation de la liste des affaires en PDF',1);
// calcul de chaque colonne
$nb_col = 6;
$largeur_total_page = 210;
$largeure_colonne = ($largeur_total_page -20) / $nb_col;
$pdf->SetXY($x, $y+10);
$pdf->SetFont('Times', '', 7);
while ($row_rsDossiers = mysql_fetch_assoc($rsDossiers)) {
$pdf->Cell($largeure_colonne, 5, $row_rsDossiers['Numaff'], 1, 0, 'C', 0);
$pdf->Cell($largeure_colonne, 5, $row_rsDossiers['Client'], 1, 0, 'C', 0);
$pdf->Cell($largeure_colonne, 5, $row_rsDossiers['Nomaff'], 1, 0, 'C', 0);
$pdf->Cell($largeure_colonne, 5, $row_rsDossiers['Resprojet'], 1, 0, 'C', 0);
$pdf->Cell($largeure_colonne, 5, $row_rsDossiers['Annee'], 1, 0, 'C', 0);
$pdf->Cell($largeure_colonne, 5, $row_rsDossiers['Numcd'], 1, 1, 'C', 0);
}
$pdf->Output();
}
?>
[/php]
Pour le logo_pb.png ce n'est pas un oubli ... j'ai laissé la ligne telle qu'elle mais je l'enleverrai après ...