IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[phpToPDF] Affichage tableau dynamique


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    fat
    fat est déconnecté
    Membre à l'essai
    Inscrit en
    Juin 2005
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 36
    Points : 17
    Points
    17
    Par défaut [phpToPDF] Affichage tableau dynamique
    Bonjour,
    voila j'ai un tableau qui me permet d'afficher le resultat de ma requete

    mon probleme c que le contenu de certaine cellule debordent !!!
    comment je peux faire un retour chariot ou de limiter la taille du contenu de la cellule???

    voila mon code , c'est le $row1['item_name'] qui depasse

    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
    27
    28
    29
    30
    31
    32
    33
    34
     
    $PDF = new phpToPDF();
    $PDF->AddPage();
    $PDF->SetFont("Arial","B",16);
     
    $query = "select * from Check_item_".$_SESSION['jalon'];
    	$resultat=mysql_query($query);
    	$PDF->SetFont("Arial","B",14); 
    	$PDF->SetFillColor(96,96,96); 
    	$PDF->SetTextColor(255,255,255); 
    	$header=array('Nom','Prénom','Indice'); 
    	$PDF->SetXY(20,$y); 
    	for($i=0; $i<sizeof($header); $i++) 
    	$PDF->cell(50,10,$header[$i],1,0,'L',1); 
    	// Affichage des données 
    	$PDF->SetFillColor(0xdd,0xdd,0xdd); 
    	$PDF->SetTextColor(0,0,0); 
    	$PDF->SetFont('Arial','',10); 
    	$PDF->SetXY(20,$PDF->GetY()+10); 
    	$fond=0; 
    	while($row=mysql_fetch_array($resultat)) 
    	{ 
    	$query = "select item_name from Item_list where id_item = '".$row['id_item']."'";
    	$resu=mysql_query($query);
    	while($row1=mysql_fetch_array($resu)) 
    	{ 
    	$x = strlen($row1['item_name']);
     
    	$PDF->cell(50,7,$row['status'],1,0,'C',$fond); 
    	$PDF->cell(50,7,$row['supplier'],1,0,'C',$fond); 
    	$PDF->cell(50,7,$row1['item_name'],1,0,'L',$fond); 
    	$PDF->SetXY(20,$PDF->GetY()+7); $fond=!$fond; 
    	} 
    	}
    si qlq un a une idée

    Merci d'avance

  2. #2
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Bonjour,

    Il me semble qu'il faut, dans ton cas, utiliser la méthode MultiCel au lieu de Cell pour avoir des retours à la ligne.

  3. #3
    fat
    fat est déconnecté
    Membre à l'essai
    Inscrit en
    Juin 2005
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 36
    Points : 17
    Points
    17
    Par défaut
    j'ai remplacé
    $PDF->cell(50,7,$row1['item_name'],1,0,'L',$fond);
    par

    $PDF->MultiCell(50,7,trim($row1['item_name']),1,'J',0);

    certe j'ai la total du contenu dans la cellule par contre

    les lignes de mon tableau sont separées

  4. #4
    Membre éclairé
    Avatar de jc_cornic
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    623
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 623
    Points : 823
    Points
    823
    Par défaut
    Qu'entends-tu par

    les lignes de mon tableau sont separées

    Aurais-tu un pdf à nous montrer ??

    Pour faire entrer un texte long dans une cellule, le plus approprié est le MultiCell, sinon, tu gardes le Cell mais tu change la taille de la police... (pour automatiser, c plus galère...)

    ++
    JC

  5. #5
    fat
    fat est déconnecté
    Membre à l'essai
    Inscrit en
    Juin 2005
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 36
    Points : 17
    Points
    17
    Par défaut
    bonjour,
    avec MultiCell j'ai une lignes blache entre chaque ligne

    en faite mon probleme c que la derniere colonne contient une ligne de texte
    tres long et ca depasse la cellule qui lui consacré

    j'espere que je me suis bien expliqué

    help je n'arrive pas avancé

    Merci

  6. #6
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Bon j'ai fait des tests rapides, la ligne blanche que tu obtiens entre chaque ligne n'est pas une "ligne de tableau", ca vient du fait que tu as défini la taille de ta multicell à 7 en hauteur, donc ca va a la ligne et te donne l'impression qu'il y a une ligne blanche entre. Essaies de réduire cette valeur pour arriver au résultat que tu souhaites.

  7. #7
    fat
    fat est déconnecté
    Membre à l'essai
    Inscrit en
    Juin 2005
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 36
    Points : 17
    Points
    17
    Par défaut
    j'ai réduit la taille mais j'ai toujours le même problème
    le item est d'une case en entier et le reste de la ligne s'affiche après sur une 2eme ligne
    j'ai mon fichier pdf en pièce pointe comme ça c'est plus clair

    et voilà le code

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    $query = "select * from Check_item_".$_SESSION['jalon'];
    	$resultat=mysql_query($query);
    	//$pdf=new PDF('P','mm','A4'); 
    	//$pdf->AliasNbPages(); 
    	//$pdf->AddPage(); 
    	//Titres des colonnes 
    	$PDF->SetFont("Arial","B",8); 
    	$PDF->SetFillColor(96,96,96); 
    	$PDF->SetTextColor(255,255,255); 
    	//$header=array('Item','supplier','Status','Available','Date'); 
    	$PDF->SetXY(10,$y); 
    	//for($i=0; $i<sizeof($header); $i++) 
    	//$PDF->cell(50,10,$header[$i],1,0,'C',1); 
    	$PDF->cell(50,10,'Item',1,0,'C',1);
    	$PDF->cell(40,10,'Supplier',1,0,'C',1);
    	$PDF->cell(20,10,'Statut',1,0,'C',1);
    	$PDF->cell(14,10,'Available',1,0,'C',1);
    	$PDF->cell(15,10,'Date',1,0,'C',1);
    	$PDF->cell(50,10,'Link',1,0,'C',1);
    	// Affichage des données 
    	$PDF->SetFillColor(0xdd,0xdd,0xdd); 
    	$PDF->SetTextColor(0,0,0); 
    	$PDF->SetFont('Arial','',8); 
    	$PDF->SetXY(10,$PDF->GetY()+10); 
    	$fond=0; 
    	while($row=mysql_fetch_array($resultat)) 
    	{ 
    	$query = "select item_name from Item_list where id_item = '".$row['id_item']."'";
    	$resu=mysql_query($query);
    	while($row1=mysql_fetch_array($resu)) 
    	{ 
    	//$x = strlen($row1['item_name']);
    	//$PDF->cell(50,7,$row1['item_name'],1,0,'L',$fond);
    	$PDF->MultiCell(50,6,trim($row1['item_name']),1,'J',0); 
    	$PDF->cell(40,7,$row['supplier'],1,0,'C',$fond); 
    	$PDF->cell(20,7,$row['status'],1,0,'C',$fond);
    	$PDF->cell(14,7,$row['availability'],1,0,'C',$fond);
    	$PDF->cell(15,7,$row['date'],1,0,'C',$fond);
    	$PDF->cell(50,7,$row['link'],1,0,'C',$fond);	
    	$PDF->SetXY(10,$PDF->GetY()+7);
     $fond=!$fond;
    mercii

  8. #8
    fat
    fat est déconnecté
    Membre à l'essai
    Inscrit en
    Juin 2005
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 36
    Points : 17
    Points
    17
    Par défaut
    sorry
    voila mon pdf
    Images attachées Images attachées

  9. #9
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Essaies de mettre 1 en hauteur a ta case et tu verras que l'écart va se réduire, passer de 7 a 6 n'est pas suffisant.

    Si tu regardes bien c'est logique, quand tu vois la taille en hauteur de 2 Cell l'une sous l'autre (ex: contract sheet et development project leader) ca fait la meme chose que ta MultiCell encore en dessous mais sans le trait intermédiaire de séparation de cellule.
    Je pense que si tu mets 3 ou 4 a la place de 6 ca va s'estomper. Mais ca posera probleme dans le cas où ton texte n'est que sur une ligne...

  10. #10
    fat
    fat est déconnecté
    Membre à l'essai
    Inscrit en
    Juin 2005
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 36
    Points : 17
    Points
    17
    Par défaut
    en faite dans mon fichier
    par exemple la 1ere ligne
    le item "Contract sheet (Feuille d affaire) filled" s'affiche tout seul sur la ligne sans supplier, status ...
    en faite la 2eme ligne
    "Development Project Leader" "Requested" "Y" "2008-09-02"

    et la suite de la 1ere
    je cherche comment les afficher sur une même ligne

  11. #11
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    1/ Quand tu as tapé ton code, selectionnes le et clique sur le # en haut, ca rend le code lisible !

    2/ j'avais donc rien compris a ton probleme !!

    en fait, quand tu fais un MultiCell, il va apres le multicell pour écrire la suite. Il faut donc que tu mémorises l'ordonnée avant d'écrire le MultiCell pour mettre le Cell a la meme hauteur; qqch comme ca:
    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
     
    	$resu=mysql_query($query);
    	while($row1=mysql_fetch_array($resu)) 
    	{ 
            // memorise pour écrire apres la cellule multiple
    	$x = $PDF->getX(); 
    	$y = $PDF->getY();  
    	//largeurCellule
            $largeur = 50;
            $PDF->MultiCell($largeur ,7,trim($row1['item_name']),1,'J',0);      
            // Reviens dans ton pdf :
            $PDF->setX($x + $largeur );
            $PDF->setY($y);
    	$PDF->cell(40,7,$row['supplier'],1,0,'C',$fond); 
    	$PDF->cell(20,7,$row['status'],1,0,'C',$fond);
    	$PDF->cell(14,7,$row['availability'],1,0,'C',$fond);
    	$PDF->cell(15,7,$row['date'],1,0,'C',$fond);
    	$PDF->cell(50,7,$row['link'],1,0,'C',$fond);	
    	$PDF->SetXY(10,$PDF->GetY()+7);
     $fond=!$fond;

    Je promets rien, et ce que tu mémorises il faut peut etre le faire apres chaque CELL je suis pas sur.

    Mais dans ton cas, je crois qu'il faudrait plutot que tu t'orientes vers les vrais tableaux plutot que ce qu'on bricole, parce que tes largeurs et le nombre de colonnes sont clairement définis donc ca serait plus simple.

    Bon courage

  12. #12
    fat
    fat est déconnecté
    Membre à l'essai
    Inscrit en
    Juin 2005
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 36
    Points : 17
    Points
    17
    Par défaut
    Merci c bon j'arrive à afficher toute la ligne
    mais le contenu du MultiCell est illisible

    voila mon pdf c plus parlant

    pourquoi ca c'affiche comme ca !!!
    Images attachées Images attachées

  13. #13
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Je pense que deux cellules sont l'une sur l'autre, mémorise l'rdonnée a laquelle écrire la prochaine ligne une fois que tu as mis le MultiCell
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    	while($row1=mysql_fetch_array($resu)) 
    	{ 
            // memorise pour écrire apres la cellule multiple
    	$x = $PDF->getX(); 
    	$y = $PDF->getY();  
    	//largeurCellule
            $largeur = 50;
            $PDF->MultiCell($largeur ,7,trim($row1['item_name']),1,'J',0);   
            // memorise l'ordonnée pour la prochaine ligne si multicell sur plusieurs lignes 
            $yProchaineLigne = $PDF->getY();  
            // Reviens dans ton pdf :
            $PDF->setX($x + $largeur );
            $PDF->setY($y);
    	$PDF->cell(40,7,$row['supplier'],1,0,'C',$fond); 
    	$PDF->cell(20,7,$row['status'],1,0,'C',$fond);
    	$PDF->cell(14,7,$row['availability'],1,0,'C',$fond);
    	$PDF->cell(15,7,$row['date'],1,0,'C',$fond);
    	$PDF->cell(50,7,$row['link'],1,0,'C',$fond);	
    	$PDF->SetXY(10,$	while($row1=mysql_fetch_array($resu)) 
    	{ 
            // memorise pour écrire apres la cellule multiple
    	$x = $PDF->getX(); 
    	$y = $PDF->getY();  
    	//largeurCellule
            $largeur = 50;
            $PDF->MultiCell($largeur ,7,trim($row1['item_name']),1,'J',0);      
            // Reviens dans ton pdf :
            $PDF->setX($x + $largeur );
            $PDF->setY($y);
    	$PDF->cell(40,7,$row['supplier'],1,0,'C',$fond); 
    	$PDF->cell(20,7,$row['status'],1,0,'C',$fond);
    	$PDF->cell(14,7,$row['availability'],1,0,'C',$fond);
    	$PDF->cell(15,7,$row['date'],1,0,'C',$fond);
    	$PDF->cell(50,7,$row['link'],1,0,'C',$fond);	
    	$PDF->SetXY(10,$PDF->GetY()+7);
     $fond=!$fond; 
    );
     $fond=!$fond;

  14. #14
    fat
    fat est déconnecté
    Membre à l'essai
    Inscrit en
    Juin 2005
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 36
    Points : 17
    Points
    17
    Par défaut
    j'ai bien memorisé mes ordonnées !!! j'ai toujours le même pb

  15. #15
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Je commence à m'y perdre là... As-tu essayé d'ajouter 7 encore à cette ordonnée?
    Fais des tests sur les ordonnées pour comprendre ce qui se passe et essayer de trouver une solution "acceptable"

    et pourquoi n'utilises-tu pas les tableaux directement?

  16. #16
    fat
    fat est déconnecté
    Membre à l'essai
    Inscrit en
    Juin 2005
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 36
    Points : 17
    Points
    17
    Par défaut
    c bon j'ai reussi à afficher mon tableau avec drawTableau

    Merci pour vos conseils

    j encore une petite question
    comment je peux afficher des liens "active" sur mon pdf


    et Merci encore

  17. #17
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Il y a la méthode Link dans la doc... http://fpdf.org/fr/doc/link.htm

  18. #18
    fat
    fat est déconnecté
    Membre à l'essai
    Inscrit en
    Juin 2005
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 36
    Points : 17
    Points
    17
    Par défaut
    Merci pour votre aide c bon j'ai reussi à afficher mon tableau

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [E-07] Affichage d'un tableau dynamique dans une MsgBox
    Par perchman dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 22/10/2008, 17h59
  2. [Oracle] Affichage des données sous forme de tableau dynamique
    Par bsidy1 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 16/10/2008, 14h17
  3. [MySQL] Comment enlever des doublons lors de l'affichage d'un tableau dynamique ?
    Par wylls dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 22/12/2006, 14h54
  4. Affichage javascript total ligne tableau dynamique
    Par falz222 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 29/08/2006, 19h17
  5. affichage de tableau dynamique
    Par EJ dans le forum XMLRAD
    Réponses: 12
    Dernier message: 04/06/2004, 10h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo