Bonjour.
Voilà j'ai un programme qui gère des contrats avec des prestations:
1 Contrat possède de 1 à n Prestations
1 Prestation appartient à 1 ou plusieurs contrat.
On m'a demandé de rajouter des tests en 'dur' sur le libellé (voir la procédure suivante):

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
30
Var
t
 titi,tata: boolean;
 age:integer
...
 
 
procedure TFrmLocation.remplirListePrestations() ;
var
 i: integer;
 temp:string;
begin
listbox.Items.Clear;
QueryPrestations.First;
while not QueryPrestations.eof
  try
  if QueryPrestations.fieldbyname('Contrat').asstring = ComboBoxContrat.Text then
  begin
     temp := QueryPrestations.fieldbyname('Libelle').AsString;
    //Test en 'dur' ajouté
     if ( (temp = 'Assurance')   and (age>30) )  or
        ( (temp = 'Maintenance') and (titi) )  or
        ( (temp = 'Assistance')  and (tata) )  then
        continue;
     listbox.items.Add(temp)
  end;
  finally
   QueryPrestations.Next;
  end;
End;
Le problème c'est que les tests :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
     if ( (temp = 'Assurance')   and (age>30) )  or
        ( (temp = 'Maintenance') and (titi) )  or
        ( (temp = 'Assistance')  and (ata) )  then
m'obligent à tester en dur les valeurs des prestations, ce qui n'est pas propre et casse le côté configurable de l'appli.

Y'aurait-il une solution pour supprimer ces tests. Créer une nouvelle table et créer une association avec la table des prestations??

Merci d'avance.