Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Bonjour, je voudrais faire un cadre autour d'un titre dans un document word.
Je ne passe pas par un template, j'écris mes données telle quelle dans mon document word et je voudrais mettre un cadre.
Dans la macro word il est écris :
Options.DefaultBorderLineWidth = wdLineWidth100pt With Selection.Font.Borders(1) .LineStyle = Options.DefaultBorderLineStyle .LineWidth = Options.DefaultBorderLineWidth .Color = Options.DefaultBorderColor End With
Comment puis-je traduire ça en langage pb, dans ma DW ????
Merci
Dernière modification par Sylvie de hannut (23-11-2011 13:46:33)
Hors ligne
42.
En fait c'est quoi le rapport entre DW, Word et OLE ?
Le document est fabriqué via OLE ? C'est une DW qui sauve un fichier RTF ?
Hors ligne
bonjour, tu utilises quelle méthode pour créer ton document word à partir de ta datawindow ?
Hors ligne
je fais des
"ole_word.Selection.TypeText(ls_data)" pour chaque donnée
Hors ligne
Ça fonctionne ça ?
ole_word.Options.DefaultBorderLineWidth = 8 //wdLineWidth100pt ole_word.Selection.Font.Borders(1).LineStyle = 1 //Options.DefaultBorderLineStyle ole_word.Selection.Font.Borders(1).LineWidth = 4 //Options.DefaultBorderLineWidth ole_word.Selection.Font.Borders(1).Color = -16777216 //Options.DefaultBorderColor
Hors ligne
sinon, çà ca passe:
long ll_start, ll_end ll_start = ole_object.Selection.Range.Start ole_object.Selection.TypeText("hElLO WORlD") ll_end = ole_object.Selection.Range.Start ole_object.Selection.SetRange(ll_start, ll_end) oleobject ole_border //With Selection.Font.Borders(1) ole_border = ole_object.Selection.Font.Borders[1] ole_border.LineStyle = ole_object.Options.DefaultBorderLineStyle ole_border.LineWidth = ole_object.Options.DefaultBorderLineWidth ole_border.Color = ole_object.Options.DefaultBorderColor
Hors ligne
ben non, à l'exécution j'ai : "error calling external object function borders
Hors ligne
Solution de Xlat :
J'ai une erreur : "Name not found accessible external object property linestyle"
Hors ligne
la solution de Xlat fonctionne à merveille
Y a plus qu'à retiré le cadre après la phrase désirée, car tout est encadré maintenant
Merci beaucoup
Hors ligne
J'ai encore un problème :
pour que word arrête d'encadré les phrases suivants je fait
"
ll_start = ole_word.Selection.Range.Start ls_data = "Rapport établi par André Frankinet" ole_word.Selection.TypeText(char(9) + ls_data) ll_end = ole_word.Selection.Range.Start ole_word.Selection.SetRange(ll_start, ll_end) ole_border = ole_word.Selection.Font.Borders[1] ole_border.LineStyle = ole_word.Options.DefaultBorderLineStyle ole_border.LineWidth = ole_word.Options.DefaultBorderLineWidth ole_border.Color = ole_word.Options.DefaultBorderColor ole_word.Selection.TypeParagraph ole_border.LineStyle = 0 // Suppression de l'encadré ole_word.Selection.TypeParagraph
"
Mais ce que je ne comprend pas c'est que mon titre est écrit puis effacé avant l'écriture des lignes suivantes ??????
Hors ligne
il faut le déselectionner avant de continuer, non ?
Hors ligne
désélectionner qui ???, l'encadré ???
Je veux biens mais comment faire ???
J'ai fait un disconnet et un detroy mais ça n'a pas marché, alors j'essaye le linestyle = 0 mais ça va pas non plus.
Tu saurais me dire comment déselectionner mon cadre, merci
Hors ligne
pour déselectionner le text :
Selection.SetRange Selection.Range.End, Selection.Range.End
mais pour déselectionner le text et reprendre le style "normal" :
ole_word.Selection.SetRange( ole_word.Selection.Range.End+1, ole_word.Selection.Range.End+1 )
Hors ligne
ça y est ça marche !!!!
Xlat, j'ai fait comme tu as dit, mais le reste du texte était encore encadré alors après ta commande j'ai rajouté le
ole_border.LineStyle = 0
et comme ça ça marche
Hors ligne
cool, n'oublie pas le [RESOLU]
et édite ton message en utilisant code=pb (en minuscules)
Hors ligne