Si vous voulez accélérer le traitement des états, vous devez en premier lieu limiter le nombre de données renvoyées par la base de données. La formule de sélection d'enregistrements constitue pour cela votre outil principal.
Crystal Reports analyse votre formule de sélection d'enregistrements et génère une requête SQL. Cette requête SQL est ensuite traitée par la base de données qui renvoie les enregistrements obtenus à Crystal Reports. Crystal Reports évalue ensuite localement la formule de sélection d'enregistrements pour chacun des enregistrements récupérés dans la base de données, calculant ainsi le jeu d'enregistrements utilisé pour générer l'état.
Les enregistrements superflus sont éliminés à deux niveaux : dans la base de données avec la requête SQL et dans Crystal Reports par la formule de sélection d'enregistrements. Pour obtenir de meilleurs temps de réponse, vous souhaitez éliminer autant d'enregistrements que possible dans le premier niveau. En concevant de manière efficace votre formule de sélection d'enregistrements, le serveur de base de données effectuera l'essentiel du traitement, éliminant ainsi les enregistrements superflus avant de les renvoyer à Crystal Reports. Nous désignons ceci par Empilage de la sélection d'enregistrements sur le serveur de base de données.
Pour éviter d'afficher toutes les données d'un état chaque fois qu'il est ouvert, vous pouvez créer des champs de paramètre qui invitent les utilisateurs à préciser les données qu'ils souhaitent voir. Pour diminuer la quantité de données transférées du serveur de base de données, intégrez ces champs de paramètre dans votre formule de sélection d'enregistrements.
En général, les champs de paramètre fournissent une interactivité pour les utilisateurs qui répondent aux invites de paramètres pour préciser les données qu'ils veulent voir. Toutefois, en intégrant vos champs de paramètre dans votre formule de sélection d'enregistrements, non seulement vous permettez l'interactivité mais vous réduisez aussi le transfert de données et améliorez les performances.
Vous pouvez ajouter un champ de paramètre à votre formule de sélection d'enregistrements en utilisant l'Expert Sélection ou l'Editeur de formule de sélection d'enregistrements. Lorsque vous utilisez l'Editeur de formule de sélection d'enregistrements, vous traitez le champ paramètre comme vous traiteriez n'importe quel champ. Voir Incorporation des paramètres dans des formules.
Pour conserver des vitesses de traitement d'états optimales, évitez d'utiliser des formules (que ce soit la syntaxe Crystal ou Basic) dans les formules de sélection d'enregistrements. Remplacez plutôt la formule originale par un champ d'expression SQL équivalent puis intégrez le champ d'expression SQL équivalent dans votre formule de sélection d'enregistrements. Vous améliorerez ainsi de façon importante la probabilité d'empilage de votre sélection d'enregistrements sur le serveur.
En outre, évitez de trier, de regrouper ou de cumuler sur un champ de formule (que ce soit la syntaxe Crystal ou Basic). Remplacez plutôt le champ de formule original par un champ d'expression SQL équivalent puis triez, regroupez ou calculez le total sur ce dernier. Une fois de plus, ceci améliorera les chances d'un traitement effectué par le serveur.
Enfin, si votre base de données prend en charge Case Logic et si votre état doit résumer un calcul de formule If-Then-Else, remplacez la formule par un champ d'expression SQL. Dans de tels cas, les champs d'expression SQL permettent à Crystal Reports de regrouper l'état sur le serveur. Voir la section Expressions SQL.