Bonjour,
je reprends une de mes marottes : les TListViews car je "tombe" sur un truc que je n'arrive pas à obtenir.
Soit une liste par exemple des montants de commandes clients.
Vous admettrez que si j'applique une recherche, le montant total fait "tâche"
J'arrive bien à indiquer le nombre d'éléments filtrés grâce à ce code
L'inconvénient c'est que le filtre n'indique pas de quel item il s'agit et donc je ne peux atteindre le montant de l'item
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 procedure TForm3.ListView1Filter(Sender: TObject; const AFilter, AValue: string; var Accept: Boolean); begin if OldFilter<>AFilter then begin OldFilter:=AFilter; nFiltered:=0; end; Accept:=Sametext(AValue,AFilter); if Accept then begin inc(nFiltered); Filtres.Text:=Format('Filtres %d',[nfiltered]); end; end;
De même, la recherche ne positionne pas l'élément en cours sur la table il est donc exclu que je fasse quelque chose comme
qui me donnerait nfiltered*ItemsTotal de la première ligne de la Table, soit dans l'exemple 6250,00
Code : Sélectionner tout - Visualiser dans une fenêtre à part montantFiltre:=montantFiltre+ClientDataSet1.FieldByName('ItemsTotal').asFloat
Une idée pour accéder au montant de l'élément au sein du OnFilter (sachant que dés que la condition du filtre est remplie on ne passe pas sur les autres objets texte de l'item) ?
P.S. j'ai bien idée de faire la somme des montants de éléments non filtrés pour les déduire de la somme total mais il y a certainement mieux ?
Partager