Fórum Calculo de juros e multa #214248
15/02/2004
0
Eu tenho uma tabela paradox em delphi 6 com os seguintes campos
Dt.venc
Valor
Dt.pag
Juros (1¬ dia ou seja 30¬ mes)
ValorJuros
Valortotal
Multa (2¬ em cima do total)
Vamos ver se da para ser claro: eu quero informar a ´data do vencimento´ TaB o ´valor´ TaB a ´data do pagamento´ TaB e automaticamente o juros me aparece no campo, TaB automaticamente o valor do ´juros´, TaB automaticamente o ´Valor Total´ TaB ´Multa de 2¬ em cima do ´valor total´ TaB atualiza o ´Valor Total´
Vixi! sera que deu para enternder? :lol:
Agradeço desde Já
Wagner
Curtir tópico
+ 0Posts
15/02/2004
Marco Salles
No Evento Table1CalcFields Da Tabela Escreva o Código:
If Dtpag.IsNul Then
if DtPag > DtVenc.Value Then //Tem Que Cobrar Juros e Multa
ValorTotal.Value:=Valor + Valor*(Multa + (Dtpag.Value-DtVenc.Value));
else
ValorTotal.Value:=Valor; // Não Cobra Juros Pagou Dentro Do Prazo
Gostei + 0
15/02/2004
Wagner
Dt.venc
Valor
Dt.pag
Juros (1¬ dia ou seja 30¬ mes)
ValorJuros
[color=red:ebd6d58741]Valortotal[/color:ebd6d58741]
Multa (2¬ em cima do total)
Esse campo Valor Total que eu tenho que criar no editor e independente do campo na tabela que eu já tenho criado ou seja e outro campo
Gostei + 0
15/02/2004
Marco Salles
Gostei + 0
15/02/2004
Wagner
Abre uma janela com os seguintes dados
Field proprieties
Onde eu coloco Name: ValorTotal
Automaticamente Type: Float
Esta selecionado: Calculated
Quando dou OK : Data field not permitted on open dataset
O que eu esqueci?
Gostei + 0
15/02/2004
Edilcimar
Gostei + 0
15/02/2004
Marco Salles
Gostei + 0
15/02/2004
Wagner
begin
If Datapag.IsNul Then
if DataPag > DataVenc.Value Then
ValorTotal.Value:=Valor + Valor*(Multa + (Datapag.Value-DataVenc.Value));
else
ValorTotal.Value:=Valor;
mais esta dando esses erros
[Error] U_cadinadimp.pas(339): Undeclared identifier: ´Datapag´
[Error] U_cadinadimp.pas(340): Undeclared identifier: ´DataVenc´
[Error] U_cadinadimp.pas(349): Statement expected but end of file found
Gostei + 0
15/02/2004
Marco Salles
Gostei + 0
15/02/2004
Wagner
begin
[color=red:43580f8180]If Datapag[/color:43580f8180].IsNul Then
if DataPag > DataVenc.Value Then
ValorTotal.Value:=Valor + Valor*(Multa + (Datapag.Value-DataVenc.Value));
else
ValorTotal.Value:=Valor;
end;
end.
:cry: Continua os mesmo erros na compilação
Gostei + 0
15/02/2004
Marco Salles
Escreva a Rotina Abaixo Com Os Nomes Que Estão No Editor De Campos..
Estou Vendo Aqui Que Esqueci De Colocar a Propiedade VALUE , Portanto Corrija...
procedure TF_Form.dadosCalcFields(DataSet: TDataSet);
begin
If Datapag.IsNul Then
if DataPag > DataVenc.Value Then
ValorTotal.Value:=Valor.[color=red:3fbb465506]Value [/color:3fbb465506]+ Valor.[color=red:3fbb465506]Value[/color:3fbb465506]*(Multa.[color=red:3fbb465506]Value [/color:3fbb465506]+ (Datapag.Value-DataVenc.Value));
else
ValorTotal.Value:=Valor.[color=red:3fbb465506]Value[/color:3fbb465506];
end;
Gostei + 0
15/02/2004
Wagner
begin
[color=red:be499b15d6]If Datapag[/color:be499b15d6].IsNul then
if DataPag.value > DataVenc.value Then
ValorTotal.Value:=Valor.value + atraso.value*(Multa.value + (Datapag.Value-DataVenc.Value));
else
ValorTotal.Value:=Valor.value;
[Error] U_cadinadimp.pas(339): Undeclared identifier: ´Datapag´
[Error] U_cadinadimp.pas(340): ´THEN´ expected but identifier ´value´ found
[Error] U_cadinadimp.pas(349): Statement expected but end of file found
Tentei tambem alguma coisa assim, o que eu queria era a quantidade de dias que o meu percentua de juros 1¬ AM multiplicar pelo tota e dividir por 100 e vou ter o valor do juros
datapag-datavenc =atraso, atraso * total /100 + valor * 2/100 = totalgeral
mais nao estou acertando o codigo
Gostei + 0
15/02/2004
Marco Salles
acho que ainda estou esquecendo alguma coisa
begin
If Datapag.IsNul then
if DataPag.value > DataVenc.value Then
ValorTotal.Value:=Valor.value + atraso.value*(Multa.value + ValorJuros.Value*(Datapag.Value-DataVenc.Value[color=red:4a6a438920])) //TEM QUE TIRAR VIRGULA[/color:4a6a438920]else
ValorTotal.Value:=Valor.value;
A DIVISÃO POR CEM É UM PASSO PARA DAQUI A POUCO...VAMOS PRIMEIRO COMPILAR E EXECUTAR E VER OS RESULTADOS...
ATENÇÃO : O CAMPO DATAPAG AQUI ESTA INSCRITO ASSIM, NA SUA TABELA VOCE DISSE QUE ESTA ASSIM : Dt.pag . O MESMO OCORRE PARA DATAPAG QUE NA SUA TABELA ESTA INSCRITO ASSIM : Dt.Ven..
Voce Tem Que Escrever a Instrução Com Os Mesmos Nomes Da Tabela, Se Não Ele Não Vai Compilar..Veja Tambem Se Todos Esses Campos Foram DECLARADOS NO EDITOR DE CAMPOS...
IMPORTANTE:SE DEIXAR DE DECLARAR UM CAMPO NO EDITOR DE CAMPOS , ESSE CAMPO NÃO ESTARÁ ACESSÍVEL EM TEMPO DE EXECUÇÃO E PROJETO..Poderá Dar Erro De Compilação Como Erro Na Execução..
Gostei + 0
15/02/2004
Wagner
Quanto a descrisão dos campos desculpe-me achava que era daquela forma mais estou fazendo de acordo como esta na tabela
Mais uma vez agradeço sua paciencia, mais se quizer para podemos continuar outro dia, não quero abusar da sua boa vontade :oops:
begin
[color=red:127bedf0bc]If Datapag.[/color:127bedf0bc]IsNul then
if DataPag.value > DataVenc.value Then
ValorTotal.Value:=Valor.value + atraso.value*(Multa.value + (Datapag.Value-DataVenc.Value))//tirei a virgula
else
ValorTotal.Value:=Valor.value;
[Error] U_cadinadimp.pas(339): Undeclared identifier: ´Datapag´
[Error] U_cadinadimp.pas(340): ´THEN´ expected but identifier ´value´ found
[Error] U_cadinadimp.pas(349): Statement expected but end of file found
Gostei + 0
15/02/2004
Marco Salles
Então Sugiro Continuar Como o Algorítimo Abaixo... Há Jeito De Resumi-lo, Mas Podemos Fazer Depois De Compilar...Certamente é Um Erro De Digitação...
[color=red:cfd28f34bf]Sugiro Por Fim Deletar o Campo DataPag No Editor..Delete-o e Insere-o Imediatamente[/color:cfd28f34bf]...E MAIS UMA VEZ, VERIFIQUE SE OS CAMPOS DE SUA TABELA POSSUEM AS MESMAS ESPECIFICAÇÕES QUE OS CAMPO DEFINIDO NO CÓDIGO EDITOR E POR FIM NA ROTINA ABAIXO:
No Evento Table1CalcFields Da Tabela Escreva o Código:
procedure TFormAlcc2.Table1CalcFields(DataSet: TDataSet);
begin
If Dtpag.IsNul Then
if DtPag.Value > DtVenc.Value Then //Tem Que Cobrar Juros e Multa
ValorTotal.Value:=Valor.Value + Valor.Value*(Multa.Value +
ValorJuros.Value*(Dtpag.Value-DtVenc.Value))
else
ValorTotal.Value:=Valor; // Não Cobra Juros Pagou Dentro Do Prazo
end;
Gostei + 0
15/02/2004
Wagner
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)