delphi - puxar total de vendas para um edit
23/08/2017
0
estou fazendo um programa em delphi e eu queria puxar um total de vendas (de um determinado mês) e colocar ele dentro de um edit
fiz o seguindo
var total: real; begin Total := 0; ClientDataSet1.Open; ClientDataSet1.First; while not ClientDataSet1.Eof do begin total := total + ClientDataSet1.FieldByName('PREÇO DE VENDA').AsFloat; ClientDataSet1.Next; Edit2.Text := FormatFloat('###,###,##0.00', Total); end; end;
obs: Não, eu não sou preguiçoso eu vou mudar o nome da minha tabela kkkk
isso deu certo, puxou um total de vendas mas puxou TODOS e eu quero um total de vendas de um determinado mês, por exemplo o de agosto
Obrigado Pessoal
Fiquem com Deus e não desistem lkk
Abraços.
Gabriek
Posts
24/08/2017
Natanael Ferreira
Exemplo:
var total: real; begin total := 0; ClientDataSet1.Open; ClientDataSet1.Filtered := False; ClientDataSet1.Filter := '(Data >= ' + QuotedStr('01/08/2017') + ') and (Data <= ' + QuotedStr('31/08/2017') + ')'; ClientDataSet1.Filtered := True; ClientDataSet1.First; while not ClientDataSet1.Eof do begin total := total + ClientDataSet1.FieldByName('PREÇO DE VENDA').AsFloat; ClientDataSet1.Next; Edit2.Text := FormatFloat('###,###,##0.00', total); end; ClientDataSet1.Filtered := False; end;
Coloquei a data fixa no codigo. Você pode substituir por uma data variavel atraves do DateTimePicker.
24/08/2017
Gabriek
Obrigado
esse datetimepicker fica onde? no clientedataset?
24/08/2017
Natanael Ferreira
Com este componente o usuário consegue selecionar uma data e o seu programa pode buscar essa data para filtrar o código.
Exemplo coloque 2 Datetimepicker's no form:
var total: real; begin total := 0; ClientDataSet1.Open; ClientDataSet1.Filtered := False; ClientDataSet1.Filter := '(Data >= ' + QuotedStr(DateToStr(DateTimePicker1.Date)) + ') and (Data <= ' + QuotedStr(DateToStr(DateTimePicker2.Date)) + ')'; ClientDataSet1.Filtered := True; ClientDataSet1.First; while not ClientDataSet1.Eof do begin total := total + ClientDataSet1.FieldByName('PREÇO DE VENDA').AsFloat; ClientDataSet1.Next; Edit2.Text := FormatFloat('###,###,##0.00', total); end; ClientDataSet1.Filtered := False; end;
Assim será filtrado pelo intervalo de datas selecionado nos DateTimePicker's.
24/08/2017
Gabriek
procedure TFPrincipal.Button2Click(Sender: TObject); var total: real; begin Total := 0; ClientDataSet1.Open; qryConsulta.Open; ClientDataSet1.Filtered := False; ClientDataSet1.Filter := '(DATA >= ' + QuotedStr(DateToStr(DateTimePicker1.Date)) + ') and (DATA <= ' + QuotedStr(DateToStr(DateTimePicker2.Date)) + ')'; ClientDataSet1.Filtered := True; ClientDataSet1.First; while not ClientDataSet1.Eof do begin total := total + ClientDataSet1.FieldByName('PREÇO DE VENDA').AsFloat; ClientDataSet1.Next; Edit2.Text := FormatFloat('###,###,##0.00', Total); end; ClientDataSet1.Filtered :=false; end;
24/08/2017
Gabriek
minha query tinha um parametro data, por isso não puxava nada
Obrigado caro amigo,
24/08/2017
Gabriek
24/08/2017
Natanael Ferreira
Se sim, altere a propriedade Format dos DateTimePicker para MM/yyyy.
24/08/2017
Natanael Ferreira
Altere altere a propriedade Format dos DateTimePicker para MMMM/yyyy
Veja a documentação oficial com todas as mascaras disponiveis:
http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/delphivclwin32/ComCtrls_TDateTimePicker_Format.html
Clique aqui para fazer login e interagir na Comunidade :)