Question

Cela m’a toujours incité à choisir le meilleur moyen de procéder comme suit ...

avec un simple à plusieurs db, lorsque vous avez 2 tables / grilles sur un formulaire et le second filtré par le premier.

Où est le meilleur endroit pour mettre le code de filtre
c'est-à-dire:

procedure TForm1.tblCustormersAfterScroll(DataSet: TDataSet);
begin
  if tblCustormersCustormerID.AsString <> '' then
   begin
     tblCustormersThings.Filter := 'CustormerID = ' + tblCustormersCustormerID.AsString;
     tblCustormersThings.Filtered := true;
   end;
end;

AfterScroll semble fonctionner la plupart du temps, mais ne vous faites pas virer lors de certains événements, par exemple après la publication. Normalement, j'aurais une procédure pour faire la mise à jour du filtre et la mettre partout où cela semble être nécessaire.

Mais je me demandais s’il existait une meilleure façon de faire. C’est comme si tout ce que Delphi devrait savoir sur ...

Je ne pense pas que ce soit important, mais j'utilise Delphi7 et NexusDB1

Était-ce utile?

La solution

Vous devez définir les propriétés MasterSource et des champs principaux sur " plusieurs " côté.

Il s’agit de la relation maître-détail, et vous devriez vous renseigner auprès de l’aide de NexusDB pour créer un moyen de créer cette relation entre les tables.

Si votre table prend en charge les index, vous pouvez créer un index sur la CustomerID et utiliser la méthode SetRange () .

La façon dont vous définissez le filtre est la plus lente.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top