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 

Exportar Tabela Formatada

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


Registrado: Quinta-Feira, 15 de Janeiro de 2004
Mensagens: 336

MensagemEnviada: Dom Jul 25, 2010 5:52 pm    Assunto: Exportar Tabela Formatada Responder com Citação

Olá pessoal,
preciso exportar os dados de uma pequena tabela que só tem dois campos (Histórico e Valor) com 20 ou trinta registros para depois inserir
isso num texto do Word. tem que estar formatado (com as colunas alinhadas direitinho). fiz:

procedure TForm6.Button1Click(Sender: TObject);
var arq: TextFile;
linha: String;
begin
AssignFile(arq,'C:\INICIALTRAB9\VerbasPleiteadas.txt');
Rewrite(arq);
DataModule1.cdsVRBPLT.First;
While not DataModule1.cdsVRBPLT.Eof do
begin
WriteLn(arq,AlinhaE(DataModule1.cdsVRBPLTVPVERBAS.AsString,60)+
AlinhaD(FormatFloat('#,#0,00',DataModule1.cdsVRBPLTVPVALOR.AsFloat),20));
DataModule1.cdsVRBPLT.Next;
end;
CloseFile(arq);
end;

essa rotina trava (congela) o programa e não dá nenhuma mensagem.

fiz também:

procedure TForm6.BitBtn8Click(Sender: TObject);
var
WordApp,WordDoc,WordTable,WordRange : Variant;
Row, Column : Integer;
begin
WordApp:= CreateOleObject('WordBasic');
WordApp.AppShow;
WordDoc:= CreateOleObject('Word.Document');
WordRange:= WordDoc.Range;
WordTable:= WordDoc.Tables.Add(
WordDoc.Range,1,DataModule1.cdsVRBPLT.FieldCount);
for Column:= 0 to DataModule1.cdsVRBPLT.FieldCount-1 do
WordTable.Cell(1,Column+1).Range.Text:=
DataModule1.cdsVRBPLT.Fields.Fields[Column].FieldName;
Row := 2;
DataModule1.cdsVRBPLT.First;
While Not DataModule1.cdsVRBPLT.Eof do
begin
WordTable.Rows.Add;
for Column:= 0 to DataModule1.cdsVRBPLT.FieldCount-1 do
WordTable.Cell(Row,Column+1).Range.Text:=
DataModule1.cdsVRBPLT.Fields.Fields[Column].DisplayText;
DataModule1.cdsVRBPLT.Next;
Row:= Row+1;
End;
WordDoc.SaveAs('C:\INICIALTRAB9\VerbasPleiteadas.doc');
WordDoc:= unAssigned;
end;

esta rotina dá um erro de 'Sequência de Classe Inválida'.

agradeço dicas e ajuda ou ainda se alguém tiver alguma outra rotina para exportação (que funcione bem) e puder me enviar seria ótimo.
obrigado. []s. eulício.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
cyberdisk
Colaborador
Colaborador


Registrado: Domingo, 4 de Julho de 2010
Mensagens: 2391
Localização: São José dos Campos - SP

MensagemEnviada: Seg Jul 26, 2010 12:27 pm    Assunto: Responder com Citação

Código:
procedure TForm6.Button1Click(Sender: TObject);
var arq: TextFile;
linha: String;
begin
AssignFile(arq,'C:\INICIALTRAB9\VerbasPleiteadas.txt');
Rewrite(arq);
DataModule1.cdsVRBPLT.First;
While not DataModule1.cdsVRBPLT.Eof do
begin
WriteLn(arq,AlinhaE(DataModule1.cdsVRBPLTVPVERBAS.AsString,60)+
AlinhaD(FormatFloat('#,#0,00',DataModule1.cdsVRBPLTVPVALOR.AsFloat),20));
DataModule1.cdsVRBPLT.Next;
end;
CloseFile(arq);
end;


O erro parace estar no tempo em que ele precisa para alinhar as linhas antes de passar para o proximo registro da tabela

experimente usar sleep(1000) antes do proximo next

abraço
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
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