d'enregistrements. Business Objects Crystal Reports 2008 SP1
Conception de rapports Web optimisés
8
Utilisation des formules de sélection d'enregistrements améliorées
Toutefois, cette formule de sélection d'enregistrements génère le même rapport :
{Orders.Order Date} < #Jan 1, 2001#
Cette deuxième formule peut être exécutée sur le serveur de base de données, donc empilée. La requête SQL créée renverra uniquement 181 enregistrements vers Crystal Reports. Ainsi, lorsque la formule de sélection d'enregistrements est évaluée par Crystal Reports, aucun enregistrement supplémentaire n'a besoin d'être éliminé. Cliquez sur Afficher la requête SQL dans le menu Base de données et notez que la requête SQL résultante comporte une clause WHERE.
Comme le montre cet exemple, la vitesse de traitement de votre rapport s'améliore lorsque vous affinez la formule de sélection d'enregistrements.
Dans ce cas, les deux formules génèrent le même rapport, mais la deuxième profite de la puissance et des optimisations que le serveur de base de données peut utiliser lorsqu'il gère ses propres données.
Conseil :
Voir la section suivante pour en savoir plus sur la définition des requêtes de sélection d'enregistrements.
Remarque :
Si vous débutez dans les formules de sélection d'enregistrements, vous préférerez sans doute commencer avec l'Expert Sélection ou les modèles de formules de sélection d'enregistrements. Pour en savoir plus et pour une présentation des sélections d'enregistrements, voir
page 206.
Astuces pour améliorer les performances lors de la sélection d'enregistrements
Pour améliorer les performances des demandes de sélection d'enregistrements, notez les points suivants :
Général
• Pour empiler la sélection d'enregistrements sur le serveur, vous devez sélectionner l'option "Utiliser les index ou le serveur pour un traitement
192 Guide de l'utilisateur de Crystal Reports 2008 SP1
Conception de rapports Web optimisés
Utilisation des formules de sélection d'enregistrements améliorées
8 rapide" dans la boîte de dialogue Options du rapport (disponible dans le menu Fichier).
• Dans les formules de sélection d'enregistrements, évitez les conversions de types de données sur des champs autres que les champs de paramètre.
Par exemple, évitez d'utiliser ToText( ) pour convertir un champ de base de données numérique en champ de base de données de type chaîne.
• Vous pouvez empiler des formules de sélection d'enregistrements qui utilisent des expressions de type constante.
Bases de données PC
• Vous pouvez empiler une sélection d'enregistrements uniquement sur les champs indexés.
• Vous pouvez empiler uniquement les clauses AND (pas OR).
Bases de données SQL
• Vous pouvez empiler la sélection d'enregistrements sur les champs indexés ou non indexés.
• Votre SQL Server répondra plus vite si vous utilisez des champs indexés.
• Vous pouvez empiler les clauses AND et OR.
• Les formules de sélection d'enregistrements contenant certains types de formules intégrées peuvent être empilées.
• Vous devez incorporer des champs d'expression SQL pour empiler les calculs de formules nécessaires à la sélection d'enregistrements.
• Dans le menu Base de données, cliquez sur Afficher la requête SQL pour afficher le langage SQL qui sera envoyé au serveur de base de données.
Guide de l'utilisateur de Crystal Reports 2008 SP1 193
Conception de rapports Web optimisés
8
Utilisation des formules de sélection d'enregistrements améliorées
Stratégies d'écriture de formules de sélection d'enregistrements efficaces
Remarque :
Dans cette section, nous supposons que vous soyez familiarisé avec l'Expert
Sélection et que votre rapport exploite une base de données SQL.
Prenez en compte les points suivants lors de la création de formules de sélection d'enregistrements :
Considération 1
Toute formule de sélection d'enregistrements que vous générez intégralement avec l'Expert Sélection, sans écrire vous-même des parties de la formule, peut être empilée.
En fait, ce cas découle des points ci-dessous. Vous pouvez toutefois écrire plus de types de formules de sélection d'enregistrements en utilisant les conseils ci-dessous qu'il ne serait possible d'en obtenir avec l'Expert
Sélection. Pour cela, vous devez modifier la formule de sélection d'enregistrements directement à l'aide de l'Atelier de formules ou à partir de la zone de texte qui s'affiche lorsque vous cliquez sur Afficher formule dans l'Expert Sélection.
Pour ouvrir l'Atelier de formules afin de modifier la sélection d'enregistrements, cliquez sur le menu Rapport, pointez sur Formules de sélection, puis sélectionnez Enregistrements dans le sous-menu.
Considération 2
Toute formule de sélection de type :
ChampBasedeDonnées OpérateurPrisen
Charge ExpressionConstanteouParamétrique peut être empilée.
Bien entendu
ChampBasedeDonnées est un champ de base de données.
Opérateurprisencharge correspond à l'un des opérateurs suivants : =,<>,
<, <=, >, >=, Commence par, Comme ou Dans.
ExpressionConstanteouParamétrique est une expression qui implique des valeurs constantes, des opérateurs, des fonctions et des champs de
194 Guide de l'utilisateur de Crystal Reports 2008 SP1
Conception de rapports Web optimisés
Utilisation des formules de sélection d'enregistrements améliorées
8 paramètre. Elle ne peut pas impliquer de variables, de structures de contrôle ou de champs autres que les champs de paramètre. Par leur définition même, les expressions constantes et paramétriques peuvent être évaluées sans accéder à la base de données.
Remarque :
Une expression constante ou paramétrique peut se réduire à une simple valeur, une valeur de plage, une valeur de tableau ou un tableau de valeurs de plages. On trouvera ci-dessous de telles expressions :
{?number parameter} - 3
Year ({?run date})
CurrentDate + 5
DateDiff ("q", CurrentDate, CDate("Jan 1, 1996"))
Month (Maximum ({?date range parameter}) + 15)
["Canada", "Mexico", "USA", {?enter a country}]
1000 To 5000
[5000 To 10000, 20000 To 30000, 50000 To 60000]
Exemple complet :
{Orders.Order Date} >= CurrentDate - 3
Le programme peut également empiler une expression qui contient uniquement un champ booléen (sans l'opérateur et les parties constantes).
{Orders.Shipped}
Not {Orders.Shipped}
Considération 3
IsNull (ChampBasedeDonnées) peut être empilée.
Considération 4
InstructionSQLOpérateurPrisenCharge
ExpressionConstanteouParamétrique
peut être empilée.
Par exemple, la formule de sélection
{@Prixétendu} > 1000 ne peut pas
être empilée si
{@ Prixétendu} = (Quantité * Prix)
. Toutefois, si la formule
@Prixétendu est remplacée par l'expression SQL équivalente, votre formule de sélection d'enregistrements sera empilée.
Guide de l'utilisateur de Crystal Reports 2008 SP1 195
Conception de rapports Web optimisés
8
Utilisation des formules de sélection d'enregistrements améliorées
Considération 5
Lorsque vous utilisez plusieurs expressions qui respectent les considérations ci-dessus, séparez-les par des opérateurs AND (ET), OR (OU) ou NOT
(NON). Vous pouvez en avoir plusieurs et vous pouvez utiliser des parenthèses pour définir les priorités. Par exemple :
{Orders.Order ID} < Minimum({?number range}) Or
{Orders.Order Amount} >= 1000
(IsNull({Customer.Region}) Or
{Customer.Region} = "BC") And
{Customer.Last Year's Sales} > 2000
Pour en savoir plus
• Si votre formule de sélection d'enregistrements ne répond pas comme prévu, voir
Dépannage des formules de sélection d'enregistrements
page 217.
Incorporation des champs de paramètre dans les formules de sélection d'enregistrements
Pour éviter d'afficher toutes les données d'un rapport 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 saisie 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'Atelier de formules de sélection d'enregistrements. Lorsque vous utilisez l'Atelier de formules de
196 Guide de l'utilisateur de Crystal Reports 2008 SP1
Conception de rapports Web optimisés
Utilisation des formules de sélection d'enregistrements améliorées
8 sélection d'enregistrements, vous traitez le champ de paramètre comme n'importe quel autre champ.
Dans l'exemple suivant, vous créez un champ de paramètre puis vous l'ajoutez à la formule de sélection d'enregistrements à l'aide de l'Expert
Sélection. Pour en savoir plus sur la sélection et la création de champs de paramètre, voir
Champs de paramètre et invites
page 629.
Pour ajouter un champ de paramètre à votre formule de sélection d'enregistrements
1.
Ouvrez l'exemple de rapport Groups By Intervals.rpt.
Prenez le temps de naviguer dans l'arborescence des groupes afin de visualiser l'organisation des données ; notez également, dans l'angle droit de la fenêtre Crystal Reports, que 269 enregistrements ont été renvoyés pour ce rapport.
Remarque :
Ce chiffre est visible uniquement si vous avez sélectionné l'option Barre de rapport dans le menu Affichage.
Cliquez maintenant sur l'onglet Conception.
2.
Dans le menu Affichage, cliquez sur Explorateur de champs.
3.
Dans l'Explorateur de champs, cliquez avec le bouton droit de la souris sur Champs de paramètre et sélectionnez Nouveau dans le menu contextuel.
La boîte de dialogue Créer un paramètre s'affiche.
4.
Pour le Nom du paramètre, saisissez QuotaVentes.
5.
Cliquez sur la liste Type et sélectionnez Numéro.
6.
Dans la zone Options, saisissez Quel était le quota de ventes de l'année dernière ? dans l'option Texte de l'invite
7.
Dans la zone Options, vérifiez que l'option Autoriser les valeurs
discrètes est définie sur True, puis cliquez sur OK.
Remarque :
Vous avez maintenant créé le champ de paramètre. Le reste de ces procédures décrit comment ajouter le champ de paramètre à la formule de sélection d'enregistrements à l'aide de l'Expert Sélection.
8.
Dans le menu Rapport, cliquez sur Expert Sélection.
Guide de l'utilisateur de Crystal Reports 2008 SP1 197
Conception de rapports Web optimisés
8
Utilisation des formules de sélection d'enregistrements améliorées
La boîte de dialogue Choisir un champ apparaît.
9.
Sélectionnez le champ Clients.Ventes de l'année dernière, puis cliquez sur OK.
L'Expert Sélection apparaît.
10.
Sous l'onglet Clients.Ventes de l'année dernière, cliquez sur la liste déroulante, puis sélectionnez est supérieur à.
Une nouvelle liste déroulante s'affiche.
11.
Cliquez sur cette deuxième liste et sélectionnez {?QuotaVentes}.
Conseil :
Cliquez sur le bouton Afficher la formule pour visualiser la nouvelle formule de sélection d'enregistrements, qui apparaît sous la forme :
{Clients.Ventes de l'année dernière} > {?QuotaVentes}. Au lieu d'utiliser l'Expert Sélection, vous pouvez également créer cette formule vous-même dans l'Editeur de formule de sélection d'enregistrements. (Pour afficher l'éditeur, ouvrez l'Atelier de formules et sélectionnez Sélection d'enregistrements dans le dossier Formules de sélection.)
12.
Cliquez sur OK dans l'Expert Sélection.
Vous avez maintenant ajouté votre champ de paramètre à la formule de sélection d'enregistrements. Lorsque vous passez en mode Aperçu ou que vous cliquez sur le bouton Actualiser, un écran vous invite à saisir de nouvelles valeurs de paramètre. Vous pouvez alors saisir une valeur numérique représentant le quota de ventes de l'année dernière. Le rapport résultant n'affichera que les clients dont les ventes de l'année dernière ont dépassé la valeur numérique que vous avez précisée.
Par exemple, si vous saisissez la valeur 40 000 pour ce paramètre, le rapport affichera uniquement les clients dont les ventes ont dépassé 40 000 $ l'année dernière. Notez également, dans l'angle inférieur droit de la fenêtre Crystal
Reports, que seuls 58 enregistrements sont renvoyés pour votre rapport au lieu des 270 enregistrements qui avaient été renvoyés avant de saisir le champ de paramètre dans une formule de sélection d'enregistrements.
En améliorant ce rapport, vous avez récupéré toutes les informations dont vous aviez besoin et vous avez fait en sorte que seul le plus petit nombre d'enregistrements nécessaires soit transféré du serveur de base de données.
198 Guide de l'utilisateur de Crystal Reports 2008 SP1

Enlace público actualizado
El enlace público a tu chat ha sido actualizado.