Bonjour,

j'aimerais savoir s'il existe une possibilité de filtrer sur un champ persistant.

Sur l'évènement onChange de trois Edit je créé un filtre sur une table nommée tblChantiers, un sur les noms clients, un sur les code postaux et un sur les villes.

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
16
17
18
19
20
21
22
23
24
25
26
27
28
29
procedure TfrmChantiers.RechercheChantier;
var moncritere:string;
    Option : TLocateOptions;
begin
  if (Edit1.Text='') and (Edit2.Text='') and (Edit3.Text='') then
    DM.tblChantiers.Filtered:=false;
    moncritere := '';
    //Recherche sur un CP
    //-------------------
    If Edit1.GetTextLen<> 0  Then
        moncritere := moncritere + ' [CP_chantier] Like ''' + Edit1.text + '%'''+' AND';
    //Recherche sur une ville
    //--------------------
    If Edit2.GetTextLen<> 0  Then
        moncritere := moncritere + ' [Ville_chantier] Like ''' + Edit2.text + '%'''+' AND';
    //Recherche sur les clients
    //-----------------------------
    If Edit3.GetTextLen<> 0  Then
      moncritere := moncritere + ' [ClairClient] Like ''' + Edit3.text + '%'''+' AND';
      //Ici ce n'est pas bon car ClairClient est un champ persistant qui n'est pas dans ma table tblChantiers mais dans ma table tblClients
    // Afficher le résultat
    If Length(moncritere) > 0 Then
        begin
        moncritere := Copy(moncritere, 1,Length(moncritere) - 4);
        DM.tblChantiers.Filter :=moncritere;
        DM.tblChantiers.Filtered:=true;
        end;
end;
Le problème, à l'affichage dans un DBGrid j'ai un champ persistant, les noms clients issu d'une table tblClients.

Est il possible de filtrer sur ce champ et si oui comment?

D'avance merci

Codial