fabian1085
Messages postés12Date d'inscriptionmercredi 11 février 2009StatutMembreDernière intervention25 août 2010
-
17 févr. 2009 à 11:28
TychoBrahe
Messages postés1309Date d'inscriptionsamedi 31 janvier 2009StatutMembreDernière intervention 5 juin 2013
-
18 févr. 2009 à 20:11
Bonjour,
J ai une fonction ci-dessous qui doit à partir des données passés en parametre lire un fichier modele, modifier les données necessaire et enregistrer ensuite dans un fichier de sortie. Ma fonction marche trés bien, mais le soucis est que je fais un boucle dans laquelle j appele cette fonction, et qd je vais voir le contenu du fichier de sortie une fois ma boucle effectuée, je ne vois que le modele de facture avec les champs modifier du premier passage de ma boucle dans mon fichier et pas les autres. Quelqu'un pourrait il m aider ?
donc cette fonction est appele dans une boucle for, et quand je regarde le resultat, je ne vois que le resultat du premier element de ma boucle et pas la suite.
TychoBrahe
Messages postés1309Date d'inscriptionsamedi 31 janvier 2009StatutMembreDernière intervention 5 juin 201312 18 févr. 2009 à 20:11
Décidément, tu as l'air d'avoir fait du C avant avant de découvrir php ^^ Une petite astuce : en php on peux utiliser foreach() pour parcourir un tableau, c'est bien plus pratique :)
Bref, en effet tu peux plutôt créer le tableau contenant les changements dans ta boucle et le passer en paramètre a ta méthode de création du rtf.
Au passage, si comme je le devine tu n'as pas besoin de différencier une erreur lors de la récupération du template d'une erreur lors de l'écriture du nouveau fichier, autant que ta méthode renvoie true ou false, il y a de vrais booleens en php.
Pour ce qui est de mettre plusieurs factures dans un seul fichier (une facture par page je suppose) c'est tout a fait possible. Je ne connais pas personellement les spécifications du formet rft mais elles sont librement disponibles à l'adresse suivante :
http://www.snake.net/software/RTF/ Bien entendu tu peux étudier le format rtf en créant des document avec un éditeur wysiwyg puis regardant ce qui a été généré (quoique ça risque d'être dur a lire).
Tu remarquera au passage que j'ai modifié le nom du fichier de sortie, en particulier en y ajoutant le nom du client afin d'éviter que tu n'écrive tout le temps dans la même.
Pour les changements, plutôt que de faire toute une kyrielle de str_replace() on préférera utiliser un seul strtr() avec un tableau. Une bonne chose serais de former le tableau avant l'appel la fonction afin d'éviter de passer trop de paramètres.
Ho, et si le non du template n'est pas destiné a changer autant le mettre en define afin d'écarter définitivement toute modification (une étourderie est vite arrivée, nous sommes tous des humains).
Sinon, est-il possible de voir ta boucle qui appelle ta fonction stp ?
fabian1085
Messages postés12Date d'inscriptionmercredi 11 février 2009StatutMembreDernière intervention25 août 20103 18 févr. 2009 à 19:46
Le code de ma boucle est assez long, je vais te mettre le principal
for($i=0;$i<=sizeof($monArray);$i++){
//monArray[$i] represante une serie de donnees qui doit etre facturee
/*Batterie de test pour voir si les information sont bonnes*/
....
/*Mise en forme des informations dans des tableau $intervention,$client,$fact*/
....
/*Appel de ma fonction*/
$this->creerFacture($fact, $client, $intervention);
}
Voila. Sinon pour le nom de fichier de sortie, c est justement l'objet de ma question, n'y a-t-il pas moyen de mettre toutes les factures dans le meme fichier afin de ne lancer qu un fichier comprenant tout les factures à l'impression et non pas un fichier par facture ?