Sous-rapports
Introduction
Il est quelquefois impossible de construire un rapport unique correspondant à vos besoins, comme dans les cas suivants :
-
Commandes du mois classées par client, avec le résumé des cinq plus grosses commandes du mois.
-
Rapport annuel de la société présentant sur une même page les encours clients et fournisseurs, les salaires par catégorie d’employés et les ventes par région, avec le total général de chaque tableau en pied de page du rapport.
-
Ventes regroupées par région, avec les encours des clients par région dans le pied de page du groupe.
-
Rapport créé à partir d’une base de données sur PC sans champs indexés.
-
Rapport créé à partir de plusieurs bases de données sans lien entre elles.
Dans tous ces cas, on ne peut créer un rapport selon la méthode habituelle de Crystal Reports, soit parce qu’il est impossible de publier dans un même rapport des données calculées en même temps, soit parce que les différentes sources de données ne peuvent être mises en relation pour générer le rapport.
La solution apportée par Crystal Reports 2016 consiste à intégrer un sous-rapport dans le rapport principal. Un sous-rapport est un autre rapport publié en même temps et à...
Sous-rapports indépendants
Ce sont les plus simples à construire. Le sous-rapport a ses propres caractéristiques, totalement indépendantes de celles du rapport principal.
Vous créerez successivement le rapport principal et le sous-rapport comme deux rapports indépendants l’un de l’autre, puis vous insérerez le sous-rapport dans le rapport principal.
1. Création du rapport principal
Créez un nouveau rapport selon les instructions ci-dessous et sauvegardez-le immédiatement en Chap 8-1.rpt. Ce sera votre rapport principal.
Table |
Clients |
Champs |
Nom du client Ville Ventes de l’année dernière |
Regroupé par |
Pays |
2. Création du sous-rapport
Créez maintenant un second rapport selon les instructions ci-dessous, que vous sauvegardez comme Chap 8-2.rpt :
Table |
Fournisseurs |
Champs |
Pays Ville Nom du fournisseur |
Tri des enregistrements |
Pays Nom |
3. Insertion du sous-rapport
Sélectionnez le rapport Chap 8-1.rpt et affichez l’écran de Conception.
Cliquez sur Insérer - Sous-rapport pour ouvrir la boîte de dialogue ci-dessous :
Sélectionnez l’option Choisir un rapport et sélectionnez le rapport Chap 8-2.rpt.
Cliquez sur OK pour valider et insérer le sous-rapport.
Placez le cadre du sous-rapport dans le Pied de page de rapport...
Sous-rapports liés
Comment afficher dans un même rapport plusieurs enregistrements d’une base de données après d’autres enregistrements provenant d’une base de données différente ? Par exemple, les ventes par pays et les encours de crédit-client par pays.
1. Création du rapport principal
Créez le rapport Chap 8-4.rpt suivant :
Table |
Clients |
Champs |
Nom du client Ville Ventes de l’année dernière |
Groupes et Tri |
Pays |
Filtre |
Pays = Allemagne, Belgique, France, Italie, Luxembourg, Pays-Bas |
2. Création et insertion du sous-rapport
Créez ensuite le sous-rapport Chap 8-5.rpt :
Tables |
Clients Crédit |
Champs |
Clients.Nom du client Crédit.Numéro d’autorisation de crédit Crédit.Montant |
Liens entre les tables |
Clients.ID client -> Crédits.ID crédit client |
Remplacez le lien entre les tables créé par Crystal Reports comme indiqué ci-dessus, car dans la base de données Xtreme.mdb en français, le champ Clients.ID crédit client est vide.
Insérez le sous-rapport comme exposé plus haut.
Cliquez sur l’onglet Mise en relation de la boîte de dialogue.
Sélectionnez le champ Clients.Pays à partir duquel vous allez lier les deux états ; les champs du cadre inférieur sont automatiquement renseignés.
Crystal Reports 2016 utilise un champ de paramètre pour passer le lien du rapport principal au sous-rapport.
Dans la plupart des cas, les données dans le sous-rapport seront affichées en fonction du champ qui lie les deux états.
Cliquez sur le bouton OK pour valider, et placez le sous-rapport dans la section Pied de page de groupe du rapport principal.
Le rapport suivant s’affiche dans l’écran...
Sous-rapports à la demande
Par défaut, les sous-rapports sont calculés et affichés aussitôt que Crystal Reports les trouve dans le rapport principal.
Si vous avez placé un sous-rapport dans un pied de page - ou un en-tête - de groupe, cela signifie que Crystal Reports sollicitera (accédera à) la base de données à chaque occurrence du sous-rappport, qui sera calculé et affiché chaque fois que Crystal Reports passera d’un groupe à l’autre, ce qui peut grandement ralentir la production de vos rapports.
D’autre part, si le sous-rapport ne contient pas de données pour chaque groupe, cela peut aussi nuire à l’esthétique de votre travail.
1. Création d’un sous-rapport à la demande
Pour éviter cette situation, sélectionnez l’option Sous-rapport à la demande lors de la construction du sous-rapport ou dans l’onglet Sous-rapport de la boîte de dialogue Editeur de mise en forme, puis validez en cliquant sur OK.
Le sous-rapport apparaît maintenant sous la forme d’un lien hypertexte dans les écrans du rapport principal ; Crystal Reports n’accède à la base de données et le sous-rapport n’est calculé que lorsque l’utilisateur clique sur ce lien hypertexte.
Le lien hypertexte s’affichant pour chaque occurrence du sous-rapport...
Transfert de données entre le rapport principal et les sous-rapports
Les variables mémoire partagées (shared) permettent d’utiliser des données entre les différents rapports de l’ensemble constitué du rapport principal et de ses sous-rapports ; les données peuvent en effet être transférées du rapport principal à un sous-rapport, d’un sous-rapport au rapport principal, ou d’un sous-rapport à l’autre.
Reportez-vous au chapitre Formules pour obtenir des explications détaillées sur l’utilisation des variables mémoire dans les formules.
Créez le rapport suivant, que vous enregistrerez comme Chap 8-8.rpt.
Table |
Clients |
Champs |
Nom du client Prénom du contact Nom du contact Ville Ventes de l’année dernière |
Groupes et Tri |
Pays |
Filtre |
Pays = Canada |
Créez le champ de formule Contact commercial pour concaténer les deux champs Clients.Prénom du contact et Clients.Nom du contact :
{Customer.Prénom du contact} + " " + {Customer.Nom du contact}
Le début de votre rapport doit se présenter comme ci-dessous :
Créez maintenant le second rapport, que vous enregistrerez comme Chap 8-9.rpt :
Table |
Champs |
Clients |
Nom du client Région |
Crédit |
Numéro d’autorisation de crédit Montant |
Groupes et Tri |
Nom du client |
Cliquez sur Rapport - Expert Section, puis masquez les deux sections En-tête de groupe n° 1 : Clients.Nom du client et Détails.
Créez les deux champs de formule...