GARANTIR DESCONTO

Fórum Pesquisa por data Delphi #616871

09/10/2021

0

Tenho uma tabela com a data de validade de uma taxa

Validade Taxa
01/10/2021 1,50
02/10/2021 1,45
03/10/2021 1,52
06/10/2021 1,39
07/10/2021 1,88
08/10/2021 1,89

Preciso encontrar a taxa para a data 05/10/2021 se não encontrar preciso da data menor ou igual, mas não consigo seguir adiante com o código.

Código

Procedure Tfrmteste.Button1Click(Sender: TObject);
var
datanf:Tdatetime;
begin
datanf:=strtodate(edit1.text);
dm.QryTaxasb3.Active;
dm.QryTaxasb3.sql.clear;
dm.QryTaxasb3.sql.add('Select * From Taxasb3 where Datainicio<='+QuotedStr(FormatDateTime('DD.MM.YYYY',datanf)));
dm.QryTaxasb3.open;

end;
Alessandro Carvalho

Alessandro Carvalho

Responder

Post mais votado

09/10/2021

Procedure Tfrmteste.Button1Click(Sender: TObject);
var
	nTaxa: float;
begin
	nTaxa := GetTax( strtodate(edit1.text) );
end;


função para retornar a taxa:
function GetTax( datanf: TDateTime ): float;
begin
	Result := 0;
	dm.QryTaxasb3.Close; // você precisa fechar o dataset
	dm.QryTaxasb3.Sql.Clear;
	dm.QryTaxasb3.Sql.Add('select top 1 campo_taxa from taxasb3');
	dm.QryTaxasb3.Sql.Add('where datainicio <= ' + QuotedStr(FormatDateTime('DD.MM.YYYY',datanf)));
	dm.QryTaxasb3.Sql.Add('order by datainicio desc');
	dm.QryTaxasb3.Open;
	if not dm.QryTaxasb3.Eof then
		Result := dm.QryTaxasb3.FieldByName('campo_taxa').AsFloat;
	dm.QryTaxasb3.Close;
end;

se for realmente usar uma função para retornar a taxa, sugiro criar o componente de acesso a dados em tempo de execução, dentro da função.

Emerson Nascimento

Emerson Nascimento
Responder

Gostei + 1

Mais Posts

10/10/2021

Alessandro Carvalho

Emerson Nascimento
Deu certo, obrigado pela ajuda.
Responder

Gostei + 0

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

Aceitar