Exportando para Word (ou apenas criando um .doc)
Pessoal estou fazendo um programa de gerênciamento de correspondências.
Gostaria que quando o usuário solicitar nova correspondência seja gerado um arquivo .doc e nele sejam colocadas algumas informações como data e número da correspondência.
Alguém saberia me dizer como posso invocar um arquivo .doc e enviar as informações para ele?
Valeu a ajuda.
FCS
Gostaria que quando o usuário solicitar nova correspondência seja gerado um arquivo .doc e nele sejam colocadas algumas informações como data e número da correspondência.
Alguém saberia me dizer como posso invocar um arquivo .doc e enviar as informações para ele?
Valeu a ajuda.
FCS
Fcs-bh
Curtidas 0
Respostas
Ilanocf
22/07/2003
Tente o seguinte:
Coloque os seguintes componentes:
- WordApplication1
- WordDocument1
- WordFont1
- WordParagraphFormat1
------------------------------------------------------------------
procedure TForm1.SpeedButton1Click(Sender: TObject);
Var
Texto, Titulo:WideString;
begin
WordApplication1.Connect;
WordApplication1.Visible:=True;
//TÍTULO DO DOCUMENTO:
//---------------------------------------------------
Titulo:=´UNIDADE CENTEC DE JUAZEIRO DO NORTE´ + #13 + 13 + ´CERTIFICADO´ + 13 + 13;
WordDocument1.Content.InsertAfter(Titulo);// Insere o título do documento.
//---------------------------------------------------
//CORPO DO DOCUMENTO:
//---------------------------------------------------
WordFont1.ConnectTo(WordDocument1.Content.Font);
WordFont1.Bold:=0; //Não aplica o negrito o texto
//WordFont1.Bold:=1; //Aplica o negrito
WordFont1.Italic:=0; //Não aplica o itálico no texto
//WordFont1.Italic:=1; //Aplica o itálico
WordFont1.Size:=12; //Aplica o tamanho da fonte para 20
WordParagraphFormat1.ConnectTo(WordDocument1.Content.Get_ParagraphFormat);
Texto:=#9 + ´Certifico que, ´ + Table1NomeDoAluno.Text + ´filho(a) de ´ + Table1NomeDoPai.Text + ´ e ´ + Table1NomeDaMae.Text + ´, nascido(a) em ´ + Table1DataDeNascimento.Text + ´ na cidade de ´ + Table1Cidade.Text;
WordDocument1.Content.InsertAfter(Texto);// Insere o texto da tabela.
//Application.Minimize; // Minimiza sua aplicação.
//---------------------------------------------------
end;
------------------------------------------------------------------
Caso vc use o Paradox e queira já deixar tudo tabulado certinho no Word, recomendo-lhe fazer o seguinte:
1 - Crie uma tabela no Access com os mesmos campos de sua tabela ou consulta Paradox;
2 - Crie duas rotinas: uma para excluir todos os registro já copiados na tabela Access e outra para copiar todos os registros da tabela ou consulta em Paradox para a tabela q vc criou em Access, dessa forma seus dados serão sempre atualizados (não será necessário criar uma chave primária na tabela Access);
3 - Crie dentro do Access uma consulta personalizando suas informações;
4 - Crie no Word uma mala direta vinculada à consulta do Access.
Dessa forma, vc terá todos os documentos já prontinhos e com suas formatações (negrito, itálico, centralizado, justificado, etc.) já prontas. Vc poderia vincular a mala direta para o Paradox, só q existe um problema: as letras acentuadas em sua tabela serão representadas graficamente por símbolos. Já passei por esta experiência e foi um sufoco! Mas resolvi assim. Se precisar da rotina, aí está:
------------------------------------------------
procedure TForm1.BtnExecutarClick(Sender: TObject);
Var
I:Integer;
begin
Dados.First;
while not Dados.Eof do begin
TBCertidoes.Append;
for i := 0 to Dados.FieldCount - 1 do
TBCertidoes.FieldByName(Dados.Fields[i].FieldName).Value :=Dados.Fields[i].Value;
TBCertidoes.Post;
Dados.Next;
end;
end;
------------------------------------------------
Espero ter ajudado!
Ilano.
Coloque os seguintes componentes:
- WordApplication1
- WordDocument1
- WordFont1
- WordParagraphFormat1
------------------------------------------------------------------
procedure TForm1.SpeedButton1Click(Sender: TObject);
Var
Texto, Titulo:WideString;
begin
WordApplication1.Connect;
WordApplication1.Visible:=True;
//TÍTULO DO DOCUMENTO:
//---------------------------------------------------
Titulo:=´UNIDADE CENTEC DE JUAZEIRO DO NORTE´ + #13 + 13 + ´CERTIFICADO´ + 13 + 13;
WordDocument1.Content.InsertAfter(Titulo);// Insere o título do documento.
//---------------------------------------------------
//CORPO DO DOCUMENTO:
//---------------------------------------------------
WordFont1.ConnectTo(WordDocument1.Content.Font);
WordFont1.Bold:=0; //Não aplica o negrito o texto
//WordFont1.Bold:=1; //Aplica o negrito
WordFont1.Italic:=0; //Não aplica o itálico no texto
//WordFont1.Italic:=1; //Aplica o itálico
WordFont1.Size:=12; //Aplica o tamanho da fonte para 20
WordParagraphFormat1.ConnectTo(WordDocument1.Content.Get_ParagraphFormat);
Texto:=#9 + ´Certifico que, ´ + Table1NomeDoAluno.Text + ´filho(a) de ´ + Table1NomeDoPai.Text + ´ e ´ + Table1NomeDaMae.Text + ´, nascido(a) em ´ + Table1DataDeNascimento.Text + ´ na cidade de ´ + Table1Cidade.Text;
WordDocument1.Content.InsertAfter(Texto);// Insere o texto da tabela.
//Application.Minimize; // Minimiza sua aplicação.
//---------------------------------------------------
end;
------------------------------------------------------------------
Caso vc use o Paradox e queira já deixar tudo tabulado certinho no Word, recomendo-lhe fazer o seguinte:
1 - Crie uma tabela no Access com os mesmos campos de sua tabela ou consulta Paradox;
2 - Crie duas rotinas: uma para excluir todos os registro já copiados na tabela Access e outra para copiar todos os registros da tabela ou consulta em Paradox para a tabela q vc criou em Access, dessa forma seus dados serão sempre atualizados (não será necessário criar uma chave primária na tabela Access);
3 - Crie dentro do Access uma consulta personalizando suas informações;
4 - Crie no Word uma mala direta vinculada à consulta do Access.
Dessa forma, vc terá todos os documentos já prontinhos e com suas formatações (negrito, itálico, centralizado, justificado, etc.) já prontas. Vc poderia vincular a mala direta para o Paradox, só q existe um problema: as letras acentuadas em sua tabela serão representadas graficamente por símbolos. Já passei por esta experiência e foi um sufoco! Mas resolvi assim. Se precisar da rotina, aí está:
------------------------------------------------
procedure TForm1.BtnExecutarClick(Sender: TObject);
Var
I:Integer;
begin
Dados.First;
while not Dados.Eof do begin
TBCertidoes.Append;
for i := 0 to Dados.FieldCount - 1 do
TBCertidoes.FieldByName(Dados.Fields[i].FieldName).Value :=Dados.Fields[i].Value;
TBCertidoes.Post;
Dados.Next;
end;
end;
------------------------------------------------
Espero ter ajudado!
Ilano.
GOSTEI 0