MS Word com merge

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Hasse
Usuário Nível 4
Usuário Nível 4
Mensagens: 820
Registrado em: 19 Out 2004 10:30
Localização: Jaraguá do Sul - SC

MS Word com merge

Mensagem por Hasse »

Boa noite amigos.

Mais uma vez preciso de auxílio para o seguite assunto:

1-Tenho um arquivo mestre chamado "Teste.doc", com os dados abaixo:

Código: Selecionar todos

O Sr. <Nome>, <EstCivil>, residente à <Ender>, bairro de <Bairr>, cidade de <Cidad>, estado de <EstBr>.
2-Outro arquivo temporário chamado "Merge.txt", criado via aplicativo xHarbour, com os dados abaixo:

Código: Selecionar todos

<Nome>          Osmar Xavier Dias Ital
<EstCivil>      casado
<Ender>         Rua Gumercindo, 1.554
<Bairr>         Centro
<Cidad>         Jaraguá
<EstBr>         SC
Como fazer para fundir (merge) o segundo documento dentro o primeiro, automaticamente.

Trata-se do preenchimento automático de um Contrato.

Alguém tem experiência neste assunto e que possa me ajudar, dando sugestões, idéias ou soluções.
Hasse
CP200 / CP500 / Basic / dBase III / dBase IV / Clipper Summer / RTlink / Exospace.
Clipper 5.3b / Blinker 7.0 / CDX com TAG
xHarbour 1.2.1-6604 / Borland C++ (5.5.1) 32 bit / HBmake.
Harbour 3.2.0dev (r1412121623) / MINGW / HBM2 / MiniGui HMG 3.1.4 / IDE (Roberto Lopez).
"Conheça todas as teorias, domine todas as técnicas, mas, quando tocares uma alma humana, seja apenas outra alma humana." (C.G.Jung)
Hasse
Usuário Nível 4
Usuário Nível 4
Mensagens: 820
Registrado em: 19 Out 2004 10:30
Localização: Jaraguá do Sul - SC

Re: MS Word com merge - RESOLVIDO

Mensagem por Hasse »

Bom dia amigos.

Resolvi o assunto da seguinte forma:

1-Foi criado um arquivo "MatrizWP.RTF", que pode ser feito via 'MS Word' ou 'WordPerfect' (Corel).

Eu usei o WordPerfect pois cria um arquivo bem mais enxuto. Vejam:

MSWord - "MatrizMS.rtf " - 8.192 bytes
WordPerfect - "MatrizWP.rtf" - 4.096 bytes.

Para conferir, anexei os arquivos "Matriz.rtf" e o resultado final no "Arq002.rtf".

Exemplo:

Código: Selecionar todos

Eu, abaixo assinado, #@Nome@#, #@EstCivil@#, residente à #@Ender@#, bairro #@Bairr@#, CEP #@Cep@#, cidade de #@Cidad@#, estado de #@EstBr@#, declaro que recebi a máquina de costura industrial, marca #@Marc@#, tipo #@Typ@#, modelo #@Model@#, cabeçote número #@Numer@#, equipada com motor #@OrigMot@#.
2-A rotina abaixo lê este arquivo e faz a substituição das variáveis delimitadas por #@....@#.

3-A seguir o arquivo é gravado, ainda no formato RTF, com outro nome, sequencial, para manter o documentação para qualquer consulta posterior.

4-O arquivo é aberto no MSWord ou WordPerfect.

Código: Selecionar todos

Function Main()

USE Cadastro alias CAD

DBGoTo( 551 )                       && Simulando a localização do registro desejado.

c_Contrato := Memoread( "MatrizWP.rtf" )

c_Contrato := STRTRAN( c_Contrato, "#@Nome@#",     ALLTRIM( Cad->NOME ) )
c_Contrato := STRTRAN( c_Contrato, "#@EstCivil@#", ALLTRIM( Cad->CIVIL ) )
c_Contrato := STRTRAN( c_Contrato, "#@Ender@#",    ALLTRIM( Cad->ENDER ) )
c_Contrato := STRTRAN( c_Contrato, "#@Bairr@#",    ALLTRIM( Cad->BAIRRO ) )
c_Contrato := STRTRAN( c_Contrato, "#@Cep@#",      ALLTRIM( Cad->CEP ) )
c_Contrato := STRTRAN( c_Contrato, "#@Cidad@#",    ALLTRIM( Cad->CIDADE ) )
c_Contrato := STRTRAN( c_Contrato, "#@EstBr@#",    ALLTRIM( Cad->ESTADO ) )
c_Contrato := STRTRAN( c_Contrato, "#@Marc@#",     "Lanmax" )
c_Contrato := STRTRAN( c_Contrato, "#@Model@#",    "LM-303-HR" )
c_Contrato := STRTRAN( c_Contrato, "#@Typ@#",      "Overlock" )
c_Contrato := STRTRAN( c_Contrato, "#@Numer@#",    "091.355.495" )
c_Contrato := STRTRAN( c_Contrato, "#@OrigMot@#",  "importado" )

Memowrit("Arq002.rtf", c_Contrato)

cText2 := 'START "C:\Arquivos de programas\Microsoft Office\OFFICE11\WinWord.exe" Arq002.rtf'
RUN( cText2 )
Na realidade, o "Tico-e-Teco" encontraram a solução durante o sono e ela estava pronta e funcionando na minha cabeça pela manhã. Bastaram alguns testes.

O que ainda preciso saber é como fazer com que o MS Word, ao abrir o arquivo gerado, apresente-se à frente da tela do aplicativo e não atrás como está acontecendo agora. Há alguma solução para isto ?

Obrigado pela atenção daqueles que procuraram me auxiliar.
Anexos
Arq002.rtf
(4.84 KiB) Baixado 86 vezes
MatrizWP.rtf
(1.83 KiB) Baixado 73 vezes
Hasse
CP200 / CP500 / Basic / dBase III / dBase IV / Clipper Summer / RTlink / Exospace.
Clipper 5.3b / Blinker 7.0 / CDX com TAG
xHarbour 1.2.1-6604 / Borland C++ (5.5.1) 32 bit / HBmake.
Harbour 3.2.0dev (r1412121623) / MINGW / HBM2 / MiniGui HMG 3.1.4 / IDE (Roberto Lopez).
"Conheça todas as teorias, domine todas as técnicas, mas, quando tocares uma alma humana, seja apenas outra alma humana." (C.G.Jung)
Avatar do usuário
ANDRIL
Usuário Nível 5
Usuário Nível 5
Mensagens: 1298
Registrado em: 06 Jul 2004 00:44
Contato:

Re: MS Word com merge

Mensagem por ANDRIL »

Hasse tenta assim:

Código: Selecionar todos

cText2 := 'START /max "C:\Arquivos de programas\Microsoft Office\OFFICE11\WinWord.exe" Arq002.rtf'
ou

Código: Selecionar todos

cText2 := 'CMD /C START /max "C:\Arquivos de programas\Microsoft Office\OFFICE11\WinWord.exe" Arq002.rtf'
Se nao der certo, obtenha ajuda sobre o comando CMD /? e START /? o caminho é por ai, isso supondo que voce esteja utilizando o XP.

Ate+,
Clipper 5.2e / Blinker 5.1 / Harbour 3.2 / GTwvg
Responder