salut tout le monde
stp Où est le problème dans cette calcule entre 2 tables projet et lot
pour calculer le montant de lot j'ai écrire cette programme
ce programme est juste Mais :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 procedure TFprojet.TlotCalcFields(DataSet: TDataSet); begin Tlot['mont_lot']:=(Tlot['prix_un']* Tlot['Volum_lot']); end;
pour calculer le montant total de projet est la règle suivant :
montant de projet:= la somme des montants des lots
j'ai écrire cette programme en sql
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 procedure TFprojet.TlotCalcFields(DataSet: TDataSet); begin query.SQL.Clear; query.SQL.Add('select sum[mont_lot] as somme from somme ') ; query.ExecSQL; query.active:=true; Tprojet['montant_projet']=inttostr(query.FieldValues['somme']);
ou bien en boucle
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 procedure TFprojet.TprojetCalcFields(DataSet: TDataSet); var s:integer; begin Tlot.active:=true; s:=0; Tlot.first; while (not Tlot.eof) do begin s:=s+ Tlot.FieldValues['mont_lot']; Tlot.Next; end; Tprojet['montant_projet']:=inttostr(s); end;
mais toujours le message erreur suivant:
could not convert variant of type (null) in to (integer)
et quand je lève
j'ai le message erreur suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part Tlot.active:=true;
exeption class EDatabasErreur('tlot: cannot perform this opération on a
closed dataset'
NOT:
mont_lot : champ calculé:integer dans la table Tlot et,
montant_projet : champ calculer dans la table projet
la table projet est maitre
la table lot est détalai
stp Où est le problème dans cette calcule
Partager