Reflexion sur un code en delphi
Merci,
J'ai une situation embarrassante en delphi7:
C'est comment faire une comparaison sur deux champs qui ne se trouvent pas sur la même fiche(feuille) c'est_à_dire le champ Reste_à_payer Sinistre et le champ montant_payer qui est sur la fiche reglement, le champ Provision_Initiale qui est sur la fiche Sinistre et le champ Mont_payer qui est sur la fiche reglement.
Explication: on doit faire de telle sorte que le montant à payer ne soit pas superieur à la provision_initiale et si tout n'est pas payer faire la difference entre le reste à payer et le montant payer pour la phase suivante.
Celui ou celle qui à une idée sera la bienvenue.
Merci par avance.
Zizou7.
NB:J'ai fait une requête me pertant d'afficher dès le choix de la refference de la fiche sinistre sur la fiche Reglement les élements suivants:
Provision_Initiale,Montant_Payer et le Reste_A_payer.
Mais je n'arrive pas à empêcher à l'utilisateur de payer un montant superieur au Reste_A_Payer et à la Provision_Initiale.
Merci.
Reflexion sur un code en delphi
J'ai compris ce que vous venez de dire, mais le problème est que j'utilise le Datasource et le TTable sur un DataModule. Donc toutes les fiches et leurs Datasource et TTable sont sur le même DataModule.
Mais dès que j'essaye d'utiliser par exemple un code dans une propriété Beforepost d'un Datasource, ça ne marche pas.
Je ne sais vraiment pas comment le faire.
Aidez moi s'il vous plaît.
Je vous remerci par avance.
Zizou7.
NB Si vous pouvez me donné un code exemple,me ferait plaisir.
Reflexion sur un code en delphi
Merci pour votre reponse.
Mais le champ Provision_Initiale est sur une autre table(table tsinistre) et le champ Montant_Payer sur une autre(table tpayement).
J'aimerais savoir s'il faut faire la comparaison sur le Datasource de la table payement?
Ensuite le reste_A_Payer est un champ calculé donc c'est sur une requête que j'obtiens cela.
Merci par avance.
Zizou7.
Reflexion sur un code en delphi
je vous remerci très bien sur ma prémière question ça marche très bien,je l'ai mis dans beforeInsert du datasource.
Ce qui est le cas du Reste_A_Payer, je l'ai fait sous access mais elle est liée à un Datasource. J'ai essayé d'écrire ceci:
Code:
1 2 3 4
| If base.tsinistre.FieldByName('provision_Initiale').Value<base.tpaiement.FieldByName('Montant').Value Then
Abort
else if base.tpaiement.FieldByName('Montant').Value>base.QReste.FieldByName('Reste_A_Payer').Value Then
Abort; |
Mais il ne se passe rien.
Je vous demande de savoir si c'est la méthode qu'il faut écrire ou autre?
La prémière est ceci:
Code:
1 2
| If base.tsinistre.FieldByName('provision_Initiale').Value<base.tpaiement.FieldByName('Montant').Value Then
Abort |
Elle marche bien et je ne sais pas comment faire le cas de la requêtte?
Merci par avance.
Par Zizou7.
Reflexion sur un code en delphi
Merci pour vos remarques.
Mais voici les problêmes dont j'ai :
base est mon Datamodule,QReste est une requête parametrée qui m'affiche le Reste_A_Payer.
Ensuite avec Beforeposte
Code:
1 2
| if base.tsinistre.FieldByName('Provision_Initiale').Asfloat<base.tpaiement.FieldByName('Montant').Asfloat Then
Abort; |
ne marche pas car elle laisse passer le Montant dans le champ Montant même si le montant est superieur à la Provision_Initiale et je ne veux pas cela.
Je veux que quand le montant est superieur à la Provision_Initiale l'écriture ne passe pas dans le champ Montant c'est_à_dire l'utilisateur ne soit pas capable de saisir un montant superieur à la Provision_Initaile et s'il ya reste, au payement suivant le Montant ne soit pas superieur au reste.
Je vous remerci par avance.
Par Zizou7.
Reflexion sur un code en delphi
Les composants que j'utilise sont sur un Datamodul qui s'appelle base et les objets qui sont sur ce composant composant sont TTable et Datasource. C'est pas sur la fiche que j'ai mis ces composants donc ça ne peut pas fonctionner sous ce que tu viens de me donner. Il faut trouver autre méthodes.
Merci par avance.
Par Zizou7.
Reflexion sur un code en delphi
La reponse que j'avais écrite était celle de Teach.
Mais par rapport à celle que vous m'avez donné Mr ShaileTroll.
Quelle serait l'importance de :
Citation:
Showmessage(base.tpaiement.Fieldbyname('Montant').Asstring);
Showmessage(base.tsinistre.Fieldbyname('Provision_Initiale').Asstring);
Si c'est pour leurs affichages? J'ai fait une requêtte qui m'affiche sur la table paiement le montan_payer, la Provision_Initiale et le reste_A_Payer si tout le montant n'est pas payer dès le prémier paiement.
Mais le problème c'est empêché la saisie d'un montant dans la table paiement qui soit superieur à la Provision_Initiale de la table sinistre. Ensuite ne pas payer un montant superieur au Rest_A_payer si tout le montant n'est pas payer dès le prémier payement.
Merci par avance.
Par Zizou7.
Reflexion sur un code en delphi
Mr just-Soft: quelle est votre proposition qui a été reffusée?
Mr teach: oui le montant à payer n'est pas modifier dans le BeforPost, mais mon problème c'est d'empêcher la validation de toute saisie (dont le montant est) superieur à la Provision_initiale et le reste à payer.
Merci par avance.
Zizou7.