Considérations sur les fichiers de données. Business Objects Crystal Reports 2008 SP1
Bases de données
Mises en relation des tables
25
Mise en relation/Sousrapport
Formule de sélection
Index A Index B
Lectures dans A
Lectures dans B pour chaque
A
Total des enregistrements lus
Sous-rap port
Oui Oui Oui 2
100
(2*100)
200
Données SQL
Mise en relation/Sousrapport
Formule de sélection
Lectures dans A
Lectures dans B pour chaque A
Total des enregistrements lus
Mise en relation
Mise en relation
Non
Oui
Sous-rapport Non
Sous-rapport Oui
26
2
26
2
100 (26*100)
100 (2*100)
100 (26*100)
100 (2*100)
2 600
200
2 600
200
Considérations sur les fichiers de données
Lorsque vous travaillez avec des fichiers de données, des mises en relation de type un-à-plusieurs peuvent apparaître si vous reliez des tables au sein
Guide de l'utilisateur de Crystal Reports 2008 SP1 721
Bases de données
25
Mises en relation des tables
d'un même rapport ou si vous insérez un sous-rapport dans le rapport principal.
Mises en relation des fichiers de données
La procédure suivante permet d'extraire le contenu de fichiers de données reliés par une relation de type un-à-plusieurs.
• S'il existe une formule de sélection, le logiciel l'analyse et transmet son contenu au fichier DLL de la base de données. Ces informations permettent généralement de délimiter la plage de données à traiter.
Considérons la formule suivante :
{customer.REGION} in "CA" to "IL" AND
Remainder ({customer.CUSTOMER ID},2)=0
Dans cette formule, la partie avant l'opérateur "and" contient un critère de sélection de plages pour le champ Région. Les premières lettres de la région doivent être comprises entre "CA" et "IL". Le logiciel transmet cette sorte de condition au fichier DLL de la base de données (pour les données PC) ou au serveur (pour les données SQL). Voir
page 205.
La deuxième moitié de la formule de sélection, cependant, doit être traitée par le moteur de rapport. Il utilise une fonction intégrée pour manipuler et évaluer une valeur de champ. Cette opération ne peut pas être effectuée dans le fichier DLL de la base de données ni sur le serveur. Le logiciel ne transmet pas cette condition au fichier DLL de la base de données.
• Si la Table A contient un index et que la condition de sélection des limites de plage est basée sur le champ indexé ({client.REGION} dans cet exemple), le logiciel sélectionne directement l'enregistrement recherché dans la Table A (le premier enregistrement CA) et le lit.
• Il repère dans la table B (à l'aide de l'index de cette dernière) l'enregistrement correspondant à celui qu'il vient de trouver.
• Il retransmet l'enregistrement fusionné (A+B) au Report Designer, qui vérifie sa conformité avec toute la formule de sélection.
• Il lit ensuite le second enregistrement correspondant et transmet l'enregistrement fusionné résultant, puis le troisième et ainsi de suite jusqu'à ce qu'il ait lu tous les enregistrements répondant aux critères de sélection.
722 Guide de l'utilisateur de Crystal Reports 2008 SP1
Bases de données
Mises en relation des tables
25
• Le programme revient ensuite à la table A et lit l'enregistrement suivant.
Il est inutile de tester l'enregistrement pour s'assurer qu'il répond à la condition CA, car ce champ est indexé et les enregistrements sont classés par ordre alphabétique. Il vérifie en revanche la condition "IL" : si l'intervalle des valeurs indiqué n'est pas dépassé (par exemple, l'enregistrement suivant pourrait être le Mississippi ou le Tennessee).
Si l'enregistrement figure toujours dans la plage spécifiée, le programme reprend la recherche des enregistrements concordants.
• Il continue le processus jusqu'à ce qu'il ait localisé tous les enregistrements visés dans la table A et les enregistrements correspondants dans la table B.
Pour rechercher deux enregistrements dans la Table A et les 100 enregistrements dans la Table B correspondant aux enregistrements de la Table A, le logiciel lit 200 enregistrements.
• En l'absence d'index sur la table A, ou si la plage de valeurs servant de condition ne porte pas sur le champ indexé, le logiciel lira le tout premier enregistrement trouvé.
• Il repère dans la table B (à l'aide de l'index de cette dernière) le premier enregistrement correspondant à celui qu'il vient de trouver.
• Il transmet l'enregistrement fusionné (A+B) résultant au moteur de rapport qui vérifie sa conformité avec l'ensemble de la formule de sélection.
• Il repère ensuite le second enregistrement correspondant dans la table
B et passe l'enregistrement fusionné, puis le troisième et ainsi de suite, jusqu'à la transmission de tous les enregistrements stockés dans la table B correspondant au premier enregistrement de la table A.
• Il revient ensuite à l'enregistrement suivant dans la table A et recommence la recherche et la fusion des enregistrements correspondants.
Pour rechercher deux enregistrements dans la Table A et les 100 enregistrements dans la Table B correspondant aux enregistrements de la Table A, le logiciel lit 2 600 enregistrements.
Guide de l'utilisateur de Crystal Reports 2008 SP1 723

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