GARANTIR DESCONTO

Fórum Progressbar ou animate no select que funcione como? #344382

10/08/2007

0

Pessoal, tem como fazer um progressbar em um select? (O que eu acho impossivel ateh o processo terminar, mais tai a duvida, talvez tenha como fazer) :D
Tenho um select que quando executo demora muito, ai resolvi usar um amimate (Paleta win32), mais tambem nao esta funcionando de acordo, ele fica parado ateh o processo terminar pra depois ativar.

Bom a unit do Animate fiz assim
unit uAguardeDados;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, StdCtrls;

type
  TfrAguardeDados = class(TForm)
    Label1: TLabel;
    Animate1: TAnimate;
  private
    { Private declarations }
  public
    { Public declarations }
  end;
  procedure AguardeDadosOn;
  procedure AguardeDadosOff;
var
  frAguardeDados: TfrAguardeDados;

implementation

procedure AguardeDadosOn;
begin
  frAguardeDados := TfrAguardeDados.Create(Application);
  frAguardeDados.Animate1.Active := true;
  frAguardeDados.Show;
  Application.ProcessMessages;
end;

procedure AguardeDadosOff;
begin
  frAguardeDados.Close;
  frAguardeDados.Free;
end;

{$R *.dfm}

end.


E estou chamando no select assim
{Procedure para mostrar o select da tabela na grid com somas de outras tabelas inclusive calculo do inss} Procedure TFSuperCalculo.ChamaSP; begin [b:a725ac31cd]aguardedadoson;[/b:a725ac31cd] [color=blue:a725ac31cd][i:a725ac31cd]//chamando a procedure para aguardar enquanto processa os dados[/i:a725ac31cd][/color:a725ac31cd] dm.zspSomaFunc.Close; dm.zspSomaFunc.sql.Clear; dm.zspSomaFunc.sql.Text:=´ select c1.*, ´ +´ (select sum(c2.proventos) ´ +´ from essqlfunc c2 ´ +´ where c2.id_empresa = c1.id_empresa ´ +´ and c2.id_func = c1.id_func) TotoProv, ´ +´ (select sum(c2.descontos) ´ +´ from essqlfunc c2 ´ +´ where c2.id_empresa = c1.id_empresa ´ +´ and c2.id_func = c1.id_func) TotDesc, ´ +´ (select sum(c2.proventos - c2.descontos) ´ +´ from essqlfunc c2 ´ +´ where c2.id_empresa = c1.id_empresa ´ +´ and c2.id_func = c1.id_func) Saldo, ´ +´ (select first 1 indice from indiceinss inss where inss.ate >= ´ +´ (select sum(c2.proventos - c2.descontos) ´ +´ from essqlfunc c2 ´ +´ where c2.id_empresa = c1.id_empresa ´ +´ and c2.id_func = c1.id_func and c1.Inss = ´´True´´) ´ +´ order by inss.ate) Aliquota_INSS, ´ +´ (select sum(c2.proventos - c2.descontos) ´ +´ from essqlfunc c2 ´ +´ where c2.id_empresa = c1.id_empresa ´ +´ and c2.id_func = c1.id_func and c1.Inss = ´´True´´) * ´ +´ (select first 1 indice from indiceinss inss where inss.ate >= ´ +´ (select sum(c2.proventos - c2.descontos ) ´ +´ from essqlfunc c2 ´ +´ where c2.id_empresa = c1.id_empresa ´ +´ and c2.id_func = c1.id_func and c1.Inss = ´´True´´ ) ´ +´ order by inss.ate) / 100.00 Valor_INSS ´ +´ from essqlfunc c1 ´; dm.zspSomaFunc.Open; {codigo para formatar o dbgrid - tem que ter DB no uses da unit} (dm.zspSomaFunc.fieldbyname (´salario´) as tfloatfield).displayformat := ´#,0.00´; (dm.zspSomaFunc.fieldbyname (´salgoverno´) as tfloatfield).displayformat := ´,0.00´; (dm.zspSomaFunc.fieldbyname (´proventos´) as tfloatfield).displayformat := ´,0.00´; (dm.zspSomaFunc.fieldbyname (´descontos´) as tfloatfield).displayformat := ´,0.00´; (dm.zspSomaFunc.fieldbyname (´TOTOPROV´) as tfloatfield).displayformat := ´,0.00´; (dm.zspSomaFunc.fieldbyname (´TOTDESC´) as tfloatfield).displayformat := ´,0.00´; (dm.zspSomaFunc.fieldbyname (´SALDO´) as tfloatfield).displayformat := ´#,0.00´; (dm.zspSomaFunc.fieldbyname (´ALIQUOTA_INSS´) as tfloatfield).displayformat := ´,0.00´; (dm.zspSomaFunc.fieldbyname (´VALOR_INSS´) as tfloatfield).displayformat := ´,0.00´; [b:a725ac31cd]aguardedadosoff;[/b:a725ac31cd] [i:a725ac31cd]//fechando a procedure aguardadados depois de processado os dados[/i:a725ac31cd] showmessage(´Processo Terminado´); end;
[color=blue:a725ac31cd][/color:a725ac31cd]

Agora um progressbar sem ser num while nao sei se tem como fazer, [u:a725ac31cd]como ja citei antes[/u:a725ac31cd], ou fazer com que este animate funcione realmente, pelo menos para o usuario nao ficar perdido em quanto processa os dados.


Adriano_servitec

Adriano_servitec

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar