[débutant]champs calculé

Soyez le premier à donner votre avis sur cette source.

Vue 10 720 fois - Téléchargée 2 746 fois

Description

Petite application pour debutant réalisé avec Delphi 6 qui permet
de calculer des valeurs (Prix Horstva, Prix tva compris, etc ) a partir de champs provenant
d'une base de données.

Ici je me suis servis de Paradox.

J'ai mis pas mal de commentaires,

Pour que l'application fonctionne, vous devez configurez le fichier
unit2.dfm avec vos parametres :

a la ligne :
-------------

object Table1: TTable
DatabaseName = 'c:\votrechemin' <= Remplacez ce chemin par le votre!!!
TableName = 'stock.db'
Left = 521
Top = 3

Compliez le tout et ca devrait rouler...

Tout est dans le .zip

Source / Exemple :


procedure TForm2.Button2Click(Sender: TObject);
begin
//Operation

        //Prix unitaire hors tva

     table1.fieldbyname('puhtva').asfloat := table1.fieldbyname('pu').asfloat *(100
   - table1.fieldbyname('remise').asfloat)/100;

      // tva

      table1.FieldByName('tva').AsFloat := table1.fieldbyname('PuHtva').AsFloat

  • table1.fieldbyname('tauxtva').asfloat / 100;
// prix unitaire tvacomprise table1.FieldByName('putvac').asfloat := table1.fieldbyname('puhtva').asfloat + table1.fieldbyname('tva').AsFloat; end;

Conclusion :


Enjoy

http://membres.lycos.fr/annmysql

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

jackalunion
Messages postés
129
Date d'inscription
mercredi 8 janvier 2003
Statut
Membre
Dernière intervention
14 juillet 2008

1+1 est impossible
en empreinte un 1 et ont le rend pas
cs_Delphiprog
Messages postés
4580
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
26
Il ne faudrait pas confondre faire des calculs avec des champs et utiliser des champs calculés !

En cliquant sur "Calculez les champs", on déclenche un exception du fait que l'ensemble n'est pas en mode édition et c'est normal.

Si les champs dans lesquels tu veux écrire sont bien déclarés comme champs calculés (fkCalculated), tu dois aussi utiliser l'évènement OnCalcFields de l'ensemble de données et y mettre ton code comme suit :
procedure TForm2.Table1CalcFields(DataSet: TDataSet);
begin
//Prix unitaire hors tva
table1.fieldbyname('puhtva').asfloat :=
table1.fieldbyname('pu').asfloat * (100
- table1.fieldbyname('remise').asfloat) / 100;

// tva
table1.FieldByName('tva').AsFloat :=
table1.fieldbyname('PuHtva').AsFloat
* table1.fieldbyname('tauxtva').asfloat / 100;

// prix unitaire tvacomprise
table1.FieldByName('putvac').asfloat :=
table1.fieldbyname('puhtva').asfloat
+ table1.fieldbyname('tva').AsFloat;
end;
L'utilité du bouton intitulé "Calculez les champs" devient ainsi nulle.

A celà j'ajouterai que, comme les tables physiques sont dans le même dossier que l'application (stocks.*), il n'est pas utile de préciser un chemin dans la propriété DataBaseName de Table1.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.