Fórum modificar uma função #277305
14/04/2005
0
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
Curtir tópico
+ 0Posts
16/04/2005
Edilcimar
Gostei + 0
17/04/2005
Gigatel
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
18/04/2005
Gigatel
Gostei + 0
19/04/2005
Gigatel
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
29/04/2005
Gigatel
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
Clique aqui para fazer login e interagir na Comunidade :)