 |
ActiveDelphi .: O site do programador Delphi! :.
|
Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
eulicio Membro Junior

Registrado: Quinta-Feira, 15 de Janeiro de 2004 Mensagens: 336
|
Enviada: Dom Jul 25, 2010 5:52 pm Assunto: Exportar Tabela Formatada |
|
|
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 |
|
 |
cyberdisk Colaborador

Registrado: Domingo, 4 de Julho de 2010 Mensagens: 2391 Localização: São José dos Campos - SP
|
Enviada: Seg Jul 26, 2010 12:27 pm Assunto: |
|
|
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 |
|
 |
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|