Crystal Reports  

Dépannage des formules de sélection d'enregistrements

Pour dépanner votre formule de sélection, vous devez d'abord vous assurer que tous les champs auxquels la formule de sélection fait référence se trouvent sur l'état. Supprimez ensuite la formule de sélection et testez-la pas à pas lors de sa re-création.

Correction des sélections qui ne génèrent pas de données

Peut-être avez vous créé une formule de sélection d'enregistrements et, les informations de l'en-tête de page et du pied de page d'état ont été imprimés, mais aucune information de détail n'apparaît. Le problème provient du rejet de tous les enregistrements par la formule. Cela se produit généralement à cause d'une erreur lors de la création de la formule de sélection.

Il existe plusieurs raisons possibles à cette erreur dans la formule de sélection :

Incohérences majuscules/minuscules

Les formules de sélection d'enregistrements respectent la casse. Par conséquent, "Bob" ne correspond qu'à "Bob". Il ne correspond pas à "bob", "BOB", "BoB", "bOB", "boB" ou "Bob". Si votre formule de sélection est configurée pour n'inclure que les enregistrements avec "BOB" dans le champ {clients.PRENOM DU CONTACT} mais que la casse des valeurs de ce champ est mélangée ("Bob" par exemple), la formule de sélection ne trouve aucune correspondance et n'imprime aucun détail pour l'état.

Vous pouvez résoudre ce problème en utilisant les fonctions UpperCase (chn) ou LowerCase (chn) dans votre formule de sélection pour convertir les données du champ à une casse identique avant que le logiciel commence sa sélection. Par exemple, si vous utilisiez cette formule :

{clients.PRENOM DU CONTACT} = "BOB"

vous pouvez la remplacer par celle-ci :

UpperCase ({clients.PRENOM DU CONTACT}) = "BOB"

Cette dernière formule convertit la valeur du champ {clients.PRENOM DU CONTACT} en casse majuscule et puis vérifie que la valeur du champ est égal à "BOB". En utilisant cette formule, les trois lettres "b", "o", "b" correspondent, quelle que soit la casse, car les lettres seront converties en majuscule par cohérence pour avoir des correspondances correctes.

Vous pourriez utiliser la fonction LowerCase de la même manière pour avoir des correspondances avec "bob".

Vérifiez votre formule de sélection et vérifiez que vous avez la casse correcte dans tous les textes que vous essayez de faire correspondre. En cas de doute, utilisez la fonction UpperCase (ou LowerCase) pour vérifier la cohérence et l'exactitude des correspondances.

La formule ci-dessous produit pratiquement le même résultat que la précédente :

"BOB" in UpperCase ({clients.PRENOM DU CONTACT})

Espaces indésirables apparaissent dans la formule de sélection

Les espaces sont des caractères, et lorsque vous mettez des espaces dans la clé de recherche d'une formule de sélection, la formule cherche des enregistrements avec une correspondance exacte dans le champ sélectionné, y compris les espaces et tout autre caractère. Par exemple, la formule suivante :

"M . " in {clients.FONCTION}

ne trouvera aucune correspondance avec la forme d'adresse "M." car il existe un espace de plus dans la clé de recherche entre la lettre "M" et le point. De même, "Ph. D" ne correspondra pas à "Ph.D".

Vérifiez votre formule de sélection minutieusement et vérifiez que les espaces dans la formule de sélection correspondent aux espaces dans les champs que vous essayez de faire correspondre.

Voir aussi

Sélection des enregistrements | Empilage de la sélection d'enregistrements sur le serveur de base de données