ikremnitz
Messages postés10Date d'inscriptionlundi 21 mars 2005StatutMembreDernière intervention19 novembre 2009
-
27 août 2008 à 17:55
cs_cantador
Messages postés4720Date d'inscriptiondimanche 26 février 2006StatutModérateurDernière intervention31 juillet 2021
-
29 août 2008 à 11:41
Bonjour,
je cherche à filtrer une requête qyListe sur un champ calculé. Pour cela j'utilise un RadioGroup rgFiltreType et la fonction OnFilterRecord
procedure TfmBilanBiologique.qyListeFilterRecord(DataSet: TDataSet;
var Accept: Boolean);
begin
case rgFiltreType.ItemIndex of 0 : Accept :(qyListe.FieldByName('TYPECTE').AsString 'M') 1 : Accept :(qyListe.FieldByName('TYPECTE').AsString 'S');
end;
end;
Mais la donnée (qyListe.FieldByName('TYPECTE').AsString est toujours nulle (alors qu'elle est renseignée dans le DBGrid correspondant) et du coup le filtre ne fonctionne pas.
J'ai du louper quelque chose mais je ne vois pas quoi.
Pouvez-vous m'aider ?
cs_cantador
Messages postés4720Date d'inscriptiondimanche 26 février 2006StatutModérateurDernière intervention31 juillet 202113 28 août 2008 à 18:18
arf, pas bien noté "sur champ calculé".
c'est normal que ça ne marche pas dans ce cas.
il faut trouver une autre solution :
créer un autre champ ou stocker l'information etc..
les champs calculés, c'est bien mais faut pas en abuser car maintenant vu la puissance des bases de données et des pc, quelquefois, il est préférable de stocker l'information et de la tester ensuite.
c'est même plus rapide.
cs_cantador
Messages postés4720Date d'inscriptiondimanche 26 février 2006StatutModérateurDernière intervention31 juillet 202113 28 août 2008 à 15:22
J'ai testé et ça marche nickel chrome..
bien sûr avec données affichées dans un grid sur requête non filtrante
(select * from Matable)
sur les deuc clics dans le radiogroup, j'ai bien l'exécution des deux possibiltés du
OnFilterRecord avec affichage des données correctes (et sans rafraîchir)
ikremnitz
Messages postés10Date d'inscriptionlundi 21 mars 2005StatutMembreDernière intervention19 novembre 2009 28 août 2008 à 16:58
Je suis d'accord avec toi. Mais j'ai une petite difficulté supplémentaire: le champ sur lequel je trie est un champ calculé. Au moment où je passe dans la fonction, le calcul n'a pas encore été fait et le champ est vide => la requête est vide.
cs_cantador
Messages postés4720Date d'inscriptiondimanche 26 février 2006StatutModérateurDernière intervention31 juillet 202113 29 août 2008 à 11:41
peut-être un peu plus lourdes
non pas forcément..
J'avais un case of dans un OnCalcField, je l'ai viré, j'ai stocké les infos à la place des champs calculés
résultat : 3 fois plus vite
il faut tester chaque solution en la chronométrant sans à priori..