Fórum Progreessbar #424577
25/09/2012
0
ADOConnection
adoquery
datasourse
BD: ACCESS
eu gostaria tambem de colocar um progressbar.visible, em enquanto tiver exportando os dados para o excel. Como eu faço?
Paulo
Curtir tópico
+ 0Posts
25/09/2012
Joel Rodrigues
progressBar.Max := dataSet.RecordCount; dataSet.First; while not dataSet.Eof do begin //exportar linha do dataSet dataSet.Next; progressBar.Postition := progressBar.Postition + 1; end
Gostei + 0
25/09/2012
Paulo
progressBar.Max := dataSet.RecordCount; dataSet.First; while not dataSet.Eof do begin //exportar linha do dataSet dataSet.Next; progressBar.Postition := progressBar.Postition + 1; end
Não deu certo!
Gostei + 0
25/09/2012
Joel Rodrigues
Gostei + 0
26/09/2012
Alisson Santos
Gostei + 0
26/09/2012
Ricardo Araujo
// aqui você pode pegar a quantidade de registro que será passado para o progressBar.
ProgressBar.Max := Query.RecordCount;
// agora apontando para o primeiro registro.
Query.First;
//nesta etapa, enquanto o registro não chegar ao final continua fazendo o loop.
// aqui você pode usar também um for para fazer isto, é tranquilo.
while not Query.Eof do
begin
// arqui você pode colocar a rotina de exportação para excell.
// passando para o próximo registro.
Queryt.Next;
progressBar.Postition := progressBar.Postition + 1;
end;
espero ter ajudado.
Gostei + 0
26/09/2012
Paulo
// aqui você pode pegar a quantidade de registro que será passado para o progressBar.
ProgressBar.Max := Query.RecordCount;
// agora apontando para o primeiro registro.
Query.First;
//nesta etapa, enquanto o registro não chegar ao final continua fazendo o loop.
// aqui você pode usar também um for para fazer isto, é tranquilo.
while not Query.Eof do
begin
// arqui você pode colocar a rotina de exportação para excell.
// passando para o próximo registro.
Queryt.Next;
progressBar.Postition := progressBar.Postition + 1;
end;
espero ter ajudado.
tambem nao deu certo.
Os codigos da exportação que estou usando, são:
procedure TForm1.ExportarDados1Click(Sender: TObject);
Var
planilha : variant;
i, linha : Integer;
valorcampo : String;
begin
planilha := CreateoleObject('Excel.Application');
planilha.WorkBooks.Add(1);
planilha.caption := 'Exportando dados do CAD.SGT-PS.NET® para o Excel';
planilha.visible := True;
linha := -1;
if not ADOQuery1.IsEmpty then
for i := 0 to ADOQuery1.FieldCount - 1 do
begin
if ADOQuery1.Fields[i].FieldName <> 'Foto' then
planilha.cells[1,i+1] := ADOQuery1.Fields[i].FieldName;
end;
ADOQuery1.First;
while not ADOQuery1.Eof do
begin
Inc(linha);
for i := 0 to ADOQuery1.FieldCount -1 do
begin
planilha.cells[linha + 2,i+1] := ADOQuery1.Fields[i].AsString;
end;
ADOQuery1.Next;
end;
planilha.columns.Autofit;
Gostei + 0
26/09/2012
Ricardo Araujo
// aqui você pode pegar a quantidade de registro que será passado para o progressBar.
ProgressBar.Max := Query.RecordCount;
// agora apontando para o primeiro registro.
Query.First;
//nesta etapa, enquanto o registro não chegar ao final continua fazendo o loop.
// aqui você pode usar também um for para fazer isto, é tranquilo.
while not Query.Eof do
begin
// arqui você pode colocar a rotina de exportação para excell.
// passando para o próximo registro.
Queryt.Next;
progressBar.Postition := progressBar.Postition + 1;
end;
espero ter ajudado.
tambem nao deu certo.
Os codigos da exportação que estou usando, são:
procedure TForm1.ExportarDados1Click(Sender: TObject);
Var
planilha : variant;
i, linha : Integer;
valorcampo : String;
begin
planilha := CreateoleObject('Excel.Application');
planilha.WorkBooks.Add(1);
planilha.caption := 'Exportando dados do CAD.SGT-PS.NET® para o Excel';
planilha.visible := True;
linha := -1;
if not ADOQuery1.IsEmpty then
for i := 0 to ADOQuery1.FieldCount - 1 do
begin
if ADOQuery1.Fields[i].FieldName <> 'Foto' then
planilha.cells[1,i+1] := ADOQuery1.Fields[i].FieldName;
end;
ADOQuery1.First;
while not ADOQuery1.Eof do
begin
Inc(linha);
for i := 0 to ADOQuery1.FieldCount -1 do
begin
planilha.cells[linha + 2,i+1] := ADOQuery1.Fields[i].AsString;
end;
ADOQuery1.Next;
end;
planilha.columns.Autofit;
colegar vou adicionar o código que uso em minha aplicação:
estou usando o componente gauge, como ele é mais fácil de fazer isto.
botão : Exportar
var
Pasta : Variant;
Linha : Integer;
lcCodProd : string;
begin
Linha := 2;
Pasta := CreateOleObject('Excel.Application'); // Criar uma aplicação excel
Pasta.WorkBooks.add(1); // adicionar uma pasta do Excel
Pasta.Caption := 'Programação PCP';
Pasta.Visible := true; // deixar a planilha envisível
Pasta.Cells[1, 1]:= 'Cód. Material';
Pasta.Cells[1, 2]:= 'Descrição';
Pasta.Cells[1, 3]:= 'Cliente';
Pasta.Cells[1, 4]:= 'Fabrica';
Pasta.Cells[1, 5]:= 'Est. Resil';
Pasta.Cells[1, 6]:= 'Qtd Prog. Venda';
Pasta.Cells[1, 7]:= 'Qtd a Produzir';
Pasta.Cells[1, 8]:= 'Qtd Informada';
Gauge1.Visible := true;
Gauge1.MaxValue := 0;
Gauge1.MaxValue := dmMS_SisPCP.Cds_PCP.RecordCount;
dmMS_SisPCP.Cds_PCP.First;
dmMS_SisPCP.Cds_PCP.DisableControls; // desabilitar os controles de dados
try
while not (dmMS_SisPCP.Cds_PCP.Eof) do
begin
Application.ProcessMessages;
Pasta.Cells[Linha, 1] := dmMS_SisPCP.Cds_PCP.FieldByName('cd_produto').AsString;
Pasta.Cells[Linha, 1].NumberFormat := '0000,00000';
Pasta.Cells[Linha, 2] := dmMS_SisPCP.Cds_PCP.FieldByName('descricao').AsString;
Pasta.Cells[Linha, 3] := dmMS_SisPCP.Cds_PCP.FieldByName('Cliente').AsString;
Pasta.Cells[Linha, 4] := dmMS_SisPCP.Cds_PCP.FieldByName('fabrica').AsString;
Pasta.Cells[Linha, 5] := dmMS_SisPCP.Cds_PCP.FieldByName('Quant_Estoque').AsString;
Pasta.Cells[Linha, 6] := dmMS_SisPCP.Cds_PCP.FieldByName('quantidade_programada').AsString;
Pasta.Cells[Linha, 7] := dmMS_SisPCP.Cds_PCP.FieldByName('Quant_A_Produzir').AsString;
Pasta.Cells[Linha, 8] := dmMS_SisPCP.Cds_PCP.FieldByName('Quant_a_Prod').AsString;
Linha := Linha + 1;
dmMS_SisPCP.Cds_PCP.Next;
Gauge1.Progress := Gauge1.Progress + 1;
Application.ProcessMessages;
end;
Gauge1.Visible := false;
Pasta.Columns.AutoFit; // faz
finally
dmMS_SisPCP.Cds_PCP.EnableControls; // sempre será executada esta linha
Pasta := Unassigned;
end;
Gostei + 0
26/09/2012
Leonardo Xavier
Gostei + 0
27/09/2012
Alisson Santos
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)