renjps | Bonjour à tous je suis nouveau sur ce petit forum et après 2 jours à chercher sans relâche je m'en remet à vous chers codeurs...
Je dois faire un formulaire dans lequel on doit retrouver les informations des intervenants d'un chantier.
Sur la première page tout vas bien mais dès que je change de page, mon GetY fait n'importe quoi et décide de se mettre sur la 3e page.
J'ai remarqué également qu'en remettant en mode portrait le probleme était résolu. Mais il me faut un mode paysage impérativement
Voici mon code et un screen en pièce jointe (Flouté et censuré pour ne pas dévoiler le nom des clients
Code :
- // En-tête
- function Header()
- {
- global $descriptif;
- // Logo
- $this->Image('images/facet.png',10,6,30);
- // Police Arial gras 15
- $this->SetFont('Arial','B',15);
- // Décalage à droite
- $this->Cell(80);
- // Titre
- $this->Cell(118,10,'Liste des Intervenants "'.$descriptif.'"',0,0,'C');
- // Saut de ligne
- $this->Ln(15);
- $this->SetFont('Times','B',15);
- }
- // 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');
- }
- }
- // Connection à la BDD
- $l1 = mysql_connect($host,$user,$password);
- $db_selected = mysql_select_db($base, $l1);
- mysql_query("SET NAMES 'utf8'" );
- // Récupération du nom du chantier
- $sql = "SELECT descriptif FROM chantier WHERE id_chantier=".$clean1['id_chantier']."";
- $req = mysql_query($sql) or die('Erreur SQL !<br />'.mysql_error());
- $recupbdd=mysql_fetch_array($req);
- $descriptif = $recupbdd['descriptif'];
- // Récupération id intervenants en fonction de l'id chantier
- $sql4 = "SELECT id_societe, id_lot FROM intervenant WHERE id_chantier = ".$clean1['id_chantier']." AND (type ='partenaire' OR type='entreprise')";
- $req4 = mysql_query($sql4) or die('Erreur SQL !<br />'.mysql_error());
- // i=1 couleur / i=0 transparent //
- $i=0;
- // Instanciation de la classe dérivée
- $pdf = new PDF('L','mm','A4');
- $pdf->AliasNbPages();
- $pdf->AddPage();
- $pdf->SetFillColor(242,221,220);
- // Récupération des informations intervenants
- while ($recupbdd4=mysql_fetch_array($req4)){
- $sql5 = "SELECT DISTINCT lots.nom as nom_lot, societe.nom as nom_soc, adresse_1, cp, ville, telephone, fax, courriel FROM societe, lots,intervenant WHERE lots.id=intervenant.id_lot AND intervenant.id_societe=societe.id_societe AND societe.id_societe =".$recupbdd4['id_societe']." AND id=".$recupbdd4['id_lot'];
- $req5 = mysql_query($sql5) or die('Erreur SQL !<br />'.mysql_error());
- $recupbdd5=mysql_fetch_array($req5);
- $i++;
- $chaine = utf8_decode(umep_formtextarea($recupbdd5['nom_soc']));
- $chaine2 = utf8_decode(umep_formtextarea($recupbdd5['adresse_1'].' - '.$recupbdd5['cp'].' '.$recupbdd5['ville'].' - tél.'.$recupbdd5['telephone'].' - fax '.$recupbdd5['fax']));
- $pdf->SetFont('Times','B',12);
- $longueur = $pdf -> GetStringWidth ($chaine);
- $pdf->SetFont('Times','',12);
- $longueur2 = $pdf -> GetStringWidth ($chaine2);
- // Hauteur par défaut des Multicell
- $h2=7;
- $h1=7;
- //Hauteur modifiée en fonction de la taille du texte.
- if ($longueur2 > 209)
- {
- $h1=14;
- }
- elseif ($longueur > 67)
- {
- $h2=14;
- }
- if ($i & 1 == 1)
- {
- $pdf->SetFont('Times','BU',12);
- $pdf -> Cell(0,7,utf8_decode(umep_formtextarea($recupbdd5['nom_lot'])),'TLR',1,'L',true);
- $pdf->SetFont('Times','B',12);
- $current_y = $pdf->GetY(); $current_x = $pdf->GetX();
- $cell_width = 68;
- $pdf -> MultiCell($cell_width,$h1,$chaine,'L', "C",true);
- $pdf->SetFont('Times','',12);
- $pdf->SetXY($current_x + $cell_width, $current_y);
- $pdf -> MultiCell(209,$h2,$chaine2,'R','L',true);
- }
- else
- {
- $pdf->SetFont('Times','BU',12);
- $pdf -> Cell(0,7,utf8_decode(umep_formtextarea($recupbdd5['nom_lot'])),'TLR',1,'L');
- $pdf->SetFont('Times','B',12);
- $current_y = $pdf->GetY(); $current_x = $pdf->GetX();
- $cell_width = 68;
- $pdf -> MultiCell($cell_width,$h1,$chaine,'L', "C" );
- $pdf->SetFont('Times','',12);
- $pdf->SetXY($current_x + $cell_width, $current_y);
- $pdf -> MultiCell(209,$h2,$chaine2,'R','L');
- }
- //Récupération des informations des membres intervenants
- $sql9 = "SELECT DISTINCT id_intervenant, id_societe, id_lot FROM intervenant WHERE id_chantier=".$clean1['id_chantier']." AND (type='partenaire' OR type='entreprise')AND id_societe= ".$recupbdd4['id_societe']."";
- $req9 = mysql_query($sql9) or die('Erreur SQL !<br />'.mysql_error());
- while ($recupbdd9=mysql_fetch_array($req9)){
- $sql10 ="SELECT DISTINCT id_adherent from intervenant_contact where id_intervenant=".$recupbdd9['id_intervenant']." AND id_lot=".$recupbdd9['id_lot']."";
- $req10 = mysql_query($sql10) or die('Erreur SQL !<br />'.mysql_error());
- while($recupbdd10=mysql_fetch_array($req10)){
- $sql11 ="SELECT DISTINCT nom,telephone,courriel FROM utilisateur WHERE id_utilisateur=".$recupbdd10['id_adherent']."";
- $req11 = mysql_query($sql11) or die('Erreur SQL !<br />'.mysql_error());
- while($recupbdd11=mysql_fetch_array($req11)){
- $chaine2 = utf8_decode(umep_formtextarea($recupbdd11['nom'].' - tél. : '.$recupbdd11['telephone']." - ".$recupbdd11['courriel']));
- $pdf->SetFont('Times','',12);
- $longueur2 = $pdf -> GetStringWidth ($chaine2);
- $h2=5;
- $h1=5;
- if ($longueur2 > 207)
- {
- $h1=10;
- }
- if ($i & 1 ==1)
- {
- $current_y = $pdf->GetY(); $current_x = $pdf->GetX();
- $cell_width = 68;
- $pdf -> Multicell(68,$h1,'Contact','RL','C',true);
- $pdf->SetXY($current_x + $cell_width, $current_y);
- $pdf -> Multicell(0,$h2,$chaine2,'R',1,true);
- }
- else
- {
- $current_y = $pdf->GetY(); $current_x = $pdf->GetX();
- $cell_width = 68;
- $pdf -> Multicell(68,$h1,'Contact','L','C');
- $pdf->SetXY($current_x + $cell_width, $current_y);
- $pdf -> Multicell(0,$h2,$chaine2,'R',1);
- }
- }
- }
- }
- }
- $pdf -> Cell(0,0,'',1,'L');
- $pdf->Output();
|
Lien Image : http://hpics.li/df44b14 Message édité par renjps le 12-02-2014 à 09:41:08
|