Publipostage dans WD14
Utilisateur WDF
Inscrit:
25/03/2008 22:58
Post(s): 56
Bonjour

Je développe une application pour laquelle j'ai prévu d'éditer des courriers (convocation Assemblée Générale par exemple ) à partir de noms sélectionnés dans un champ table
J'utilise des états type courrier

Tant que je saisis le nom des rubriques [%NomdeRubrique%] (exemple: [%NuméroLicence%]) directement dans l'état, tout marche nickel

Seulement voilà, dès qu'il faut modifier le texte du courrier, il faut modifier l'état et re-compiler le projet, ce qui n'est pas très pratique (je ne souhaite pas mettre États et Requêtes à disposition suite à des expériences assez malheureuses)

Je charge donc le texte du courrier à partir d'un fichier texte et tout va bien excepté que le [%NomdeRubrique%] est imprimé tel quel (la valeur de la rubrique n'est pas actualisée en fonction des données lues)

Exemple je m'attend à voir [%Civilité%] remplacé par "Monsieur" dans l'état imprimé alors que sur l'état imprimé j'ai toujours [%Civilité%]

Y a t il un truc que j'ai oublié ? est ce possible déjà ?

Actuellement j'utilise la fonction remplace mais ça ralentit énormément !!!!

Merci d'avance de vos conseils

Contribution le : 08/01/2011 19:19
_________________
Que c'est compliqué quand on cherche et que c'est simple quand on a enfin trouvé
Créer un fichier PDF de la contribution Imprimer


Re: Publipostage dans WD14
Animateur WDF
Inscrit:
26/06/2002 16:24
De wdforge.org
Post(s): 2822
Bonjour,
A fonction remplace est effectivement longue.
Une autre possibilité est de parcourir caractère par caractère tout votre document à la recherche de balise de début de zone paramétrable. Il suffit alors d'envoyer le texte dans un tampon (autre champ) et envoyer les données à la place des balise de séparation en interprétant la balise au fil le l'eau. Cette solution permet de ne faire qu'un parcours de votre document et de traiter toutes les balises.

Exemple

C1 = "blabla <%MaBalise%> blablabla"
C2 = ""
quand on arrive sur <% on est sur un début de balise et C2 contient :
C2 = "blabla "
on envoie la donnée "TOTO"
et on continue
résultat :
C2 = "blabla TOTO blablabla"


Cela est possible simplement avec l'usage de la fonction Position() en tenant compte des position relative : troisième paramètre. à chaque occurrence trouvée, vous pouvez compléter C2, ajouter votre donnée, vous placer après la balise de fin et passer à la suite.
il vous faudra assurer le positionnement dans la la chaine et manipuler correctement votre pointeur.

Contribution le : 10/01/2011 10:52
_________________
R&B
Contact, CV.
Créer un fichier PDF de la contribution Imprimer


Re: Publipostage dans WD14
Utilisateur WDF
Inscrit:
25/03/2008 22:58
Post(s): 56
Bonjour et merci de ta réponse


Donc si je résume, je parcours lettre par lettre la chaine en C1 et je retranscris en C2 et remplacant les balises par la valeur stockée
A la fin du traitement C2 contiendra mon résultat

C'est bien ça ? (Désolé si ma réponse peut paraitre naive mais je suis autodidacte en informatique)

Contribution le : 19/01/2011 12:37
_________________
Que c'est compliqué quand on cherche et que c'est simple quand on a enfin trouvé
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant




Enregistrer votre réponse
CompteNom   Mot de passe   Authentification
Message:


Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2