Categories > OpenTBS with ODT >

Document non généré

The forum is closed. Please use Stack Overflow for submitting new questions. Use tags: tinybutstrong , opentbs
By: bruno
Date: 2007-09-02
Time: 10:33

Document non généré

Bonjour,

Lorsque j'exécute mon publipostage, j'ai un formulaire blanc qui s'affiche (ce qui est normal puisque je n'ai pas fait de redirection en fin de traitement), mais mon document odt n'est pas généré.
Il ne m'affiche aucune anomalie.
A quoi cela tient-il ?
By: Olivier
Date: 2007-09-02
Time: 11:05

Re: Document non généré

bonjour,

Essai d'afficher le document (si tu en as plusieurs, limite à un pour les tests)

Olivier
By: bruno
Date: 2007-09-02
Time: 12:50

Re: Document non généré

Bonjour Olivier,

J'ai sélectionné un seul enregistrement.
J'ai mis un print_r dans mon php et j'ai bien affiché mon résultat.
Mais mon document odt ne s'affiche pas.
J'ai refais plusieurs fois et il a finit par s'afficher.

Va savoir pourquoi ?

Bon en tout cas cela à l'air de fonctionner pour 1 enregistrement.

Je débloque pour avoir tout le contenu de la table (3 enreg) et il ne me génère qu'une page.

foreach($docdata as $ligne)
{
    $numlig = $ligne['numlig'];
    $civilite = ...
   
    // créer un nouveau document openoffice avec le Template avec un id unique
    $OOo->NewDocFromTpl($requete["cheDocFromTpl"].$pub_doc["doc_original"]);
   
    // merge data with OOo file content.xml
    $OOo->LoadXmlFromDoc('content.xml');
    $OOo->SaveXmlToDoc();
   
    $file_source = $OOo->GetPathnameDoc();
    $file_name = $pub_doc["doc_original"];

    if (file_exists($file_source) && filesize($file_source))
    {
        // header du fichier en tant que piece jointe (voir content-disposition)
        header('Pragma: public');
        header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
        header('Cache-Control: no-store, no-cache, must-revalidate');
        header('Cache-Control: pre-check=0, post-check=0, max-age=0');
        header('Content-Transfer-Encoding: none');
        header('Content-type: '.$OOo->GetMimetypeDoc());
        header('Content-Length: '.filesize($file_source));
        header('Content-Disposition: inline; filename="'.$file_name.'"');
       
        // envoie du fichier temporaire vers le navigateur
        $OOo->FlushDoc();
       
        // suppression du fichier temporaire
        $OOo->RemoveDoc();
    }

Ne devrai-je pas avoir autant de document que d'enregistrement ?

Merci
By: bruno
Date: 2007-09-02
Time: 19:28

Re: Document non généré

J'ai lu le post 7299 mais je n'arrive toujours pas à avoir plus d'une page.
Et la page qui est affiché est la page du dernier enregistrement.

.. lecture des entêtes de commandes
foreach($entetes as $entete)
{
    $id_commande =  $entete['id_commande'];
    if($entete['civilite'] == 'M') $civilite = 'Monsieur';
    if($entete['civilite'] == 'MME') $civilite = 'Madame';
    if($entete['civilite'] == 'MLLE') $civilite = 'Mademoiselle';
    $pay_nom = $entete['pay_nom'];
    $pay_prenom = $entete['pay_prenom'];
    $pay_appart = $entete['pay_appart'];
    $pay_imm = $entete['pay_imm'];
    $pay_voie = $entete['pay_voie'];
    $pay_bis = $entete['pay_bis'];
    $pay_libel = $entete['pay_libel'];
    $pay_bp = $entete['pay_bp'];
    $pay_cp = $entete['pay_cp'];
    $pay_ville = $entete['pay_ville'];                                       
    $societaire = $entete['societaire'];

    // Lecture des lignes de commandes
    $queryString = "SELECT liv_civilite , liv_prenom , liv_nom , cadeau , titre , ref_titre , libelle_offre , prix_vente
                    FROM test_br
                    WHERE id_commande = '".$entete['id_commande']."'
                    ";

    $lignes = $MySql->queryAllRecords($queryString);

    $total = '';
    $arrayLignes = array();
    foreach($lignes as $ligne)
    {
        $arrayLignes[] = $ligne;
        $total = $total + $ligne['prix_vente'];
    }
    $total=number_format($total, 2, '.', ' ');
    $arrayLignes[] =  array("liv_civilite" => '',
                            "liv_prenom" => '',
                            "liv_nom" => '',
                            "cadeau" => '',
                            "titre" => '',
                            "ref_a2_presse" => 'Total',
                            "libelle_offre" => '',
                            "prix_vente" => $total);

    // créer un nouveau document openoffice avec le Template avec un id unique
    $OOo->NewDocFromTpl($requete["cheDocFromTpl"].$pub_doc["doc_original"]);
   
    // merge data with OOo file content.xml
    $OOo->LoadXmlFromDoc('content.xml');
    $OOo->MergeBlock('blk1',$arrayLignes) ;
}
By: bruno
Date: 2007-09-02
Time: 21:59

Re: Document non généré

Bon quelque soit les manipulations je n'arrive pas à avoir plus d'un document soit le 1er soit le dernier. Cela dépend de l'ordre que je sort de la boucle.

Y-a un truc, je le sens, pas loin, y-a un truc j'en suis sûr.

Mais alors où ?
By: mac44
Date: 2007-09-03
Time: 12:17

Re: Document non généré

As-tu eux la solution, j'essaye de faire la même chose. J'ai aussi le 1er ou le dernier document.
By: Olivier
Date: 2007-09-03
Time: 14:46

Re: Document non généré

C'est normal que vous n'ayez pas plus d'un document en même temps. Le navigateur ne peut pas en ouvrir plusieurs.

Si vous voulez récupérer tous les documents en une seule fois, la méthode est la suivante :
- créer une archive zip ou autre
- générer chaque document OpenOffice et l'ajouter dans l'archive
- envoyer vers le navigateur l'archive des documents OpenOffice

Olivier

By: mac44
Date: 2007-09-03
Time: 16:21

Re: Document non généré

On ne peut pas avoir 1 seul document avec "n" pages, comme un publipostage classique ?