Fórum modificar uma função #277305

14/04/2005

0

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

Responder

Posts

16/04/2005

Edilcimar

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


Responder

Gostei + 0

17/04/2005

Gigatel

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...


Responder

Gostei + 0

18/04/2005

Gigatel

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


Responder

Gostei + 0

19/04/2005

Gigatel

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...


Responder

Gostei + 0

29/04/2005

Gigatel

[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...


Responder

Gostei + 0

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

Aceitar