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!
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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.
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" <hubbobmorane.nospam@hotmail.com> a écrit dans le message de
news:40479615$0$28630$626a14ce@news.free.fr...
Bonsoir à tous,
Je souhaite, dans un document word, remplacer des balises (comme
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.
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é)
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é)
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é)
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
-- Eric Roumegou http://cerbermail.com/?Wk2D8D62KI (cliquez sur le lien ci-dessus pour me contacter en privé)
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
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