Bon courage ou Bonne Chance (selon le contexte)
Mon blog sur WordPress
Non, Just-Soft, il ne le sont pas mais, la preuve, moi j'avais vu ta réponse ... mais Zizou7 ne lit qu'a moitié les réponses qu'on lui apporte, on lui pose des questions, il n'y repond pas ...
Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
Attention Troll Méchant !
"Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
L'ignorance n'excuse pas la médiocrité !
L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
Il faut avoir le courage de se tromper et d'apprendre de ses erreurs
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é:
Mais moi j'avais fait le code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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();
Avant que vous ne me donniez les votres.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 If strtofloat(fmpayement.DBEdit4.Text)<strtofloat(fmpayement.DBtext3.Datafield) then Showmessage('Ce montant est superieur au reste'); DBEdit4.Clear;
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.
Peut être je me trompe mais le message que je voulais faire passer est que s'il n'est pas modifié dans le beforePost alors nous nous pouvons pas utiliser:
car non défini encore mais peut être je me trompe
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 base.tpaiement.FieldByName('Montant').Asfloat
Re;
d'après ton message d'erreur tu es dans l'une des deux cas de figure :
- soit ton champs n'est pas de type réel; mais je ne pense pas suite à toutes ces questions réponses
- soit tu as un problème avec le séparateur décimal qu'il faut vérifier depuis le panneau de configuration (si tu es sous windows) et le forcé par programmation si besoin est.
espérant que cette fois-ci je serais visible et lu
Bon courage ou Bonne Chance (selon le contexte)
Mon blog sur WordPress
Bon courage ou Bonne Chance (selon le contexte)
Mon blog sur WordPress
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.
tu ajoute à ta requete une clause where ou and
:montant est un pararametre (vérifier syntaxe parametre dans access)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3Where Montant_initial>:montant and Reste_apayer>=:montant
j'appelle ta requete: query
tester si ta requete renvoie des resultats avec
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 query.parambyname('montant').asfloat=valeur du montant query.open
alors accepter payement sinon refus payement
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 soit avec if not query.eof then ou avec if query.recorcount>0 then
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:
Merci par avance.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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;
Par Zizou7.
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:
Mais j'ai ajouté le calcul du reste à payer c'est encore qui ne se fait pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Voici le code entier:
Quelqu'un a t il une idée pour me donner sur la partie? ou modification?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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;
Si oui laquelle? si non laquelle?
je vous remerci par avance.
Zizou7.
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.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager