modificar uma função

Delphi

14/04/2005

v_valor := RoundTo((Table2Valor.AsFloat-strtofloat(edentrada.text))/Table2Parcelas.AsInteger,-2);

um colega me passou esta função acima...o edit acima camado de edentrada, serve para a entrada de um valor onde ele servirá de base para uma subtração. eu quero eliminar isto...

como funciona...

tenho um edit que recebe o valor depois vem um edit onde seria a entrada ( este é o que eu quero eliminar ) depois vem a data e o nº de parcelas depois ele gera as mesmas...

Valeu t+


Gigatel

Gigatel

Curtidas 0

Respostas

Edilcimar

Edilcimar

14/04/2005

e de onde você vai pegar o valor de entrada que está no referido edit?


GOSTEI 0
Gigatel

Gigatel

14/04/2005

e de onde você vai pegar o valor de entrada que está no referido edit?



está é a função completa....


procedure T_FormContas.Geraparcelas(Sender: TObject);
var
v_count,v_parc: integer;
v_date: Tdatetime;
v_valor: real;
begin
Table2.Edit;
Table2Valor.AsFloat := strtofloat(edvalor.text);
Table2Parcelas.AsInteger := strtoint(edparcela.Text);
Table2DataCad.AsDateTime := date;
Table2Tipo.AsString := ´C´;
Table2.Post;

v_date := strtodate(eddata.text) + strtofloat(ComboBox2.text);
v_count := strtoint(edparcela.text);
v_valor := RoundTo((Table2Valor.AsFloat-strtofloat(edentrada.text))/Table2Parcelas.AsInteger,-2);

Query1.Open;

for v_parc := 1 to v_count do
begin
Query1.insert;
Query1.FieldByName(´QuantParcelas´).asinteger := v_parc;
if v_parc=1
then query1.fieldbyname(´valor´).AsFloat := Table2Valor.AsFloat - (v_Valor * (v_count-1))
else query1.fieldbyname(´valor´).AsFloat := v_Valor;
query1Vencimento.asdatetime := v_date;
Query1CodControle.asinteger := Table2CodSistema.asinteger;
Query1Endereco.asstring := Table2Endereco.asstring;
Query1Nome.asstring := Table2Nome.asstring;
Query1Complemento.asstring := Table2Complemento.asstring;
Query1Bairro.asstring := Table2Bairro.asstring;
Query1Cidade.asstring := Table2Cidade.asstring;
Query1UF.asstring := Table2UF.asstring;
Query1CPFCNPJ.asstring := Table2CPFCNPJ.asstring;
Query1Discricao.asstring := Table2Discricao.asstring;
Query1DATA_CAD.asdatetime := Date;
Query1CodAcess.Value := Table1Codigo.value;
Query1.post;
v_date := v_date + 30;
end;
Query1.Close;
Query1.filtered := true; // filtered não é recomendado. torna o sistema lento.
Query1.Filter := ´CodControle = ´ + Floattostr(Table2CodSistema.value);
Query1.Open;

if MessageDlg(´Deseja imprimir promissórias ?´,
mtConfirmation, [mbYes, mbNo], 0) = mrYes then
begin
Query1.Close;
Zreport1.Print;
Query1.open;
Query1.filtered := true;
Query1.Filter := ´CodControle = ´ + Floattostr(Table2CodSistema.value);
end;
end;

o Valor de entrada vem do ´ edentrada ´

Valeu...


GOSTEI 0
Gigatel

Gigatel

14/04/2005

ainda sem solução...mais alguém se habilita ?


GOSTEI 0
Gigatel

Gigatel

14/04/2005

ainda sem solução...mais alguém se habilita ?


Resolví parte do problema,....mudei o código para este abaixo, só que parou de gerar as parcelas em partes iguais. até que gerar, gera mais não em partes iguais, fica assim numa venda de 500 reais em 3 notas ele divide assim: a 1º de 494,00 e as demais de 3,00 ( que doideira )

v_valor := RoundTo(Table2Parcelas.AsInteger,-2);

Vlw...


GOSTEI 0
Gigatel

Gigatel

14/04/2005

[quote:7e1dd52c45=´edilcimar´]e de onde você vai pegar o valor de entrada que está no referido edit?



está é a função completa....


procedure T_FormContas.Geraparcelas(Sender: TObject);
var
v_count,v_parc: integer;
v_date: Tdatetime;
v_valor: real;
begin
Table2.Edit;
Table2Valor.AsFloat := strtofloat(edvalor.text);
Table2Parcelas.AsInteger := strtoint(edparcela.Text);
Table2DataCad.AsDateTime := date;
Table2Tipo.AsString := ´C´;
Table2.Post;

v_date := strtodate(eddata.text) + strtofloat(ComboBox2.text);
v_count := strtoint(edparcela.text);
v_valor := RoundTo((Table2Valor.AsFloat-strtofloat(edentrada.text))/Table2Parcelas.AsInteger,-2);

Query1.Open;

for v_parc := 1 to v_count do
begin
Query1.insert;
Query1.FieldByName(´QuantParcelas´).asinteger := v_parc;
if v_parc=1
then query1.fieldbyname(´valor´).AsFloat := Table2Valor.AsFloat - (v_Valor * (v_count-1))
else query1.fieldbyname(´valor´).AsFloat := v_Valor;
query1Vencimento.asdatetime := v_date;
Query1CodControle.asinteger := Table2CodSistema.asinteger;
Query1Endereco.asstring := Table2Endereco.asstring;
Query1Nome.asstring := Table2Nome.asstring;
Query1Complemento.asstring := Table2Complemento.asstring;
Query1Bairro.asstring := Table2Bairro.asstring;
Query1Cidade.asstring := Table2Cidade.asstring;
Query1UF.asstring := Table2UF.asstring;
Query1CPFCNPJ.asstring := Table2CPFCNPJ.asstring;
Query1Discricao.asstring := Table2Discricao.asstring;
Query1DATA_CAD.asdatetime := Date;
Query1CodAcess.Value := Table1Codigo.value;
Query1.post;
v_date := v_date + 30;
end;
Query1.Close;
Query1.filtered := true; // filtered não é recomendado. torna o sistema lento.
Query1.Filter := ´CodControle = ´ + Floattostr(Table2CodSistema.value);
Query1.Open;

if MessageDlg(´Deseja imprimir promissórias ?´,
mtConfirmation, [mbYes, mbNo], 0) = mrYes then
begin
Query1.Close;
Zreport1.Print;
Query1.open;
Query1.filtered := true;
Query1.Filter := ´CodControle = ´ + Floattostr(Table2CodSistema.value);
end;
end;

o Valor de entrada vem do ´ edentrada ´

Valeu...[/quote:7e1dd52c45]


Agora e que danou mesmo por algum motivo a função não parcela igual...


GOSTEI 0
POSTAR