>>>"a) Entrada de R$ %2.816,52 (Dois Mil Oitocentos e Dezesseis Reais e >>>Cinqüenta e Dois Centavos )%% em %2 (Duas )%% parcelas %NÃO REAJUSTÁVEIS e SEM >>>JUROS%%, sendo a primeira no valor de R$ %1.408,26%% no dia %15/03/2004%%, e a >>>segunda no valor de R$ %1.408,26%% no dia %15/04/2004%%" >>>>>>Im replacing the text in Word this way..
>>>LOCAL oWord AS "Word.Application" >>>IF TYPE("oWord") <> "O" >>> oWord = CREATEOBJECT("Word.Application") >>>ENDIF >>> >>>oWord.VISIBLE = .F. >>>loSelection = oWord.ActiveWindow.ActivePane.SELECTION >>>loSelection.FIND.ClearFormatting() >>> >>>WITH loSelection.FIND >>> .TEXT = "@@TEXT1" >>> .Replacement.TEXT = "" >>> .Forward = .T. >>> .WRAP = wdFindContinue >>> .FORMAT = .F. >>> .MatchCase = .F. >>> .MatchWholeWord = .F. >>> .MatchWildcards = .F. >>> .MatchSoundsLike = .F. >>> .MatchAllWordForms = .F. >>>ENDWITH >>> >>>loSelection.FIND.TEXT = "@@TEXT1" >>>loSelection.FIND.Execute() >>>loSelection.TypeText(TRIM(VFP_VAR1)) >>>loSelection.GOTO(3,1,1) >>>>>>
oWord.ActiveDocument.Variables(tcVarName).value = cValue
or :with oWord.ActiveDocument .Range(.Bookmarks(tcBookmarkName).Range.Start, ; .Bookmarks(tcBookmarkName).Range.End).Text = m.tcText endwithSample with bookmarks. Here first a template with bookmarks is created. Next a new file is created based on that template and text marked with some bookmarks are replaced with new text (however be carefull I was lazy to preserve the bookmark itself, that's for the replaced ones bookmarks are gone.)
#include wdconstants.h #Define NL Chr(13)+Chr(10) *** set the LOCALEID to English nlLocaleId=Sys(3004) && Save local id =Sys(3006,1033) && We will be sending instructions in English Use employee && test table m.lcFileName = Sys(5)+Curdir()+'myBoookmarkTest.doc' oWordDocument=Createobject("word.application") && Create word object With oWordDocument .Documents.Add && Create a new doc Scan .Selection.TypeText(Transform(emp_id)+NL+First_Name-(' '+Last_Name)+NL) .Selection.Collapse(wdCollapseEnd) lnRangeStart = .Selection.Range.End .Selection.TypeText(Nvl(notes,'')+NL+NL) lnRangeEnd = .Selection.Range.End .Activedocument.Bookmarks.Add('b'+Alltrim(Transform(emp_id)),; .Activedocument.Range(lnRangeStart,lnRangeEnd)) Endscan .Activedocument.SaveAs(m.lcFileName) .Activedocument.Saved = .T. .Quit Endwith * Now create a new file based on saved template * and change text based on bookmarks Select employee lcEmployeeRecnos = '1,3,4,5,6' lnEmployee = Alines(aEmpNo,lcEmployeeRecnos,.T.,',') Dimension aBookmarks[lnEmployee,2] && Change text for only few employee For ix=1 To lnEmployee Go Val(aEmpNo[m.ix]) aBookmarks[m.ix,1] = 'b'+Alltrim(Transform(emp_id)) aBookmarks[m.ix,2] = 'Notes for employee '+First_Name-(' '+Last_Name)+NL+NL Endfor oWord = Createobject('Word.Application') With oWord .Documents.Add(m.lcFileName) && New file based on template file For ix=1 To Alen(aBookmarks,1) With .Activedocument.Bookmarks(aBookmarks[m.ix,1]).Range .Text = aBookmarks[m.ix,2] .Font.Color = Rgb(255,0,0) .Font.Bold = .T. Endwith Endfor .Visible = .T. .Activate Endwith **** Set the LocaleId to the previous value =Sys(3006,Val(nlLocaleId))PS: If you still want to use find/replace approach :