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

MkFramework Discussion :

Problème avec impression en pdf


Sujet :

MkFramework

  1. #1
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 679
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Benevole
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 679
    Points : 954
    Points
    954
    Par défaut Problème avec impression en pdf
    Bonsoir Imikado

    j'ai soucis avec l'outil html2pdf, je m'explique:

    Voici ma vue pdf.php
    Code html : 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
    42
     
    <?php 
    $oForm=new plugin_form($this->tmypaiment);
    ?>
    <form class="form-horizontal" action="" method="POST" >
     
    	<div class="form-group">
    		<label class="col-sm-2 control-label">Code </label>
    		<div class="col-sm-10"><?php echo $this->tmypaiment->codeunpai ?></div>
    	</div>
     
    	<div class="form-group">
    		<label class="col-sm-2 control-label">Nom Complet</label>
    		<div class="col-sm-10"><?php echo $this->tmypaiment->nomcomppai ?></div>
    	</div>
     
    	<div class="form-group">
    		<label class="col-sm-2 control-label">Palier</label>
    		<div class="col-sm-10"><?php echo $this->tmypaiment->palierpai ?></div>
    	</div>
     
    	<div class="form-group">
    		<label class="col-sm-2 control-label">Mode Paiement</label>
    		<div class="col-sm-10"><?php echo $this->tmypaiment->modepaie ?></div>
    	</div>
     
    	<div class="form-group">
    		<label class="col-sm-2 control-label">Nautre Paiement</label>
    		<div class="col-sm-10"><?php echo $this->tmypaiment->naturepai ?></div>
    	</div>
     
     
    	<div class="form-group">
    		<label class="col-sm-2 control-label">Montant</label>
    		<div class="col-sm-10"><?php echo $this->tmypaiment->montpai ?></div>
    	</div>
     
    	<div class="form-group">
    		<label class="col-sm-2 control-label">Reference Paiment</label>
    		<div class="col-sm-10"><?php echo $this->tmypaiment->refpai ?></div>
    	</div>
    </form>

    et ma fonction _pdf dans mon module mypaiment :
    Code php : 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
     
     public function _pdf(){
     
    		//$tmypaiment=model_mypaiment::getInstance()->findById( _root::getParam('idmypaie') );
     
    		$tmypaiment=model_mypaiment::getInstance()->findAll();
    		$oView=new _view('mypaiment::pdf');
    		$oView->tmypaiment=$tmypaiment;
     
    		$oView->tJoinmodel_naturepaiment=model_naturepaiment::getInstance()->getSelect();		
    		$oView->tJoinmodel_modepaiment=model_modepaiment::getInstance()->getSelect();		
    		$oView->tJoinmodel_paliers=model_paliers::getInstance()->getSelect();
     
        	$html2pdf=new HTML2PDF('P','A4','fr');
        	$html2pdf->WriteHTML($oView->show());
        	$html2pdf->Output('fiche.pdf');

    et mon lien pour lancer le pdf :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    <a class="btn btn-primary" href="<?php echo $this->getLink('mypaiment::pdf') ?>">Imprimer</a>

    Au lancement j'ai l'erreur suivante :


    Trying to get property of non-object
    1 <?php
    2 $oForm=new plugin_form($this->tmypaiment);
    3 ?>
    4 <form class="form-horizontal" action="" method="POST" >
    5
    6 <div class="form-group">
    7 <label class="col-sm-2 control-label">Code Caides</label>
    8 <div class="col-sm-10"><?php echo $this->tmypaiment->codeunpai ?></div>
    9 </div>
    il y a un truc qui m’échappe

    Merci de m'aider à trouver le problème.

  2. #2
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    Je pense que vous récupérez un tableau d'objet et non un objet:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $tmypaiment=model_mypaiment::getInstance()->findAll();
    Dans ce genre de cas, utilisez la barre de debug:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    plugin_debug::addSpy('$tmypaiment',$tmypaiment);
    ou plugin_sc_debug (si vous utilisez le template Software Craftsmanship

    Vous verrez un bouton "spy variables" permettant de voir le contenu de celle-ci
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  3. #3
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 679
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Benevole
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 679
    Points : 954
    Points
    954
    Par défaut
    Bonjour Imikado

    Après beaucoup de mal, je viens de comprendre $tmypaiment ramenais un tableau d'objet.

    Voici les données que je veux imprimer
    Nom : CaptureListe a imprimer.JPG
Affichages : 271
Taille : 50,8 Ko

    j'ai donc modifier la fonction _pdf :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    
     public function _pdf(){
    	
    		$tmypaiment=model_mypaiment::getInstance()->findById('4'); // mettre un identifiant (id)
    		........
    	}
    et la j'ai eu un rendu. celui ci :

    Nom : Capture page imprimer2300.JPG
Affichages : 318
Taille : 22,5 Ko

    Je me rend compte que c'est seulement une donné qui est imprimée, hors je voulais imprimer toutes les informations affichées.

    Mes questions sont les suivantes :
    1- Comment pouvoir imprimer toutes les données affichées ?
    2- Une Tuto sur (une tuto serai la bienvenue ):
    - Comment imprimer plusieurs données affichées
    - Comment imprimer une seule donnée affichée
    3- je dois chercher aussi a ameliorer le rendu a l'impression je suis loin du compte.

    Merci

  4. #4
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    Bonjour,

    Vous pouvez faire une boucle sur votre tableau d'objet, concatener le rendu dans une nouvelle variable et enfin génerer votre pdf

    Code php : 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
     
    public function _pdf(){
     
    	$tableauDobjet=model_mypaiment::getInstance()->findAll();
     
    	$sHTMLGlobal='';
     
    	foreach($tableauDobjet as $objet){
     
    		$oView=$this->generateViewForObject($object);
     
     
    		$sHTMLGlobal.=$oView->show();
     
     
    	}
     
     
    	$html2pdf=new HTML2PDF('P','A4','fr');
        	$html2pdf->WriteHTML($sHTMLGlobal);
        	$html2pdf->Output('fiche.pdf');
     
    }


    Et dans votre méthode individuel:
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    public function generateViewForObject($objet){
    	$oView=new _view('mypaiment::pdf');
    	$oView->tmypaiment=$objet;
     
    	$oView->tJoinmodel_naturepaiment=model_naturepaiment::getInstance()->getSelect();		
    	$oView->tJoinmodel_modepaiment=model_modepaiment::getInstance()->getSelect();		
    	$oView->tJoinmodel_paliers=model_paliers::getInstance()->getSelect();
     
    	return $oView;
     
    }
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  5. #5
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 679
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Benevole
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 679
    Points : 954
    Points
    954
    Par défaut
    Bonjour imikado

    je viens d’essayer ta solution mais j'ai le message suivant :

    Code php : 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
     
    public function _pdf(){
     
    	$tableauDobjet=model_mypaiment::getInstance()->findAll();
     	$sHTMLGlobal='';
     
    	foreach($tableauDobjet as $objet){
     		$oView=$this->generateViewForObject($object);
    		$sHTMLGlobal.=$oView->show();
     	}
             $html2pdf=new HTML2PDF('P','A4','fr');
        	$html2pdf->WriteHTML($sHTMLGlobal);
        	$html2pdf->Output('fiche.pdf');
     }
     
     public function generateViewForObject($objet){
    	$oView=new _view('mypaiment::pdf');
    	$oView->tmypaiment=$objet;
     
    	$oView->tJoinmodel_naturepaiment=model_naturepaiment::getInstance()->getSelect();		
    	$oView->tJoinmodel_modepaiment=model_modepaiment::getInstance()->getSelect();		
    	$oView->tJoinmodel_paliers=model_paliers::getInstance()->getSelect();
     
    	return $oView;
    }

    Erreur :
    Undefined variable: object
    foreach($tableauDobjet as $objet){
    $oView=$this->generateViewForObject($object);
    $sHTMLGlobal.=$oView->show();
    }
    Je comprend pas bien les deux fonctions ? c'est un problème d'accolade au niveau de l'erreur ?

    Merci

  6. #6
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    Oui j'ai fait une faute de frappe:$
    il manque un c

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    foreach($tableauDobjet as $objet){
     		$oView=$this->generateViewForObject($object);
    		$sHTMLGlobal.=$oView->show();
     	}

    replacer par:

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    foreach($tableauDobjet as $object){
     		$oView=$this->generateViewForObject($object);
    		$sHTMLGlobal.=$oView->show();
     	}

    Comme vous l'avez demandé: _pdf c'est l'action (la page) pour generer le pdf
    et vous avez demandé de "remplir" ce pdf avec plusieurs enregistrements, d'ou la méthode generateViewForObject appelé en boucle
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  7. #7
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 679
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Benevole
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 679
    Points : 954
    Points
    954
    Par défaut
    Bonjour Imikado

    Merci pour les explications avec le code fournie je vais m'y 'inspirer pour la suite.

    Bonne journée

  8. #8
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    De rien, je note pour plus tard comme sujet de tutorial à écrire
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 28/04/2015, 12h29
  2. Problème avec impression sur imprimante caisse
    Par devvanjier dans le forum Windows Forms
    Réponses: 1
    Dernier message: 23/08/2012, 08h18
  3. [6.1] Problème d'impression en PDF
    Par Aitone dans le forum Deski
    Réponses: 1
    Dernier message: 03/11/2008, 14h09
  4. problème d'impression de pdf
    Par katwes dans le forum C#
    Réponses: 2
    Dernier message: 25/08/2008, 16h31

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