bom dia a todos
em meu computador também não existe o arquivo winpar.ch
tente fazer o seguinte( um exemplo bem simples possível)
crie um arquivo rtf padrao por exemplo padrao.rtf neste arquivo todo conteudo que vc queira mudar voce coloca +- assim CLINOME, CLINFE, CLIEMISSAOe por ai vai.
no seu prg crie uma estrutura de tabela desta forma:
ARQRTF := "C:\TESTE\PADRAO.RTF"
TESTE := "C:\TESTE\TABELA.DBF"
CAMPOS := {{"DADOS","C",500,00}}
c_Contrato := ""
DBCREATE( TESTE, CAMPOS )
USE ( TESTE ) ALIASs TESTE NEW EXCLUSIVE
SELECT("TESTE")
APPEND FROM (ARQRTF) SDF
TESTE->( DBGOTOP() )
DO WHILE !TESTE->( EOF() )
*aqui vc vai mudando suas variáveis de acordo com sua necessidade,
IF "CLINOME" $ ARQDBF->DADOS
CSTR := STRTRAN( ARQDBF->DADOS, "CLINOME", c_NomCli )
ELSEIF "CLINFE" $ ARQDBF->DADOS
CSTR := STRTRAN( ARQDBF->DADOS, "CLINFE", c_NumNfe )
ELSEIF "CLIEMISSAO" $ ARQDBF->DADOS
CSTR := STRTRAN( ARQDBF->DADOS, "CLIEMISSAO", c_DatEmi )
...
ELSE
CSTR := ARQDBF->DADOS
ENDIF
c_Contrato += ALLTRIM( CSTR ) + CRLF
TESTE->( DBSKIP() )
ENDDO
MEMOWRIT( "c:\test\novortf.rtf", c_Contrato )
*depois é so mandar abrir e imprimir no word
IMPRIME_WORD( "c:\test\novortf.rtf")
*---------------------------------------------------------------------------------
procedure IMPRIME_WORD( CARQ )
Local oWord
oWord:=TOleAuto():New( "Word.Application" )
oWord:Documents:Open( CARQ )
oWord:WindowState := 1
oWord:Visible := .t.
oWord:PrintOut() //PARA IMPRIMIR DIRETO
Return nil
não precisa declarar este winpar.ch
abraços