Champs calculé

sanabde Messages postés 17 Date d'inscription mardi 11 mars 2014 Statut Membre Dernière intervention 15 mai 2014 - 21 mars 2014 à 16:07
sanabde Messages postés 17 Date d'inscription mardi 11 mars 2014 Statut Membre Dernière intervention 15 mai 2014 - 26 mars 2014 à 15:21
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

Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 656
21 mars 2014 à 17:14
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
0
sanabde Messages postés 17 Date d'inscription mardi 11 mars 2014 Statut Membre Dernière intervention 15 mai 2014
Modifié par Whismeril le 24/03/2014 à 17:27
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
0
Technix59 Messages postés 32 Date d'inscription vendredi 13 décembre 2002 Statut Membre Dernière intervention 29 mars 2014
24 mars 2014 à 19:34
Bonjour sanabde,

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


Technix59.

--
0
sanabde Messages postés 17 Date d'inscription mardi 11 mars 2014 Statut Membre Dernière intervention 15 mai 2014
Modifié par sanabde le 25/03/2014 à 09:22
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 ''
0
Technix59 Messages postés 32 Date d'inscription vendredi 13 décembre 2002 Statut Membre Dernière intervention 29 mars 2014
25 mars 2014 à 10:43
Bonjour sanabde,

Pourrais-tu mettre le code contenu dans l'événement OnClick de ton bouton ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sanabde Messages postés 17 Date d'inscription mardi 11 mars 2014 Statut Membre Dernière intervention 15 mai 2014
25 mars 2014 à 13:39
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.
0
Technix59 Messages postés 32 Date d'inscription vendredi 13 décembre 2002 Statut Membre Dernière intervention 29 mars 2014
25 mars 2014 à 13:52
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:= ...
0
sanabde Messages postés 17 Date d'inscription mardi 11 mars 2014 Statut Membre Dernière intervention 15 mai 2014
25 mars 2014 à 14:17
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.
0
sanabde Messages postés 17 Date d'inscription mardi 11 mars 2014 Statut Membre Dernière intervention 15 mai 2014
Modifié par sanabde le 25/03/2014 à 15:07
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 ;
0
Technix59 Messages postés 32 Date d'inscription vendredi 13 décembre 2002 Statut Membre Dernière intervention 29 mars 2014
25 mars 2014 à 15:07
De rien M'sieur,

Ne pas oublier le Table1.Post après écriture.
0
sanabde Messages postés 17 Date d'inscription mardi 11 mars 2014 Statut Membre Dernière intervention 15 mai 2014
25 mars 2014 à 15:41
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.
0
Technix59 Messages postés 32 Date d'inscription vendredi 13 décembre 2002 Statut Membre Dernière intervention 29 mars 2014
25 mars 2014 à 18:10
Rien ne s'affiche dans Edit1 ?
0
sanabde Messages postés 17 Date d'inscription mardi 11 mars 2014 Statut Membre Dernière intervention 15 mai 2014
26 mars 2014 à 07:59
Bonjour, si. le calcul s'affiche sur l'edit,
0
Technix59 Messages postés 32 Date d'inscription vendredi 13 décembre 2002 Statut Membre Dernière intervention 29 mars 2014
26 mars 2014 à 11:45
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.
0
sanabde Messages postés 17 Date d'inscription mardi 11 mars 2014 Statut Membre Dernière intervention 15 mai 2014
26 mars 2014 à 12:05
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 .
0
Technix59 Messages postés 32 Date d'inscription vendredi 13 décembre 2002 Statut Membre Dernière intervention 29 mars 2014
26 mars 2014 à 12:26
Oui, très simplement en affectant à ton QuickRep.QRLabel.Caption IntToStr(Somme)
0
sanabde Messages postés 17 Date d'inscription mardi 11 mars 2014 Statut Membre Dernière intervention 15 mai 2014
26 mars 2014 à 13:11
comme ça ? Quickrep1.QRlabel109.Caption:=inttostr(somme)
0
Technix59 Messages postés 32 Date d'inscription vendredi 13 décembre 2002 Statut Membre Dernière intervention 29 mars 2014
26 mars 2014 à 13:58
Oui tout à fait.

Bon amusement ;-)
0
sanabde Messages postés 17 Date d'inscription mardi 11 mars 2014 Statut Membre Dernière intervention 15 mai 2014
26 mars 2014 à 15:21
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'
0
Rejoignez-nous