Exemple d'empilage de la sélection d'enregistrements. SAP 2011
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 extraits dans la base de données, calculant ainsi le jeu d'enregistrements utilisé pour générer le rapport.
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. Ce processus est appelé "empilage de la sélection d'enregistrements sur le serveur de base de données".
Cette section vous propose plusieurs astuces pour que vos formules de sélection d'enregistrements puissent être empilées sur le serveur de base de données.
7.5.1 Exemple d'empilage de la sélection d'enregistrements
Cet exemple démontre les avantages qu'il y a à écrire des formules de sélection d'enregistrements qui peuvent
être empilées sur le serveur de base de données.
La table Commandes de l'exemple de base de données Xtreme contient 2 192 enregistrements, dont 181 affichent des dates de commande antérieures à 2001. Supposons que vous souhaitiez créer un rapport basé sur ces enregistrements uniquement. D'une part, vous pouvez utiliser cette formule de sélection d'enregistrements :
Year ({Orders.Order Date}) < 2001
La requête SQL créée enverra tous les 2 192 enregistrements vers Crystal Reports, puis la formule de sélection d'enregistrements réduira ce chiffre à 181. Pour obtenir ce résultat, cliquez sur Afficher la requête SQL dans le menu Base de données. Notez que la requête SQL ne contient pas de clause WHERE. Ceci est dû au fait que
Crystal Reports ne peut pas empiler la fonction Year ( ) dans la clause WHERE.
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.
Astuce
Voir la section suivante pour en savoir plus sur la définition des requêtes de sélection d'enregistrements.
118
©
2013 SAP AG ou société affiliée SAP. Tous droits réservés.
Guide de l'utilisateur de SAP Crystal Reports 2011
Conception de rapports Web optimisés

Link pubblico aggiornato
Il link pubblico alla tua chat è stato aggiornato.