ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Mesclar documento do word

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
jo83
Novato
Novato


Registrado: Sexta-Feira, 16 de Setembro de 2005
Mensagens: 57

MensagemEnviada: Sex Nov 04, 2005 8:47 am    Assunto: Mesclar documento do word Responder com Citação

Estou criando um documento do word como se fosse uma especie de mala direta.Consegui salvar os dados da tabela em uma aquivo txt e chamar o arquivo do word mas como como faço que ao mesmo tempo ele já apareça mesclado pois eu criei nele uma mala direta?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
joemil
Moderador
Moderador


Registrado: Quinta-Feira, 25 de Março de 2004
Mensagens: 9098
Localização: Sinop-MT

MensagemEnviada: Sex Nov 04, 2005 10:06 am    Assunto: Mesclar documento do word Responder com Citação

Very Happy blz?

siga esses passos e veremos se ficou do seu jeito

1. abra o arquivo de maladireta no word
2. crie uma nova macro e clique no botao mesclar
3. apos finalizar a mesclagem do documento, salve a macro (nao esqueca do nome da macro
4. no delphi, adicione ComObj na clausula uses
5. use o seguinte codigo:

procedure TForm1.Button1Click(Sender: TObject);
var Word: Variant;
begin
Word := CreateOleObject(\'Word.Application\');
Word.Visible := True;
Word.Documents.Open(\'d:\\maladir.doc\'); // nome do arquivo maladireta
Word.Run(\'Mesclar\'); // mesclar -> nome da macro
Word.ActiveDocument.SaveAs(\'d:\\teste.doc\');// nome temporario
Word.Quit;
end;

espero q este codigo tenha ajudado
_________________
<b>SEMPRE COLOQUE [RESOLVIDO] NO SEU POST</b>
Enviar imagens: http://tinypic.com/
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
jo83
Novato
Novato


Registrado: Sexta-Feira, 16 de Setembro de 2005
Mensagens: 57

MensagemEnviada: Sex Nov 11, 2005 12:15 pm    Assunto: Mesclar documento do word Responder com Citação

Não funcionou JoemiL, porque uso campos de mesclagem da tabela,veja tenho o seguinte código:

procedure TfrmCriDoc.SpeedButton3Click(Sender: TObject);
Var
Arq:TextFile;
st,caminho , cliente : string;
caminhoDoc : OleVariant;

begin
DataModule2.IBTabCliente.Open;
DataModule2.IBTabCliente.first;
st := Application.ExeName;
caminho:= extractfilepath(st)+\'Dados\\Clientes.txt\';
AssignFile(Arq,caminho);
Rewrite(Arq);
cliente := cmb_cli.keyvalue;
with Qry do begin
Close;
SQL.Clear;
SQL.Add(\'SELECT * FROM TABPROCESSO \');
SQL.Add(\' INNER JOIN TABADVOGADO ON (TABPROCESSO.CODADVOGADO=TABADVOGADO.CODADVOGADO) \');
SQL.Add(\' INNER JOIN TABCLIENTE ON (TABPROCESSO.CODCLIENTE=TABCLIENTE.CODCLI) \');
SQL.Add(\' INNER JOIN TABACAO ON (TABPROCESSO.CODACAO=TABACAO.CODACAO) \');
SQL.Add(\' WHERE codcli = \'+cliente);
Open;
end;
Writeln(Arq,\'NOME;NACIONALIDADE;MAIORIDADE;REGISTRO-NAS;MAE;NACIONALIDADE2;ESTCIVIL2;RG;\'+
\'CPF;ENDERECO;BAIRRO;CIDADE;ESTADO;NOMEAcao;nomeADVOGADO;OAB\');

Writeln(Arq,Qry.FieldByName(\'nome\').AsString+ \'; \'+Qry.FieldByName(\'nacionalidade\').AsString+
\'; \'+Qry.FieldByName(\'maioridade\').AsString+ \'; \'+Qry.FieldByName(\'registronas\').AsString+
\'; \'+Qry.FieldByName(\'mae\').AsString+ \'; \'+Qry.FieldByName(\'nacionalidade2\').AsString+
\'; \'+Qry.FieldByName(\'estcivil2\').AsString+ \'; \'+Qry.FieldByName(\'RG\').AsString+
\'; \'+Qry.FieldByName(\'CPF\').AsString+ \'; \'+Qry.FieldByName(\'Endereco\').AsString+
\'; \'+Qry.FieldByName(\'Bairro\').AsString+ \'; \'+Qry.FieldByName(\'cidade\').AsString+
\'; \'+Qry.FieldByName(\'estado\').AsString+ \'; \'+Qry.FieldByName(\'nomeacao\').AsString+
\'; \'+Qry.FieldByName(\'nomeadvogado\').AsString+ \'; \'+Qry.FieldByName(\'OAB\').AsString);
CloseFile(Arq);


st := Application.ExeName;
caminhodoc:= extractfilepath(st)+\'Documentos\\GRATUIDADE.DOC\';
WordApplication1.Documents.Open(caminho,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam);

WordApplication1.WindowState:=wdWindowStateMaximize;
WordApplication1.Caption:=\'Benefício de Gratuidade\';
WordApplication1.Visible:=True;
WordApplication1.Documents.Open(caminhodoc,
EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam);
WordApplication1.Run(\'GRATUIDADE.DOC\');
end;

Só falta mesclar agora ,com????

end;
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB