Bonjour tout le monde,
Voilà ca fait un petit moment que je tourne sur le web et que je fais des tests, mais je n'arrive pas répeter l'entête de mon tableau à chaque nouvelle page.
En fait j'y arrive, mais j'ai toujours une ligne de retard, c'est à dire que chaque nouvelle page commence par une ligne de données, puis l'entête du tableau en seconde position et ensuite toutes les lignes de données.
Je vous donne mon code, j'éspère que vous trouverez l'erreur
je lance l'impression du tableau :
voici la méthode qui construit le tableau :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 // ------- PAGE 4 ----------- $pdf->AddPage('L'); // ------- Tableau 5 totaux noir coul par employé ---------- $header5 = array('Nom', 'Service', 'Noir', 'Couleur', 'Total'); $data5 = $pdf->LoadData($lines5); $pdf->FancyTable5($header5, $data5);
puis celle qui construit l'entête du tableau :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 function FancyTable5($header, $data) { $this->Cell(270, 8, "Nombre de cartouches par employé (triés sur le total)", 1, 0, 'L'); // Saut de ligne $this->Ln(8); $w = array(90, 90, 35, 35, 20); //dimensions des 5 colonnes if ($this->jump) { $this->headerTab5($header); $this->jump = false; } foreach($data as $row) { $this->Cell($w[0], 6, urldecode($row[0]), 'LR', 0, 'L', $fill); $this->Cell($w[1], 6, urldecode($row[1]), 'LR', 0, 'L', $fill); $this->Cell($w[2], 6, number_format($row[2], 0, ',', ' '), 'LR', 0, 'C', $fill); $this->Cell($w[3], 6, number_format($row[3], 0, ',', ' '), 'LR', 0, 'C', $fill); $this->Cell($w[4], 6, number_format($row[4], 0, ',', ' '), 'LR', 0, 'C', $fill); $this->Ln(); $fill = !$fill; if ($this->jump) { $this->headerTab5($header); $this->jump = false; } } $this->Cell(array_sum($w), 0, '', 'T'); //cellule qui ferme le tableau }
et pour finir, voici ce que je met dans le header pour avoir la valoir drapeau jump à true dès qu'on passe à une nouvelle page :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 function headerTab5($header) { // Couleurs, épaisseur du trait et police grasse $this->SetFillColor(165, 162, 153); //couleur entete $this->SetTextColor(255); $this->SetDrawColor(165, 162, 153); //bordure $this->SetLineWidth(.3); $this->SetFont('', 'B'); // En-tête $w = array(90, 90, 35, 35, 20); //dimensions des 5 colonnes for($i = 0;$i < count($header);$i++) $this->Cell($w[$i], 7, $header[$i], 1, 0, 'C', 1); $this->Ln(); // Restauration des couleurs et de la police $this->SetFillColor(224, 235, 255); $this->SetTextColor(0); $this->SetFont(''); // Données $fill = 0; }
merci d'avance
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 function Header() { $this->SetFont('Arial', 'B', 15); $this->Cell(0, 10, "Commandes de consommables du " . $this->periode, 1, 0, 'C'); // Saut de ligne $this->Ln(15); $this->jump = true; }
Partager