Champs calculé

Signaler
Messages postés
17
Date d'inscription
mardi 11 mars 2014
Statut
Membre
Dernière intervention
15 mai 2014
-
Messages postés
17
Date d'inscription
mardi 11 mars 2014
Statut
Membre
Dernière intervention
15 mai 2014
-
Bonjour, j'ai fait le calcule d'une colonne, l'opération marche, mais la somme trouvée s'affiche sur le champs calculé réservé à ça ne s'enregistre pas ;quand je sort de la fiche 'form' où je fait le calcul je trouve le champ vide , pourquoi ? et merci d'avance.

12 réponses

Messages postés
16132
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
31 juillet 2021
556
Bonsoir, je ne code pas en delphi, mais ceux qui savent ne pourront pas te répondre sans que tu montres le code que tu as écrit.
Utilise les balises de coloration syntaxique, voir ici
Messages postés
17
Date d'inscription
mardi 11 mars 2014
Statut
Membre
Dernière intervention
15 mai 2014

Ok monsieur, voila le code et merci bien pour cette orientation.je suis un débutant sur le domaine de programmation.
                                               table1.edit;   
           Table1.FieldByName('TO').AsInteger:= somme;  // le champ calculé où se mettre la valeur voulue
Messages postés
32
Date d'inscription
vendredi 13 décembre 2002
Statut
Membre
Dernière intervention
29 mars 2014

Bonjour sanabde,

Il faut ajouter un table1.Post; après l'écriture.


Technix59.

--
Messages postés
17
Date d'inscription
mardi 11 mars 2014
Statut
Membre
Dernière intervention
15 mai 2014

Bonjour Technix59, j'ai mis table1.post; mais quand j'exécute le programme et après le clique sur le bouton 'calculer' l'exécution de la procédure du calcul ne s'arrête pas comme c'est bloqué et je ne peux pas sortir de l'application sauf si j'ai utilisé l'option de windows '' fin de taches ''
Messages postés
32
Date d'inscription
vendredi 13 décembre 2002
Statut
Membre
Dernière intervention
29 mars 2014

Bonjour sanabde,

Pourrais-tu mettre le code contenu dans l'événement OnClick de ton bouton ?
Messages postés
17
Date d'inscription
mardi 11 mars 2014
Statut
Membre
Dernière intervention
15 mai 2014

Ok , le voila et merci pour votre attention monsieur ,,
procedure TFiche_etat_engage.calculerClick(Sender: TObject);

var somme:integer;
begin
somme := 0;
Table1.first;
while not Table1.Eof do
try
somme := somme + Table1.fieldbyname('chapitre').AsInteger;
finally Table1.next;
table1.edit;
Table1.FieldByName('TO').AsInteger:= somme;
edit1.Text:=inttostr(somme);
end;
end;
end.
Messages postés
32
Date d'inscription
vendredi 13 décembre 2002
Statut
Membre
Dernière intervention
29 mars 2014

Il est tout à fait normal que cette boucle tourne indéfiniment car telle qu'elle, le Table.Next ne s'effectue qu'en cas de levée d'exception sur le calcul de la somme.

Il faut écrire cette boucle comme suit :

While Not Table1.Eof do
begin
Try
somme:= somme + ...
Except
// Eventuellement du code
End;
Table1.Next; // De cette manière, le next s'effectue à chaque occurence.
end; // While..

Table1.FieldByName...
Edit1.Text:= ...
Messages postés
17
Date d'inscription
mardi 11 mars 2014
Statut
Membre
Dernière intervention
15 mai 2014

Ok , le voila et merci pour votre attention monsieur ,,

procedure TFiche_etat_engage.calculerClick(Sender: TObject);
var somme:integer;
begin
somme := 0;
Table1.first;
while not Table1.Eof do
try
somme := somme + Table1.fieldbyname('chapitre').AsInteger;
finally Table1.next;
table1.edit;
Table1.FieldByName('TO').AsInteger:= somme;
edit1.Text:=inttostr(somme);
end;
end;
end.
Messages postés
17
Date d'inscription
mardi 11 mars 2014
Statut
Membre
Dernière intervention
15 mai 2014

Merci monsieur TECHNIX59, le problème persiste toujours le champ calculé ne s'enregistre pas dés que je sort de la fiche. j'attire votre attention monsieur que je veux que la valeur soit enregistrer sur ce champ pour qu'elle sera affiché sur l'état de sortie ( quickreport ), parce que le contenu d'un (edit.text) ne peut pas s'afficher sur les états...ou c ce que je crois ;
Messages postés
32
Date d'inscription
vendredi 13 décembre 2002
Statut
Membre
Dernière intervention
29 mars 2014

De rien M'sieur,

Ne pas oublier le Table1.Post après écriture.
Messages postés
17
Date d'inscription
mardi 11 mars 2014
Statut
Membre
Dernière intervention
15 mai 2014

ok, voila maintenant comment ça marche ;; si j'ai mis (table1.post;) le calcul ne s'affiche complétement pas sur le champ calculé et si j'enlève (table1.post) le calcul s'affiche et ne s'enregistre pas ; et voila le code à nouveau ;;;;
var somme:integer;

begin
somme := 0;
Table1.first;
while not Table1.Eof do
begin
try
somme := somme + Table1.fieldbyname('chapitre').AsInteger;
except
end;
table1.Next;
end;
table1.edit;
Table1.FieldByName('TO').AsInteger:= somme;
edit1.Text:=inttostr(somme);
table1.Post;
end;
end.
Messages postés
32
Date d'inscription
vendredi 13 décembre 2002
Statut
Membre
Dernière intervention
29 mars 2014

Rien ne s'affiche dans Edit1 ?
Messages postés
17
Date d'inscription
mardi 11 mars 2014
Statut
Membre
Dernière intervention
15 mai 2014

Bonjour, si. le calcul s'affiche sur l'edit,
Messages postés
32
Date d'inscription
vendredi 13 décembre 2002
Statut
Membre
Dernière intervention
29 mars 2014

Il y a dans tous les cas un problème car l'écriture dans la table s'effectue s'effectue toujours sur le dernier enregistrement.
Messages postés
17
Date d'inscription
mardi 11 mars 2014
Statut
Membre
Dernière intervention
15 mai 2014

ok merci, est-ce qu'on peux afficher le contenu de l'edit1.text sur l'etat de sortie ( quickreport )? si oui , c'est ce que je veux sinon vous pouvez me donner une autre solution s'il ya .
Messages postés
32
Date d'inscription
vendredi 13 décembre 2002
Statut
Membre
Dernière intervention
29 mars 2014

Oui, très simplement en affectant à ton QuickRep.QRLabel.Caption IntToStr(Somme)
Messages postés
17
Date d'inscription
mardi 11 mars 2014
Statut
Membre
Dernière intervention
15 mai 2014

comme ça ? Quickrep1.QRlabel109.Caption:=inttostr(somme)
Messages postés
32
Date d'inscription
vendredi 13 décembre 2002
Statut
Membre
Dernière intervention
29 mars 2014

Oui tout à fait.

Bon amusement ;-)
Messages postés
17
Date d'inscription
mardi 11 mars 2014
Statut
Membre
Dernière intervention
15 mai 2014

merci, mais l'application ne s'exécute pas voila le message d'erreur de compilation.
[Erreur] etat_paie.pas(198): Identificateur non déclaré : 'QRlabel109'