modificar uma função
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+
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
Curtidas 0
Respostas
Edilcimar
14/04/2005
e de onde você vai pegar o valor de entrada que está no referido edit?
GOSTEI 0
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
14/04/2005
ainda sem solução...mais alguém se habilita ?
GOSTEI 0
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
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