Reflexion sur un code en delphi
Oui les champs qui sont sur la fiche payement sont des DBEdit.
En plus le code que vous venez de me donner ne marche pas encore car j'ai fait le teste en prenant une valeur qui est superieur au reste à payer mais ça passe. Voici le code que vous m'avez donné:
Code:
1 2
| If (base.tpaiement.FieldByName('Montant').AsFloat<= base.tsinistre.FieldByName('provision_Initiale').AsFloat)and (base.tpaiement.FieldByName('Montant').AsFloat<=base.QReste.FieldByName('Reste_A_payer').AsFloat)then
base.tpaiement.Post(); |
Mais moi j'avais fait le code suivant :
Code:
1 2 3
| If strtofloat(fmpayement.DBEdit4.Text)<strtofloat(fmpayement.DBtext3.Datafield) then
Showmessage('Ce montant est superieur au reste');
DBEdit4.Clear; |
Avant que vous ne me donniez les votres.
Mais il m'affichait le message suivant:
Reste_A_Payer n'est pas une valeur flotante correcte.
Avez vous d'autres suggestions autour de ces problèmes?
Merci par avance.
Zizou7.
Reflexion sur un code en delphi
Comment le Reste_A_Payer est obtenu?
J'ai fait une requête sous access dans laquelle j'ai fait la difference entre la Provision_Initiale et la somme totale des montants payés par reference c'est_à_dire par sinistre. Et sous delpi, j'ai fait une requête parametrée qui me permettant d'afficher par reference le Reste_A_Payer. Mais c'est sur cette requête que je voudrais faire le contrôle avec le champ Montant à payer. Aussi contrôler ce même montant à la provision_Initiale.
Si le Montant à payer est superieur à la Provision_initiale ou au reste à payer alors refus de payement sinon payer.
Merci par avance.
Zizou7.
Reflexion sur un code en delphi
Voici le code que j'ai écrit et il marche pour le reste à payer mais pas pour une provision qui n'est pas payer au moins une fois:
Code:
1 2 3 4 5 6
| If (strtofloat(fmpayement.DBEdit4.Text)<=base.tsinistre.FieldByName('Provision_initiale').AsFloat)and(strtofloat(fmpayement.DBEdit4.Text)<=base.QReste.FieldByName('Reste_A_Payer').AsFloat)then
base.tpaiement.Post
else if (strtofloat(fmpayement.DBEdit4.Text)>base.tsinistre.FieldByName('Provision_initiale').AsFloat)and (strtofloat(fmpayement.DBEdit4.Text)>base.QReste.FieldByName('Reste_A_Payer').AsFloat)then
begin
base.tpaiement.Cancel;
end; |
Merci par avance.
Par Zizou7.
Reflexion sur un code en delphi
Voici encore le code que j'ai écrit pour le contrôle du montant payé et de la provision.Si le montant payé est inferieur à la provision ça passe sinon refus.
voici le code en question:
Code:
1 2 3 4 5 6 7 8
| If base.tpaiement.FieldByName('Montant').AsFloat<=base.tsinistre.FieldByName('Provision_Initiale').AsFloat then
base.tpaiement.Post
else If base.tpaiement.FieldByName('Montant').AsFloat>base.tsinistre.FieldByName('Provision_Initiale').AsFloat then
begin
Showmessage('Ce montant est superieur à la provision');
DBEdit4.Clear;
DBEdit4.SetFocus;
end |
Mais j'ai ajouté le calcul du reste à payer c'est encore qui ne se fait pas.
Voici le code entier:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| If base.tpaiement.FieldByName('Montant').AsFloat<=base.tsinistre.FieldByName('Provision_Initiale').AsFloat then
base.tpaiement.Post
else If base.tpaiement.FieldByName('Montant').AsFloat>base.tsinistre.FieldByName('Provision_Initiale').AsFloat then
begin
Showmessage('Ce montant est superieur à la provision');
DBEdit4.Clear;
DBEdit4.SetFocus;
end
else if(strtofloat(fmpayement.DBEdit4.Text)>base.QReste.FieldByName('Reste_A_Payer').AsFloat)then
begin
DBEdit4.Clear;
DBEdit4.SetFocus;
end; |
Quelqu'un a t il une idée pour me donner sur la partie? ou modification?
Si oui laquelle? si non laquelle?
je vous remerci par avance.
Zizou7.
Reflexion sur un code en delphi
Merci pour tous ceux qui ont participé à la résolution de mon problème.
j'ai eu à resoudre seul et je reste reconnaissant à vous tous.
Merci par avance.
Zizou7.