Fórum Query somente leitura com FB #278041
20/04/2005
0
como faço pra ele nao ir no banco?
desde ja agradeco
[]s
Titanius
Curtir tópico
+ 0Posts
20/04/2005
Edilcimar
Gostei + 0
20/04/2005
Gandalf.nho
Gostei + 0
20/04/2005
Titanius
Gostei + 0
20/04/2005
Gandalf.nho
Gostei + 0
20/04/2005
Titanius
irei tentar melhorar a query pra ver se diminui otempo,
Obrigado
Gostei + 0
20/04/2005
Marco Salles
1)Com esta a propriedade [b:a35f250420]Unidirecional[/b:a35f250420] do Componente IbQuery
2)Voce esta Usando BDE :?: :?: --->> o BDE neste caso ajuda muito , pois ele mantem em um Cache local os dados ja carregados da tabela
3)a dica do edilcimar não funciona :?: :?:
3)O Caso simples de um controle dbgrid usado para percorrer uma tabela inteira é comum em Programas Locais, mas geralmente deve ser evitado em ambiente Cliente\Servidor... É melhor filtrar apenas parte dos registros e apenas os campos que se esta interessado.. Por exemplo , para lista de nome --->> Solicite ao Usuário a Inicial do Nome
Gostei + 0
20/04/2005
Edilcimar
Gostei + 0
20/04/2005
Titanius
edilcimar, tem como vc me enviar um exemplo de como voce usou?
[]s
Gostei + 0
20/04/2005
Edilcimar
Gostei + 0
20/04/2005
Titanius
Gostei + 0
20/04/2005
Edilcimar
Gostei + 0
20/04/2005
Edilcimar
procedure TForm56.Button1Click(Sender: TObject);
var
Vendedor, Comissao, VendaBo, VendaTotal, Percentual, PercentualBo,
Nome : Variant;
I, NumVendedor : Integer;
TotalGeral : Real;
begin
Numero := 1;
NumVendedor := 1;
TotalGeral := 0;
Table1.Open;
With Table1 do
Begin
First;
While not eof do
Begin
Numero := FieldByName(´NUMERO´).AsInteger;
Next;
End;
End;
Vendedor := VarArrayCreate([1, Numero], VarOleStr);
Comissao := VarArrayCreate([1, Numero], VarCurrency);
VendaBo := VarArrayCreate([1, Numero], VarCurrency);
VendaTotal := VarArrayCreate([1, Numero], VarCurrency);
Percentual := VarArrayCreate([1, Numero], varDouble);
PercentualBo := VarArrayCreate([1, Numero], varDouble);
For I := 1 to Numero do
Begin
Vendedor[I] := ´´;
Comissao[I] := 0;
VendaBo[I] := 0;
VendaTotal[I] := 0;
Percentual[I] := 0;
PercentualBo[I] := 0;
End;
Table2.Open;
Table2.Filtered := True;
With Table1 do
Begin
First;
While not eof do
Begin
NumVendedor := FieldByName(´NUMERO´).AsInteger;
Vendedor[NumVendedor] := FieldByName(´NOME´).AsString;
With Table2 do
Begin
While not eof do
Begin
Comissao[NumVendedor] := Comissao[NumVendedor] + FieldByName(´COMISSAO´).AsFloat;
If FieldByName(´COMISSAO´).AsFloat > 0 then
VendaBo[NumVendedor] := VendaBo[NumVendedor] + FieldByName(´VALOR´).AsFloat;
VendaTotal[NumVendedor] := VendaTotal[NumVendedor] + FieldByName(´VALOR´).AsFloat;
TotalGeral := TotalGeral + FieldByName(´VALOR´).AsFloat;
Next;
End;
End;
Next;
End;
First;
I := 1;
StringGrid1.Cells[0,0] := ´VENDEDOR´;
StringGrid1.Cells[1,0] := ´COMISSÃO´;
StringGrid1.Cells[2,0] := ´VENDA COMISSIONADO´;
StringGrid1.Cells[3,0] := ´¬ COMISSÃO´;
StringGrid1.Cells[4,0] := ´VENDA TOTAL´;
StringGrid1.Cells[5,0] := ´¬. VENDAS´;
While not eof do
Begin
NumVendedor := FieldByName(´NUMERO´).AsInteger;
Percentual[NumVendedor] := 100 * VendaTotal[NumVendedor] / TotalGeral;
If VendaTotal[NumVendedor] > 0 then
PercentualBo[NumVendedor] := 100 * VendaBo[NumVendedor] / VendaTotal[NumVendedor]
Else
PercentualBo[Numvendedor] := 0;
StringGrid1.Cells[0,I] := Vendedor[NumVendedor];
StringGrid1.Cells[1,I] := FloatToStrF(Comissao[NumVendedor], ffCurrency, 10,2);
StringGrid1.Cells[2,I] := FloatToStrF(VendaBo[NumVendedor], ffCurrency, 10,2);
StringGrid1.Cells[3,I] := FloatToStrF(PercentualBo[NumVendedor], ffFixed, 3,3);
StringGrid1.Cells[4,I] := FloatToStrF(VendaTotal[NumVendedor], ffCurrency, 10,2);
StringGrid1.Cells[5,I] := FloatToStrF(Percentual[NumVendedor], ffFixed, 3,3);
I := I + 1;
StringGrid1.RowCount := I + 1;
Next;
End;
End;
end;
isto calcula e acrescenta uma linha em branco no final
Gostei + 0
20/04/2005
Titanius
obrigado..
[]s
Gostei + 0
20/04/2005
Edilcimar
Gostei + 0
20/04/2005
Gandalf.nho
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)