Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[WD7.5] Fichier RTF

3 réponses
Avatar
Bob Morane
Bonsoir à tous,

Je souhaite, dans un document word, remplacer des balises (comme [CLIENT]),
par des valeurs contenues dans une base.
Le plus simple que j'ai trouvé, mais je me trompe peut-être a été de créer
le document source (avec les balises) en RTF.
Ensuite je charge ce fichier dans un champs de saisie caché (RtfCharge), je
modifie mon champs de saisie par programmation, puis je le sauve (fEcrit).
Le problème, c'est que mon document source est au format A4, et mon document
final passe en US letter.
Quelqu'un a-t-il une solution à ce problème? ... ou une autre manière de
faire!

Merci par avance.
Eric CHOQUET

3 réponses

Avatar
Sam \(au boulot\)
Une méthode qu'à priori pas mal de monde utilise, est de piloter Word avec
un lien OLE, il est alors possible de faire des recherches/substitutions, de
sauver, d'imprimer, etc...

Attention, Word étant un 'poids lourd', avec du volume (500 page par ex.) ce
sera un peu long...

Sam.

"Bob Morane" a écrit dans le message de
news:40479615$0$28630$
Bonsoir à tous,

Je souhaite, dans un document word, remplacer des balises (comme


[CLIENT]),
par des valeurs contenues dans une base.


Avatar
Roumegou Eric
Bob Morane a formulé la demande :
Bonsoir à tous,

Je souhaite, dans un document word, remplacer des balises (comme [CLIENT]),
par des valeurs contenues dans une base.
Le plus simple que j'ai trouvé, mais je me trompe peut-être a été de créer
le document source (avec les balises) en RTF.
Ensuite je charge ce fichier dans un champs de saisie caché (RtfCharge), je
modifie mon champs de saisie par programmation, puis je le sauve (fEcrit).
Le problème, c'est que mon document source est au format A4, et mon document
final passe en US letter.
Quelqu'un a-t-il une solution à ce problème? ... ou une autre manière de
faire!

Merci par avance.
Eric CHOQUET


Pourquoi tout simplement ne pas gérer cela en OLE et faire un
rechercheRemplace avec Word ?
Un ex de fusion Word à partir d'une table mémoire. Principe les
variables dans le modele sont exprimées comme suit @MAVAR.
On ouvre Word, on colle le texte, on balance les rechercher/remplacer.
gDocWord=allouer un objet automation "Word.Application"
document=fSélecteur(fRepEnCours(), "", "Sélectionnez un document
modéle Word",...
"Document Word"+TAB+"*.doc", "doc", fselOuvre+fselExiste)

SI fRep(document)="" ALORS RETOUR

gDocWord>>Visible = OLEVrai
gDocWord>>Documents>>Open(document,OLEIgnore,OLEVrai)
gDocWord>>Selection>>WholeStory() //selection tout
gDocWord>>Selection>>Copy() // copie
gDocWord>>Documents>>Close(OLEFaux) // ferme le modele
gDocWord>>Documents>>Add() // ouvre un nouveau doc

POUR i1=1 A {Matable}..Occurrence
TableSelectPlus({Matable},i1)


gDocWord>>Selection>>Paste() // colle le texte

Word_remplace("@BAR_ID",BAR_ID) // Id barême
Word_remplace("@BAR_TITRE",BAR_TITRE) // Titre du barême
Word_remplace("@BAR_COMM",BAR_COMM) // Commentaires
Word_remplace("@BAR_SCALEBORNE",BAR_SCALEBORNE) //
Précision des bornes
Word_remplace("@BAR_SCALERES",BAR_SCALERES) // Précision
des résultats
Word_remplace("@DATE_CREAT",DATE_CREAT) // Créé le
Word_remplace("@LOGIN_CREAT",LOGIN_CREAT) // Créé par
Word_remplace("@DATE_MODIF",DATE_MODIF) // Modifié le
Word_remplace("@LOGIN_MODIF",LOGIN_MODIF) // Modifié par
Word_remplace("@SRC_CREAT",SRC_CREAT) // Source création
Word_remplace("@SRC_MODIF",SRC_MODIF) // Source
Modification
Word_remplace("@REF_IMPORT",REF_IMPORT) // Id Ref Import
// saut de page
gDocWord>>Selection>>InsertBreak()
TableSelectMoins({Matable},i1)
FIN // fin pour i=1 à table..occurrence

Info("Vos fusions sont prêtes dans Word")
// deconnexion de Word
libérer gDocWord
Multitache()

--
Eric Roumegou
http://cerbermail.com/?Wk2D8D62KI
(cliquez sur le lien ci-dessus pour me contacter en privé)
Avatar
Roumegou
Oups ! il manquait le principal, la procedure WOrd_Remplace

PROCEDURE Word_remplace(avant,apres)
WdReplaceAll est un entier = 2
wdFindContinue est un entier = 1
wdReplaceOne est un entier =1
wDFindStop est un entier =0

QUAND EXCEPTION
RETOUR
FIN

gDocWord>>Selection>>Find>>Execute(avant,OLEFaux,...
OLEVrai,OLEFaux,OLEFaux,OLEFaux,...
OLEVrai,wdFindContinue,OLEFaux,apres,WdReplaceAll)

--
Eric Roumegou
http://cerbermail.com/?Wk2D8D62KI
(cliquez sur le lien ci-dessus pour me contacter en privé)