Categories > OpenTBS with ODT >

Publipostage avec lignes de commande

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

Publipostage avec lignes de commande

Bonjour,

J'ai besoin de faire un publipostage à partir d'une table contenant des lignes de commandes.

La table contient l'adresse du client et le produit commandé.
Un client aura autant d'enregistrement dans la table qu'il commandé de produit.

Je pensais gérer dans mon php une boucle foreach avec une détection de changement de client pour faire un changement de document.

Est-ce possible ou dois-je faire cela dans mon doc odt ?

Merci d'avance
By: Olivier
Date: 2007-09-02
Time: 10:54

Re: Publipostage avec lignes de commande

Bonjour,

Il faut fusionner autant de documents que de clients. Il va y avoir deux requetes imbriquées.
- La 1ere pour la liste des clients qui va être retourné par exemple dans une variable "$array_clients"
- La 2eme pour la liste des produits commandés par client qui va être le block de données à fusionner, exemple $array_liste_produit_pour_un_client

$OOo = new clsTinyButStrongOOo;
$OOo->SetZipBinary('zip');
$OOo->SetUnzipBinary('unzip');
$OOo->SetProcessDir('tmp/');
...
...
foreach ($array_clients as $client) {
  $OOo->NewDocFromTpl('bon_de_commande.odt');
  ...
  $OOo->MergeBlock('blk1',$array_liste_produit_pour_un_client) ;
  ...
  $OOo->LoadXmlFromDoc('content.xml');
  $OOo->SaveXmlToDoc();
  ...
  ...
  $OOo->RemoveDoc();
}

Olivier