SAP Support Package 13 version développeur pour Microsoft Visual Studio Manuel utilisateur
SAP Crystal Reports, version développeur pour Microsoft Visual Studio
Version du document : Support Package 13 - 2015-01-24
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual
Studio .NET
Contenu
2
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Contenu
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Contenu
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
3
1 Guide du développeur du SAP SDK
Crystal Reports .NET
1.1 Démarrage
Cette aide en ligne est conçue pour vous aider à développer vos propres applications Web ou Windows à l'aide du
SDK SAP Crystal Reports .NET. Elle comprend des tutoriels et des références de programmation qui vous aideront à implémenter le SDK SAP Crystal Reports .NET.
1.1.1 Présentation de SAP Crystal Reports, version développeur pour Microsoft Visual Studio
SAP Crystal Reports, version développeur pour Microsoft Visual Studio permet de créer des rapports complexes de qualité professionnelle dans un programme basé sur une interface utilisateur graphique. Vous pouvez alors connecter votre rapport à pratiquement n'importe quelle source de base de données ou à des données proxy, comme un ensemble de résultats (par exemple, un objet DataSet ADO.NET). A l'aide des assistants du concepteur d'interface utilisateur, vous pouvez définir la mise en forme, le regroupement, les diagrammes et d'autres critères.
Vous pouvez héberger votre rapport dans une application Web ou Windows avec l'un des contrôles visualiseur de rapports de SAP Crystal Reports. La présentation des rapports dans les clients Windows et HTML 4.0 est hautement interactive et offre des fonctionnalités telles que l'exploration de diagrammes, la navigation dans les rapports et la recherche de texte.
SAP Crystal Reports, version développeur pour Microsoft Visual Studio est fourni avec un SDK complet. Ce SDK vous permet d'interagir avec le rapport par programmation au moment de l'exécution, grâce à l'emploi de l'un des quatre modèles d'objet suivants :
● CrystalReportViewer, le modèle d'objet le plus simple.
● ReportDocument, le modèle d'objet le plus complet.
● ReportClientDocument, le modèle d'objet le plus complet. Ce modèle d'objet est disponible avec un serveur
RAS.
● InfoObject, un modèle d'objet puissant conçu pour la planification et la configuration de rapports dans la structure SAP Crystal Reports Server ou de la plateforme SAP BusinessObjects Business Intelligence.
Remarque
Les modèles d'objet CrystalReportViewer et ReportDocument sont disponibles avec toutes les versions de SAP Crystal Reports, version développeur pour Microsoft Visual Studio. Les modèles d'objet
ReportClientDocument et InfoObject nécessitent une licence mise à niveau. Voir
Solutions de reporting de SAP BusinessObjects Business Intelligence [page 64]
.
Vous pouvez associer des rapports à un projet Visual Studio de nombreuses façons :
4
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
● Incorporez les rapports directement dans le projet.
● Accédez aux rapports à partir d'un répertoire de fichiers.
● Accédez aux rapports en tant que service Web de rapports à partir d'un serveur distant.
● Connectez vos rapports en tant que services Crystal.
● Avec une mise à niveau vers SAP Crystal Reports Server, accédez aux rapports via le serveur RAS.
● Avec une mise à niveau vers la plateforme SAP BusinessObjects Business Intelligence, accédez aux rapports via le Page Server ou le serveur RAS présent dans la structure de la plateforme SAP BusinessObjects
Business Intelligence.
1.1.1.1 Fonctionnalités disponibles dans
SAP Crystal Report Designer
SAP Crystal Reports Designer propose plusieurs fonctionnalités qui ne sont pas disponibles avec
SAP Crystal Reports, version développeur pour Microsoft Visual Studio :
Fonction
Membres calculés dans des diagrammes de tableau croisé
Description
Vous pouvez ajouter des lignes ou des colonnes à un diagramme de Tableau croisé en insérant un membre calculé. Ces lignes ou colonnes peuvent contenir des calculs personnalisés (par exemple, la différence de ventes entre deux régions) ou peuvent être entièrement utilisées à des fins de mise en forme (par exemple, en insérant une ligne vide toutes les trois lignes pour améliorer la clarté). Vous disposez d'une entière souplesse dans la conception de vos propres formules de calcul et pouvez choisir si elles apparaissent seulement une fois ou se répètent régulièrement dans le
Tableau croisé.
Objets Flash incorporés
Vous pouvez incorporer un objet Flash ou créer un lien vers un objet Flash dans une section quelconque de rapport
SAP Crystal Reports.
Résumés incorporés dans des tableaux croisés
Vous pouvez ajouter un calcul supplémentaire à votre diagramme de Tableau croisé en insérant un résumé incorporé. Les résumés incorporés n'ajoutent pas de lignes ou de colonnes à votre Tableau croisé. Ils entraînent plutôt l'apparition de calculs supplémentaires dans chacune des cellules du Tableau croisé. Par exemple, dans un rapport affichant les ventes régionales, vous pouvez insérer un calcul pour chaque région, qui affiche le pourcentage des ventes totales du pays.
Aperçu modifiable
Avec SAP Crystal Reports Designer, vous pouvez visualiser un rapport dans l'onglet de conception ou l'onglet d'aperçu.
Vous disposez des mêmes possibilités de mise en forme
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
5
Fonction
Code-barres mis en forme
Champs de tri interactifs
Workbench
Description dans l'onglet Aperçu que dans l'onglet Conception.
Néanmoins, dans l'onglet Aperçu, vous travaillez avec les données réelles. Au lieu d'un cadre de champ de données représentant plusieurs valeurs de champ de données, les valeurs réelles apparaissent dans le rapport.
SAP Crystal Reports Designer comprend les formules et polices nécessaires à la prise en charge des code-barres
Code39. Vous pouvez utiliser l'option Mettre en forme le champ pour modifier l'apparence d'un code-barres.
Il existe de nombreuses raisons pour modifier l'apparence d'un code-barres, dont les suivantes :
●
Pour changer la taille de sorte que le code-barres ne soit ni trop grand ni trop petit pour être lu par un scanneur.
●
Pour afficher le code-barres dans une autre couleur.
Vous pouvez concevoir votre rapport de sorte que les utilisateurs puissent modifier un champ de tri ou un sens de tri sans actualiser les informations de la base de données.
Pour ce faire, ajoutez un
Contrôle de tri
à votre rapport.
Un
Contrôle de tri
est particulièrement utile pour plusieurs raisons :
●
Il permet aux utilisateurs de trier les données du rapport pour une analyse plus approfondie sans quitter la zone de dessin du rapport.
●
Il élimine la demande de traitement sur la base de données.
●
Il réduit le temps d'attente des utilisateurs pendant le tri des données.
●
Il permet aux utilisateurs de trier les champs du rapport, même s'ils ne disposent pas d'une connexion ou des droits d'accès à la base de données au moment de l'affichage.
Sur le Workbench, vous pouvez créer des projets contenant un ou plusieurs rapports. Les options de la barre d'outils vous permettent d'ajouter, supprimer ou renommer les dossiers, rapports et packages d'objets. Vous pouvez réorganiser les fichiers dans un dossier ou des dossiers en les faisant glisser et en les déposant où vous souhaitez qu'ils apparaissent.
Vous pouvez également faire glisser des fichiers de rapport de l'Explorateur Windows et les déposer dans le dossier de votre choix sur le Workbench.
6
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.1.2 Migration de l'application SAP Crystal Reports .Net
Cette section contient des informations sur la migration de l'application SAP Crystal Reports .Net vers
SAP Crystal Reports, version développeur pour Microsoft Visual Studio.
Remarque
SAP Crystal Reports, version développeur pour Microsoft Visual Studio est doté d'un ensemble complet de fonctionnalités et est disponible en téléchargement gratuit s'intégrant à Visual Studio 2010 ou version ultérieure. SAP Crystal Reports, version développeur pour Microsoft Visual Studio n'est pas fourni avec l'application SAP Crystal Reports Designer.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
7
Options de migration dans les différentes versions de SAP Crystal Reports
Ce diagramme représente les différents chemins de migration entre les versions de SAP Crystal Reports.
8
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Migration vers SAP Crystal Reports, version développeur pour Microsoft
Visual Studio
SAP Crystal Reports, version développeur pour Microsoft Visual Studio met automatiquement à niveau vos anciens projets vers la version actuelle. Si un projet contient des références à d'anciens composants, l'utilisateur est invité à effectuer une mise à niveau.
Si vous cliquez sur le bouton Oui, les projets et les fichiers associés sont mis à niveau vers la version actuelle de
SAP Crystal Reports. Si vous cliquez sur le bouton Non, le projet est adapté de manière à utiliser les références d'origine. Certaines fonctionnalités récentes sont désactivées si elles ne sont pas prises en charge par les composants plus anciens.
Remarque
Si le fichier de projet (tout fichier ASPX possédant des composants SAP Crystal Reports ou le fichier web.config) est verrouillé, la mise à niveau ou l'adaptation échoue.
Informations associées
Solutions de reporting de SAP BusinessObjects Business Intelligence [page 64]
1.1.2.1 Problèmes de migration
Un rapport basé sur une source de données ADO.NET ne fonctionnera pas si le projet vise .NET 4.x Framework
Les rapports basés sur une source de données ADO.NET ne fonctionneront pas si le projet vise .NET 4.x
Framework. L'erreur suivante se produit : "Additional information: Mixed mode assembly is built against version
'v2.0.50727' of the runtime and cannot be loaded in the 4.x runtime without additional configuration information
(Informations complémentaires : la liaison d'assembly en mode mixte a été créée avec la version v2.0.50727 du programme d'exécution et ne peut pas être chargée dans le programme d'exécution 4.0 sans informations de configuration supplémentaires)".
Pour résoudre ce problème, vous pouvez mettre à jour le fichier .config de votre projet. Ajoutez les lignes de code suivantes dans la section <configuration></configuration> du fichier :
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.x"/>
</startup>
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
9
1.1.2.2 Limites en 64 bits
L'architecture 64 bits est prise en charge dans SAP Crystal Reports, version développeur pour Microsoft
Visual Studio x 64 (AMD64). Toutefois, l'architecture IA64 (Itanium) n'est pas prise en charge à ce jour.
Fonctionnalités actuellement non prises en charge dans les scénarios 64 bits :
● Exportation de rapports au format HTML.
● Composants de création de cartes géographiques.
● Composants de police de codes à barres Azalea.
1.2 Configuration de l'environnement de développement
Cette section fournit des instructions détaillées sur l'installation et la configuration de votre environnement de développement, ainsi que sur la création d'un site Web ou d'un projet Windows dans SAP Crystal Reports, version développeur pour Microsoft Visual Studio.
1.2.1 Configuration du système
Cette section indique comment configurer votre environnement de développement pour tester et développer des applications Windows ou des sites Web utilisant le SDK de SAP Crystal Reports .NET.
1.2.1.1 Eléments à installer
Vous devez installer SAP Crystal Reports, version développeur pour Microsoft Visual Studio avant de pouvoir créer des applications Web ou Windows utilisant SAP Crystal Reports.
1.2.1.1.1 Versions de Visual Studio prises en charge
Si vous envisagez d'utiliser SAP Crystal Reports, version développeur pour Microsoft Visual Studio, vérifiez que la version de Visual Studio que vous avez installée prend en charge SAP Crystal Reports.
Les éditions Visual Studio Ultimate, Premium et Professional sont prises en charge pour Visual Studio 2010 et ultérieure. Les éditions Visual Studio Express ne sont pas prises en charge par SAP Crystal Reports.
Informations associées
Solutions de reporting de SAP BusinessObjects Business Intelligence [page 64]
10
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.2.1.1.2 Versions SAP Crystal Reports
Plusieurs versions de SAP Crystal Reports sont disponibles. De nombreuses procédures décrites dans ce document s'appliquent à une version spécifique. Pour utiliser au mieux ce document, déterminez d'abord quelle version de SAP Crystal Reports est installée sur votre système.
1.2.1.1.2.1 Pour déterminer la version de
SAP Crystal Reports que vous utilisez
Procédure
1. Accédez au cache GAC (Global Assembly Cache) à l'emplacement C:\WINNT\Assembly ou C:\Windows
\Assembly.
2. Recherchez le fichier CrystalDecisions.CrystalReports.Engine.
Remarque
Si vous avez installé différentes versions de SAP Crystal Reports, plusieurs versions de ces fichiers se trouvent dans le Global Assembly Cache. Le fichier CrystalDecisions.CrystalReports.Engine est sélectionné car il est inclus dans chaque version de SAP Crystal Reports.
3. Recherchez la colonne
Version
affichée dans la fenêtre.
Il s'agit de la "version de l'assembly".
4. Recherchez le numéro d'assembly le plus élevé.
5. Comparez la version de l'assembly avec le numéro de version indiqué dans le tableau des versions de
SAP Crystal Reports.
1.2.1.1.2.2 Versions SAP Crystal Reports
Produit
SAP Crystal Reports, version développeur pour Microsoft
Visual Studio (.NET 4.0 Framework)
SAP Crystal Reports 2008 (.NET 2.0 Framework)
SAP Crystal Reports 2008 (.NET 1.1 Framework)
SAP Crystal Reports XI Release 2
SAP Crystal Reports XI Release 1
SAP Crystal Reports Basic pour Visual Studio 2008
SAP Crystal Reports pour Visual Studio 2005
Version de l'assembly
13.0.2000.0
12.0.2000.0
12.0.1100.0
11.5.3300.0
11.0.3300.0
10.5.3600.0
10.2.3600.0
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
11
Produit
SAP Crystal Reports 10
SAP Crystal Reports 9
SAP Crystal Reports pour Visual Studio 2003
Version de l'assembly
10.0.3300.0
9.2.3300
9.1.5000
SAP Crystal Reports 2008 et SAP Crystal Reports 2008 SP1 utilisent le même numéro de version d'assembly. Si
SAP Crystal Reports 2008 SP1 est installé, la version du fichier doit commencer par 12.1 et non par 12.0.
1.2.1.1.3 Installation du service de mise à jour de
SAP Crystal Reports
Contexte
SAP Crystal Reports, version développeur pour Microsoft Visual Studio fournit désormais en option un service de mise à jour de SAP Crystal Reports qui recherche les mises à jour et les correctifs de SAP Crystal Reports.
Le service de mise à jour de SAP Crystal Reports, version développeur pour Microsoft Visual Studio n'est pas fourni en tant que composant du programme d'installation. Vous devez le télécharger et l'installer séparément.
Procédure
1. Après avoir installé SAP Crystal Reports, version développeur pour Microsoft Visual Studio, démarrez
Visual Studio et créez un site Web ou un projet Windows.
2. Dans l'
Explorateur de solutions
, cliquez avec le bouton droit de la souris sur le nom de projet affiché en gras, puis cliquez sur
Ajouter Nouvel élément
.
3. Dans la boîte de dialogue
Ajouter un nouvel élément
, sélectionnez
Rapport Crystal
.
4. Dans le champ
Nom
, saisissez
Test.rpt
, puis cliquez sur
Ajouter
.
Remarque
Si vous utilisez le SAP Crystal Report Designer incorporé pour la première fois, un message vous invite à accepter les termes du Contrat de licence utilisateur. Ensuite, la boîte de dialogue Service de mise à jour s'ouvre. Si vous avez déjà utilisé le SAP Crystal Report Designer incorporé auparavant, vous devrez ouvrir la boîte de dialogue Service de mise à jour manuellement.
Le SAP Crystal Reports Designer incorporé s'ouvre et affiche le nouveau rapport.
5. Si la boîte de dialogue
Service de mise à jour
n'apparaît pas, cliquez sur
Rechercher les mises à jour
dans le menu
Crystal Reports
.
Si le service de mise à jour de SAP Crystal Reports n'est pas installé, un message vous invite à le faire.
6. Dans la boîte de dialogue
Service de mise à jour
, cliquez sur
Oui
.
12
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Le site Web du service de mise à jour de SAP Crystal Reports s'affiche avec un lien permettant de télécharger ce service.
7. Téléchargez et installez le service de mise à jour de SAP Crystal Reports.
8. Démarrez à nouveau Visual Studio.
9. Ouvrez Test.rpt.
Le SAP Crystal Report Designer incorporé démarre et affiche le rapport.
10. Dans le menu
Crystal Reports
, cliquez sur
Rechercher les mises à jour
.
Le service de mise à jour démarre et recherche les mises à jour. Vous pouvez accepter ou refuser toutes les mises à jour disponibles.
1.2.1.1.4 Code clé de produit SAP Crystal Reports
Le code clé consiste en une chaîne alphanumérique comportant 19 chiffres ou caractères. Dans
SAP Crystal Reports, version développeur pour Microsoft Visual Studio, lorsque vous créez des projets de déploiement utilisant le programme Windows Installer, il peut être nécessaire d'indiquer un code clé de produit pour valider les informations de licence des applications Web ou Windows.
1.2.1.2 Eléments à vérifier
Pour développer un site Web ou une application Windows qui utilise le SDK de SAP Crystal Reports .NET, vous devez vérifier que les composants de Crystal Reports Developer ont été correctement installés et intégrés à
Visual Studio. Pour développer un site Web, vous devez également vérifier que le répertoire virtuel des visualiseurs a été correctement installé sur les serveurs Web de développement et de déploiement.
Cette section détaille les paramètres à vérifier avant la création d'une application SAP Crystal Reports .NET.
Informations associées
Versions de Visual Studio prises en charge [page 10]
1.2.1.2.1 Vérification de l'installation de SAP Crystal Reports
Contexte
Pour vérifier que le composant SAP Crystal Reports de Visual Studio est installé, assurez-vous que son nom est affiché dans la boîte de dialogue Ajouter un nouvel élément de l'application Visual Studio.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
13
Procédure
1. Lancez Visual Studio.
2. Créez un projet Web ou Windows (dans le langage de votre choix), ou ouvrez un projet Web ou Windows existant.
3. Dans le menu
Projet
, cliquez sur
Ajouter un nouvel élément
.
Remarque
Les nouveaux fichiers de rapport doivent être ajoutés directement à un projet. Vous ne pouvez pas créer un rapport Crystal dans Visual Studio via le menu
Fichier
.
4. Dans la boîte de dialogue
Ajouter un nouvel élément
, faites défiler la liste des éléments disponibles pour vérifier que
Crystal Reports
y figure bien.
1.2.1.2.2 Répertoire des visualiseurs
SAP Crystal Reports utilise un répertoire virtuel pour accéder aux visualiseurs à afficher. Le nom du répertoire virtuel et le chemin d'accès aux fichiers associés diffèrent dans chaque version de SAP Crystal Reports. Cela évite les risques de conflit si vous installez plusieurs versions de SAP Crystal Reports sur le même ordinateur.
1.2.1.2.2.1 Emplacement par défaut du répertoire virtuel des visualiseurs
Si vous avez installé SAP Crystal Reports avec les paramètres et chemins d'accès par défaut, les visualiseurs se trouvent dans le répertoire virtuel indiqué ci-dessous.
Table 1 :
Version Structure Chemin d'accès
SAP Crystal Reports, version développeur pour Microsoft Vi sual Studio
4.x Framework Chemin d'accès au fichier lors de l'utilisation du serveur de développement
ASP.NET :
\Windows\Microsoft.NET\Framework
\v4.0.30319\ASP.NETClientFiles
\crystalreportviewers13
Chemin d'accès au fichier lors de l'utilisation d'IIS :
\inetpub\wwwroot\aspnet_client\system_web
\4_0_30319\crystalreportviewers13
14
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Version
SAP Crystal Reports, version développeur pour Microsoft Vi sual Studio
Structure
2.0 Framework
Chemin d'accès
Chemin d'accès au fichier lors de l'utilisation du serveur de développement
ASP.NET :
\Windows\Microsoft.NET\Framework
\v2.0.50727\ASP.NETClientFiles
\crystalreportviewers13
Chemin d'accès au fichier lors de l'utilisation d'IIS :
\inetpub\wwwroot\aspnet_client\system_web
\2_0_50727\crystalreportviewers13
1.2.1.2.2.2 Pour rechercher le répertoire des visualiseurs
Procédure
1. Dans le Panneau de configuration, cliquez deux fois sur
Outils d'administration
, puis sur
Internet Information
Services
.
2. Dans la boîte de dialogue
Internet Information Services
, développez le nœud
Site Web
, puis le nœud
Site Web par défaut
.
3. Localisez tous les dossiers contenant un dossier crystalreportsviewers13.
4. Cliquez avec le bouton droit de la souris sur chaque dossier crystalreportsviewers13, puis sélectionnez
Propriétés
.
5. Dans la boîte de dialogue
Propriétés
, vérifiez que le
chemin d'accès local
est correctement configuré pour votre version de SAP Crystal Reports ou de Visual Studio.
1.2.1.2.3 Répertoire d'exemples de rapports
Certains exemples de fonctionnalités, scénarios de liaison de rapports et tutoriels reposent sur des exemples de rapports fournis avec SAP Crystal Reports.
Vous pouvez télécharger les exemples de rapports à partir de l'adresse suivante : http:// www.sdn.sap.com/irj/boc/downloads
1.2.2 Configuration d'un projet
Cette section présente des informations essentielles pour les développeurs ayant un niveau avancé ou intermédiaire. Elle indique les meilleures pratiques à suivre pour créer et configurer un projet Windows ou un projet/site Web à l'aide de SAP Crystal Reports, version développeur pour Microsoft Visual Studio.
En outre, le projet que vous allez créer sera utilisé dans les tutoriels présentés dans cette aide en ligne.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
15
1.2.2.1 Configuration d'un site Web dans Visual Studio
Cette section décrit la configuration d'un site Web dans Visual Studio. Le site Web que vous allez ainsi créer servira de prérequis aux tutoriels de programmation classique fournis dans cette aide en ligne.
1.2.2.1.1 Création d'un site Web dans Visual Studio
Procédure
1. Lancez Visual Studio.
2. Dans le menu
Fichier
, sélectionnez
Nouveau Site Web
.
3. Dans la boîte de dialogue
Nouveau site Web
, cliquez sur
Site Web ASP.NET
.
4. Dans la liste déroulante
Emplacement
, sélectionnez
Système de fichiers
.
5. Dans la liste déroulante
Langage
, sélectionnez le langage de programmation que vous souhaitez utiliser.
6. Dans le champ de texte
Emplacement
, saisissez le chemin d'accès du répertoire C:\WebSites\, suivi du nom de votre projet.
C:\WebSites\NomMonProjet
7. Cliquez sur
OK
.
1.2.2.1.2 Préparation du Web Form
1.2.2.1.2.1 Pour créer le Web Form
Contexte
Dans cette section, vous allez configurer la classe code-behind pour le Web Form.
Remarque
Les termes "Web Form", "page ASPX" et "Default.aspx" sont utilisés de manière interchangeable.
Procédure
1. Dans l'Explorateur de solutions, cliquez deux fois sur le fichier Default.aspx pour ouvrir le Web Form.
2. Dans le menu
Affichage
, cliquez sur
Code
.
La classe code-behind s'ouvre. Cette classe s'appelle classe _Default. Le fichier de classe s'appelle
Default.aspx.cs ou Default.aspx.vb.
16
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Remarque
Si votre page Default.aspx a été créée avec un code incorporé, son code n'a pas été placé dans un fichier séparé. Dans ce cas, supprimez la page ASPX et recréez-la. Lorsque vous créez la page ASPX, activez la case à cocher "Placer le code dans un fichier distinct".
3. Si vous écrivez cette classe en langage Visual Basic, tapez "Option Strict On" au début de la classe.
Remarque
Il est recommandé de définir Option Strict sur On au début de chaque classe Visual Basic de votre site
Web. Ainsi, vous serez tenu de respecter les conventions d'écriture du code, à savoir l'emploi de déclarations de variables fortement typées et la définition d'un cast valide, deux conventions qui sont vérifiées au moment de la compilation du code. Cette précaution aide à réduire les exceptions générées à l'exécution du code.
1.2.2.1.2.2 Pour ajouter des instructions Imports et Using aux espaces de noms de référence
Procédure
1. Ouvrez la page Default.aspx.
2. Dans le menu
Affichage
, cliquez sur
Code
.
La classe code-behind du Web Form s'affiche.
3. Au-dessus de la signature de classe, ajoutez une déclaration "Imports" [Visual Basic] ou "using" [C#] au début de la classe contenant les espaces de noms SAP Crystal Reports suivants.
Imports CrystalDecisions.CrystalReports.Engine
Imports CrystalDecisions.Shared
using CrystalDecisions.CrystalReports.Engine; using CrystalDecisions.Shared;
Remarque
Les classes de ces deux assemblies sont couramment utilisées dans tous les tutoriels. En ce qui concerne les assemblies supplémentaires dont vous pourriez avoir besoin dans des tutoriels spécifiques, vous trouverez des instructions pour les ajouter tout au long de ce tutoriel.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
17
1.2.2.1.2.3 Pour ajouter une méthode d'assistance privée pour le code de configuration de
SAP Crystal Reports
Procédure
Dans la classe, ajoutez une nouvelle méthode d'assistance privée nommée ConfigureCrystalReports(), sans valeur renvoyée.
Private Sub ConfigureCrystalReports()
End Sub private void ConfigureCrystalReports()
{
}
La méthode ConfigureCrystalReports() permet aux utilisateurs d'interagir avec le rapport au moment de l'exécution. De plus, elle contrôle l'interaction par programme avec le rapport.
Étapes suivantes
Ensuite, vous allez ajouter un gestionnaire d'événements Page_Init à partir duquel appeler la méthode
ConfigureCrystalReports(). Le fait d'appeler la méthode ConfigureCrystalReports() à partir de ce gestionnaire d'événements garantit que le code de configuration du rapport Crystal s'exécutera durant l'événement d'initialisation de la page.
1.2.2.1.2.4 Pour ajouter un gestionnaire d'événements
Page_Init à la classe code-behind
Contexte
Généralement, le gestionnaire d'événements Page_Load permet de saisir le code de configuration du Web Form dans une application Web ASP.NET de manière à ce que ce programme soit appelé pendant l'événement
Page.Load. Mais le code de configuration du rapport Crystal doit être appelé plus tôt, pendant l'événement
Page.Init.
Procédure
1. Ajoutez l'événement Page_Init à votre code.
18
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
○ Si vous codez dans Visual Basic, sélectionnez Page Events dans la liste déroulante supérieure gauche et l'événement Init dans la liste déroulante supérieure droite. Le gestionnaire d'événements Page_Init sera ajouté à votre classe code-behind.
Private Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs)
Handles Me.Init
End Sub
○ Si vous codez en C#, saisissez le gestionnaire d'événements Page_Init à l'aide de la syntaxe exacte indiquée.
private void Page_Init(object sender, EventArgs e)
{
}
Remarque
Dans un Web Form C# de Visual Studio 2005 ou version suivante, les gestionnaires d'événements
Page_Init, Page_Load ou Page_PreRender de la classe code-behind sont connectés automatiquement à l'événement Init, Load ou PreRender. La signature de gestionnaire d'événements doit correspondre exactement pour pouvoir être appelée.
Cette fonctionnalité est disponible lorsque le paramètre AutoEventWireup de la directive Page, qui se trouve au début de la page ASPX en mode HTML, est défini sur True.
Les versions précédentes de Visual Studio .NET définissaient toujours la directive Page
AutoEventWireup sur False, mais dans les Web Form C# de Visual Studio 2005 ou version suivante, la directive Page AutoEventWireup est définie sur True par défaut.
2. dans le gestionnaire d'événements Page_Init de Visual Basic ou C#, ajoutez un appel à la méthode d'assistance ConfigureCrystalReports().
ConfigureCrystalReports()
ConfigureCrystalReports();
3. Dans le menu Fichier, cliquez sur
Enregistrer tout
.
1.2.2.1.3 Pour ajouter un contrôle CrystalReportViewer à un site Web
Procédure
1. Ouvrez la page Default.aspx.
2. Cliquez sur le bouton
Design
au bas du formulaire.
3. Dans la
Boîte à outils
, ouvrez le nœud
Reporting
afin de localiser le contrôle
CrystalReportViewer
.
Remarque
Dans les versions précédentes de SAP Crystal Reports, version développeur pour Microsoft Visual Studio, le contrôle CrystalReportViewer apparaissait dans le nœud Crystal Reports.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
19
4. Faites glisser le contrôle
CrystalReportViewer
sur le Web Form.
5. Dans le menu
Fichier
, cliquez sur
Enregistrer tout
.
Résultats
Si vous ajoutez un contrôle CrystalReportViewer à votre application, les références aux assemblies
SAP Crystal Reports seront automatiquement ajoutées à votre rapport.
1.2.2.1.4 Configuration du fichier Web.Config
Un fichier Web.Config dans une application Web ASP.NET stocke les paramètres globaux, tels que les informations de connexion à la base de données, les références d'assembly et la gestion des erreurs. Ce fichier est
écrit en langage XML et son élément racine doit toujours être <configuration>. Il s'agit d'une configuration avancée qui est facultative.
Les éléments suivants sont spécifiques à SAP Crystal Reports et peuvent être ajoutés à votre fichier Web.Config.
Remarque
Les numéros de version peuvent changer en fonction du produit dont vous disposez.
Remarque
Dans .NET 2.0 et versions ultérieures, la balise section du fichier Web.Config doit utiliser la syntaxe suivante :
<configSections>
<sectionGroup name="businessObjects">
<sectionGroup name="crystalReports">
<section name="printControl" type="System.Configuration.NameValueSectionHandler" />
</sectionGroup>
</sectionGroup>
</configSections>
CrystalImageCleaner
Le processus CrystalImageCleaner supprime automatiquement les images générées dynamiquement rendues par le contrôle CrystalReportViewer. Ce paramètre vous permet de définir l'intervalle entre les analyses du répertoire d'images et l'âge minimal des fichiers avant suppression. Cet élément est automatiquement ajouté au fichier Web.Config lorsque vous ajoutez le contrôle CrystalReportViewer à votre site Web. Il correspond à la classe CrystalImageCleaner.
● CrystalImageCleaner-Sleep initialise la durée en millisecondes pendant laquelle le nettoyeur d'image reste en veille avant d'analyser et de nettoyer les fichiers image dans le répertoire des images dynamiques.
20
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
● CrystalImageCleaner-Age initialise l'âge minimal d'un fichier, en millisecondes, avant sa suppression.
● CrystalImageCleaner-AutoStart contrôle le processus CrystalImageCleaner. Le nettoyeur d'image nettoie les images temporaires qui sont créées lors de la visualisation d'un rapport.
Remarque
Un seul nettoyeur d'image peut être démarré dans un processus de traitement ASP.NET unique.
<appSettings>
<add key="CrystalImageCleaner-AutoStart" value="true" />
<add key="CrystalImageCleaner-Sleep" value="60000" />
<add key="CrystalImageCleaner-Age" value="120000" />
</appSettings>
CrystalImageHandler
L'élément CrystalImageHandler affiche toutes les images dynamiques dans le contrôle CrystalReportViewer.
Ce paramètre configure le processus de traitement ASP.NET pour rediriger les requêtes adressées à
CrystalImageHandler.aspx vers une classe de traitement d'image interne uniquement. Si le paramètre
CrystalImageHandler ne figure pas dans votre fichier Web.Config, les images de votre site Web ne s'afficheront pas. Cet élément est automatiquement ajouté au fichier Web.Config lorsque vous ajoutez le contrôle
CrystalReportViewer à votre site Web.
<system.web>
<httpHandlers>
<add verb="GET" path="CrystalImageHandler.aspx" type="CrystalDecisions.Web.CrystalImageHandler, CrystalDecisions.Web,
Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/>
</httpHandlers>
</system.web>
documentView
L'élément documentView contrôle l'apparence du rapport dans la trame du rapport. Deux paramètres sont fournis :
● Si la valeur est définie sur printlayout, une bordure grise s'affiche autour du rapport et une ombre portée s'affiche dans la trame. Il s'agit de la valeur par défaut.
● Si la valeur est définie sur weblayout le rapport remplit la trame.
<configSections>
<sectionGroup name="businessObjects">
<sectionGroup name="crystalReports">
<section name="crystalReportViewer" type="System.Configuration.NameValueSectionHandler" />
</sectionGroup>
</sectionGroup>
</configSections>
<businessObjects>
<crystalReports>
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
21
<crystalReportViewer>
<add key="documentView" value="weblayout"/>
</crystalReportViewer>
</crystalReports>
</businessObjects>
EnableTextClipping
L'élément EnableTextClipping contrôle si le texte du champ est tronqué. Une fois défini sur true, le texte contenu dans un champ ne chevauchera pas le texte dans le champ situé en regard..
<configSections>
<sectionGroup name="businessObjects">
<sectionGroup name="crystalReports">
<section name="crystalReportViewer" type="System.Configuration.NameValueSectionHandler" />
</sectionGroup>
</sectionGroup>
</configSections>
<businessObjects>
<crystalReports>
<crystalReportViewer>
<add key="EnableTextClipping" value="true"/>
</crystalReportViewer>
</crystalReports>
</businessObjects>
globalResourcePath
L'élément globalResourcePath est la référence au chemin du répertoire de fichiers pour les ressources globales. Ce répertoire de fichiers contient vos ressources de langue personnalisées dans un emplacement central et peut être partagé par plusieurs applications Web. Ce paramètre vous permet d'accéder aux ressources globales d'un site Web spécifique. Dans SAP CrystalReports.NET, les fichiers de ressources par défaut ne sont pas fournis lors de l'installation du produit, mais peuvent être téléchargés à partir du site Web de support technique de SAP BusinessObjects : http://help.sap.com
. Cet élément doit être manuellement ajouté au fichier
Web.Config de votre site Web.
<appSettings>
<add key="globalResourcePath" value="c:\CrystalReportViewer_resource_files\"/>
</appSettings>
maxNumberListOfValues
L'élément maxNumberListOfValues contrôle le nombre d'éléments LOV qui seront envoyés au client. Contrôle le nombre de valeurs affichées dans le panneau des paramètres. Si cette valeur est définie, seules les n premières valeurs apparaissent dans la liste de valeurs. La boîte de dialogue Paramètres avancés permet de paginer plusieurs ensembles de valeurs en fonction de la taille de la liste et de la valeur de l'élément maxNumberListOfValues. Si vous disposez, par exemple, de 180 valeurs et que vous définissez l'élément
22
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
maxNumberListOfValues sur 50, vous pourrez afficher les 50 premières valeurs du panneau des paramètres.
Vous pourrez paginer les 180 valeurs dans la boîte de dialogue Paramètres avancés et afficher ainsi trois groupes de 50 valeurs et un groupe de 30 valeurs.
Il est recommandé de définir systématiquement une valeur supérieure à 0. La valeur par défaut est 200.
<configSections>
<sectionGroup name="businessObjects">
<sectionGroup name="crystalReports">
<section name="crystalReportViewer" type="System.Configuration.NameValueSectionHandler" />
</sectionGroup>
</sectionGroup>
</configSections>
<businessObjects>
<crystalReports>
<crystalReportViewer>
<add key="maxNumberListOfValues" value="50"/>
</crystalReportViewer>
</crystalReports>
</businessObjects>
printControl
L'élément printControl vous permet d'imprimer le rapport directement sur votre imprimante locale. Le répertoire d'installation par défaut est C:\Program Files (x86)\SAP BusinessObjects\Crystal
Reports for .NET Framework 4.0\Common\Crystal Reports 2011\crystalreportviewers.
Ce paramètre rend le fichier .cab visible par votre site Web .NET SAP Crystal Reports. Cet élément doit être manuellement ajouté au fichier Web.Config de votre site Web.
<configSections>
<sectionGroup name="businessObjects">
<sectionGroup name="crystalReports">
<section name="printControl" type="System.Configuration.NameValueSectionHandler" />
</sectionGroup>
</sectionGroup>
</configSections>
<businessObjects>
<crystalReports>
<printControl>
<add key="url" value="http://localhost/PrintControl.cab" />
</printControl>
</crystalReports>
</businessObjects>
processingIndicatorDelay
L'élément processingIndicatorDelay contrôle le délai préalable à l'apparition de l'indicateur de traitement de rapport. La valeur est spécifiée en millisecondes. Le fait de définir cette valeur sur 0 désactive l'indicateur de traitement de rapport. La valeur par défaut est de 200 ms.
<configSections>
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
23
<sectionGroup name="businessObjects">
<sectionGroup name="crystalReports">
<section name="crystalReportViewer" type="System.Configuration.NameValueSectionHandler" />
</sectionGroup>
</sectionGroup>
</configSections>
<businessObjects>
<crystalReports>
<crystalReportViewer>
<add key="processingIndicatorDelay" value="20"/>
</crystalReportViewer>
</crystalReports>
</businessObjects>
processingIndicatorText
L'élément processingIndicatorText contrôle le texte affiché dans l'indicateur de traitement de rapport. Le texte par défaut est : Veuillez patienter pendant le traitement du document.
<configSections>
<sectionGroup name="businessObjects">
<sectionGroup name="crystalReports">
<section name="crystalReportViewer" type="System.Configuration.NameValueSectionHandler" />
</sectionGroup>
</sectionGroup>
</configSections>
<businessObjects>
<crystalReports>
<crystalReportViewer>
<add key="processingIndicatorText" value="Thank you for waiting."/>
</crystalReportViewer>
</crystalReports>
</businessObjects>
reportMappings
L'élément reportMappings met à jour les sites Web créés dans Visual Studio 2003 qui utilisent des rapports incorporés et les convertit en sites Web non incorporés lorsqu'ils sont ouverts dans Visual Studio 2005 ou version suivante. Ce paramètre convertit le fichier .dll créé dans Visual Studio 2003 en fichier disque. Visual Studio 2005 et 2008 ne prennent pas en charge les sites Web incorporés et vous devez donc modifier votre fichier Web.Config pour vous assurer que votre rapport sera toujours fonctionnel avec la nouvelle version de Visual Studio. Cet
élément doit être manuellement ajouté au fichier Web.Config de votre site Web. Le paramètre reportMappings nécessite un chemin absolu.
Remarque
Cet élément est valide pour Visual Studio 2005 et Visual Studio 2008 uniquement.
<configSections>
<sectionGroup name="businessObjects">
<sectionGroup name="crystalReports">
24
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
<section name="reportMappings" type="CrystalDecisions.Shared.ReportMappingHandler" />
</sectionGroup>
</sectionGroup>
</configSections>
<businessObjects>
<crystalReports>
<reportMappings>
<add reportName="World Sales Report.rpt" path="C:\Report\World Sales
Report.rpt" />
</reportMappings>
</crystalReports>
</businessObjects>
resourceURI
L'élément resourceURI définit l'emplacement du répertoire crystalreportviewers dans l'application Web.
Le répertoire crystalreportviewers contient tous les fichiers requis par le visualiseur.
<configSections>
<sectionGroup name="businessObjects">
<sectionGroup name="crystalReports">
<section name="crystalReportViewer" type="System.Configuration.NameValueSectionHandler" />
</sectionGroup>
</sectionGroup>
</configSections>
<businessObjects>
<crystalReports>
<crystalReportViewer>
<add key="resourceURI" value="~/crystalreportviewers12" />
</crystalReportViewer>
</crystalReports>
</businessObjects>
serverFileReportManager
L'élément serverFileReportManager est un service Web qui énumère les fichiers serveur situés sur le serveur.
Ce paramètre vous permet d'obtenir une liste d'objets (dossiers et rapports) depuis un ordinateur distant. Il a pour valeur la racine du répertoire de fichiers du serveur. Dans cet exemple, la racine définie est c:\inetpub
\wwroot. Cet élément doit être manuellement ajouté au fichier Web.Config de votre site Web.
Remarque
Il correspond à la classe serverFileReportManager.
<configSections>
<sectionGroup name="crystalDecisions">
<section name="serverFileReportManager" type="System.Configuration.NameValueSectionHandler" />
</sectionGroup>
</configSections>
<crystalDecisions>
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
25
<serverFileReportManager>
<add key="rootDirectory" value="c:\inetpub\wwwroot" />
</serverFileReportManager>
</crystalDecisions>
UseAsynchronousRequests
Les requêtes asynchrones sont autorisées par défaut dans le visualiseur DHTML. Pour activer le bouton
Retour
dans le navigateur afin d'utiliser le visualiseur DHTML, vous devez désactiver les requêtes asynchrones en définissant ce paramètre sur false.
Remarque
Il est recommandé de ne pas définir l'élément UseAsynchronousRequests sur false. Cette action désactive en effet la boîte de dialogue Paramètres avancés dans le panneau des paramètres ainsi que certaines améliorations au niveau de la performance du visualiseur et certaines fonctionnalités qui permettent d'améliorer l'apparence.
<context-param>
<param-name>crystal_use_asynchronous_requests</param-name>
<param-value>false</param-value>
</context-param>
UseBrowserLocale
L'élément UseBrowserLocale extrait les paramètres de langue de votre navigateur pour le contrôle
CrystalReportViewer. Lorsqu'il est défini sur true, ce paramètre configure le contrôle CrystalReportViewer pour observer les paramètres régionaux du navigateur. Lorsqu'il est défini sur false, il limite les paramètres régionaux qui sont affichés page par page. Cet élément doit être manuellement ajouté au fichier Web.Config de votre site
Web.
<configSections>
<sectionGroup name="businessObjects">
<sectionGroup name="crystalReports">
<section name="crystalReportViewer" type="System.Configuration.NameValueSectionHandler" />
</sectionGroup>
</sectionGroup>
</configSections>
<businessObjects>
<crystalReports>
<crystalReportViewer>
<add key="UseBrowserLocale" value="true" />
</crystalReportViewer>
</crystalReports>
</businessObjects>
26
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Exemple
Exemple de fichier Web.Config
<?xml version="1.0"?>
<configuration>
<appSettings>
<add key="CrystalImageCleaner-AutoStart" value="true"/>
<add key="CrystalImageCleaner-Sleep" value="60000"/>
<add key="CrystalImageCleaner-Age" value="120000"/>
</appSettings>
<connectionStrings/>
<system.web>
<compilation debug="true">
<assemblies>
<add assembly="CrystalDecisions.Web, Version=13.0.2000,
Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
<add assembly="CrystalDecisions.Shared, Version=13.0.2000,
Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
<add assembly="CrystalDecisions.ReportSource, Version=13.0.2000,
Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
<add assembly="CrystalDecisions.CrystalReports.Engine,
Version=13.0.2000, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
</assemblies>
</compilation>
<authentication mode="Windows"/>
<httpHandlers>
<add verb="GET" path="CrystalImageHandler.aspx" type="CrystalDecisions.Web.CrystalImageHandler, CrystalDecisions.Web,
Version=12.1.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/>
</httpHandlers>
</system.web>
</configuration>
Informations associées
Impression
Web : configuration de la localisation basée sur le navigateur
Web : configuration des ressources personnalisées globales ou locales
Comment ajouter ou supprimer des références dans Visual Studio
Versions SAP Crystal Reports
1.2.2.2 Configuration d'un projet Windows dans
Visual Studio
Cette section présente des informations essentielles pour les développeurs ayant un niveau avancé ou intermédiaire. Elle indique les méthodes à suivre pour créer et configurer un projet Windows à l'aide de
SAP Crystal Reports, version développeur pour Microsoft Visual Studio.
La configuration d'un projet Windows présentée dans cette section fait appel à un modèle de programmation classique. Au cours de cette procédure, vous serez amené à accéder à la classe Form1 et à entrer du code. Ce
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
27
projet Windows que vous allez ainsi créer servira de condition prérequise aux tutoriels de programmation classique fournis dans cette aide en ligne.
1.2.2.2.1 Création d'un projet Windows dans Visual Studio
Procédure
1. Lancez Visual Studio.
2. Dans le menu
Fichier
, sélectionnez
Nouveau
, puis cliquez sur
Projet
.
3. Dans la boîte de dialogue
Nouveau projet
, dans la liste
Types de projets
, sélectionnez un dossier de langage pour C# ou Visual Basic.
4. Dans la liste
Modèles
, cliquez sur
Application Windows Forms
.
5. Dans le champ
Nom
, remplacez le nom de projet par défaut par le nom de votre projet.
Respectez la convention d'affectation de noms Pascal selon laquelle la première lettre du nom du projet doit
être une majuscule car le nom du projet sera également utilisé comme nom de l'espace de noms de l'assembly généré à partir du projet.
6. Cliquez sur
OK
.
1.2.2.2.2 Application des paramètres de projet Visual Basic standard (facultatif)
Contexte
Pour configurer un projet Visual Basic de manière à pouvoir l'utiliser avec les tutoriels fournis dans cette documentation, vous devez apporter une modification mineure à ses paramètres.
Procédure
1. Dans l'
Explorateur de solutions
, cliquez avec le bouton droit de la souris sur le nom du projet en gras affiché sous le nom de la solution, puis sélectionnez
Propriétés
.
2. Dans la vue
Propriétés
, cliquez sur l'onglet
Compiler
.
3. Dans la liste
Option Strict
, cliquez sur
On
.
4. Fermez la vue
Propriétés
.
5. Dans le menu
Fichier
, cliquez sur
Enregistrer tout
.
Remarque
Il est recommandé d'activer OptionStrict dès le début de la création d'un projet Visual Basic. Ainsi, vous serez tenu de respecter les conventions d'écriture du code, à savoir l'emploi de déclarations de variables
28
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
fortement typées et la définition d'un cast valide, deux conventions qui sont vérifiées au moment de la compilation du code. Cette précaution aide à réduire les exceptions générées à l'exécution du code.
1.2.2.2.3 Préparation du Windows Form dans Visual
1.2.2.2.3.1 Pour créer le Windows Form
Contexte
Dans les applications Visual Basic 6 pour Windows, un formulaire par défaut est généralement toujours défini par le nom Form1. Sur ce modèle, vous créez un projet Windows en lui attribuant le même nom de formulaire par défaut, Form1, et l'extension .cs ou .vb selon le langage utilisé.
Procédure
1. Si le formulaire
Form1
n'est pas affiché dans la fenêtre principale, cliquez deux fois sur
Form1
dans l'
Explorateur de solutions
.
Le formulaire
Form1
s'ouvre dans le Designer.
2. Dans le menu
Affichage
, cliquez sur
Code
.
Le mode code de la classe Form1 s'affiche. Il varie selon que votre application Windows est écrite en langage
Visual Basic ou C#.
En langage C#, la classe Form1 affiche les éléments suivants :
○ La signature de classe.
○ Un constructeur (Form1).
En langage Visual Basic, la classe Form1 affiche les éléments suivants :
○ La signature de classe (classe Form1).
Remarque
Des méthodes et variables supplémentaires de la classe Form1 sont contenues dans une classe
"partielle" séparée. (Ceci vaut pour C# et Visual Basic.) Les classes partielles sont expliquées ultérieurement dans Configuration d'un projet Windows.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
29
1.2.2.2.3.2 Pour ajouter une méthode d'assistance privée pour le code de configuration de
SAP Crystal Reports
Procédure
1. Ajoutez à cette classe Form1 une nouvelle méthode d'assistance privée nommée
ConfigureCrystalReports(), sans valeur renvoyée.
Private Sub ConfigureCrystalReports()
End Sub private void ConfigureCrystalReports()
{
}
Ajoutez ensuite un gestionnaire d'événements Form_Load, puis insérez un appel de la méthode
ConfigureCrystalReports() dans le gestionnaire d'événements Form_Load. La méthode
ConfigureCrystalReports() s'exécutera ainsi automatiquement lors du chargement du formulaire.
2. Dans le menu
Affichage
, cliquez sur
Concepteur
.
3. Cliquez deux fois sur Form1.
Vous repassez en mode code. Comme vous avez cliqué deux fois sur Form1, un gestionnaire d'événements
Form1_Load est automatiquement généré dans la classe Form1.
4. Dans le gestionnaire d'événements Form1_Load, saisissez un appel à la méthode
ConfigureCrystalReports().
ConfigureCrystalReports()
ConfigureCrystalReports();
5. Dans le menu
Fichier
, cliquez sur
Enregistrer tout
.
1.2.2.2.4 Ajout d'un contrôle CrystalReportViewer
1.2.2.2.4.1 Pour ajouter un contrôle CrystalReportViewer à une application Windows
Procédure
1. Ouvrez un Windows Form dans l'onglet Conception.
2. Dans la
Boîte à outils
, ouvrez le nœud
Reporting
afin de localiser le contrôle
CrystalReportViewer
.
30
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Remarque
Dans les versions précédentes de Visual Studio, le contrôle CrystalReportViewer apparaissait dans le nœud Crystal Reports.
3. Faites glisser le contrôle
CrystalReportViewer
sur le formulaire.
4. Dans le menu
Fichier
, cliquez sur
Enregistrer tout
.
Résultats
Si vous ajoutez un contrôle CrystalReportViewer à votre application, les références aux assemblies
SAP Crystal Reports seront automatiquement ajoutées à votre rapport.
1.2.2.2.4.2 Pour ajouter des instructions Imports et Using aux espaces de noms de référence
Procédure
1. Si le dossier Références n'est pas affiché dans l'Explorateur de solutions, cliquez sur Afficher tous les fichiers dans la barre d'outils de l'Explorateur de solutions afin d'afficher tous les fichiers de projet.
2. Dans l'Explorateur de solutions, développez le dossier Références.
3. Vérifiez que les assemblies SAP Crystal Reports suivantes ont été ajoutées :
○ CrystalDecisions.CrystalReports.Engine
○ CrystalDecisions.Shared
4. Sélectionnez Form1, puis dans le menu
Affichage
, cliquez sur
Code
.
5. Au-dessus de la signature de classe, ajoutez une déclaration "Imports" [Visual Basic] ou "using" [C#] au début de la classe contenant les espaces de noms SAP Crystal Reports suivants.
Imports CrystalDecisions.CrystalReports.Engine
Imports CrystalDecisions.Shared
using CrystalDecisions.CrystalReports.Engine; using CrystalDecisions.Shared;
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
31
1.3 Principes fondamentaux du SDK
1.3.1 Architecture
1.3.1.1 Choisir le modèle d'objet correct pour votre projet
Pour choisir le modèle d'objet approprié à votre projet, vous devez comprendre les conventions relatives à l'utilisation du contrôle CrystalReportViewer, ainsi que la manière dont ce contrôle interagit avec les autres modèles d'objet.
Remarque
Dans cette documentation, un modèle d'objet fait référence à une classe principale et aux classes qui lui sont associées, le tout formant un modèle de programmation. Dans SAP Crystal Reports, ces modèles d'objet sont axés sur une classe principale qui encapsule un fichier de définition de rapport. Cette classe principale et le modèle d'objet associé permettent d'interagir avec le rapport en le programmant.
Conventions relatives à l'utilisation du contrôle CrystalReportViewer
Une application Web efficace établit une séparation nette entre sa couche présentation et sa couche logique métier sous-jacente.
La structure du contrôle ASP.NET va naturellement dans le sens de ce modèle de conception. Il encapsule les informations de présentation dans le contrôle, puis lie ce contrôle à un objet ou un modèle d'objet sous-jacent qui crée la logique métier.
CrystalReportViewer est un contrôle .NET conforme à cette architecture. Il fonctionne comme un objet d'affichage dans le Web Form ou le Windows Form (couche présentation) et peut être lié à n'importe lequel des modèles d'objet suivants :
● Modèle d'objet ReportDocument
● Modèle d'objet ReportClientDocument (Report Application Server)
● Modèle d'objet InfoObject (fourni avec SAP Crystal Reports Server ou la plateforme SAP BusinessObjects
Business Intelligence)
Dans un scénario qui respecte les conventions, le contrôle CrystalReportViewer se lie à l'un des modèles d'objet qui créent la logique métier, généralement pour la manipulation des rapports.
Dans ce scénario, l'interaction par programmation du contrôle CrystalReportViewer se limite à modifier les paramètres d'affichage (masquer ou afficher la barre d'outils du visualiseur ou l'un des boutons qui la composent par exemple).
32
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Modèle d'objet CrystalReportViewer
Le contrôle CrystalReportViewer contient des propriétés et des méthodes qui permettent d'interagir sur la manière dont ce dernier affiche les rapports. Il comporte également un petit nombre de propriétés et de méthodes qui permettent d'interagir avec les rapports auxquels il est lié. Ces propriétés et méthodes constituent un modèle d'objet limité.
Certains scénarios de liaison de rapports font appel au modèle d'objet CrystalReportViewer. Dans ces scénarios, le contrôle CrystalReportViewer est directement lié à un rapport (en indiquant le chemin d'accès au rapport dans un répertoire de fichiers par exemple) sans avoir préalablement encapsulé ce rapport dans un modèle d'objet.
Dans ce cas, étant donné que le contrôle CrystalReportViewer encapsule directement le rapport, vous devez utiliser son modèle d'objet limité pour interagir avec le rapport.
Toutefois, dans la plupart des scénarios de liaison de rapports, l'utilisation de CrystalReportViewer en tant que modèle d'objet est déconseillée. Il est préférable de faire appel au modèle d'objet ReportDocument pour les raisons suivantes :
● Le modèle d'objet CrystalReportViewer peut engendrer des conflits entre modèles d'objet. Ne mélangez pas le modèle d'objet CrystalReportViewer avec d'autres modèles d'objet.
● Le modèle d'objet CrystalReportViewer ne permet qu'une interaction limitée avec les rapports. Il ne contient que quelques-uns unes des fonctionnalités disponibles dans le modèle d'objet ReportDocument.
● Dans le modèle d'objet CrystalReportViewer, la séparation entre la couche présentation et la logique métier sous-jacente n'est pas clairement établie.
Modèle d'objet ReportDocument
ReportDocument est un modèle d'objet plus puissant et plus complet que CrystalReportViewer. Il fait partie du
SDK de Crystal Reports .NET et permet une manipulation étendue du code des rapports.
Quel modèle d'objet utiliser ?
Si vous n'envisagez pas de mise à niveau vers SAP Crystal Reports Server ou vers la plateforme SAP
BusinessObjects Business Intelligence, il est recommandé d'utiliser le modèle d'objet ReportDocument pour vos tâches de développement avec le SDK de SAP Crystal Reports.
Remarque
Dans SAP Crystal Reports 10 ou versions ultérieures et dans SAP Crystal Reports pour Visual Studio 2005 et versions ultérieures, le modèle d'objet ReportDocument a été associé au modèle d'objet
ReportClientDocument pour faciliter la mise à niveau vers une solution de reporting gérée.
1.3.1.2 Eviter de mélanger les modèles d'objet
Ne mélangez pas le modèle d'objet CrystalReportViewer avec d'autres modèles d'objet.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
33
Utilisé en tant que modèle d'objet limité, CrystalReportViewer fonctionne correctement, à condition qu'il soit directement lié au rapport par le biais du chemin d'accès à ce dernier.
En revanche, si vous encapsulez le rapport dans un autre modèle d'objet (tel que ReportDocument ou
ReportClientDocument), puis si vous liez le contrôle à ce modèle d'objet, n'utilisez plus le modèle d'objet
CrystalReportViewer. Le modèle d'objet fourni par le contrôle CrystalReportViewer devient alors redondant par rapport au modèle d'objet plus puissant auquel il est lié. Par ailleurs, les paramètres appliqués au modèle d'objet
CrystalReportViewer sont visibles par l'autre modèle d'objet, ce qui peut engendrer des comportements inattendus et des exceptions.
Supposons que vous utilisiez le modèle d'objet ReportDocument pour exporter ou imprimer un rapport mensuel à partir du serveur. Si vous avez défini un paramètre de mois dans ce rapport à l'aide du modèle d'objet
CrystalReportViewer, il se peut que vous rencontriez des problèmes. Le modèle d'objet ReportDocument ne peut pas voir les paramètres appliqués dans le modèle d'objet CrystalReportViewer. Il tente d'exporter ou d'imprimer le rapport sans avoir connaissance du paramètre de mois défini, et affiche ensuite le mauvais mois ou génère une exception.
La meilleure solution consiste donc à limiter l'utilisation du contrôle CrystalReportViewer aux paramètres d'affichage du rapport uniquement lorsque ce contrôle a été lié à l'un des modèles d'objet sous-jacents.
1.3.1.3 SAP Crystal Reports Designer incorporé
Le SAP Crystal Reports Designer incorporé permet de créer ou de modifier des rapports. Il se compose d'une interface utilisateur graphique pour la conception de rapports en WYSIWYG et d'une série d'experts conçus pour simplifier la connectivité entre les données, leur tri, leur regroupement et d'autres opérations complexes de conception de rapports. SAP Crystal Reports Developer contient une version améliorée du concepteur incorporé qui permet de créer des rapports et des applications de reporting performants. Le concepteur incorporé inclus dans SAP Crystal Reports, version développeur pour Microsoft Visual Studio contient plusieurs fonctionnalités présentes dans SAP Crystal Reports Designer.
Rôle du SAP Crystal Reports Designer incorporé dans l'architecture
Le SAP Crystal Reports Designer incorporé est inclus dans la description de l'architecture, car il joue un rôle primordial dans SAP Crystal Reports, version développeur pour Microsoft Visual Studio : il permet en effet de créer les fichiers de rapport à afficher. Toutefois, le SAP Crystal Reports Designer incorporé n'intervient qu'au moment de la conception. L'interaction avec les rapports et leur affichage, qui interviennent au moment de l'exécution, sont assurés par le SDK de SAP Crystal Reports. Par conséquent, si le concepteur incorporé permet de créer des rapports qui sont utilisés dans l'architecture, il ne fait pas partie de l'architecture elle-même.
Informations associées
Utilisation du SAP Crystal Reports Designer incorporé [page 624]
34
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.3.1.4 Contrôles du visualiseur de rapports
SAP Crystal Reports, version développeur pour Microsoft Visual Studio inclut des contrôles de format standard pour l'affichage des rapports. Chaque contrôle encapsule des informations complexes liées à la présentation des rapports dans un objet GUI, dans la boîte à outils.
Deux contrôles sont fournis :
Le contrôle CrystalReportViewer.
Ce contrôle affiche le rapport en utilisant une présentation de type page, avec la possibilité de naviguer entres les pages.
Le contrôle
CrystalReportPartsViewer.
Ce contrôle affiche les informations de résumé sur le rapport dans une petite fenêtre de type portail, avec la possibilité d'explorer le rapport en profondeur par le biais d'une série de parties liées.
Pour afficher un rapport, il suffit de faire glisser le contrôle de la boîte à outils vers le Web Form ou le Windows
Form, puis d'affecter la propriété ReportSource de ce contrôle à un rapport.
Informations associées
Comment utiliser les contrôles visualiseur de rapports ? [page 43]
1.3.1.5 Modèles d'objet
SAP Crystal Reports, version développeur pour Microsoft Visual Studio, inclut un SDK qui contient deux modèles d'objets. Avec un supplément de licence, le SDK peut être étendu à quatre modèles d'objet.
Les contrôles du visualiseur de rapports fournissent le point d'entrée dans le SDK. Cela est dû au fait que le visualiseur de rapports affiche les rapports en les liant à un objet de rapport. Tous les modèles d'objet contenus dans le SDK exposent et manipulent des objets de rapport.
Chaque modèle d'objet offre un degré de puissance et de complexité croissant :
● Le modèle d'objet le plus simple est CrystalReportViewer.
Le contrôle CrystalReportViewer d'un Web Form ou d'un Windows Form possède par définition une classe sous-jacente du même nom. Cette classe CrystalReportViewer expose les propriétés et les méthodes qui permettent de modifier la fonctionnalité d'affichage du contrôle et d'interagir avec les classes qui gèrent les connexions à la base de données, les paramètres et les formules de sélection. Cet ensemble de classes constitue le modèle d'objet le plus simple. La classe CrystalReportViewer se présente sous deux formes différentes : l'une dans un espace de noms Windows et l'autre dans un espace de noms Web. De nombreux
éléments de ce modèle d'objet se retrouvent par conséquent en double dans les deux espaces de noms, avec certaines différences propres aux plates-formes Windows et Web.
Les classes de ce modèle d'objet sont contenues dans l'espace de noms CrystalDecisions.Web pour la version Web Form de ce contrôle, et dans l'espace de noms CrystalDecisions.Windows pour la version
Windows Form du contrôle.
● ReportDocument est un modèle d'objet plus complet.
La classe ReportDocument constitue une passerelle vers un ensemble de classes contenues dans l'espace de noms Engine et qui incluent Database, DataDefinition, ExportOptions, PrintOptions,
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
35
ReportDefinition, ReportOptions et SummaryInfo. Il s'agit d'un ensemble complet de classes qui offre des fonctionnalités plus puissantes de personnalisation et d'interaction avec le rapport.
Les classes de ce modèle d'objet sont contenues dans l'espace de noms
CrystalDecisions.CrystalReports.Engine.
● Les modèles d'objet suivants sont disponibles par le biais d'une mise à niveau :
○ ReportClientDocument, modèle d'objet offrant des fonctionnalités de modification de rapport plus avancées.
Cette classe sert de passerelle vers un modèle d'objet plus volumineux constitué de nombreuses classes contenues dans plusieurs espaces de noms. Elle expose la structure du rapport dans son intégralité via le
SDK, ce qui permet de créer ou de modifier par programmation chaque aspect du rapport au moment de l'exécution.
Les classes de ce modèle d'objet sont contenues dans le groupe d'espaces de noms
CrystalDecisions.ReportAppServer.
Le modèle d'objet ReportClientDocument est fourni avec un RAS (Report Application Server) qui nécessite l'acquisition d'une licence supplémentaire. Un Report Application Server est fourni avec
SAP Crystal Reports Server et la plateforme SAP BusinessObjects Business Intelligence.
○ InfoObject, un modèle d'objet complet pour interagir avec les fonctions de niveau plateforme de
SAP Crystal Reports Server ou de la plateforme SAP BusinessObjects Business Intelligence est
également disponible. Ce modèle est fourni avec la licence SAP Crystal Reports Server ou de plateforme
SAP BusinessObjects Business Intelligence.
Cette classe sert de passerelle vers le modèle d'objet de plateforme complet de
SAP Crystal Reports Server ou de la plateforme SAP BusinessObjects Business Intelligence.
Les classes de ce modèle d'objet sont contenues dans le groupe d'espaces de noms
CrystalDecisions.Enterprise.
Remarque
Le modèle d'objet InfoObject est fourni uniquement avec SAP Crystal Reports Server et la plateforme
SAP BusinessObjects Business Intelligence, qui nécessitent l'acquisition d'une licence supplémentaire.
Informations associées
Choisir le modèle d'objet correct pour votre projet [page 32]
Comparaison des solutions de reporting de SAP BusinessObjects Business Intelligence [page 65]
1.3.1.5.1 Modèle d'objet CrystalReportViewer
La classe CrystalReportViewer a deux rôles :
● Dans un Web Form ou un Windows Form, la classe CrystalReportViewer est exposée comme un contrôle .NET et peut être ajoutée au formulaire pour afficher un rapport. Pour avoir des informations spécifiques sur le rôle de cette classe en tant que contrôle .NET, voir
Contrôles du visualiseur de rapports [page 35]
.
● Dans le code sous-jacent du Web Form ou du Windows Form, la classe CrystalReportViewer fournit le modèle d'objet le plus simple du SDK. Ce modèle d'objet sera examiné plus loin dans cette section.
36
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
La manière la plus simple d'insérer un rapport dans un Web Form ou Windows Form consiste à ajouter le contrôle
CrystalReportViewer au formulaire, puis, dans la classe code-behind, à affecter à la propriété ReportSource de la classe CrystalReportViewer le chemin d'accès au rapport sous forme de chaîne.
En affectant le chemin du rapport directement au contrôle (plutôt que de placer le rapport dans un modèle d'objet plus complexe tel que ReportDocument ou ReportClientDocument), vous limitez l'interface au modèle d'objet le plus simple : CrystalReportViewer.
Comparaison de modèles d'objet CrystalReportViewer
CrystalReportViewer possède deux diagrammes de modèle d'objet, car le même nom de classe et de contrôle (et par conséquent son modèle d'objet sous-jacent) est utilisé pour les applications Windows et Web. Ainsi, le modèle d'objet CrystalReportViewer se répète-t-il (à quelques différences près) dans deux espaces de noms différents.
La version Windows du modèle d'objet CrystalReportViewer comporte les principales classes et les principaux
événements partagés par les versions Windows et Web du modèle d'objet.
La version Web du modèle d'objet CrystalReportViewer contient les mêmes classes et événements que la version
Windows, auxquels s'ajoutent les événements suivants relatifs au mode de chargement des pages ASPX.
Informations associées
Contrôles du visualiseur de rapports [page 35]
Liaison de rapports à l'aide du modèle d'objet CrystalReportViewer [page 168]
1.3.1.5.2 Modèle d'objet ReportDocument
La classe ReportDocument fournit un modèle d'objet plus complet pour le SDK que le modèle d'objet
CrystalReportViewer.
La classe ReportDocument fait partie de l'espace de noms CrystalDecisions.CrystalReports.Engine.
Elle sert de passerelle vers un ensemble de classes contenues dans l'espace de noms Engine, ce qui offre une palette d'outils de programmation plus large pour manipuler un rapport.
Modèle d'objet ReportDocument
Dans la section précédente, vous avez appris à utiliser le modèle d'objet de base CrystalReportViewer en affectant directement au contrôle CrystalReportViewer le chemin d'accès à un rapport.
Au niveau suivant, vous allez utiliser le modèle d'objet ReportDocument pour encapsuler le rapport dans une instance de ReportDocument avant de l'affecter au contrôle. Vous accédez ainsi au modèle d'objet plus complexe et puissant fourni par ReportDocument.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
37
Remarque
Etant donné que les modèles d'objet CrystalReportViewer et ReportDocument sont tous deux impliqués dans ce processus (le premier pour charger et afficher le rapport, le second pour encapsuler et manipuler le rapport), il est fréquent de confondre leur rôle respectif. Une fois le rapport encapsulé à l'aide du modèle d'objet ReportDocument, toutes les manipulations portant sur le rapport doivent être limitées à ce modèle. Si vous essayez d'utiliser les propriétés et les méthodes de CrystalReportViewer pour manipuler le rapport, les deux modèles d'objet entrent en conflit et se comportent de manière imprévisible.
Une fois que vous avez ajouté un modèle d'objet, limitez l'utilisation du code de CrystalReportViewer à la définition des propriétés d'affichage.
ReportDocument et ReportClientDocument (RAS)
Dans SAP Crystal Reports 9, ces deux modèles étaient complètement séparés. Dans SAP Crystal Reports 10 et versions ultérieures, cette séparation essentielle entre les deux modèles d'objet a été supprimée. Le modèle d'objet ReportDocument fonctionne désormais comme un proxy vers un sous-ensemble de fonctionnalités à partir du modèle d'objet ReportClientDocument.
SAP Crystal Reports 2008 permet d'accéder à une version limitée du modèle d'objet ReportClientDocument via la propriété ReportDocument.ReportClientDocument.
Informations associées
Tutoriels du modèle d'objet ReportDocument [page 330]
Liaison de rapports à l'aide du modèle d'objet ReportDocument [page 196]
Modèle d'objet CrystalReportViewer [page 36]
Choisir le modèle d'objet correct pour votre projet [page 32]
1.3.1.5.3 Modèle d'objet ReportClientDocument (RAS)
ReportClientDocument est le modèle d'objet le plus puissant et le plus complet pour manipuler les rapports. Ce modèle d'objet n'est fourni qu'avec un RAS (Report Application Server), disponible sous la forme d'un RAS
BusinessObjects Enterprise géré ou non géré.
Le modèle d'objet ReportClientDocument est constitué de nombreuses classes contenues dans divers espaces de noms. Chaque espace de noms a pour préfixe CrystalDecisions.ReportAppServer. Ce modèle d'objet expose la structure du rapport dans son intégralité dans le SDK. Ainsi, vous pouvez créer et modifier par programmation chaque aspect du rapport au moment de l'exécution, ainsi qu'en enregistrer les modifications.
Une instance de ReportClientDocument comprend un rapport qui peut être modifié par programmation en fonction de ses propriétés de classe. Ces propriétés sont liées à une série d'autres bibliothèques dans le SDK qui contiennent des contrôleurs, des modèles de définition de données et des modèles de définition de rapport :
38
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
● ReportDefinition correspond à la présentation du rapport, tel qu'indiqué dans le
SAP Crystal Reports Designer.
● DataDefinition correspond à l'Explorateur de champs dans le SAP Crystal Reports Designer.
● RowsetController correspond aux valeurs de données traitées de chaque ligne de détails, lors de la visualisation du rapport au moment de l'exécution.
Les instances de ReportClientDocument peuvent être des instanciations :
● d'un fichier .rpt existant chargé à partir d'un répertoire, puis modifié avec les classes de définition de rapport et de définition de données du SDK ReportClientDocument ;
● d'un nouveau rapport entièrement vide créé avec les classes de définition de rapport et de définition de données du SDK ReportClientDocument.
Cette instance de classe ReportClientDocument peut être chargée uniquement durant le temps nécessaire pour transmettre l'instance au visualiseur pour affichage, avant qu'elle ne soit mise hors de portée. Toutefois, vous pouvez également modifier l'instance de classe, puis l'enregistrer en tant que rapport (.rpt) dans un répertoire avec l'une des classes du contrôleur.
Pour obtenir des informations détaillées sur le modèle d'objet ReportClientDocument, consultez la documentation du SDK .NET RAS de SAP BusinessObjects.
ReportClientDocument dans SAP Crystal Reports 9
Avec l'application SAP Crystal Reports 9 (version Advanced) fournie avec le RAS non géré et les assemblys
RAS .NET, il était nécessaire de programmer le modèle d'objet ReportClientDocument. Les développeurs pouvaient ainsi créer des projets .NET qui exploitaient le modèle d'objet ReportClientDocument.
Toutefois, cela impliquait également que les projets initialement créés avec le modèle d'objet ReportDocument fourni avec SAP Crystal Reports devaient être intégralement reprogrammés pour être utilisés avec le modèle d'objet ReportClientDocument inclus dans le RAS. Cela tenait au fait que les deux modèles d'objet étaient complètement séparés.
ReportClientDocument dans SAP Crystal Reports 10 et versions ultérieures
Dans SAP Crystal Reports 10, cette séparation essentielle entre les deux modèles d'objet a été supprimée. Pour ce faire, le modèle d'objet ReportDocument a été réécrit de façon à ce qu'il fonctionne comme un proxy vers un sous-ensemble de fonctionnalités à partir du modèle d'objet ReportClientDocument. Les classes du modèle d'objet ReportDocument exposent les mêmes signatures de propriété et de méthode qu'avant, mais la fonctionnalité sous-jacente a été modifiée de manière à rediriger chaque propriété et chaque méthode vers les propriétés et les méthodes du modèle d'objet ReportClientDocument plus puissant.
Cela ne signifie pas pour autant qu'une version de base de SAP Crystal Reports Developer offre un accès intégral
à un serveur RAS non géré ou au modèle d'objet ReportClientDocument. La version de base de
SAP Crystal Reports permet toujours de n'accéder qu'au modèle d'objet ReportDocument (même si le modèle d'objet ReportDocument fonctionne comme un proxy vers un sous-ensemble du modèle d'objet
ReportClientDocument). Le moteur de création de rapports d'origine fourni dans les précédentes versions de
SAP Crystal Reports a été remplacé par une version limitée et incorporée du moteur de création de rapports RAS.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
39
Vous ne pouvez installer le modèle d'objet ReportClientDocument et y accéder directement qu'en acquérant une licence mise à niveau du serveur RAS non géré. A ce stade, tout le code correspondant au modèle d'objet
ReportDocument peut être facilement redirigé vers le serveur RAS distinct en définissant deux propriétés de n'importe quelle instance de rapport donnée, et le modèle d'objet ReportClientDocument sous-jacent est désormais accessible directement, lorsque vous l'extrayez de la propriété de la classe ReportDocument.
1.3.1.5.4 Modèle d'objet InfoObject (BOE)
Le modèle d'objet InfoObject est fourni avec les mises à niveau de SAP Crystal Reports Server et de la plateforme
SAP BusinessObjects Business Intelligence.
Remarque
Pour en savoir plus, voir
Solutions de reporting de SAP BusinessObjects Business Intelligence [page 64]
.
InfoObject offre un modèle d'objet de niveau plateforme pour le SDK. InfoObject fonctionne comme une classe de base dans laquelle de nombreux objets Enterprise sont encapsulés dans des classes dérivées. La classe dérivée qui représente les rapports est la classe CrystalDecisions.Enterprise.Desktop.Report.
Le SDK de la plateforme SAP BusinessObjects Business Intelligence est construit autour de la classe d'objet
InfoObject et des classes assurant sa prise en charge.
Classe InfoObject
La classe InfoObject est utilisée dans le SDK pour représenter un large éventail d'entités d'informations. Cela inclut à la fois des entités physiques, telles que des fichiers de rapport ou des fichiers PDF, et des entités du réseau, telles que les utilisateurs, les serveurs ou les connexions FTP.
La classe InfoObject est une classe de base pour de nombreuses classes étendues correspondant à ces entités d'informations de façon plus détaillée. Les classes étendues qui héritent d'InfoObject sont les suivantes :
Report, User, Server, Folder, Program, Ftp, Smtp, Word, Excel et Pdf.
La manipulation des instances de classes étendues et de classes InfoObject vous permet de créer une application cliente ou une application de bureau.
Classes assurant la prise en charge
Deux autres classes prennent en charge la classe InfoObject.
La classe InfoStore La classe InfoStore fait office de contrôleur, ou passerelle, vers le référentiel CMS (Central
Management Server) (qui est une base de données), où sont stockées toutes les instances d'InfoObject. La classe InfoStore est utilisée pour instancier, extraire et valider toutes les instances de classe InfoObject stockées dans le référentiel CMS.
40
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
La classe indexée
InfoObjects
La classe indexée InfoObjects contient plusieurs instances d'InfoObject. Elle est utilisée par
InfoStore pour déplacer les instances InfoObject vers et depuis le référentiel CMS.
La classe Infostore ne peut pas gérer directement les instances InfoObject. Elles doivent être d'abord encapsulées dans la classe indexée InfoObjects. Par le biais de cette classe indexée, chaque instance d'InfoObject peut être ajoutée, extraite, mise à jour ou planifiée.
Remarque
Pour en savoir plus sur le SDK de SAP Crystal Reports Server ou de la plateforme SAP BusinessObjects
Business Intelligence, consultez la documentation correspondante.
Informations associées
Choisir le modèle d'objet correct pour votre projet [page 32]
1.3.1.6 Comparaison des architectures dans les solutions de reporting SAP Business Intelligence
Quatre solutions de reporting SAP Business Intelligence sont disponibles :
● SAP Crystal Reports, version développeur pour Microsoft Visual Studio
● SAP Crystal Reports Developer
● Report Application Server non géré (RAS)
● SAP Crystal Reports Server ou plateforme SAP BusinessObjects Business Intelligence
Une différence d'architecture fondamentale entre chaque solution de reporting repose sur la façon dont le moteur de rapport est placé et implémenté.
Définition du moteur de rapport
Le moteur de rapport est une composante essentielle de chaque solution de reporting. Il traite toutes les demandes utilisateur et génère en sortie les informations concernant les rapports.
La capacité maximale de traitement simultané des demandes utilisateur varie d'une solution à l'autre. Dans certaines solutions, elle est conditionnée par la conception de l'architecture ou par les licences.
Les autres pièces maîtresses de chaque solution de reporting sont les suivantes :
● le fichier de définition de rapport (.rpt) ;
● la source de données ;
● le visualiseur de rapports ;
● le SDK ;
● Une structure de plateforme (qui figure dans SAP Crystal Reports Server ou la plateforme SAP
BusinessObjects Business Intelligence).
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
41
Interaction du moteur de rapport avec les autres pièces maîtresses
Le moteur de rapport utilise le fichier de définition de rapport (.rpt) comme modèle. Il extrait ensuite les données de la source de données et utilise la définition de rapport pour fournir le rendu du rapport demandé, puis le transmet au visualiseur de rapports. Les informations reçues du visualiseur ou codées à l'aide du SDK d'interface déclenchent des traitements supplémentaires de la part du moteur de rapport qui exécute d'autres opérations sur le rapport.
Différences de configuration du moteur de rapport entre les solutions de reporting SAP Business Intelligence
● Le moteur de rapport est incorporé.
Dans SAP Crystal Reports, version développeur pour Microsoft Visual Studio, le moteur de rapport est incorporé dans l'application.
La capacité maximale de traitement simultané de ce moteur de rapport incorporé est limitée à trois demandes utilisateur. Cela n'est pas dû à une limite de licence arbitraire, mais à une restriction liée à l'architecture du moteur de rapport incorporé.
● Le moteur de rapport est extrait dans un processus serveur de rapports distinct.
Dans la solution qui fait appel au Report Application Server (RAS) non géré, le moteur de rapport est extrait dans un processus serveur distinct. Ce processus serveur peut s'exécuter sur le même ordinateur ou être placé sur un ordinateur distinct de manière à augmenter les performances en déchargeant le traitement de votre serveur d'applications. Le serveur RAS non géré n'est plus disponible en tant qu'option de mise à niveau. Il est recommandé d'effectuer à la place une mise à niveau vers SAP Crystal Reports Server. Pour en savoir plus, voir
Solutions de reporting de SAP BusinessObjects Business Intelligence [page 64]
.
● Le processus serveur de rapports distinct est encapsulé dans une architecture de plateforme complète.
Dans la solution SAP Crystal Reports Server ou de plateforme SAP BusinessObjects Business Intelligence, une architecture de plateforme complète, qui encapsule le processus serveur de rapports distinct (RAS), a
été ajoutée. Le Report Application Server (RAS) géré devient alors un simple serveur, parmi les nombreux autres serveurs qui constituent l'architecture de plateforme. Ce type d'architecture offre une large palette de fonctionnalités supplémentaires, telles que la planification, l'équilibrage des charges, le basculement et une
évolutivité à la fois verticale et horizontale.
1.3.2 Contrôle CrystalReportViewer
Pour afficher un rapport Crystal, vous devez ajouter un contrôle CrystalReportViewer à votre application. Le contrôle CrystalReportViewer permet de lier et d'afficher des rapports dans le .NET Framework. Le contrôle
CrystalReportViewer par défaut inclut des éléments d'interface utilisateur pour vous aider à afficher, enregistrer et parcourir un rapport.
Les deux contrôle CrystalReportViewer les plus fréquemment utilisés sont le contrôle CrystalReportViewer pour les applications Windows, auquel on accède via la classe
CrystalDecisions.Windows.Forms.CrystalReportViewer, et le contrôle CrystalReportViewer pour les sites Web, auquel on accède via la classe CrystalDecisions.Web.CrystalReportViewer. Pour en savoir plus, voir la Référence de l'API .NET SAP Crystal Reports.
42
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Remarque
Un contrôle CrystalReportViewer n'est nécessaire que si vous avez l'intention d'afficher des rapports Crystal.
Personnalisation du contrôle CrystalReportViewer
En fonction de votre application, vous pouvez modifier certains éléments du contrôle par défaut.
SAP Crystal Reports vous permet de personnaliser l'aspect et la convivialité du visualiseur dans votre application de différentes manières, notamment :
● La barre d'outils CrystalReportViewer peut être supprimée du visualiseur.
● Les boutons de la barre d'outils CrystalReportViewer peuvent être ajoutés ou supprimés par programmation.
● Le contrôle CrystalReportViewer prend en charge la personnalisation via la CSS ou Thèmes.
Informations associées
Personnalisation du contrôle CrystalReportViewer [page 220]
Visualisation d'un rapport [page 161]
1.3.2.1 Comment utiliser les contrôles visualiseur de rapports ?
Les contrôles visualiseur de rapports sont des contrôles .NET qui peuvent être ajoutés à un formulaire dans une application Web ou Windows pour afficher des rapports dans ce formulaire.
Lorsque vous envisagez de générer une application à l'aide du SDK de SAP Crystal Reports, l'un des points les plus importants à déterminer concerne l'utilisation des contrôles visualiseur de rapports. Connaître les principes fondamentaux du SDK qui influencent ces contrôles vous aidera à choisir la structure la mieux adaptée à votre projet SAP Crystal Reports, version développeur pour Microsoft Visual Studio.
Définition des contrôles .NET
Les contrôles Microsoft .NET forment une classe particulière de contrôles qui s'affichent dans la boîte à outils
Visual Studio. Ils sont ajoutés à un Web Form ou un Windows Form en tant qu'objets GUI et héritent des caractéristiques d'une classe de contrôles de base commune. Les contrôles .NET classiques sont notamment
Button, DropDownList, CheckBox, TextBox ou DataGrid.
Les contrôles Microsoft .NET respectent la convention selon laquelle la couche présentation doit être séparée de la couche logique métier. Les informations d'affichage sont encapsulées dans le contrôle lui-même dans le
Web Form ou le Windows Form. Dans la classe code-behind, le contrôle .NET est instancié en tant qu'instance de niveau classe. Cette variable d'instance permet d'accéder aux propriétés, méthodes et événements du contrôle.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
43
Les contrôles Microsoft .NET sont identiques d'un point de vue fonctionnel pour les Windows Forms comme pour les Web Forms. Le .NET Framework permet de visualiser chaque page Web sous la forme d'un formulaire contenant des contrôles, comme dans une application Windows.
Pourquoi SAP Crystal Reports utilise-t-il des contrôles .NET pour la visualisation des rapports ?
L'un des avantages des outils de création de rapports tient au fait qu'ils encapsulent toutes les opérations complexes liées à la structure, à la conception et au rendu des rapports dans un outil GUI très simple. De la même manière, les contrôles .NET encapsulent des opérations complexes d'affichage et de remplissage de données dans un objet GUI simple dans un Web Form ou un Windows Form.
L'utilisation de contrôles .NET permet de regrouper les opérations complexes d'affichage et de création de rapports. Toutes les informations complexes liées aux rapports, qui étaient auparavant encapsulées uniquement dans l'application SAP Crystal Reports autonome, sont désormais encapsulées dans un contrôle .NET comme visualiseur de rapports.
Combien y a t'il de contrôles visualiseur de rapports ?
SAP Crystal Reports, version développeur pour Microsoft Visual Studio contient deux versions du contrôle
CrystalReportViewer : une pour les applications Web et l'autre pour les applications Windows. Le contrôle
CrystalReportViewer, situé dans l'espace de noms CrystalDecisions.Web, est utilisé par les projets Web ASP.NET.
Le contrôle CrystalReportViewer, situé dans l'espace de noms CrystalDecisions.Windows.Forms, est utilisé par les projets Windows.
Le contrôle CrystalReportPartsViewer permet d'afficher seulement quelques parties des rapports dans une page
Web.
Affichage d'un rapport à l'aide du contrôle CrystalReportViewer
Le contrôle CrystalReportViewer n'affiche qu'un rapport à la fois. Le rapport affiché par le contrôle dépend du rapport que vous avez lié à votre code. Pour indiquer au contrôle le rapport qu'il doit afficher, vous devez lier sa propriété ReportSource à un rapport particulier. Au moment de l'exécution, le contrôle charge le rapport lié à sa propriété ReportSource et l'affiche.
Dans sa forme la plus simple, l'affectation se présente de la manière suivante : crystalReportViewer1.ReportSource = "C:\WorldSalesReport.rpt" crystalReportViewer1.ReportSource = "C:\\WorldSalesReport.rpt";
Dans cet exemple, le rapport est lié au contrôle directement à partir de son chemin d'accès au répertoire de fichiers.
Il s'agit de la manière la plus élémentaire de lier un rapport au contrôle CrystalReportViewer.
44
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Est-ce le cas du contrôle CrystalReportViewer ?
Non. Le contrôle CrystalReportViewer se lie à un objet de rapport et non à un objet de données.
En fait, le rôle du contrôle CrystalReportViewer est différent de celui des autres contrôles .NET. Les autres contrôles .NET se lient aux données et mettent en forme les données brutes sur la page. Dans la mesure où le composant SAP Crystal Reports Designer incorporé effectue cette opération automatiquement chaque fois qu'il crée un rapport (qui, par définition, encapsule l'extraction et l'affichage des données), le contrôle
CrystalReportViewer n'intervient que dans l'affichage d'un objet de rapport.
Le tableau suivant effectue une comparaison entre la liaison à un contrôle de données .NET par rapport à la liaison
à un contrôle CrystalReportViewer.
Table 2 :
Type de contrôle
Contrôle de données .NET (tel que le contrôle DataGrid)
Contrôle visualiseur de rapports .NET
(tel que le contrôle CrystalReportVie wer)
Se lie à un objet de données (DataSet, DataRea der, DataView, IDictionary, ICollection,
DataTable).
un objet de rapport (qui encapsule un fi chier de rapport Crystal).
Connectivité à la couche suivante
Aucun
La connectivité entre données est inté grée au fichier de rapport Crystal, ce qui permet une connexion à diverses sour ces de données, telles que ODBC et
OleDb, ainsi qu'aux objets DataReader et
DataSet.
Pour vous aider à vous souvenir qu'un contrôle CrystalReportViewer se lie à un objet de rapport et non à un objet de données, la propriété source du contrôle visualiseur de rapports s'appelle ReportSource (et non DataSource).
Liaison de rapports automatique
Le contrôle CrystalReportViewer se distingue également de la plupart des autres contrôles .NET en ce sens qu'il est inutile d'appeler manuellement une méthode de liaison pour effectuer une liaison. Ce contrôle lie en effet automatiquement le visualiseur de rapports à l'objet de rapport.
Informations associées
Visualisation d'un rapport [page 161]
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
45
1.3.2.1.1 Pour ajouter un contrôle CrystalReportViewer à une application Windows
Procédure
1. Ouvrez un Windows Form dans l'onglet Conception.
2. Dans la
Boîte à outils
, ouvrez le nœud
Reporting
afin de localiser le contrôle
CrystalReportViewer
.
Remarque
Dans les versions précédentes de Visual Studio, le contrôle CrystalReportViewer apparaissait dans le nœud Crystal Reports.
3. Faites glisser le contrôle
CrystalReportViewer
sur le formulaire.
4. Dans le menu
Fichier
, cliquez sur
Enregistrer tout
.
Résultats
Si vous ajoutez un contrôle CrystalReportViewer à votre application, les références aux assemblies
SAP Crystal Reports seront automatiquement ajoutées à votre rapport.
1.3.2.1.2 Pour ajouter un contrôle CrystalReportViewer à un site Web
Procédure
1. Ouvrez la page Default.aspx.
2. Cliquez sur le bouton
Design
au bas du formulaire.
3. Dans la
Boîte à outils
, ouvrez le nœud
Reporting
afin de localiser le contrôle
CrystalReportViewer
.
Remarque
Dans les versions précédentes de SAP Crystal Reports, version développeur pour Microsoft Visual Studio, le contrôle CrystalReportViewer apparaissait dans le nœud Crystal Reports.
4. Faites glisser le contrôle
CrystalReportViewer
sur le Web Form.
5. Dans le menu
Fichier
, cliquez sur
Enregistrer tout
.
46
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Résultats
Si vous ajoutez un contrôle CrystalReportViewer à votre application, les références aux assemblies
SAP Crystal Reports seront automatiquement ajoutées à votre rapport.
1.3.2.1.3 Liaison du contrôle CrystalReportViewer à un fichier sur disque
Contexte
La manière la plus simple de lier un contrôle CrystalReportViewer à un rapport Crystal est de définir la propriété
ReportSource sur un emplacement du disque. Ce rapport non incorporé est affiché lors de l'exécution de l'application.
Cette opération lie le rapport directement au contrôle. Toutes les interactions par programmation avec le rapport doivent être effectuées dans le modèle d'objet limité CrystalReportViewer.
Procédure
1. Ajoutez un contrôle CrystalReportViewer à l'application Windows ou au site Web.
2. Ouvrez le Web Form ou Windows Form.
3. Dans le menu
Affichage
, cliquez sur
Code
.
4. Définissez la propriété ReportSource sur l'emplacement du rapport sur votre système de fichiers local.
○ Lors de l'utilisation d'une application Windows Form ou d'un site Web : myCrystalReportViewer.ReportSource = "C:\MyReport.rpt" crystalReportViewer.ReportSource = "C:\\MyReport.rpt";
○ Lors de l'utilisation d'une application WPF : myCrystalReportViewer.ViewerCore.ReportSource = "C:\MyReport.rpt" crystalReportViewer.ViewerCore.ReportSource = "C:\\MyReport.rpt";
1.3.2.2 Panneau Tâches guidées
Dans Visual Studio 2005 ou versions ultérieures, lorsque vous ajoutez un contrôle .NET à un Web Form ou un
Windows Form, le panneau des tâches guidées s'affiche. Il s'agit d'un petit panneau fixé dans l'angle supérieur droit du contrôle .NET. Il contient des cases à cocher et des listes déroulantes qui permettent aux développeurs
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
47
de sélectionner des options de connectivité et d'autres types d'option pour le contrôle. Cette fonctionnalité réduit considérablement le temps consacré par le développeur à l'écriture du code.
Dans un site Web, les sélections effectuées dans le panneau des tâches guidées génèrent automatiquement du code XML dans la page ASPX.
Dans un projet Windows, les sélections effectuées dans le panneau des tâches guidées génèrent automatiquement du code dans un fichier de classe masqué. Ce fichier de classe masqué est une classe
"partielle" qui sert d'addenda à la classe Windows Form existante. Les classes partielles sont une nouvelle fonctionnalité de .NET Framework version 2.0.
Le panneau Tâches guidées permet de lier rapidement et facilement le contrôle CrystalReportViewer au contrôle
CrystalReportSource. Lorsque vous ajoutez le contrôle CrystalReportViewer à la page, le panneau des tâches guidées s'affiche automatiquement en indiquant une série d'étapes permettant de créer et de configurer le contrôle CrystalReportSource.
Le contrôle CrystalReportViewer fait très fréquemment appel au panneau des tâches guidées. Les sélections accessibles dans ce panneau diffèrent selon que vous travaillez sur un projet Web ou sur un projet Windows.
Limites des tâches guidées avec le modèle de programmation allégée
Les tâches guidées facilitent l'utilisation d'un modèle de programmation allégée qui génère le code automatiquement plutôt que d'avoir à l'écrire manuellement.
L'auto-génération du code permet, au premier abord, de gagner du temps mais il est ensuite difficile de passer d'un mode de codage allégé à un mode classique lorsque vous voulez rendre un projet plus puissant ou flexible.
1.3.2.2.1 Panneau des tâches guidées CrystalReportViewer pour projets Windows
Le panneau des tâches guidées CrystalReportViewer pour projets Windows permet de créer, de sélectionner ou de modifier un rapport Crystal. Il offre également la possibilité de personnaliser le contrôle
CrystalReportViewer.
Le panneau des tâches guidées pour projets Windows comporte les fonctionnalités suivantes :
Créer un rapport Crystal...
Cette commande de menu permet de créer un rapport à l'aide du composant SAP Crystal Reports Designer incorporé.
Une fois l'opération terminée, le code du rapport est généré automatiquement de manière à lier ce dernier au contrôle CrystalReportViewer pour un affichage immédiat.
48
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Modifier le rapport Crystal actuel
Cette commande de menu permet de modifier plus en détail le rapport qui a été sélectionné ou créé pour la source de rapport.
Choisir un rapport Crystal
Cette commande de menu vous permet de sélectionner un rapport Crystal ou un objet ReportDocument en tant que source de rapport du contrôle CrystalReportViewer.
Une fois l'opération terminée, le code du rapport est généré automatiquement de manière à lier ce dernier au contrôle CrystalReportViewer pour un affichage immédiat.
Effacer la source du rapport
Cette commande de menu efface la propriété ReportSource du contrôle CrystalReportViewer.
Choisissez une vue du volet des outils :
Cette commande de menu permet de sélectionner le volet des outils à afficher par défaut lors du chargement du rapport. Vous pouvez sélectionner l'arborescence des groupes ou le panneau des paramètres ou encore choisir de laisser vide le volet des outils.
Afficher la barre d'outils
Cette case à cocher permet d'afficher ou de masquer la barre d'outils du contrôle CrystalReportViewer.
Afficher la barre d'état
Cette case à cocher permet d'afficher ou de masquer la barre d'état dans le contrôle CrystalReportViewer.
Annuler l'ancrage dans le conteneur parent
Cette commande de menu permet de définir la propriété Dock sur "None" ou sur "Fill". Par défaut, lorsqu'un contrôle CrystalReportViewer est placé dans un Windows Form, la propriété Dock est définie sur "Fill". Si cette
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
49
commande de menu est sélectionnée et si la propriété Dock est définie sur "None", le contrôle
CrystalReportViewer peut être déplacé et redimensionné dans le Windows Form ou dans d'autres conteneurs
(contrôle Panel dans un Windows Form par exemple).
1.3.2.2.2 Panneau des tâches guidées CrystalReportViewer pour sites Web
Le panneau des tâches guidées CrystalReportViewer pour sites Web permet de créer, de sélectionner ou de modifier un rapport Crystal. Il offre également la possibilité de personnaliser le contrôle CrystalReportViewer et d'activer la consignation des erreurs liées aux connexions à la base de données et aux valeurs de paramètre.
Le panneau des tâches guidées pour sites Web comporte les fonctionnalités suivantes :
Sélection de la source du rapport
Cette liste déroulante permet de sélectionner n'importe quelle source de rapport existante ou d'en créer une nouvelle.
Une fois l'opération terminée, le code du rapport est généré automatiquement de manière à lier ce dernier au contrôle CrystalReportViewer pour un affichage immédiat.
Configurer la source de rapport...
Cette commande de menu permet de configurer plus en détail la source de rapport qui a été sélectionnée ou créée.
Modifier le rapport...
Cette commande de menu permet de modifier plus en détail le rapport qui a été sélectionné ou créé pour la source de rapport.
Choisissez une vue du volet des outils :
Cette commande de menu permet de sélectionner le volet des outils à afficher par défaut lors du chargement du rapport. Vous pouvez sélectionner l'arborescence des groupes ou le panneau des paramètres ou encore choisir de laisser vide le volet des outils.
50
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Activer la barre d'outils
Cette case à cocher permet d'afficher ou de masquer la barre d'outils du contrôle CrystalReportViewer.
Activer la vue de rapport
Cette case à cocher permet d'afficher ou de masquer la vue de rapport dans le contrôle CrystalReportViewer.
Remarque
Vous pouvez désactiver la vue de rapport si vous souhaitez utiliser l'arborescence des groupes seule dans un
Web Form.
Activer l'invite de connexion à la base de données
Cette case à cocher permet d'activer ou de désactiver la consignation des erreurs liées aux connexions à la base de données. Lorsqu'un rapport ne fournit pas toutes les informations nécessaires à sa connexion à une base de données SQL Server, le message d'erreur "Echec de la connexion" est renvoyé. Toutefois, si la case à cocher est activée, une fenêtre vous invitant à saisir les informations de connexion requises s'affiche.
Activer l'invite de saisie de paramètre
Cette case à cocher permet d'activer ou de désactiver la consignation des erreurs liées aux valeurs de paramètre.
Lorsqu'un rapport ne fournit pas toutes les informations nécessaires pour désigner un paramètre utilisé dans des critères de sélection, le message d'erreur "Valeurs de paramètres manquantes" est renvoyé. Toutefois, si la case
à cocher est activée, une fenêtre vous invitant à saisir les informations requises sur le paramètre s'affiche.
Réutiliser la valeur des paramètres lors de l'actualisation du rapport
Cette case à cocher permet d'activer ou de désactiver la persistance des paramètres lors de l'actualisation des rapports. Lorsque cette case à cocher est activée, les valeurs de paramètre transmises à un rapport lors de son premier chargement son rendues persistantes. En revanche lorsqu'elle est désactivée, vous devez écrire du code pour que les valeurs de paramètre soient transmises au rapport lors de chaque actualisation ultérieure.
Informations associées
Panneau des tâches guidées CrystalReportViewer pour projets Windows [page 48]
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
51
1.3.2.3 Contrôle CrystalReportPartsViewer
Dans le .NET Framework, le contrôle CrystalReportPartsViewer permet de lier et d'afficher un rapport
Crystal sous la forme d'une série de parties liées. Ceci réduit considérablement la zone requise pour afficher les informations du rapport et est idéal pour afficher de petites quantités d'informations sur une page Web du portail.
Remarque
Les parties de rapport sont utilisées uniquement dans les sites Web ; elles ne sont pas disponibles pour les projets Windows.
Le contrôle CrystalReportPartsViewer a été amélioré pour prendre en charge la structure des composants
WebPart, une infrastructure de portail introduite avec la version 2.0 d'ASP.NET.
La structure des composants WebPart permet aux développeurs d'encapsuler des contrôles de la page au sein de composants WebPart configurables.
Informations associées
Tutoriel : Affichage de parties de rapport à l'aide du contrôle CrystalReportPartsViewer [page 480]
1.3.2.4 Contrôle CrystalReportSource
Le contrôle CrystalReportSource est un élément du modèle de développement d'applications avec balises fourni avec ASP.NET version 2.0.
Remarque
Le contrôle CrystalReportSource n'est disponible que pour les sites Web.
Dans la structure de contrôle DataSource, les contrôles .NET visuels se connectent aux contrôles DataSource non visuels (contrôles qui ne gèrent pas les informations d'affichage). Cette nouvelle structure DataSource encapsule les informations de connectivité des données écrites sous forme de lignes de code dans les contrôles .NET insérés dans le Web Form.
Dans la fenêtre Design, Visual Studio affiche le nom des contrôles connectés les uns aux autres.
Les fournisseurs de données .NET possèdent leur propre implémentation du contrôle DataSource. Par exemple, le contrôle SqlDataSource accède à Microsoft SQL Server, tandis que le contrôle OracleDataSource accède à
Oracle.
En ce qui concerne SAP Crystal Reports, le contrôle est implémenté en tant que contrôle CrystalReportSource.
Cette conception s'inspire de la conception d'ASP.NET version 1.0 dans laquelle le contrôle CrystalReportViewer contient une propriété ReportSource au lieu d'une propriété DataSource plus classique.
La différence entre le contrôle CrystalReportSource et le contrôle DataSource réside dans le fait que le premier contient un rapport qui encapsule les données, tandis que le second (tel que SqlDataSource) contient les données elles-mêmes.
52
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.3.3 Quelle méthode de persistance utiliser avec
SAP Crystal Reports ?
Lorsque vous envisagez de générer une application Web à l'aide du SDK de SAP Crystal Reports, l'un des points les plus importants à prendre en considération concerne la méthode de persistance que vous allez utiliser.
Qu'est ce que la persistance ?
Les pages Web ne conservent ni le statut ni les informations d'identification d'un utilisateur lorsqu'il se connecte à un site Web. Chaque page Web est demandée à partir d'un serveur, envoyée à l'utilisateur et le processus s'arrête là. Cela fonctionne tant qu'il est question de lire des données texte, mais devient problématique lorsqu'il s'agit de concevoir une application Web qui doit conserver les informations sur un utilisateur au fur et à mesure que les pages sont rechargées et redirigées.
La persistance fait référence à l'utilisation d'un mécanisme qui conserve le statut de chaque utilisateur (tel que la page de rapport actuelle visualisée par chaque utilisateur) indépendamment du fait que les pages sont rechargées et redirigées.
Conventions relatives à la persistance
Cette section décrit les conventions utilisées pour rendre persistantes des modifications apportées à un rapport
Crystal dans une page Web tandis que ce rapport est actualisé au cours du rechargement de la page Web. Ces changements peuvent aller du plus simple, comme accéder à la page suivante après que l'utilisateur a cliqué sur le bouton Page suivante du visualiseur de rapports, au plus complexe, comme afficher des données complètement différentes après modification des paramètres d'un rapport.
La persistance doit s'appliquer à ce qui suit :
● Le contrôle CrystalReportViewer.
● le rapport lié au contrôle CrystalReportViewer.
Comment assurer la persistance du statut dans les applications ASP et
ASP.NET
Dans les applications ASP et ASP.NET classiques, la persistance du statut est assurée soit par le navigateur Web, soit par le serveur Web comme indiqué dans le tableau suivant.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
53
Table 3 :
Environnement
ASP*
ASP*
ASP*
ASP*
ASP*
ASP.NET
ASP.NET
Client ou serveur ?
Navigateur client
Navigateur client
Navigateur client
Serveur Web
Serveur Web
Navigateur client
Serveur Web
Nom
Champs de formulaire
Arguments URL
Cookie
Objet Session
Objet Application
Objet ViewState
Objet Cache
* Toutes les méthodes de persistance ASP continuent à fonctionner dans ASP.NET.
Méthode
Transmet des paires nom/ valeur au fil des pages Web par le biais de champs de sou mission de formulaire.
Transmet des paires nom/ valeur au fil des pages Web par le biais d'arguments URL.
Affecte des paires nom/ valeur à un cookie sur le navi gateur client, puis extrait le cookie dans une nouvelle page.
Affecte des objets instanciés
à l'objet Session sur le ser veur, puis extrait le contenu de cet objet Session dans une nouvelle page.
Affecte des objets instanciés
à l'objet Application sur le ser veur, puis extrait le contenu de cet objet Application dans une nouvelle page.
Affecte des valeurs de chaîne
à l'objet ViewState du Web
Form ASP.NET.
Identique à l'objet Application, mais avec des fonctionnalités avancées.
Quelles sont les méthodes de persistance les mieux adaptées à
SAP Crystal Reports ?
Les méthodes de persistance les mieux adaptées à SAP Crystal Reports sont ViewState, Session et Cache.
Informations associées
ViewState et persistance du modèle d'objet CrystalReportViewer [page 55]
54
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.3.3.1 ViewState et persistance du modèle d'objet
CrystalReportViewer
Définition de ViewState
ViewState est une méthode basée sur le navigateur utilisée dans ASP.NET pour rendre persistant le statut de visualisation, c'est-à-dire le Web Form. Sa fonction principale consiste à assurer la persistance des contrôles Web.
Les contrôles Web (également appelés contrôles serveur Web) sont calqués sur les contrôles Windows introduits dans Visual Basic. Les contrôles Windows sont des objets contenus dans le formulaire qui encapsulent une partie de fonctionnalité d'affichage telle qu'un champ de texte, un bouton ou une table de données.
Les contrôles Web sont semblables aux contrôles Windows. Tout comme les contrôles Windows, ils agissent sur deux niveaux : dans la page Web et dans la classe code-behind qui prend en charge cette page Web. Tout comme les contrôles classiques des Windows Forms, les contrôles Web encapsulent des parties discrètes de fonctionnalités d'affichage dans des objets GUI : Button, TextField, DropDownList, DataGrid, etc. Dans la classe code-behind, ces mêmes contrôles sont semblables aux classes qui exposent les propriétés et les méthodes.
Une page Web se distingue d'un Windows Form par le fait qu'il s'agit d'un environnement sans statut. Il est donc nécessaire de recourir à un mécanisme de persistance afin de préserver le statut de la page Web au fil de ses rechargements successifs.
ViewState conserve le statut des contrôles d'une page Web de la même manière que Session pour les objets instanciés sur le serveur.
Remarque
ViewState conserve automatiquement le statut de tous les contrôles Web. Pour cela, ViewState doit stocker chaque contrôle basé sur la propriété EnableViewState du contrôle (auquel la valeur True a été attribuée par défaut).
Etant donné que ViewState stocke le statut des données à partir des contrôles Web de la page, l'objet ViewState doit être inclus intégralement dans la page lorsque cette dernière est transférée du navigateur vers le serveur
Web et vice-versa. Cela s'obtient en cryptant l'intégralité de l'objet ViewState sous forme de chaîne, puis en plaçant cette chaîne dans la valeur d'une balise de formulaire masquée dans la page. Par exemple, le code HTML de l'objet ViewState pour une page Web ASP.NET contenant uniquement un contrôle Button se présente sous la forme suivante :
<input type="hidden" name="__VIEWSTATE" value="dDwtNTMwNzcxMzI0Ozs+I7GfLyg3p44eTLFCiVEiRKUBzFw=" />
ViewState ne stocke que les informations qui peuvent être converties au format chaîne.
Persistance de l'affichage de rapports du contrôle CrystalReportViewer
Le rôle du contrôle CrystalReportViewer consiste à afficher les rapports Crystal. Il convertit les rapports au format
HTML dans une page qui comporte une barre d'outils et une arborescence permettant de manipuler l'affichage des rapports. La barre d'outils contient des boutons qui permettent d'effectuer des zooms, d'accéder à la page
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
55
suivante, d'imprimer, d'exporter, etc. L'arborescence peut être développée pour afficher des groupes de données imbriqués.
En rendant les informations du contrôle persistantes, ViewState assure par conséquent la persistance du statut de toutes les informations d'affichage des rapports (événements de la barre d'outils et de l'arborescence compris) pour le contrôle CrystalReportViewer au fur et à mesure que les pages sont rechargées.
Supposons par exemple qu'un utilisateur soit en train de consulter la page 3 d'un rapport et qu'il clique sur le bouton Page suivante de la barre d'outils du contrôle CrystalReportViewer, ViewState rendrait persistant le statut des deux éléments d'information suivants :
● le numéro de page actuel ;
● le statut du bouton Page suivante (sur lequel l'utilisateur a cliqué).
Au cours du rechargement de la page, ViewState restaurerait le contrôle CrystalReportViewer à la page 3, puis l'événement de clic sur Page suivante, ce qui entraînerait l'affichage de la page 4 du rapport par le contrôle.
Persistance du modèle d'objet du contrôle CrystalReportViewer
Outre l'affichage des rapports, le contrôle CrystalReportViewer joue un deuxième rôle : celui de modèle d'objet limité (contenu dans la classe du contrôle CrystalReportViewer). Ce modèle d'objet limité peut être utilisé pour interagir par programmation avec les rapports.
ViewState rend persistant le statut de ces deux rôles :
● affichage des rapports
● modèle d'objet CrystalReportViewer
Sachez toutefois que l'utilisation du modèle d'objet CrystalReportViewer est généralement déconseillée au profit du modèle d'objet ReportDocument, plus complet. Cet autre modèle d'objet n'est pas contenu dans le contrôle, mais il fait partie des bibliothèques de classes du SDK.
Partage des mécanismes de persistance
Si vous utilisez le contrôle CrystalReportViewer dans ses deux rôles (affichage des rapports et modèle d'objet),
ViewState les rend tous deux persistants et vous n'avez pas à recourir à un autre mécanisme de persistance.
Remarque
Un exemple de ce cas consisterait à lier le contrôle CrystalReportViewer au chemin d'accès d'un répertoire de fichiers. Voir
Liaison au chemin d'accès d'un répertoire de fichiers par code [page 169]
.
Si vous décidez toutefois d'utiliser le contrôle CrystalReportViewer uniquement pour afficher les rapports, puis si vous le liez à un modèle d'objet externe (tel que ReportDocument), vous devrez faire appel à un autre mécanisme de persistance afin de rendre le modèle d'objet externe persistant. En général, cet autre mécanisme de persistance est Session (ou plus occasionnellement Cache).
56
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Informations associées
Quelle méthode de persistance utiliser avec SAP Crystal Reports ? [page 53]
Session et persistance du modèle d'objet ReportDocument [page 57]
Choisir le modèle d'objet correct pour votre projet [page 32]
1.3.3.2 Session et persistance du modèle d'objet
ReportDocument
Définition de Session
Session est une méthode de persistance du statut basée sur un serveur Web et utilisée à la fois dans ASP et
ASP.NET. Session permet de rendre persistant n'importe quel objet durant toute la session d'un utilisateur en stockant cet objet dans la mémoire du serveur Web.
Cette méthode est généralement employée pour effectuer l'une des opérations suivantes :
● Stocker des informations dont le statut doit être rendu persistant durant toute la durée d'une session utilisateur, telles que les informations de connexion ou d'autres données requises pour permettre à l'utilisateur de naviguer dans l'application Web.
● Stocker un objet dont le statut doit être rendu persistant uniquement au cours du rechargement d'une page ou d'un ensemble de pages regroupées pour des raisons fonctionnelles.
L'avantage de la méthode Session tient au fait qu'elle conserve sur le serveur Web les informations de statut de l'utilisateur pour un accès à tout moment et depuis n'importe quelle page. Etant donné que ces informations ne sont pas stockées par le navigateur, n'importe quel navigateur peut être utilisé, même des dispositifs de navigation tels que des assistants personnels ou des téléphones portables.
Limites de cette méthode de persistance
● La quantité de mémoire serveur requise par la méthode Session augmente au fur et à mesure que les utilisateurs se connectent.
● Chaque utilisateur qui accède à l'application Web génère un objet Session distinct. La "durée de vie" de chaque objet Session correspond à la durée de la session de l'utilisateur plus une période d'inactivité.
● Si de nombreux objets sont rendus persistants dans chaque Session et si de nombreux utilisateurs emploient simultanément l'application Web (générant ainsi beaucoup d'objets Session), la quantité de mémoire serveur consacrée à la méthode de persistance Session peut devenir significative et limiter l'évolutivité.
Pour en savoir plus sur les autres méthodes de persistance, voir les sections suivantes :
●
ViewState et persistance du modèle d'objet CrystalReportViewer [page 55]
●
Cache et persistance du modèle d'objet ReportDocument [page 58]
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
57
Persistance du modèle d'objet ReportDocument à l'aide de Session
Si le rapport a été encapsulé dans le modèle d'objet ReportDocument, ce modèle d'objet doit être rendu persistant à l'aide d'une méthode basée sur le serveur, telle que Session ou Cache.
Pour rendre persistant un rapport encapsulé dans le modèle d'objet ReportDocument à l'aide de Session, instanciez ReportDocument, puis affectez-le à Session.
De par sa simplicité, Session est la méthode recommandée lorsque vous apprenez à générer une application Web
ASP.NET à l'aide de SAP Crystal Reports. Elle est également conseillée pour stocker des instances de
ReportDocument qui présentent un faible potentiel de partage.
Limites de la persistance du modèle d'objet ReportDocument à l'aide de
Session
Chaque fois qu'une instance de ReportDocument présente un faible potentiel de partage, utilisez la méthode de persistance Cache à la place de Session.
Différence entre Session et ViewState
La fonction principale de Session consiste à rendre persistant le statut des objets dans la classe code-behind. Le rôle principal de ViewState consiste à assurer la persistance du statut des contrôles d'une page Web. Lorsqu'un contrôle d'une page Web est lié à un objet contenu dans la classe code-behind et que tous deux doivent être rendu persistants d'un rechargement de page à un autre, Session et ViewState "se partagent les rôles".
Dans ce cas, ViewState assure la persistance d'un contrôle CrystalReportViewer, et Session celle d'un objet
ReportDocument lié à ce contrôle.
Informations associées
Tutoriel : Persistance du modèle d'objet ReportDocument à l'aide de Session [page 330]
1.3.3.3 Cache et persistance du modèle d'objet
ReportDocument
Cache est une méthode de persistance du statut basée sur un serveur et utilisée dans ASP.NET. D'un point de vue fonctionnel, Cache est identique à l'objet Application utilisé dans ASP comme dans ASP.NET :
● L'objet Application permet de rendre persistant n'importe quel objet sur toute la portée de l'application.
● L'objet Application n'est pas conçu pour conserver les informations propres aux utilisateurs.
58
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Cache partage ces fonctionnalités avec Application, mais offre une intelligence plus avancée au niveau de la gestion des données provisoires :
● Un objet ajouté au cache peut-être configuré à l'aide de dépendances basées sur des fichiers, des clés ou des délais. Si le fichier ou la clé associé(e) est modifié, ou si un certain délai arrive à expiration, l'objet est automatiquement supprimé du cache, et une version mise à jour est placée dans le cache à la prochaine requête portant sur l'objet.
● Un objet placé dans le cache qui ne possède aucune dépendance et qui est inutilisé arrive automatiquement à expiration.
● Lorsqu'un objet est supprimé du cache, cela déclenche un événement. Vous pouvez écrire du code pour qu'il s'exécute avec cet événement et charge une version mise à jour de l'objet dans le Cache.
Si une autre version d'un objet est ajoutée à l'aide de la chaîne clé d'origine, elle écrase la version précédente.
Pour éviter cette suppression, concaténez l'autre définition au niveau de la chaîne clé afin de rendre chaque version de l'objet unique.
Comme l'objet Application, l'objet Cache stocke des informations accessibles à tous les utilisateurs, mais son avantage sur Application tient au fait qu'il se met jour automatiquement en fonction des modifications apportées
à ses dépendances.
Comportement de l'objet Cache dans .Net 2.0 Framework
Le cache dans .Net 2.0 Framework est plus efficace et sûr, car il est géré par utilisateur et par session.
En d'autres termes, lorsqu'un utilisateur affiche un rapport, une copie du rapport est enregistrée dans le cache et affichée pour cet utilisateur. Si l'utilisateur rouvre le rapport alors que la section en cours est active, l'application affiche le rapport mis en cache. Cela évite de devoir exécuter le rapport à chaque fois qu'un même utilisateur l'affiche. Si un autre utilisateur se connecte et ouvre le même rapport, l'application exécute le rapport une seconde fois, enregistre une seconde copie du rapport dans le cache et l'affiche pour cet utilisateur. Tous les utilisateurs ont leurs propres copies en cache du rapport pour leur session. Cela évite que plusieurs utilisateurs partagent le même rapport.
Limites de cette méthode de persistance
Les développeurs encore peu familiers de la méthode Cache peuvent être tentés de l'utiliser tout le temps pour assurer la persistance, au détriment de la méthode Session. Or la méthode Cache n'est pas interchangeable avec la méthode Session. Tenter d'émuler le caractère unique de Session en concaténant des données propres à l'utilisateur au niveau de la clé du Cache charge le Cache avec des objets utilisateur qui, contrairement à ce qui ce passe avec Session, n'arrivent pas à expiration une fois échu le délai d'attente utilisateur. Par conséquent, la mémoire du serveur Web est plus fortement sollicitée par l'objet Cache que par l'objet Session.
Pour rendre persistantes des données propres à l'utilisateur, utilisez l'objet Session.
Pour en savoir plus sur les autres méthodes de persistance, voir :
●
ViewState et persistance du modèle d'objet CrystalReportViewer [page 55]
●
Session et persistance du modèle d'objet ReportDocument [page 57]
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
59
Persistance du modèle d'objet ReportDocument à l'aide de Cache
Si le rapport a été encapsulé dans le modèle d'objet ReportDocument, ce modèle d'objet doit être rendu persistant à l'aide d'une méthode basée sur le serveur, telle que Session ou Cache.
Un rapport encapsulé dans le modèle d'objet ReportDocument peut être rendu persistant à l'aide de l'objet Cache de l'une des manières suivantes :
● Instanciez le rapport, puis affectez-le à l'objet Cache à l'aide de la même syntaxe que celle utilisée pour affecter un rapport à l'objet Session.
Cette méthode fonctionne uniquement pour un rapport présentant un fort potentiel de partage, pour lequel l'instance de ReportDocument ne se produit qu'une seule fois, en utilisant un ensemble de paramètres et de références de connexion unique. Avec une instance de ReportDocument qui se produit plusieurs fois en raison de modifications apportées à ses paramètres et à ses informations de connexion, le fait de réaffecter le rapport à l'objet Cache en utilisant la même chaîne clé écrase la version précédente de l'instance de
ReportDocument.
● Instanciez une version de la classe de rapport qui implémente l'interface ICachedReport.
Le SDK de SAP Crystal Reports comporte une structure intégrée de mise en mémoire cache des rapports.
Chaque rapport qui implémente l'interface ICachedReport est automatiquement ajouté au cache à l'aide d'une clé unique basée sur les paramètres et références de connexion de l'utilisateur. Cette méthode fonctionne avec n'importe quel rapport qui présente un fort potentiel de partage, mais peut donner quelques variations en raison de modifications mineures apportées aux paramètres et aux références de connexion. En ce qui concerne les rapports qui présentent un faible potentiel de partage (qui sont propres à l'utilisateur), affectez-les à l'objet Session.
Limites de la persistance du modèle d'objet ReportDocument à l'aide de Cache
Cache est la méthode la mieux adaptée pour rendre persistantes des instances de ReportDocument qui présentent un fort potentiel de partage pour les utilisateurs. Si le rapport est spécifique à l'utilisateur, Cache consommera inutilement de la mémoire serveur en créant des instances basées sur l'utilisateur au niveau de l'application qui resteront stockées dans la mémoire du serveur une fois échu le délai d'attente utilisateur. Les rapports spécifiques à l'utilisateur doivent être affectés à l'objet Session.
Remarque
Dans la plupart des cas, utilisez Session pour rendre persistantes les instances de ReportDocument. Utilisez
Cache (ou plus spécifiquement, l'interface ICachedReport) uniquement lorsqu'un rapport présente un fort potentiel de partage et qu'il est très volumineux, ou tellement complexe que l'extraction de ses données prend plusieurs minutes.
Différence entre Cache et ViewState
La fonction principale de Cache consiste à rendre persistant le statut des objets dans la classe code-behind. Le rôle principal de ViewState consiste à assurer la persistance du statut des contrôles d'une page Web. Lorsqu'un contrôle d'une page Web est lié à un objet contenu dans la classe code-behind et que tous deux doivent être rendus persistants au fur et à mesure que la page est rechargée, Cache et ViewState "se partagent les rôles".
60
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Dans ce cas, ViewState assure la persistance d'un contrôle CrystalReportViewer, et Cache celle d'un objet
ReportDocument lié à ce contrôle.
Informations associées
Quelle méthode de persistance utiliser avec SAP Crystal Reports ? [page 53]
1.3.3.3.1 Pour rendre persistant un rapport incorporé qui implémente ICachedReport
Procédure
1. Ajoutez le rapport au projet.
Une classe de rapport incorporé est alors créée. Est également créée une classe de rapport mis en cache qui charge et renvoie une instance mise en cache de la classe de rapport incorporé.
2. Instanciez la classe de rapport mis en cache.
3. Affectez l'instance de la classe de rapport mis en cache au contrôle CrystalReportViewer.
Informations associées
Liaison à une classe de rapport incorporé et mis en cache [page 200]
1.3.3.3.2 Pour rendre persistant un rapport non incorporé par le biais d'une classe utilitaire qui implémente
ICachedReport
Procédure
1. Créez votre propre classe utilitaire de gestion du cache et configurez-la de sorte qu'elle implémente
ICachedReport.
2. Dans cette classe utilitaire, chargez le rapport non incorporé à partir d'une chaîne chemin d'accès à l'aide de la méthode ReportDocument.Load().
3. Codez la méthode d'implémentation CreateReport() de manière à ce qu'elle renvoie l'instance
ReportDocument du rapport non incorporé.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
61
4. Instanciez la classe utilitaire de gestion du cache du rapport.
5. Affectez l'instance de cette classe au contrôle CrystalReportViewer.
Informations associées
Liaison à un rapport non incorporé chargé dans une classe utilitaire de gestion du cache [page 203]
1.3.3.4 Limites de la persistance lors de la liaison de rapports avec le gestionnaire d'événements
Page_Load
Dans les applications Web ASP.NET, il est courant de placer tout le code concernant le lancement d'une page dans le gestionnaire d'événements Page_Load (ce code étant appelé par l'événement Page.Load).
En particulier, le code concernant la liaison des données de contrôle est généralement stocké dans le gestionnaire d'événements Page_Load. Toutefois, le fait de placer le code de liaison dans ce gestionnaire d'événements génère un problème avec ViewState. Ce problème, et la solution généralement adoptée, sont décrits ci-après :
● ViewState est utilisé pour assurer la persistance de deux éléments au fur et à mesure que les pages sont rechargées : les données liées au contrôle et les événements de clic de souris effectués sur ce contrôle.
● ViewState étant une chaîne, les données et les événements de clic de souris doivent être sérialisés.
● Lors du rechargement des pages, les données tout comme les événements de clic sont restaurés à partir de
ViewState.
● L'événement Page.Load s'exécute une fois la restauration de ViewState effectuée. Si le gestionnaire d'événements Page_Load contient du code concernant la liaison du contrôle, ce code écrase le contenu de
ViewState lors du rechargement des pages, entraînant la perte des événements de clic et des données d'origine.
● Ce problème se manifeste en général sous la forme de contrôles ignorant les clics de souris (sélection
DropDownList par exemple) lorsqu'une page est rechargée.
● Pour éviter que les données et les événements de clic ne soient écrasés, tout code de liaison dans le gestionnaire d'événements Page_Load est placé dans un bloc conditionnel Not IsPostBack qui empêche que le code ne soit appelé lors des publications.
Cette solution se fonde toutefois sur le principe capital selon lequel les données comme les événements de clic de souris peuvent être sérialisés dans ViewState. Or, le contrôle CrystalReportViewer se lie à des objets qui ne peuvent pas être sérialisés (tout particulièrement les classes ReportDocument, ReportClientDocument ou
InfoObject).
Remarque
Il existe toutefois une exception : lorsque le contrôle CrystalReportViewer est lié à un rapport par le biais de son chemin d'accès au répertoire de fichiers, la chaîne du chemin d'accès peut être rendue persistante dans
ViewState. Dans ce scénario, uniquement le contrôle CrystalReportViewer pourrait être placé dans un bloc conditionnel Not IsPostBack. Ce scénario de liaison de rapports est toutefois moins puissant et moins utilisé que les scénarios de liaison aux classes de rapports mentionnés ci-dessus.
62
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Dans la mesure où seuls les événements de clic de souris du contrôle CrystalReportViewer peuvent être sérialisés dans ViewState, la liaison à une classe de rapport qui ne peut être sérialisée engendre un problème insoluble lors du rechargement des pages :
● Si le code de liaison du rapport est placé dans un bloc conditionnel Not IsPostBack, les événements de clic de souris provenant de ViewState sont conservés, mais la liaison du rapport n'a pas lieu, et une exception est alors renvoyée.
● Si le code de liaison du rapport est placé hors du bloc conditionnel, le rapport est lié correctement, mais le contenu de ViewState est écrasé lors du processus, et les événements de clic de souris sont alors perdus.
Remarque
Cette situation se produit le plus souvent lorsque des clics sont effectués dans un rapport à plusieurs pages au niveau du contrôle CrystalReportViewer. Le rapport ne cesse alors de revenir mystérieusement en page 1.
Solution recommandée : placer le code de liaison du contrôle
CrystalReportViewer dans l'événement Init
La solution concernant le contrôle CrystalReportViewer consiste à placer le code de liaison de votre rapport dans l'événement Init qui s'exécute avant que ViewState ne soit restauré.
Cette solution engendre toutefois une complication. Dans la mesure où l'événement Init est codé moins souvent que l'événement Load, il est plus difficile d'accès. Dans les projets Web ou Windows pour Visual Studio .NET 2003, le code qui gère l'événement Init se trouve dans la zone Code généré par le Concepteur Web Form, zone généralement masquée et réservée au code généré.
Pour contourner le problème, procédez comme suit :
● Extrayez tout le code de configuration et de liaison du contrôle CrystalReportViewer dans une méthode d'assistance privée dénommée ConfigureCrystalReports().
● Dans la zone Code généré par le Concepteur Web Form, placez une seule ligne de code dans le gestionnaire d'événements Page_Init() ou dans la méthode de déclenchement d'événement OnInit() : un appel à la méthode d'assistance ConfigureCrystalReports().
Les instructions concernant la création de la méthode d'assistance ConfigureCrystalReports() et son
remplissage sont indiquées dans la section Configuration d'un projet [page 15]
.
Informations associées
Tutoriel : Persistance du modèle d'objet ReportDocument à l'aide de Session [page 330]
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
63
1.3.4 Evolutivité de l'application
Lorsque vous planifiez la création d'une application à l'aide du SDK de SAP Crystal Reports, l'un des points les plus importants à déterminer concerne la manière d'optimiser l'évolutivité de cette application. Vous pouvez faire
évoluer votre application de deux façons :
● Optimiser les performances de votre application.
● Optimiser les performances de votre rapport.
La mise en application de ces conventions est décrite dans les sections ci-après.
Evolutivité du code d'application
Avec le SDK de SAP Crystal Reports .Net, l'évolutivité peut être accrue en appliquant les meilleures pratiques d'amélioration des performances suivantes :
● Limiter l'utilisation des DataSets.
● Tirer parti de la mise en cache des rapports.
● Libérer le rapport de la mémoire après utilisation.
● Partager le traitement entre les serveurs.
Evolutivité de l'application en réduisant la complexité du rapport
Lorsque vous concevez vos rapports et en particulier lorsque vous concevez des rapports pour le Web, vous devez tenir compte de leur évolutivité. Les meilleures pratiques suivantes permettent d'optimiser l'évolutivité d'un rapport.
● Réduire si possible la taille et la complexité des rapports.
● Transférer la sélection d'enregistrements vers le serveur de base de données.
● Utiliser des sous-rapports à la demande.
1.3.4.1 Options de mise à niveau
1.3.4.1.1 Solutions de reporting de SAP BusinessObjects
Business Intelligence
La ligne de produits SAP BusinessObjects Business Intelligence contient plusieurs solutions de reporting. La gamme des produits et les différentes licences de déploiement qui les accompagnent sont conçues pour répondre à tous les besoins inhérents à une solution de création de rapports en terme d'évolutivité .
Cette page offre un aperçu de chacune de ces solutions de reporting. Vous trouverez des informations complémentaires sur le site Web de SAP BusinessObjects.
64
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
SAP Crystal Reports, version développeur pour Microsoft Visual Studio
SAP Crystal Reports, version développeur pour Microsoft Visual Studio permet aux développeurs de créer et d'intégrer rapidement et efficacement des rapports soigneusement présentés dans des applications, tout en restant dans l'environnement de développement familier de Visual Studio.
SAP Crystal Reports, version développeur pour Microsoft Visual Studio contient la plupart des fonctionnalités présentes dans SAP Crystal Reports. Celles-ci permettent notamment de créer des rapports, de les connecter à un contrôle CrystalReportViewer et d'interagir avec eux par programme à l'aide du SDK de SAP Crystal Reports.
SAP Crystal Server ou plateforme SAP BusinessObjects Business Intelligence
Le serveur RAS inclus dans SAP Crystal Reports Server et dans la plateforme SAP BusinessObjects Business
Intelligence améliore considérablement les performances et l'évolutivité en termes de création, de manipulation et de gestion des rapports.
SAP Crystal Reports Server est un logiciel peu coûteux qui offre tout ce dont vous avez besoin pour créer, gérer et déployer en toute sécurité des rapports sur le Web. Il prend en charge toutes les étapes du processus de reporting, de l'accès aux données à la conception, la gestion et la distribution des rapports, en passant par l'intégration des rapports via des portails et des applications, facilitant ainsi le partage sur le Web de rapports
Crystal nouveaux ou existants.
La plateforme SAP BusinessObjects Business Intelligence est une plateforme multiserveur de Business
Intelligence (BI) conçue pour prendre en charge le reporting à grande échelle et les exigences en matière de BI.
Son environnement multiserveur offre le système de tolérance des pannes, l'équilibrage de la charge, l'évolutivité et la fiabilité nécessaires pour mener à bien des projets plus stratégiques et de plus grande envergure. La plateforme SAP BusinessObjects Business Intelligence est également recommandée pour ses fonctionnalités de reporting avancées telles que l'auditing, l'Explorateur SAP Crystal Reports, le composant Encyclopedia pour logiciels BusinessObjects Enterprise Premium et Process Tracker.
Pour créer, gérer et déployer en toute sécurité des rapports dans un environnement de petite ou moyenne envergure, utilisez SAP Crystal Reports Server. Pour des applications stratégiques, des outils de Business
Intelligence supplémentaires et un maximum d'évolutivité, utilisez la plateforme SAP BusinessObjects Business
Intelligence.
1.3.4.1.2 Comparaison des solutions de reporting de SAP
BusinessObjects Business Intelligence
Cette table contient des informations qui vous aideront à choisir la solution de reporting SAP BusinessObjects
Business Intelligence adaptée à vos besoins en termes d'évolutivité.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
65
Table 4 :
Fonction
Prise en charge ASP.NET
Visualisation interactive des rapports
Connexion unique
Prise en charge des applica tions Windows
Report Designer amélioré
Prise en charge de périphéri ques mobiles
Pilotes de base de données natifs
Sources de données OLAP
Vérification des dépendances des rapports
X
X
X
X
Modèles
Paramètres de mise en cas cade dynamiques
Déploiement multi-plate forme
Système de gestion de la dis tribution des informations
Sécurité intégrée
Equilibrage de la charge
Référentiel d'objets rapport
Planification des rapports
Création et modification des rapports par programmation
Modèle d'objet CrystalReport
Viewer
X
Modèle d'objet ReportDocu ment
X
Modèle d'objet ReportClient
Document
Serveur RAS
Modèle d'objet InfoObject
Evolutivité Faible
SAP Crystal Reports, version développeur pour Microsoft
Visual Studio
SAP Crystal Reports
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
Faible
X
X
X
X
X
X
X
X
X
X
SAP Crystal Reports Server ou plateforme SAP Busines sObjects Business Intelli gence
X
X
X
X
X
X
X
X
X
X
X
X
X
Moyenne à élevée
66
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Fonction
Prise en charge de plusieurs versions de .Net Framework
SAP Crystal Reports, version développeur pour Microsoft
Visual Studio
SAP Crystal Reports
X
SAP Crystal Reports Server ou plateforme SAP Busines sObjects Business Intelli gence
X
Informations associées
Comparaison des architectures dans les solutions de reporting SAP Business Intelligence [page 41]
1.3.4.1.3 Report Application Server (RAS)
Le serveur RAS peut être utilisé pour créer et modifier des rapports Crystal, ainsi que pour traiter des requêtes liées aux pages.
Report Application Server (RAS) est l'une des technologies de SAP BusinessObjects. Il s'agit à la fois d'un SDK client et d'un serveur. Le serveur RAS peut être utilisé pour créer et modifier des rapports Crystal, ainsi que pour traiter des requêtes liées aux pages. Lorsqu'un processus serveur extrait un rapport demandé, le RAS le transmet au visualiseur de rapports.
Le serveur RAS n'est disponible qu'en tant que composant de SAP Crystal Reports Server ou de la plateforme
SAP BusinessObjects Business Intelligence.
Serveur RAS géré
On appelle serveur RAS géré un serveur RAS dont le fonctionnement est contrôlé par d'autres composants de la structure Enterprise. SAP Crystal Reports Server et SAP BusinessObjects Enterprise offrent un environnement de serveurs qui facilite la gestion et la distribution de rapports sur le Web à l'échelle de l'entreprise. Le serveur RAS géré est l'un des nombreux serveurs de cet environnement. Il peut traiter des rapports situés sur le même ordinateur que le serveur Web et le SDK du RAS (rapports non gérés) ou sur un serveur de référentiel de rapports distinct (rapports gérés).
Le serveur RAS géré peut utiliser les modèles d'objet ReportClientDocument et InfoObject.
Utilisation de l'API RAS sans serveur RAS
Dans SAP Crystal Reports, vous pouvez accéder à la fonctionnalité avancée de création et de modification de rapport de l'objet de modèle ReportClientDocument à partir du SDK CR .NET. Le module de déploiement de ce scénario exige uniquement les assemblys .NET, ce qui signifie que vous utilisez l'API RAS contenue dans les processus.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
67
Cependant, si vous utilisez l'API RAS contenue dans les processus, vous perdez les avantages de performance et de stabilité offerts par un système hors processus, orienté serveur. Pour bénéficier de ces avantages, utilisez l'API
RAS conjointement avec un serveur RAS dans un environnement SAP Crystal Reports Server ou de plateforme
SAP BusinessObjects Business Intelligence.
Pour en savoir plus et consulter un exemple de code, voir la propriété ReportClientDocument de la classe
CrystalDecisions.CrystalReports.Engine.ReportDocument dans le document de référence de l'API.
Informations associées
Comparaison des architectures dans les solutions de reporting SAP Business Intelligence [page 41]
Modèle d'objet ReportClientDocument (RAS) [page 38]
1.3.4.2 Optimisation du code
1.3.4.2.1 Eviter d'utiliser des DataSets pour des requêtes simples
La création de rapports à partir de DataSets offre des avantages, mais ces derniers ne doivent pas nécessairement être utilisés en tant que mécanisme d'accès aux données lorsque l'évolutivité d'une application est en jeu. Si votre application crée un DataSet uniquement pour un rapport, et plus particulièrement si la requête utilisée est une requête simple telle que SELECT field 1, field 2 FROM table, l'emploi d'un DataSet présente peu d'intérêt.
Dans des cas semblables, faire en sorte que SAP Crystal Reports se connecte directement à la base de données et effectue la requête (comme cela se produit par défaut pour tout rapport créé à l'aide du
SAP Crystal Reports Designer) s'avère plus rapide et consomme moins de mémoire.
Les DataSets sont utiles lorsque :
● Les données de plusieurs sources de données doivent être combinées.
● Les données du DataSet doivent être modifiées après l'exécution de la requête.
Informations associées
Tutoriel : Connexion aux DataSets ADO.NET [page 529]
1.3.4.2.2 En cas d'utilisation des DataSets, les mettre en mémoire cache
Les DataSets sont encore plus efficaces en termes d'évolutivité lorsqu'ils sont mis en cache,
68
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Au moment de l'exécution, lorsqu'un rapport est chargé, le moteur de rapport SAP Crystal Reports tente de regrouper les connexions à la base de données. Par exemple, si trois utilisateurs consultent la même page ASPX avec le même rapport, ces trois requêtes sont regroupées dans une seule connexion à la base de données.
Toutefois, la requête elle-même n'est pas regroupée. Même si elle est identique dans les trois cas, la requête doit
être exécutée chaque fois qu'un rapport est demandé par le moteur de rapport. Dans le cas d'une requête lente ou d'un ensemble de données volumineux, ce mode de requête par utilisateur peut constituer un goulot d'étranglement pour l'application.
L'exécution répétée de cette même requête par utilisateur pour remplir un DataSet de manière redondante s'avèrerait encore pire au niveau de la charge de mémoire.
Pour réduire le nombre de requêtes envoyées à la base de données, placez le DataSet dans l'objet Cache ASP.NET après la première requête de sorte que toutes les tâches de rapport partagent ce même DataSet dans le Cache.
Informations associées
Connexion aux DataSets ADO.NET [page 156]
Création de rapports à partir de DataSets ADO.NET [page 644]
1.3.4.2.3 Utiliser la méthode Close() pour libérer le rapport
Utilisez l'une des méthodes Close() disponibles pour libérer la mémoire utilisée par le rapport.
Une autre façon d'optimiser l'évolutivité dans un projet SAP Crystal Reports, version développeur pour Microsoft
Visual Studio consiste à utiliser l'une des méthodes Close() disponibles pour libérer la mémoire utilisée par le rapport.
Deux méthodes Close() sont disponibles :
● ReportDocument.Close() qui est utilisée avec SAP Crystal Reports ;
● ReportClientDocument.Close() qui est utilisée avec le SDK du RAS.
Méthode ReportDocument.Close()
Vous pouvez utiliser la méthode ReportDocument.Close() pour libérer la mémoire consommée par le rapport
Crystal sur le serveur Web.
Le mode d'accès à la méthode ReportDocument.Close() varie selon que le rapport est incorporé ou non incorporé :
● Si le rapport est incorporé, une classe wrapper de rapport est générée pour représenter le rapport dans du code. Cette classe wrapper de rapport hérite de ReportDocument et permet d'accéder à la méthode Close() par héritage.
● Si le rapport est non incorporé, il est chargé depuis le répertoire de fichiers dans une instance de
ReportDocument, ce qui permet d'accéder à la méthode Close() directement à partir de la classe
ReportDocument.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
69
Le rapport Crystal et l'instance ReportDocument consomment tous deux de la mémoire. Une fois que l'instance
ReportDocument est libérée de la mémoire, le rapport continue d'utiliser la mémoire.
Ainsi, l'instance ReportDocument est mise hors de portée lorsque le chargement de la page Web est terminé.
Lorsque le garbage collection .NET supprime l'instance ReportDocument, la mémoire utilisée par celle-ci est libérée sur le serveur Web.
Le rapport demeure quant à lui en mémoire sur le serveur Web. Il ne peut pas être supprimé, car il n'existe plus d'instance ReportDocument pour y accéder. Lorsque ces circonstances se répètent à grande échelle, la mémoire du serveur Web se remplit de rapports auxquels on ne peut plus accéder.
Pour résoudre ce problème, appelez la méthode ReportDocument.Close(). Le rapport est ainsi fermé sur le serveur Web et la mémoire est libérée pour d'autres rapports.
A quel moment appeler la méthode ReportDocument.Close()
La méthode ReportDocument.Close() ne doit pas être appelée sur la page avant que le rapport n'ait été affiché, car même si le rapport a été fermé, ReportDocument le rouvrira s'il est de nouveau référencé. La méthode Close() ne doit être appelée qu'une fois le processus d'affichage terminé.
L'événement Page_Unload représente le moment adéquat pour appeler la méthode Close().
Méthode ReportClientDocument.Close()
Lorsque vous utilisez un serveur RAS géré ou non géré, les rapports sont stockés sur le Report Application Server, mais ils sont représentés sur le serveur Web par une instance de ReportClientDocument. Si l'instance
ReportClientDocument est mise hors de portée sans avoir appelé la méthode ReportClientDocument.Close(), le
Report Application Server conserve le rapport ouvert en mémoire, même lorsque l'on ne peut plus y accéder.
Lorsque ces circonstances se répètent à grande échelle, la mémoire du Report Application Server se remplit de rapports auxquels on ne peut plus accéder sur le serveur Web.
Pour résoudre ce problème, appelez la méthode ReportClientDocument.Close(). Le rapport est fermé sur le
Report Application Server et la mémoire est libérée pour d'autres rapports.
A quel moment appeler la méthode ReportClientDocument.Close()
La méthode Close() ne doit pas être appelée sur la page avant que le rapport n'ait été affiché, car le rapport doit rester ouvert sur le serveur jusqu'à la fin du processus d'affichage.
Pour une instance ReportClientDocument, la méthode Close() ferme immédiatement le rapport, qui ne peut alors plus être rouvert. Par conséquent, si la méthode Close() est appelée avant l'affichage du rapport, celui-ci sera inaccessible et une exception sera renvoyée.
L'événement Page_Unload représente le moment adéquat pour appeler la méthode Close().
70
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Informations associées
Comparaison des rapports incorporés et non incorporés [page 162]
1.3.4.2.4 Configurer une batterie de serveurs Web ou un jardin Web
Une batterie de serveurs Web permet d'étendre un site Web sur plusieurs serveurs. Un jardin Web permet d'étendre un site Web sur plusieurs ordinateurs sur un seul serveur. Etendre la charge du processus de rapport à travers plusieurs CPU ou plusieurs serveurs peut améliorer la performance de votre application Web de reporting.
Informations associées
Utilisation de SAP Crystal Reports dans une batterie de serveurs Web ou un jardin Web [page 74]
1.3.4.3 Optimisation des rapports
1.3.4.3.1 Utiliser des rapports moins volumineux
Une autre façon d'optimiser l'évolutivité dans un projet SAP Crystal Reports, version développeur pour Microsoft
Visual Studio, consiste à réduire la taille des rapports.
Faites en sorte, si possible, que vos rapports contiennent moins de 15 pages. Dans les applications Web, les utilisateurs souhaitent souvent ne consulter que quelques informations importantes et non des pages et des pages de données.
Il se peut que les rapports utilisés dans les applications de bureau ne soient plus adaptés aux applications Web.
Pour réduire la taille des rapports, utilisez des formules de sélection d'enregistrements afin de limiter le nombre d'enregistrements renvoyés dans les rapports. Vous avez pour cela le choix entre trois possibilités :
● Vous pouvez coder en dur une formule de sélection d'enregistrements dans le rapport à l'aide du
SAP Crystal Reports Designer incorporé.
● Vous pouvez filtrer par programmation de manière encore plus précise les enregistrements qui ont été extraits du rapport.
○ Avec le modèle d'objet CrystalReportViewer, utilisez la propriété SelectionFormula ou
ViewTimeSelectionFormula de CrystalReportViewer.
○ Avec le modèle d'objet ReportDocument, utilisez la propriété RecordSelectionFormula de
ReportDocument.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
71
Informations associées
Tutoriel : Filtrage des données à l'aide des formules de sélection [page 282]
1.3.4.3.2 Utiliser des graphiques moins volumineux
Une autre façon d'optimiser l'évolutivité dans un projet SAP Crystal Reports, version développeur pour Microsoft
Visual Studio, consiste à réduire la taille des graphiques utilisés dans les rapports.
Il ne s'agit pas de supprimer les graphiques des rapports lorsque l'évolutivité d'une application est en question, mais vous devez les utiliser avec modération en raison de leur forte consommation de ressources système.
Lorsqu'un rapport contenant un graphique (diagramme ou image) est affiché dans un contrôle
CrystalReportViewer, le moteur de rapport doit créer un fichier JPG temporaire (dans le dossier dynamic_images) et le navigateur doit effectuer une demande distincte auprès du serveur Web pour pouvoir l'extraire.
Le contrôle CrystalReportViewer recherche également de façon régulière des anciennes images dans le dossier dynamic_images afin de les supprimer. Cet accès au disque peut réduire les performances du rapport. Une utilisation limitée des diagrammes et des images réduit l'accès au disque à son minimum.
Informations associées
Configuration du fichier Web.Config [page 20]
Répertoire des visualiseurs [page 14]
1.3.4.3.3 Redéfinir les sous-rapports pour réduire la demande
Le fait de modifier la méthode d'utilisation des sous-rapports dans votre application peut avoir un impact important sur les performances de votre application.
Une autre façon d'optimiser l'évolutivité dans un projet SAP Crystal Reports, version développeur pour Microsoft
Visual Studio, consiste à refactoriser les appels aux sous-rapports afin de réduire la demande.
A propos de l'utilisation des sous-rapports
Si les sous-rapports peuvent être fréquemment utilisés pour créer des rapports complexes, ils représentent une charge considérable. Cela ne veut pas dire pour autant que vous ne devez pas en utiliser. Toutefois, leur utilisation doit être limitée.
Notez également que lorsque des sous-rapports sont placés dans des sections qui se répètent (en-têtes de groupes ou section Détails par exemple), chaque instance de sous-rapport requiert sa propre tâche de rapport.
72
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Cela signifie qu'un rapport contenant 100 enregistrements avec un sous-rapport dans la section Détails implique en réalité l'exécution de 101 tâches de rapport.
Refactorisation des sous-rapports en tant que contrôle DataGrid .NET lié à des rapports
Les sous-rapports sont généralement utilisés dans un modèle résumé/détails :
● Le rapport principal affiche les lignes de résumé.
● Chaque ligne est liée à un sous-rapport qui contient un rapport de détails.
S'il n'est pas nécessaire d'imprimer les données de résumé, présentez-les dans une liste de lignes plutôt que dans un rapport. En d'autres termes, au lieu d'utiliser en tant que résumé un rapport lié à plusieurs sous-rapports pour les détails, utilisez un contrôle DataGrid .NET qui se lie à plusieurs rapports standard pour les détails. L'utilisation du contrôle DataGrid .NET en tant que résumé constitue une solution plus simple et plus évolutive.
Pour cela, liez un jeu de résultats de données à un contrôle DataGrid, avec un lien permettant d'accéder au rapport sur chaque ID de ligne. Un seul rapport est ainsi utilisé pour chaque ligne (avec un paramètre qui accepte un ID unique qui lui a été transmis par l'URL de l'ID de ligne du contrôle DataGrid).
Dans ce scénario, aucun traitement de rapport n'est effectué lorsque le contrôle DataGrid s'affiche. Il intervient uniquement lorsque l'un des liens contenus dans le contrôle DataGrid est sélectionné.
1.3.4.3.4 Ne pas utiliser de champs bloquant le traitement à la demande
Une autre façon d'optimiser l'évolutivité dans un projet SAP Crystal Reports, version développeur pour Microsoft
Visual Studio, consiste à ne pas utiliser de champs qui bloquent le traitement à la demande.
SAP Crystal Reports traite les rapports à la demande. Par exemple, si la première page d'un rapport doit être affichée, Crystal Reports ne traite que cette première page, et non le rapport dans son intégralité. Toutefois, le fait d'insérer dans la première page d'un rapport des champs ou des formules qui impliquent que le rapport soit traité en entier empêche le traitement à la demande.
Si par exemple le champ spécial "Page N/M" est placé dans la première page d'un rapport, ce dernier doit être traité dans son intégralité pour déterminer son nombre total de pages et ainsi assurer le rendu du champ. La première page doit donc attendre que la totalité du rapport ait été traitée avant de pouvoir s'afficher. Il se produit la même chose lorsque vous utilisez un champ pourcentage de résumé pour vos calculs.
Il est donc déconseillé d'utiliser ces types de champ.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
73
1.3.4.3.5 Sélection de l'option Aucune imprimante sous
Configuration de l'impression
La sélection de l'option
Aucune imprimante
sous
Configuration de l'impression
est une autre façon d'optimiser l'évolutivité dans un projet SAP Crystal Reports, version développeur pour Microsoft Visual Studio.
Option Aucune imprimante
Généralement, lorsque vous créez un rapport Crystal, une imprimante par défaut a été sélectionnée sur l'ordinateur de développement. Cette imprimante par défaut détermine la présentation des images, des polices et des champs de base de données du rapport.
La sélection d'une imprimante par défaut a pour avantage d'assurer l'uniformité de l'affichage des rapports : ceuxci s'affichent selon la présentation définie au niveau de l'imprimante par défaut. L'inconvénient est que cela peut poser un problème en termes d'évolutivité.
Par exemple, certains pilotes d'impression présentent des fuites de mémoire ou des fuites de descripteurs de fichiers. Si un rapport est configuré pour un pilote d'impression présentant l'un de ces problèmes, les performances du rapport seront également affectées.
Par conséquent, pour assurer l'évolutivité, il est recommandé de modifier le rapport de manière à ce qu'il n'utilise aucun pilote d'impression.
Remarque
Le fait de ne configurer aucun pilote d'impression pour votre rapport peut notamment avoir pour conséquence une différence de présentation du rapport par rapport au résultat obtenu depuis l'imprimante souhaitée. Après avoir défini l'option Aucune imprimante pour le rapport, il est recommandé de le tester sur l'imprimante souhaitée. Si nécessaire, modifiez la présentation du rapport.
Informations associées
Suppression du pilote de l'imprimante par défaut de votre rapport [page 121]
1.3.5 Utilisation de SAP Crystal Reports dans une batterie de serveurs Web ou un jardin Web
Cette section présente brièvement comment utiliser un site Web SAP Crystal Reports, version développeur pour
Microsoft Visual Studio, dans une batterie de serveurs Web ou dans un jardin Web.
Une batterie de serveurs Web permet d'étendre un site Web sur plusieurs serveurs. Un jardin Web permet d'étendre un site Web sur plusieurs processeurs au sein d'un serveur unique. La répartition de la charge de travail
74
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
liée au traitement de rapport sur plusieurs processeurs ou plusieurs serveurs peut améliorer les performances de votre application de reporting basée sur le Web.
1.3.5.1 Architecture d'une batterie de serveurs Web ou d'un jardin Web
Architecture de la batterie de serveurs Web
Une batterie de serveurs Web se compose de plusieurs serveurs exposés aux navigateurs clients sous la forme d'un serveur virtuel unique, avec une carte Media Access virtuelle et une adresse TCP/IP.
Derrière cette couche virtuelle, chaque serveur de la batterie de serveurs Web reçoit tous les paquets du réseau, mais ne traite qu'un sous-ensemble de ces paquets. La capacité à partager de manière égale la charge de travail est ce qui confère aux batteries de serveurs Web une puissance de traitement extrêmement performante.
Cette distribution des paquets est gérée par l'équilibrage de la charge réseau. L'équilibrage de la charge réseau effectue les opérations suivantes :
● Répartit équitablement les demandes du client entre les serveurs.
● Détermine quel serveur traitera une demande donnée.
● Vérifie que l'utilisation des ressources du serveur et les temps d'attente du client sont optimisés.
● Offre des alternatives performantes à l'affinité du client.
Remarque
Dans un scénario d'affinité du client, les clients qui se connectent sont limités de sorte qu'ils reviennent chaque fois vers le même serveur.
L'affinité du client est généralement désactivée car elle peut créer un goulot d'étranglement en raison des demandes destinées à un serveur particulier.
Chaque serveur d'une batterie de serveurs Web dispose d'un pilote de périphérique réseau d'équilibrage de la charge réseau qui communique avec les autres serveurs, et chaque serveur est généralement doté de deux cartes réseau. La seconde carte permet les communications internes pour que l'équilibrage de la charge réseau puisse s'effectuer sur un autre réseau interne.
Le pilote de périphérique réseau d'équilibrage de la charge réseau est fourni avec la famille Windows Server des systèmes d'exploitation.
Architecture du jardin Web
Un jardin Web est identique à une batterie de serveurs Web, excepté qu'au lieu d'utiliser plusieurs serveurs reliés entre eux, il utilise un seul ordinateur doté de plusieurs processeurs.
Le serveur SMP (multitraitement symétrique) unique utilise ASP.NET pour exécuter un processus de traitement
ASP.NET séparé sur chaque processeur. Ce serveur gère plusieurs demandes de clients sur ses différents processeurs.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
75
1.3.5.2 Processus de traitement ASP.NET
ASP.NET s'exécute dans le cadre d'un processus appelé processus de traitement ASP.NET. Toutes les fonctionnalités ASP.NET s'exécutent dans le cadre de ce processus.
Un serveur Web standard contient un seul processus de traitement ASP.NET. Ce n'est pas le cas des batteries de serveurs Web et des jardins Web :
● Une batterie de serveurs Web contient plusieurs processus de traitement ASP.NET.
Chaque serveur du groupe de serveurs gère un processus de traitement ASP.NET séparé.
● Un jardin Web contient plusieurs processus de traitement ASP.NET.
Chaque processeur du serveur SMP gère un processus de traitement ASP.NET séparé.
Choix d'un processus de traitement ASP.NET
Lorsqu'un client Web se connecte à une batterie de serveurs Web ou un jardin Web, l'un des différents processus de traitement ASP.NET est sélectionné pour exécuter la demande.
● Dans une batterie de serveurs Web, l'équilibrage de la charge réseau détermine le processus de traitement
ASP.NET sélectionné.
● Dans un jardin Web, le processus de traitement ASP.NET sélectionné est déterminé par ASP.NET.
Gestion de l'état avec plusieurs processus de traitement ASP.NET
Lorsque l'on passe d'un scénario avec un seul processus de traitement ASP.NET (un serveur Web standard) à un scénario avec plusieurs processus de traitement ASP.NET (une batterie de serveurs Web ou un jardin Web), des complications apparaissent au niveau de la gestion de l'état.
Les pages Web sont sans état ; un serveur Web doit donc assurer la persistance de l'état par d'autres moyens. Les moyens les plus courants de gérer un état sur le serveur Web sont l'état de session et le cache ASP.NET.
Session et Cache sont tous deux contenus dans l'espace mémoire d'un seul processus de traitement ASP.NET.
Mais dans une batterie de serveurs Web ou un jardin Web, plusieurs processus de traitement ASP.NET fonctionnent simultanément. Ni Session ni Cache ne peuvent gérer l'état de plusieurs processus au sein d'un seul processus de traitement ASP.NET.
Par conséquent, une couche supplémentaire est requise pour la gestion de l'état : un serveur d'état de session hors processus qui stocke et extrait les informations sur l'état de chaque processus de traitement ASP.NET dans la batterie de serveurs Web ou l
Informations associées
Etat de session hors processus [page 77]
Quelle méthode de persistance utiliser avec SAP Crystal Reports ? [page 53]
76
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.3.5.3 Etat de session hors processus
Dans les batteries de serveurs Web et les jardins Web, l'état de session doit être partagé à travers plusieurs serveurs à l'aide d'une forme d'état de session hors processus.
Deux solutions sont couramment utilisées :
● Déployer le serveur d'état de session hors processus fourni avec ASP.NET.
● Configurer manuellement chaque serveur Web pour stocker les données d'état de session sur un serveur SQL
Server.
Obligation de sérialisation
Dans les deux solutions, tous les objets à stocker doivent être sérialisables. Si un objet ne peut pas être sérialisé, il ne peut pas être rendu persistant sur un serveur d'état hors processus.
Remarque
Tous les modèles d'objet du SDK de SAP Crystal Reports ne peuvent pas être sérialisés. Toutefois, SAP fournit une solution de mise à niveau pour gérer l'état des rapports à l'aide d'un serveur hors processus.
Informations associées
Modèles d'objet sérialisables dans SAP Crystal Reports [page 77]
1.3.5.4 Modèles d'objet sérialisables dans
SAP Crystal Reports
Quatre modèles d'objet sont disponibles pour SAP Crystal Reports : deux sont fournis avec SAP Crystal Reports et deux sont disponibles par mise à niveau.
Cette section explique quels modèles d'objet peuvent être sérialisés pour être utilisés avec un serveur d'état de session hors processus.
Remarque
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
77
Sérialisation et modèle d'objet CrystalReportViewer
Le modèle d'objet CrystalReportViewer est un modèle d'objet limité inclus avec l'API du contrôle
CrystalReportViewer. En raison de la portée limitée de ce modèle d'objet, il n'est généralement pas recommandé. On conseille plutôt d'utiliser le modèle d'objet plus puissant ReportDocument.
Toutefois, le modèle d'objet CrystalReportViewer peut être utilisé dans une batterie de serveurs Web ou un jardin Web. En effet, CrystalReportViewer est contenu dans un contrôle Web et la persistance du contrôle
Web est gérée côté client, avec ViewState. La persistance ViewState place l'état des contrôles serveur Web
ASP.NET dans une chaîne cryptée, puis inclut cette chaîne cryptée sous la forme d'un champ de formulaire masqué dans la page ASPX durant le rechargement de la page. Les informations sur l'état peuvent être fournies à n'importe quel processus de traitement ASP.NET.
Remarque
Cette forme de persistance du client fonctionne uniquement au moment du rechargement de la page.
ViewState ne peut pas assurer la persistance des informations à travers les pages.
Sérialisation et modèle d'objet ReportDocument
Le modèle d'objet ReportDocument est plus puissant que CrystalReportViewer et son utilisation est par conséquent généralement recommandée dans SAP Crystal Reports.
Toutefois, dans SAP Crystal Reports versions 9 et antérieures, la classe ReportDocument n'a pas pu être sérialisée et par conséquent, n'a pas pu être utilisée avec un serveur d'état de session hors processus dans une batterie de serveurs Web ou un jardin Web.
Ce problème a été résolu dans SAP Crystal Reports 10 et versions ultérieures en rapprochant le modèle d'objet
ReportDocument d'un objet sérialisable, ReportClientDocument.
Le modèle d'objet ReportClientDocument est accessible de plusieurs manières.
Pour utiliser le modèle d'objet ReportDocument dans une batterie de serveurs Web ou un jardin Web, il faut que le serveur d'état de session hors processus ASP.NET stocke l'état de l'instance ReportDocument sérialisée et que le serveur RAS non géré stocke le fichier de rapport Crystal .rpt.
Remarque
Vous ne pouvez sérialiser le modèle d'objet ReportDocument que si vous avez installé le serveur RAS et configuré les propriétés ReportDocument.ReportAppServer et ReportDocument.EnterpriseSession de telle sorte qu'elles désignent ce serveur.
Sérialisation et modèle d'objet ReportClientDocument
Le modèle d'objet ReportClientDocument peut être sérialisé. Le modèle d'objet ReportClientDocument est accessible de plusieurs manières.
78
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Modèle d'objet InfoObject
Le modèle d'objet InfoObject fait partie de la solution de mise à niveau de Crystal, de
SAP Crystal Reports Server ou de la plateforme SAP BusinessObjects Business Intelligence.
SAP Crystal Reports Server et la plateforme SAP BusinessObjects Business Intelligence sont des solutions d'entreprise multiserveur qui servent généralement d'alternative à une batterie de serveurs Web ou un jardin Web existant.
Informations associées
Utilisation de SAP Crystal Reports dans une batterie de serveurs Web ou un jardin Web [page 74]
Choisir le modèle d'objet correct pour votre projet [page 32]
ViewState et persistance du modèle d'objet CrystalReportViewer [page 55]
1.3.5.5 Configuration de SAP Crystal Reports pour une batterie de serveurs Web ou un jardin Web
Serveurs supplémentaires
En plus des serveurs de la batterie de serveurs Web ou du jardin Web, deux serveurs supplémentaires sont nécessaires :
● Le serveur d'état de session hors processus ASP.NET, pour stocker l'état de l'instance ReportDocument sérialisée.
● Un serveur RAS non géré pour stocker le fichier de rapport Crystal .rpt.
Remarque
Pour en savoir plus, voir
Solutions de reporting de SAP BusinessObjects Business Intelligence [page 64]
.
Utilisation particulière de ReportDocument
La batterie de serveurs Web ou le jardin Web utilise le serveur d'état de session hors processus ASP.NET pour stocker l'objet ReportDocument sérialisé. Dans ce scénario, l'objet ReportDocument n'est pas utilisé de la même façon que dans une installation classique de SAP Crystal Reports.
En effet, la méthode ReportDocument.Load() ou la propriété ReportDocument.FileName lie l'instance
ReportDocument à un rapport hors processus stocké sur le serveur RAS non géré. Pour avoir des exemples de l'utilisation de ces solutions, voir les informations de configuration ci-dessous.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
79
Remarque
Le stockage du fichier de rapport .rpt sur le serveur RAS non géré hors processus signifie que chaque processus de traitement ASP.NET dans la batterie de serveurs Web ou le jardin Web peut accéder au même fichier de rapport .rpt à partir d'un emplacement central.
Configuration de ReportDocument pour le serveur RAS non géré
La relation entre l'instance ReportDocument et le serveur RAS non géré peut être configurée de l'une des manières suivantes :
● Chargez le rapport Crystal incorporé local de l'instance ReportDocument sur le serveur RAS non géré au moment de l'exécution. Ceci permet de stocker temporairement le fichier de rapport .rpt sur le serveur RAS non géré hors processus.
● Associez un rapport externe stocké en permanence sur le serveur RAS non géré hors processus à l'instance
ReportDocument, en affectant le chemin d'accès au répertoire du fichier de rapport sur le serveur RAS non géré à la propriété FileName de l'instance ReportDocument.
Instance ReportDocument sur le serveur d'état de session, fichier .rpt sur le serveur RAS non géré
L'instance ReportDocument, qui peut être sérialisée lorsqu'elle est utilisée en coopération avec la solution de mise
à niveau Crystal du RAS non géré, est stockée sur le serveur d'état de session hors processus ASP.NET.
Etant donné que l'instance ReportDocument reste active sur le serveur d'état de session, le fichier de rapport
Crystal .rpt associé à l'instance ReportDocument reste ouvert sur le serveur RAS non géré.
Dans la batterie de serveurs Web ou le jardin Web, lorsqu'un autre processus de traitement ASP.NET extrait l'instance ReportDocument à partir du serveur d'état de session hors processus, l'instance ReportDocument accède au fichier .rpt associé à partir du serveur RAS non géré.
Ecriture d'image sur le partage réseau
Il vous faut configurer un détail supplémentaire lorsque vous utilisez une batterie de serveurs Web.
Les images qui sont écrites durant le processus de création de rapports (telles que les diagrammes dynamiques) doivent être placées sur un partage réseau commun pour que n'importe quel processus de traitement ASP.NET puisse y accéder. Chaque ordinateur doit être configuré pour écrire les images sur le même partage réseau et pour accorder des autorisations d'accès au compte de traitement ASP.NET sur chaque ordinateur qui écrit sur ce partage.
Pour configurer un ordinateur afin qu'il puisse accéder à ce répertoire, ajoutez les informations ci-dessous à votre registre.
80
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
[HKEY_LOCAL_MACHINE\SOFTWARE\Business Objects\Suite 12.0\Report Application Server
\Viewer]
"CrystalImageDir"="\\fileserver\images"
Instructions de configuration détaillées
Pour des informations détaillées sur les problèmes de configuration posés par l'exécution de SAP Crystal Reports dans une batterie de serveurs Web ou un jardin Web, consultez le site Web du support technique.
1.3.6 Utilisation de Crystal Reports en tant que service Web
Cette section explique comment utiliser des rapports Crystal qui ont été publiés en tant que services Web de rapports.
Les services Web permettent de partager les données et les fonctionnalités de différentes applications. Un logiciel de comptabilité peut ainsi être connecté à un logiciel de gestion de commandes client par exemple. Les services
Web peuvent également être utilisés entre différentes sociétés afin de partager leurs données et leurs applications.
Les services Web sont indépendants de toute technologie de composants ou convention d'appel d'objets pour les raisons suivantes :
● Ils utilisent le protocole HTTP en tant que protocole Web.
● Ils font appel au langage XML.
● Ils prennent en charge SSL (Secure Socket Layer).
Tout programme peut accéder aux services Web, quels que soient son langage de programmation, le modèle de composant ou le système d'exploitation utilisé.
SAP Crystal Reports permet de publier et d'utiliser facilement des rapports en tant que services Web de rapports.
Les applications Web et Windows peuvent être connectées à un service Web de rapports et afficher le rapport
Crystal exposé par ce service.
1.3.6.1 Publication et utilisation d'un rapport en tant que service Web
Dans SAP Crystal Reports, version développeur pour Microsoft Visual Studio, vous pouvez publier des rapports
Crystal en tant que services Web.
Publication d'un rapport en tant que service Web de rapports
Dans SAP Crystal Reports, version développeur pour Microsoft Visual Studio, lorsque vous sélectionnez l'option permettant de publier un rapport Crystal dans un service Web de rapports, ce dernier est compilé en DLL et un
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
81
fichier XML portant l'extension ".asmx" (fichier des services Web .NET) est alors généré. Ce fichier .ASMX décrit les fonctions publiques, les paramètres d'entrée, les types de données et les types de données renvoyées qui sont exposés par le service Web de rapports. Les fichiers DLL et ASMX sont publiés sur le serveur Web en tant que services Web de rapports. Le service Web de rapports peut désormais être appelé par l'intermédiaire de son URL par une application cliente à partir d'un navigateur Web. Les données sont transmises depuis et vers le service
Web via le protocole HTTP sous forme de langage XML.
Utilisation du rapport en tant que fichier de service Web de rapports dans une application cliente
Pour accéder à partir d'une application cliente au service Web de rapports publié, vous devez transmettre la chaîne URL de ce dernier à la propriété ReportSource du contrôle CrystalReportViewer à partir d'un site Web ou d'un projet Windows.
Informations associées
Utilisation des services Crystal [page 84]
Utilisation de Crystal Reports en tant que service Web [page 81]
1.3.6.1.1 Pour publier un service Web de rapports
Prérequis
Avant de commencer, vous devez disposer d'un rapport Crystal existant. Le rapport est publié en tant que service
Web, qui peut ensuite être utilisé par la propriété CrystalReportViewer.ReportSource.
Procédure
1. Démarrez Visual Studio.
2. Dans le menu
Fichier
, sélectionnez
Nouveau
, puis cliquez sur
Site Web
.
3. Dans la liste
Modèles Visual Studio installés
, cliquez sur
Service Web ASP.NET
.
4. Dans le champ
Emplacement
, saisissez le nom et le chemin d'accès du répertoire de fichiers de votre service
Web.
C:\WebServices\MyCrystalReportsWebServices
5. Cliquez sur
OK
.
6. Dans l'
Explorateur de solutions
, cliquez avec le bouton droit de la souris sur le nom de projet affiché en gras, puis sélectionnez
Ajouter un élément existant
.
82
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
7. Dans la boîte de dialogue
Ajouter un élément existant
, sélectionnez Tous les fichiers (*.*) sous
Types de fichiers
.
8. Ajoutez un rapport existant Crystal à votre projet.
9. Cliquez avec le bouton droit de la souris sur le rapport, puis sélectionnez
Publier en tant que service Web
.
Un nouveau service est créé.
10. Cliquez avec le bouton droit de la souris sur Service Web, puis sélectionnez
Définir comme page de début
.
Lorsque vous exécutez votre application, le nouveau service Web s'affiche dans le navigateur Web. Vous pouvez utiliser l'URL du service Web en tant que source du rapport pour un contrôle CrystalReportViewer.
Remarque
Dans Visual Studio 2005 et versions ultérieures, le serveur Web utilisé par défaut pour afficher l'aperçu des sites et des services Web n'est pas IIS, mais le serveur Web Visual Web Developer. Lorsque vous utilisez ce serveur Web, l'URL contient uniquement un numéro de port temporaire et aléatoire, valide uniquement au moment de la compilation. Pour accéder à l'URL du service Web à partir d'une application cliente, vous devez tout d'abord configurer le répertoire de fichiers du projet de service Web en tant que répertoire virtuel dans IIS. Ce répertoire virtuel fournit alors une URL cohérente qu'il est possible d'appeler à partir de l'application cliente.
1.3.6.1.2 Pour utiliser le service Web de rapports à partir d'un projet client
Prérequis
Avant de commencer, vous devez disposer d'un accès à un rapport ayant déjà été publié en tant que service Web.
Procédure
1. Ajoutez le contrôle CrystalReportViewer à votre site Web ou votre application Windows.
2. Dans le menu
Affichage
, cliquez sur
Code
.
3. Affectez l'URL d'un service Web de rapports à la propriété ReportSource de la classe
CrystalReportViewer.
myCrystalReportViewer.ReportSource =
"http://localhost/MyCrystalReportsWebService/Hierarchical_GroupingService.asmx" crystalReportViewer.ReportSource =
"http://localhost/MyCrystalReportsWebService/Hierarchical_GroupingService.asmx";
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
83
Résultats
Lorsque vous exécutez votre application, le contrôle CrystalReportViewer affiche le rapport publié par le service
Web.
1.3.6.2 Utilisation des services Crystal
SAP Crystal Reports, version développeur pour Microsoft Visual Studio, permet de se connecter par programmation aux rapports via le service Web des services Crystal. Les services Crystal facilitent la connexion aux rapports exposés par différents serveurs du réseau.
Les sources des rapports sous-jacentes et les classes que ces derniers génèrent (lorsqu'ils sont déplacés par glissement dans un Web Form ou un Windows Form) varient au fil des versions successives de SAP Crystal
Reports.
Utilisation des services Crystal avec SAP Crystal Reports 2005 ou une version plus récente
Dans Visual Studio 2005, les services Crystal sont accessibles par programmation. Ils permettent de générer une liste de rapports disponibles sur un ordinateur local ou distant, ainsi que d'accéder à ces rapports via un service
Web.
Le code de connexion doit être saisi manuellement dans SAP Crystal Reports, version développeur pour Microsoft
Visual Studio.
Les services Crystal utilisent le protocole des services Web de rapports pour accéder à un répertoire virtuel du serveur, appelé répertoire virtuel des visualiseurs.
Utilisation des services Crystal avec SAP Crystal Reports pour
Visual Studio .NET 2003
Dans SAP Crystal Reports pour Visual Studio 2003, les services Crystal étaient accessibles à partir de l'Explorateur de serveurs.
Le sous-nœud Services Crystal de chaque serveur se développe pour afficher d'autres sous-nœuds. Le nom de ces sous-nœuds varie en fonction des versions de SAP Crystal Reports, mais ils ont un comportement commun : chaque sous-nœud Services Crystal se développe pour afficher une liste de rapports à partir du répertoire de fichiers de l'ordinateur local ou à partir des serveurs du réseau.
Un sous-nœud Services Crystal peut parfois utiliser le protocole des services Web de rapports. Dans ce cas, il l'utilise pour accéder à un répertoire virtuel du serveur, appelé répertoire virtuel des visualiseurs.
Dans d'autres cas, une connexion directe est établie avec un serveur RAS non géré, SAP Crystal Reports Server ou la plateforme SAP BusinessObjects Business Intelligence. Dans ce cas, le protocole des services Web de rapports n'est pas utilisé.
84
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Il se peut que vous deviez ajuster vos paramètres de pare-feu afin d'accéder au CMS de la plateforme SAP
BusinessObjects Business Intelligence. Le port par défaut pour le CMS est 6400. Contactez votre administrateur système pour plus d'informations sur l'adresse réseau et les paramètres de port de votre système de plateforme
SAP BusinessObjects Business Intelligence. Pour plus d'informations sur la personnalisation des ports, voir le
Guide d'administration de la plateforme SAP BusinessObjects Business Intelligence.
Remarque
Les nœuds disponibles dépendent de la configuration et du contrat de licence dont vous disposez.
Un rapport exposé via le nœud Services Crystal peut être déplacé par une simple opération glisser-déplacer vers la barre d'état des composants d'un Web Form ou d'un Windows Form dans Visual Studio NET 2003.
Informations associées
Répertoire des visualiseurs [page 14]
1.3.6.3 Configuration des fichiers serveur dans les services
Crystal
Parmi les groupes de services Crystal fournis avec SAP Crystal Reports, version développeur pour Microsoft
Visual Studio, figurent les fichiers serveur. Les fichiers serveur constituent un ensemble de services Web de rapports qui sont exposés par le biais d'un répertoire virtuel à partir du chemin d'accès à un répertoire de fichiers situé sur le disque dur.
Différentes conditions d'implémentation sont requises pour chaque version de Visual Studio.
1.3.6.3.1 Configuration des fichiers serveur dans Visual
Studio .NET 2003
Les fichiers serveur correspondent à un ensemble de services Web de rapports qui sont exposés à partir du répertoire virtuel des visualiseurs dans IIS. Les fichiers serveur étaient à l'origine fournis sous la forme d'un nœud
Services Crystal dans SAP Crystal Reports pour Visual Studio .NET 2002, mais ce nœud a depuis été supprimé.
Chaque nouvelle version de SAP Crystal Reports continue à prendre en charge les fichiers serveur dans le SDK, mais leur utilisation nécessite une configuration particulière pour chaque version.
Les fichiers serveur sont générés à partir des fichiers de rapport sous-jacents figurant dans le dossier des exemples de rapports (ou tout autre dossier désigné) du chemin d'accès au répertoire de fichiers du serveur Web.
Vous pouvez accéder aux fichiers serveur de deux manières :
● Via un nœud visible sous Services Crystal.
Ce mode d'accès est uniquement disponible dans SAP Crystal Reports pour Visual Studio 2003.
● En programmant la classe ServerFileReport dans le SDK.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
85
Vous pouvez accéder aux fichiers serveur par le biais du SDK avec toutes les versions de
SAP Crystal Reports .NET.
Les fichiers serveur sont exposés par le biais d'un répertoire virtuel dans IIS. La connexion aux fichiers de rapport sous-jacents nécessite la configuration des droits d'accès au dossier.
Les droits d'accès sont configurés par le biais d'une entrée de fichier web.config.
Configuration des fichiers serveur dans Visual Studio .NET 2003
Dans Visual Studio .NET 2003, le dossier de configuration des fichiers serveur est devenu obsolète et remplacé par l'ajout d'une entrée de configuration au fichier web.config.
Vous pouvez ajouter cette entrée de configuration au fichier web.config de chaque projet, l'un après l'autre. Il est toutefois recommandé de l'ajouter au fichier web.config situé dans le répertoire virtuel des visualiseurs de
SAP Crystal Reports afin de rendre cette information accessible à tous les projets Visual Studio .NET. Avant d'effectuer cette opération, lisez la section suivante pour en savoir plus sur le répertoire virtuel des visualiseurs.
Fichiers serveur et répertoire virtuel des visualiseurs
Les fichiers serveur sont pris en charge en dehors d'IIS (Internet Information Services) à partir d'un service Web centralisé situé dans un répertoire virtuel des visualiseurs spécial. Chaque nouvelle version de
SAP Crystal Reports crée un répertoire virtuel des visualiseurs supplémentaire dans IIS, ce qui permet de conserver plusieurs versions de SAP Crystal Reports.
Un problème de maintenance se pose si vous avez codé les fichiers serveur dans un projet d'une version antérieure de SAP Crystal Reports et si vous procédez à une mise à niveau vers une version ultérieure. Pour permettre le fonctionnement des instances de ServerFileReport, dans votre code, le nom du répertoire virtuel des visualiseurs dans la propriété WebServiceURL de chaque instance de ServerFileReport doit être remplacé par le répertoire virtuel des visualiseurs actuel.
Informations associées
Configuration des fichiers serveur dans Visual Studio 2005 et les versions plus récentes [page 88]
Utilisation de Crystal Reports en tant que service Web [page 81]
Répertoire des visualiseurs [page 14]
86
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.3.6.3.1.1 Pour modifier le répertoire virtuel des visualiseurs dans la propriété WebServiceURL des instances de ServerFileReport
Procédure
1. Recherchez dans votre projet toutes les occurrences dans lesquelles la propriété WebServiceURL d'une instance de ServerFilesReport a été affectée.
2. Comparez le nom du répertoire virtuel des visualiseurs actuellement affecté dans votre code à celui utilisé dans les versions précédentes
3. Changez le nom du répertoire virtuel des visualiseurs utilisé dans la version de SAP Crystal Reports la plus récente.
4. Recompilez l'application et vérifiez que les rapports se chargent correctement.
Étapes suivantes
Modifiez le fichier web.config du répertoire virtuel des visualiseurs de manière à configurer correctement les fichiers serveur dans toutes les versions postérieures à Visual Studio .NET 2002.
1.3.6.3.1.2 Pour ajouter l'entrée de configuration des fichiers serveur au fichier web.config du répertoire virtuel des visualiseurs (toutes les versions postérieures
à Visual Studio .NET 2002)
Procédure
1. Localisez le répertoire virtuel des visualiseurs de la version SAP Crystal Reports la plus récente.
2. Pour vous assurer que le répertoire virtuel des visualiseurs fonctionne, ouvrez un navigateur, puis saisissez l'URL du service Web de rapports publié dans le répertoire virtuel des visualiseurs.
Option Description
Visual Studio 2003 http://localhost/CrystalReportWebFormViewer2/
ServerFileReportService.asmx?wsdl
SAP Crystal Reports 2008 http://localhost/crystalreportviewers12/
ServerFileReportService.asmx?wsdl
3. Ouvrez le fichier web.config situé dans le répertoire virtuel des visualiseurs dans un éditeur de texte.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
87
Remarque
Si vous le souhaitez, vous pouvez également apporter ces modifications uniquement dans le fichier web.config de l'application Web cliente qui accèdera à ces rapports des fichiers serveur.
4. Au tout début du fichier web.config, à l'intérieur de la balise configuration, ajoutez une entrée configSections qui déclare un nouveau type sectionGroup (crystalDecisions) et sa section (serverFileReportManager).
<configSections>
<sectionGroup name="crystalDecisions">
<section name="serverFileReportManager"
type="System.Configuration.NameValueSectionHandler, System,
Version=1.0.3300.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089, Custom=null" />
</sectionGroup>
</configSections>
5. Après la balise de fermeture de configSections, ajoutez le nouveau type sectionGroup et la section que vous avez déclarés à l'étape précédente.
Dans l'exemple ci-dessous, remplacez la valeur du répertoire racine par celle du répertoire dans lequel vous avez stocké vos rapports. Pour cet exemple, le chemin du fichier est le suivant : C:\program files
\Microsoft Visual Studio .NET 2003\Crystal Reports\Samples\Reports\Feature Examples.
<crystalDecisions>
<serverFileReportManager>
<add key="rootDirectory" value="C:\program files\Microsoft Visual Studio .NET 2003\Crystal Reports\Samples
\En\Reports\Feature Examples" />
</serverFileReportManager>
</crystalDecisions>
Remarque
Vous devez saisir le chemin d'accès du répertoire de fichiers au dossier de rapports dans le champ de valeur.
6. Enregistrez les modifications apportées au fichier web.config.
1.3.6.3.2 Configuration des fichiers serveur dans Visual
Studio 2005 et les versions plus récentes
Les fichiers serveur correspondent à un ensemble de services Web de rapports qui exposent des rapports sur un serveur IIS. Les fichiers serveur étaient à l'origine fournis sous la forme d'un nœud Services Crystal dans
SAP Crystal Reports pour Visual Studio .NET 2002, mais ce nœud a depuis été supprimé. Chaque nouvelle version de SAP Crystal Reports continue à prendre en charge les fichiers serveur dans le SDK, mais leur utilisation nécessite une configuration particulière pour chaque version.
Les fichiers serveur sont générés à partir des fichiers de rapport sous-jacents figurant dans le dossier des exemples de rapports (ou tout autre dossier désigné) du répertoire de fichiers du serveur Web.
88
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Configuration des fichiers serveur
La configuration des fichiers serveur pour Visual Studio 2005 ou une version plus récente s'effectue en deux
étapes. La première étape consiste à créer le service Web de rapports qui va exposer les rapports. La deuxième
étape consiste à modifier le fichier web.config correspondant au nouveau service Web. Dans Visual Studio 2005, l'utilisation du dossier de configuration pour les fichiers serveur qui se faisait dans Visual Studio .NET 2002 a été déconseillée au profit de l'ajout d'une entrée de configuration dans le fichier web.config.
Vous pouvez ajouter l'entrée de configuration au fichier web.config de chaque projet, l'un après l'autre. Il est toutefois recommandé d'ajouter cette entrée de configuration au fichier web.config situé dans le répertoire virtuel qui contient les services Web de rapports.
Informations associées
Connexion aux services Web de rapports à partir d'un site Web sécurisé [page 92]
Utilisation de Crystal Reports en tant que service Web [page 81]
1.3.6.3.2.1 Pour créer les services Web de rapports requis pour les fichiers serveur
Procédure
1. Démarrez Visual Studio.
2. Dans le menu
Fichier
, sélectionnez
Nouveau
, puis cliquez sur
Site Web
.
3. Dans la boîte de dialogue
Nouveau site Web
, sélectionnez
Visual C#
dans la liste
Langage
.
4. Dans la liste Modèles, cliquez sur
Service Web ASP.NET
.
5. Dans le champ
Emplacement
, remplacez le nom de projet par défaut par le nom de votre projet.
Pour cet exemple, le projet sera enregistré dans C:\InetPub\wwwroot\ sous le nom
CrystalReportsWebServices.
C:\InetPub\wwwroot\CrystalReportsWebServices\
6. Cliquez sur
OK
.
7. Dans le menu
Déboguer
, cliquez sur
Démarrer le débogage
.
Une boîte de dialogue indiquant que le fichier web.config doit être modifié s'affiche alors. Cliquez sur le bouton OK pour activer le débogage.
8. Une fois le débogage terminé, revenez à l'application.
9. Dans l'
Explorateur de solutions
, cliquez avec le bouton droit de la souris sur Service.asmx, puis cliquez sur
Supprimer
.
10. Dans l'
Explorateur de solutions
, développez le dossier App_Code, cliquez avec le bouton droit de la souris sur
Service.cs, puis cliquez sur
Supprimer
.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
89
11. Dans l'
Explorateur de solutions
, cliquez avec le bouton droit de la souris sur le nom du projet affiché en gras, puis cliquez sur
Ajouter un nouvel élément
.
12. Dans la boîte de dialogue
Ajouter un nouvel élément
, procédez de la manière suivante : a. Dans le champ
Modèles
, sélectionnez
Service Web
.
b. Dans le champ
Nom
, saisissez
ServerFileReportService.asmx
.
c. Désactivez la case à cocher
Placer le code dans un fichier distinct
.
d. Cliquez sur
Ajouter
.
13. Remplacez le contenu du fichier ServerFileReportService.asmx par la ligne suivante :
<%@ WebService language="C#" class="CrystalDecisions.Web.Services.ServerFileReportService" %>
14. Dans le menu
Fichier
, cliquez sur
Enregistrer tout
.
15. Dans l'
Explorateur de solutions
, cliquez avec le bouton droit de la souris sur le nom du projet affiché en gras, puis cliquez sur
Ajouter un nouvel élément
.
16. Dans la boîte de dialogue
Ajouter un nouvel élément
: a. Dans le champ
Modèles
, sélectionnez
Service Web
.
b. Dans le champ
Nom
, saisissez ServerFileReportManager.asmx.
c. Désactivez la case à cocher
Placer le code dans un fichier distinct
.
d. Cliquez sur
Ajouter
.
17. Remplacez le contenu du fichier ServerFileReportManager.asmx par la ligne suivante :
<%@ WebService language="C#" class="CrystalDecisions.Web.Services.ServerFileReportManager" %>
18. Dans le menu
Fichier
, cliquez sur
Enregistrer tout
.
1.3.6.3.2.2 Pour modifier le répertoire virtuel des visualiseurs dans la propriété WebServiceURL des instances de ServerFileReport
Procédure
1. Recherchez dans votre projet toutes les occurrences dans lesquelles la propriété WebServiceURL d'une instance de ServerFilesReport a été affectée.
2. Comparez le nom du répertoire virtuel des visualiseurs actuellement affecté dans votre code à celui utilisé dans les versions précédentes
3. Changez le nom du répertoire virtuel des visualiseurs utilisé dans la version de SAP Crystal Reports la plus récente.
Si votre version de SAP Crystal Reports la plus récente est SAP Crystal Reports pour Visual Studio 2005, saisissez le chemin d'accès au service Web de rapports que vous avez précédemment créé dans ce tutoriel.
4. Recompilez l'application et vérifiez que les rapports se chargent correctement.
90
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Informations associées
Répertoire des visualiseurs [page 14]
1.3.6.3.2.3 Pour ajouter l'entrée de configuration des fichiers serveur au fichier web.config
Procédure
1. Dans l'
Explorateur de solutions
, ouvrez le fichier
Web.Config
.
2. Remplacez le contenu intégral du fichier
Web.Config
par le code XML ci-après.
Dans l'exemple ci-dessous, remplacez la valeur du répertoire racine par celle du répertoire dans lequel vous avez stocké vos rapports. Pour cet exemple, le chemin de fichier défini est C:\program files\Microsoft
Visual Studio 8\Crystal Reports\Samples\fr\Reports\Feature Examples.
<?xml version="1.0"?>
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
<configSections>
<sectionGroup name="crystalDecisions">
<section name="serverFileReportManager" type="System.Configuration.NameValueSectionHandler, System,
Version=1.0.3300.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089, Custom=null"/>
</sectionGroup>
</configSections>
<crystalDecisions>
<serverFileReportManager>
<add key="rootDirectory" value="C:\program files\Microsoft Visual
Studio 8\Crystal Reports\Samples\fr\Reports\Feature Examples"/>
</serverFileReportManager>
</crystalDecisions>
<appSettings/>
<connectionStrings/>
<system.web>
<compilation debug="true">
<assemblies>
<add assembly="CrystalDecisions.Web, Version=12.1.2000.0,
Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
</assemblies>
</compilation>
</system.web>
</configuration>
Remarque
Vous devez saisir le chemin d'accès du répertoire de fichiers au dossier des rapports à l'endroit où vous voyez l'énoncé PUT_FILE_DIRECTORY_PATH_TO_REPORTS_FOLDER_HERE.
3. Enregistrez les modifications apportées au fichier
web.config
.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
91
4. Pour vous assurer que le répertoire virtuel des visualiseurs fonctionne, ouvrez un navigateur, puis saisissez l'URL du service Web de rapports publié.
http://localhost/CrystalReportsWebServices/ServerFileReportService.asmx?wsdl
1.3.6.3.2.4 Anciens fichiers serveur et répertoire virtuel des visualiseurs
Dans les précédentes versions de SAP Crystal Reports, les fichiers serveur étaient pris en charge en dehors d'IIS,
à partir d'un service Web centralisé situé dans le répertoire virtuel des visualiseurs. Chaque nouvelle version de
SAP Crystal Reports crée un répertoire virtuel des visualiseurs supplémentaire dans IIS, ce qui permet de conserver plusieurs versions de SAP Crystal Reports.
Un problème de maintenance se pose si vous avez codé les fichiers serveur dans un projet d'une version antérieure de SAP Crystal Reports et si vous procédez à une mise à niveau vers une version ultérieure. Pour permettre le fonctionnement des instances de ServerFileReport, dans votre code, le nom du répertoire virtuel des visualiseurs dans la propriété WebServiceURL de chaque instance de ServerFileReport doit être remplacé par l'emplacement actuel du service Web de rapports.
Informations associées
Répertoire des visualiseurs [page 14]
1.3.6.4 Connexion aux services Web de rapports à partir d'un site Web sécurisé
Dans SAP Crystal Reports, version développeur pour Microsoft Visual Studio, vous pouvez publier des rapports
Crystal en tant que services Web.
Dans la mesure où les services Web sont accessibles via le Web, vous souhaiterez peut-être les protéger de tout accès anonyme.
Cette section explique comment supprimer l'accès anonyme d'un répertoire virtuel contenant un service Web de rapports, puis comment écrire du code permettant de placer ce service dans une classe RemoteReportProxy qui peut être configurée de manière à traiter l'authentification NT sur le serveur IIS (Internet Information Services).
Deux types de service Web de rapports nécessitent un code d'authentification : les services Web de rapports standard et les fichiers serveur.
Informations associées
Publication et utilisation d'un rapport en tant que service Web [page 81]
92
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Configuration des fichiers serveur dans les services Crystal [page 85]
1.3.6.4.1 Services Web de rapports et authentification NT
1.3.6.4.1.1 Ajout de l'authentification NT à un service Web de rapports
Avant d'apporter quelque modification que ce soit en vue de l'authentification NT, vous devez créer un projet qui
.
Dans cette section, vous allez apprendre à supprimer l'accès anonyme du répertoire qui contient le service Web de rapports que vous avez créé précédemment.
Informations associées
Connexion aux services Web de rapports à partir d'un site Web sécurisé [page 92]
1.3.6.4.1.1.1 Pour supprimer l'accès anonyme du répertoire contenant le service Web de rapports
Procédure
1. Dans le Panneau de configuration, cliquez deux fois sur
Outils d'administration
, puis sur
Gestionnaire des services Internet
.
2. Dans la fenêtre
Services Internet (IIS)
, développez les nœuds supérieurs, puis le nœud
Site Web par défaut
.
3. Recherchez le répertoire virtuel contenant le Report Web Service que vous avez créé précédemment.
4. Cliquez sur ce répertoire virtuel avec le bouton droit de la souris, puis sélectionnez
Propriétés
.
5. Dans la boîte de dialogue
Propriétés
, dans l'onglet
Sécurité de répertoire
, cliquez sur
Modifier
.
6. Désactivez la case à cocher
Accès anonyme
, puis cliquez sur
OK
.
7. Cliquez sur
OK
pour fermer la boîte de dialogue
Propriétés
.
8. Fermez la fenêtre
Services Internet (IIS)
.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
93
Résultats
A ce stade, si vous souhaitez qu'un utilisateur réseau en particulier puisse accéder au répertoire par authentification, vous devez attribuer à cet utilisateur une autorisation individuelle sur le dossier à partir de l'Explorateur Windows.
1.3.6.4.1.1.2 Pour attribuer à un utilisateur réseau en particulier des autorisations sur le dossier
Procédure
1. Dans l'
Explorateur Windows
, recherchez le dossier contenant le service Web.
2. Cliquez avec le bouton droit de la souris sur le dossier, puis sélectionnez
Propriétés
.
3. Dans la boîte de dialogue
Propriétés
, dans l'onglet
Sécurité
, cliquez sur Ajouter.
4. Dans la boîte de dialogue
Sélectionner les utilisateurs, les ordinateurs ou les groupes
, dans le panneau
<<Entrez des noms séparés par des points-virgules ou choisissez à partir de la liste>>
, saisissez le nom de l'utilisateur réseau.
5. Cliquez sur
Vérifier les noms
.
6. Vérifiez que le nom de l'utilisateur a été correctement ajouté, puis cliquez sur
OK
.
7. Dans le panneau
Autorisations
, activez la case à cocher
Autoriser
pour l'autorisation
Lecture
.
1.3.6.4.1.2 Modification de l'application cliente pour ajouter un accès sécurisé
Dans cette section, vous allez modifier l'application cliente afin qu'elle puisse accéder au service Web de rapports de façon sécurisée par le biais de l'authentification NT. Vous devez pour cela ajouter des assemblys, des espaces de noms et du code.
1.3.6.4.1.2.1 Vérification de l'impossibilité pour votre application cliente d'accéder au service Web sécurisé
Procédure
1. Rouvrez l'application cliente que vous avez créée pour utiliser le service Web de rapports (dans la section
Publication et utilisation d'un rapport en tant que service Web [page 81]
).
2. Exécutez l'application afin de vous assurer que vous n'êtes plus autorisé à accéder de manière anonyme au service Web de rapports contenu dans ce répertoire.
94
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Le message d'erreur suivant s'affiche : "La demande a échoué avec l'état HTTP 401 : accès refusé".
1.3.6.4.1.2.2 Pour ajouter de nouveaux assemblys ainsi que les références à ces assemblys
Procédure
1. Cliquez avec le bouton droit de la souris sur le dossier References, puis sélectionnez
Ajouter une référence
.
2. Dans la boîte de dialogue Add Reference, dans l'onglet .NET, cliquez sur les assemblys suivants tout en maintenant la touche CTRL enfoncée :
○ CrystalDecisions.ReportSource
○ System.Web.Services
3. Cliquez sur Select sur le côté droit de la boîte de dialogue.
4. Vérifiez que les deux assemblys ont bien été ajoutés au panneau Selected Components, puis cliquez sur
OK.
5. Ouvrez le Web Form ou le Windows Form que vous avez créé dans Configuration d'un projet [page 15]
.
6. Dans le menu View, cliquez sur Code.
7. Au-dessus de la signature de classe, ajoutez trois déclarations "Imports" [Visual Basic] ou "using" [C#] au début de la classe pour les espaces de noms suivants.
Imports CrystalDecisions.ReportSource
Imports System.Net
Imports System.Web.Services
using CrystalDecisions.ReportSource; using System.Net; using System.Web.Services;
Étapes suivantes
Vous allez ensuite apprendre à ajouter du code pour configurer une classe RemoteReportProxy de sorte qu'elle transmette les références de connexion de l'utilisateur au répertoire sécurisé du service Web de rapports.
1.3.6.4.1.2.3 Codage de la méthode
GetReportWebServiceWithAuthentication()
Contexte
La méthode GetReportWebServiceWithAuthentication() permet de configurer le proxy du rapport distant et de gérer l'authentification NT.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
95
Dans cette section, vous allez apprendre à coder la méthode GetReportWebServiceWithAuthentication() pour définir les valeurs des propriétés URL et Credentials. Vous devez ajouter la méthode
GetReportWebServiceWithAuthentication() à la propriété ReportSource du contrôle
CrystalReportViewer pour la déclaration et l'instanciation de la classe RemoteReportProxy.
Cette méthode ajoute en option des paramètres de proxy pare-feu à l'instance RemoteReportProxy.
Procédure
1. Au bas de la classe, créez la méthode d'assistance privée GetReportWebServiceWithAuthentication() qui renvoie une classe RemoteReportProxy.
Private Function GetReportWebServiceWithAuthentication() As
RemoteReportProxy
End Function private RemoteReportProxy GetReportWebServiceWithAuthentication()
{
}
2. Dans la méthode ConfigureCrystalReports(), sélectionnez la chaîne URL de service Web actuellement affectée à la propriété ReportSource du contrôle CrystalReportViewer. Coupez cette chaîne dans le
Presse-papiers.
Remarque
Plus loin dans cette procédure, vous affecterez une nouvelle valeur à la propriété ReportSource du contrôle CrystalReportViewer.
3. Déclarez une variable chaîne reportWebServiceURL et collez la chaîne URL.
Dim reportWebServiceURL As String =
"http://mywebserviceserver.com/MyWebServiceDirectory/Hierarchical
%20GroupingService.asmx" string reportWebServiceURL =
"http://mywebserviceserver.com/MyWebServiceDirectory/Hierarchical
%20GroupingService.asmx";
4. Déclarez et instanciez la classe RemoteReportProxy.
Dim myRemoteReportProxy As RemoteReportProxy = New RemoteReportProxy()
RemoteReportProxy remoteReportProxy = new RemoteReportProxy();
5. Affectez la variable reportWebServiceURL à la propriété URL de l'instance RemoteReportProxy.
myRemoteReportProxy.Url = reportWebServiceURL remoteReportProxy.Url = reportWebServiceURL;
96
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
6. Appelez la méthode ConfigureAuthentication() (que vous allez créer dans les procédures suivantes) et transmettez-lui la valeur Boolean True et la variable reportWebServiceURL. Affectez cette méthode à la propriété Credentials de l'instance RemoteReportProxy.
myRemoteReportProxy.Credentials = ConfigureAuthentication(True, reportWebServiceURL) remoteReportProxy.Credentials = ConfigureAuthentication(true, reportWebServiceURL);
7. Appelez la méthode AddFirewallProxySettings() (que vous allez créer dans les procédures suivantes) et transmettez-lui la valeur booléenne False, la chaîne URI d'un serveur proxy pare-feu et l'instance
RemoteReportProxy.
Remarque
Remplacez la chaîne URI par votre serveur proxy pare-feu.
myRemoteReportProxy = AddFirewallProxySettings(False, "<< http://firewallproxyserver:8080>>", myRemoteReportProxy) remoteReportProxy = AddFirewallProxySettings(false, "<< http://firewallproxyserver:8080>>", remoteReportProxy);
8. Renvoyez l'instance RemoteReportProxy à partir de la méthode.
Return myRemoteReportProxy return remoteReportProxy;
1.3.6.4.1.2.4 Codage de la méthode
ConfigureAuthentication()
Contexte
Dans cette section, vous allez apprendre à coder la méthode ConfigureAuthentication() et ainsi découvrir deux approches pour configurer l'authentification.
Dans la première approche, vous allez utiliser un nom d'utilisateur, un mot de passe et un nom de domaine spécifiques conformément aux autorisations utilisateur (droits d'accès) que vous avez ajoutées dans
Ajout de l'authentification NT à un service Web de rapports [page 93]
. La seconde approche est basée sur l'autorisation
NTLM.
Lorsqu'une valeur True Boolean est transmise à cette méthode, les références de connexion propres à l'utilisateur sont communiquées pour permettre l'accès aux services Web. La transmission d'une valeur Boolean
False entraîne l'appel du code des références de connexion NTLM pour accéder aux services Web.
La méthode ConfigureAuthentication() est appelée à partir de la méthode
GetReportWebServiceWithAuthentication().
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
97
Procédure
1. Au bas de la classe, créez la méthode d'assistance privée ConfigureAuthentication() qui renvoie l'interface ICredentials. Cette méthode fait appel à deux paramètres, une valeur booléenne nommée isUserSpecific et la chaîne reportWebServiceURL.
Private Function ConfigureAuthentication(ByVal isUserSpecific As
Boolean, ByVal reportWebServiceURL As String) As ICredentials
End Function
{
} private ICredentials ConfigureAuthentication(bool isUserSpecific, string reportWebServiceURL)
2. Dans la méthode, créez un bloc conditionnel qui teste le paramètre de méthode Boolean isUserSpecific.
If isUserSpecific Then
Else
End If
{
} if(isUserSpecific)
{
} else
3. Recueillez les informations suivantes : nom de domaine réseau, nom et mot de passe de l'utilisateur auquel vous avez accordé les droits d'accès au répertoire qui contient le service Web de rapports.
4. Dans le bloc If, déclarez et affectez les valeurs appropriées aux variables chaîne de nom d'utilisateur, de mot de passe et de domaine.
Dim userName As String = "fchen"
<NonSerialized()> Dim password As String = "1234"
Dim domain As String = "Enterprise" string userName = "fchen";
[NonSerialized()] string password = "1234"; string domain = "Enterprise";
5. Déclarez et instanciez la classe NetworkCredential et transmettez-lui les variables chaîne de nom d'utilisateur, de mot de passe et de domaine.
Dim myNetworkCredential As NetworkCredential = New
NetworkCredential(userName, password, domain)
NetworkCredential networkCredential = new
NetworkCredential(userName, password, domain);
6. Renvoyez l'instance NetworkCredential à partir du blocIf.
Dans le bloc Else, créez trois autres valeurs : un URI pour le service Web de rapports, une chaîne indiquant que le type d'authentification est NTLM et une instance NetworkCredential. Chacune de ces valeurs est transmise au cache des références de connexion.
Return myNetworkCredential
98
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
return networkCredential;
7. Dans le bloc Else, déclarez et instanciez la classe CredentialCache.
Dim myCredentialCache As CredentialCache = New CredentialCache()
CredentialCache credentialCache = new CredentialCache();
8. Déclarez et instanciez la classe Uri et transmettez-lui le paramètre reportWebServiceURL à partir de la méthode ConfigureAuthentication().
Dim myUri As Uri = New Uri(reportWebServiceURL)
Uri uri = new Uri(reportWebServiceURL);
9. Affectez la valeur "NTLM" à une variable chaîne nommée "ntlmAuthorization".
Dim ntlmAuthorization As String = "NTLM" string ntlmAuthorization = "NTLM";
10. Déclarez et instanciez la classe NetworkCredential.
Dim myNetworkCredential As NetworkCredential = New
NetworkCredential()
NetworkCredential networkCredential = new NetworkCredential();
11. Transmettez l'instance Uri, la chaîne ntlmAuthorization et l'instance NetworkCredential à la méthode Add() de l'instance CredentialCache.
myCredentialCache.Add(myUri, ntlmAuthorization, myNetworkCredential) credentialCache.Add(uri, ntlmAuthorization, networkCredential);
12. Renvoyez l'instance ICredentials à partir de la propriété DefaultCredentials de la classe
CredentialCache du bloc Else.
Return CredentialCache.DefaultCredentials
return CredentialCache.DefaultCredentials;
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
99
1.3.6.4.1.2.5 Codage de la méthode
AddFirewallProxySettings()
Contexte
Dans cette section, vous allez apprendre à coder la méthode AddFirewallProxySettings() avec l'instance
RemoteReportProxy en tant que paramètre. Vous apprendrez également à ajouter des paramètres proxy Web à l'instance RemoteReportProxy.
La méthode AddFirewallProxySettings() est appelée à partir de la méthode
GetReportWebServiceWithAuthentication().
Cette méthode ne s'exécute que lorsque vous avez besoin d'accéder au service Web de rapports par le biais d'un serveur proxy pare-feu.
Procédure
1. Au bas de la classe, créez la méthode d'assistance privée AddFirewallProxySettings() qui renvoie la classe RemoteReportProxy et transmettez-lui une variable booléenne, une variable chaîne et l'instance
RemoteReportProxy.
Private Function AddFirewallProxySettings(ByVal isFirewallProxy As
Boolean, ByVal webProxyURI As String, ByVal remoteReportProxy As
RemoteReportProxy) As RemoteReportProxy
End Function private RemoteReportProxy AddFirewallProxySettings(bool isFirewallProxy, string webProxyURI, RemoteReportProxy remoteReportProxy)
{
}
2. Dans la méthode, créez un bloc conditionnel qui teste la variable Boolean isFirewallProxy.
If isFirewallProxy Then
End If if(isFirewallProxy)
{
}
3. Dans le bloc conditionnel, déclarez et instanciez la classe WebProxy et transmettez-lui la chaîne webProxyURI et la valeur BooleanTrue.
Dim myWebProxy As WebProxy = New WebProxy(webProxyURI, True)
WebProxy webProxy = new WebProxy(webProxyURI, true);
4. Affectez l'instance WebProxy à la propriété Proxy de l'instance RemoteReportProxy qui a été transmise à la méthode en tant que paramètre.
100
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
myRemoteReportProxy.Proxy = myWebProxy remoteReportProxy.Proxy = webProxy;
5. En dehors du bloc conditionnel, renvoyez l'instance RemoteReportProxy.
Return myRemoteReportProxy return remoteReportProxy;
Résultats
Lorsqu'une valeur booléenne False est transmise au paramètre isFireWallProxy, les paramètres du proxy pare-feu ne sont pas ajoutés. Il est conseillé de tester cette version du projet avec la configuration d'authentification NT la plus simple et sans pare-feu entre le client test et le service Web.
Lorsque vous testez ce projet avec un pare-feu, placez l'application cliente en dehors du pare-feu, puis modifiez le paramètre booléen isFireWallProxy en lui attribuant la valeur True. Vous devez affecter au paramètre chaîne webProxyURI une valeur URI de proxy Web correcte et continuer à tester ce code via un pare-feu.
Informations associées
Connexion aux services Web de rapports à partir d'un site Web sécurisé [page 92]
1.3.6.4.1.3 Test du code d'authentification NT et des références de connexion NTLM
1.3.6.4.1.3.1 Vérification de l'authentification NT
Prérequis
Pour pouvoir tester le code, vous devez auparavant modifier le code de liaison de rapport dans la méthode
ConfigureCrystalReports().
● Dans la méthode ConfigureCrystalReports(), affectez à la propriété ReportSource du contrôle
CrystalReportViewer un appel à la méthode GetReportWebServiceWithAuthentication().
myCrystalReportViewer.ReportSource =
GetReportWebServiceWithAuthentication() crystalReportViewer.ReportSource =
GetReportWebServiceWithAuthentication();
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
101
Vous êtes maintenant prêt à tester le code d'authentification NT que vous avez ajouté au projet client de service
Web.
Contexte
Pour tester le code d'authentification NT du projet client de service Web
Procédure
1. Dans le menu
Générer
, sélectionnez
Générer la solution
.
2. Si vous rencontrez des erreurs lors de la génération, corrigez-les.
3. Dans le menu
Déboguer
, cliquez sur
Démarrer
.
L'application cliente se connecte au service Web et, si les nom d'utilisateur, mot de passe et nom de domaine sont corrects, le rapport s'affiche.
4. Revenez dans Visual Studio, puis cliquez sur
Arrêter
pour quitter le mode débogage.
Résultats
Vous venez de vous connecter au répertoire sécurisé à l'aide des références de connexion réseau propres à l'utilisateur. Vous allez maintenant apprendre à tester la connexion via les références de connexion NTLM.
Remarque
Pour configurer les paramètres du proxy pare-feu, vous pouvez modifier la valeur Boolean transmise à la méthode AddFirewallProxySettings() en tant que paramètre.
Informations associées
Fichiers serveur et authentification NT [page 103]
102
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.3.6.4.1.3.2 Pour tester les références de connexion NTLM du projet client de service Web
Procédure
1. Recherchez l'appel à la méthode ConfigureAuthentication() dans la méthode
GetReportWebServiceWithAuthentication().
2. Dans l'appel à la méthode ConfigureAuthentication(), remplacez la valeur booléenne True du premier paramètre par False.
3. Dans le menu
Générer
, sélectionnez
Générer la solution
.
4. Dans le menu Déboguer, cliquez sur Démarrer.
5. L'application cliente se connecte au service Web à l'aide de l'authentification NTLM.
6. Revenez dans Visual Studio, puis cliquez sur Arrêter pour quitter le mode débogage.
Résultats
Vous êtes maintenant capable de vous connecter depuis votre client de services Web à un service Web de rapports situé dans un répertoire sécurisé. Pour cela, vous avez configuré des valeurs dans l'instance
RemoteReportProxy, puis transmis cette instance à la propriété ReportSource du contrôle
CrystalReportViewer.
1.3.6.4.2 Fichiers serveur et authentification NT
Vous pouvez utiliser les fichiers serveur pour vous connecter facilement aux rapports stockés sur un ordinateur distant.
Toutefois, si le répertoire virtuel qui fournit les rapports stockés dans les fichiers serveur est protégé par un mécanisme d'authentification NT, vous devez ajouter du code à l'application cliente pour désigner ces rapports et fournir les références de connexion réseau nécessaires.
Informations associées
Configuration des fichiers serveur dans les services Crystal [page 85]
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
103
1.3.6.4.2.1 Création d'un projet pour désigner un répertoire de fichiers serveur non sécurisé
Prérequis
Pour créer un projet qui désigne un répertoire non sécurisé, les fichiers serveur doivent être configurés pour la version de Visual Studio dont vous disposez.
Suivez les instructions de la section appropriée et notez le chemin d'accès au répertoire de vos rapports (vous en aurez besoin pour les procédures suivantes) :
●
Configuration des fichiers serveur dans Visual Studio .NET 2003 [page 85]
●
Configuration des fichiers serveur dans Visual Studio 2005 et les versions plus récentes [page 88]
Accédez au répertoire de rapports de votre projet et identifiez le nom d'un rapport que vous voulez visualiser via les fichiers serveur.
Dans les étapes suivantes, le rapport utilisé en exemple s'appelle Hierarchical Grouping.rpt.
Remarque
.
Contexte
Dans cette section, vous allez apprendre à définir les références de connexion réseau dont vous avez besoin.
Vous allez commencer par créer une application cliente qui accède aux rapports stockés dans les fichiers serveur et qui autorise un accès non sécurisé au répertoire de services Web. Après avoir vérifié que votre application cliente fonctionne, vous pourrez sécuriser l'accès au répertoire virtuel, puis ajouter du code à l'application cliente pour fournir les références de connexion nécessaires à l'authentification NT.
Pour créer une application cliente afin d'accéder aux rapports des fichiers serveur :
Procédure
1. Ouvrez le Web Form ou Windows Form.
2. Dans le menu
Affichage
, cliquez sur
Code
.
3. Localisez la méthode ConfigureCrystalReports() que vous avez créée dans la section
Configuration d'un projet [page 15] .
4. Dans la méthode, déclarez et instanciez la classe ServerFileReport.
Dim myServerFileReport As ServerFileReport = New ServerFileReport()
104
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
ServerFileReport serverFileReport = new ServerFileReport();
5. Affectez à la propriété ReportPath de l'instance ServerFileReport le nom du rapport que vous voulez afficher à partir du répertoire de rapports.
Remarque
Il s'agit du répertoire que vous avez configuré pour les rapports de fichiers serveur dans le fichier
Web.config.
Lorsque vous avez configuré le répertoire virtuel des visualiseurs, vous avez testé le paramètre wsdl en entrant l'URL du service Web ServerFileReportServer.asmx à partir du chemin d'accès du répertoire virtuel.
Dans l'étape suivante, vous allez saisir cette URL en tant que valeur dans le code.
L'exemple de code ci-dessous utilise le rapport Hierarchical Grouping, qui figure dans le sous-répertoire
Feature Examples du dossier des exemples de rapports. Veillez à saisir le nom du sous-répertoire, suivi d'une barre oblique inverse.
myServerFileReport.ReportPath = "Feature Examples\Hierarchical
Grouping.rpt" serverFileReport.ReportPath = "Feature Examples\\Hierarchical
Grouping.rpt";
6. Localisez la version correcte de l'URL du service Web ServerFileReportService.asmx en fonction de votre version de SAP Crystal Reports.
Si vous disposez de SAP Crystal Reports, version développeur pour Microsoft Visual Studio, cet emplacement correspond au répertoire virtuel du visualiseur de la version installée de SAP Crystal Reports.
Si vous avez installé SAP Crystal Reports, mais pas SAP Crystal Reports, version développeur pour Microsoft
.
7. Affectez cette URL de service Web à la propriété WebService de l'instance ServerFileReport.
myServerFileReport.WebServiceUrl =
"http://localhost/CrystalReportsWebServices/ServerFileReportService.asmx" serverFileReport.WebServiceUrl =
"http://localhost/CrystalReportsWebServices/ServerFileReport.asmx";
L'instance ServerFileReport est maintenant configurée et prête à être transmise au contrôle
CrystalReportViewer.
8. Affectez l'instance de ServerFileReport à la propriété ReportSource du contrôle
CrystalReportViewer.
myCrystalReportViewer.ReportSource = myServerFileReport crystalReportViewer.ReportSource = serverFileReport;
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
105
Informations associées
Répertoire des visualiseurs [page 14]
1.3.6.4.2.2 Reconfiguration des fichiers serveur pour désigner un répertoire sécurisé
Dans cette section, vous allez apprendre à reconfigurer le répertoire et l'application cliente pour désigner un répertoire sécurisé.
Vous allez commencer par désactiver l'accès anonyme au répertoire virtuel des visualiseurs dans IIS (Internet
Information Services).
1.3.6.4.2.2.1 Pour désactiver l'accès anonyme au répertoire virtuel des visualiseurs dans IIS
Procédure
1. Dans le
Panneau de configuration
, cliquez deux fois sur
Outils d'administration
, puis sur
Gestionnaire des services Internet
.
2. Dans la fenêtre
Services Internet (IIS)
, développez les nœuds supérieurs, puis le nœud
Site Web par défaut
.
3. Localisez le répertoire virtuel voulu, cliquez dessus avec le bouton droit de la souris, puis sélectionnez
Propriétés
.
4. Dans la boîte de dialogue
Propriétés
, dans l'onglet
Sécurité de répertoire
, cliquez sur
Modifier
.
5. Désactivez la case à cocher
Accès anonyme
, puis cliquez sur
OK
.
6. Cliquez sur
OK
pour fermer la boîte de dialogue
Propriétés
.
7. Fermez la fenêtre
Services Internet (IIS)
.
Résultats
Vous allez ensuite ajouter une balise <identity> dans le fichier Web.config.
Remarque
Il s'agit du fichier Web.config que vous avez modifié précédemment lors de la procédure de configuration des fichiers serveur.
106
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Informations associées
Répertoire des visualiseurs [page 14]
1.3.6.4.2.2.2 Pour ajouter la balise <identity> au fichier
Web.config
Procédure
1. Rouvrez le fichier Web.config dans le répertoire virtuel des visualiseurs.
Remarque
Il existe deux fichiers Web.config, l'un dans le répertoire virtuel des visualiseurs, l'autre dans votre application Web locale. Vous devez ajouter la balise d'identité au fichier Web.config situé dans le répertoire virtuel du visualiseur. En effet, cette balise est requise lorsque l'accès anonyme à un répertoire virtuel a été désactivé.
2. Dans la balise <system.web>, au début, saisissez la balise <identity> comme indiqué ci-après.
<identity impersonate='true' />
3. Enregistrez le fichier Web.config.
4. Si vous avez également désactivé l'accès anonyme au répertoire virtuel de votre projet Web client, ajoutez
également la balise <identity> au fichier Web.config de votre projet Web client.
Étapes suivantes
Vous allez ensuite modifier le projet Web ou Windows client pour accéder au service Web de rapports sécurisé via l'authentification NT.
Informations associées
Répertoire des visualiseurs [page 14]
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
107
1.3.6.4.2.2.3 Pour modifier le projet client de sorte qu'il désigne le répertoire virtuel sécurisé des visualiseurs
Procédure
1. Ouvrez le projet Web ou Windows client dans Visual Studio.
2. Cliquez avec le bouton droit de la souris sur le dossier
Références
, puis sélectionnez
Ajouter une référence
.
3. Dans la boîte de dialogue
Ajouter une référence
, dans l'onglet .NET, cliquez sur les deux assemblys suivants tout en maintenant la touche CTRL enfoncée pour les sélectionner :
○ CrystalDecisions.ReportSource
○ System.Web.Services
4. Cliquez sur
Sélectionner
sur le côté droit de la boîte de dialogue.
5. Vérifiez que les deux assemblys ont bien été ajoutés dans le panneau
Composants sélectionnés
, puis cliquez sur OK.
6. Dans l'
Explorateur de solutions
, cliquez avec le bouton droit de la souris sur le nom du projet affiché en gras, sélectionnez
Ajouter
, puis cliquez sur
Ajouter une classe
.
7. Dans le champ
Nom
, saisissez le nom de classe "NTServerFileRemoteReportSource", puis cliquez sur
Ajouter
.
8. Au-dessus de la signature de classe, ajoutez une déclaration "Imports" [Visual Basic] ou "using" [C#] au début de la classe pour les trois espaces de noms suivants.
Imports CrystalDecisions.Shared
Imports CrystalDecisions.ReportSource
Imports System.Net
using CrystalDecisions.Shared; using CrystalDecisions.ReportSource; using System.Net;
9. Modifiez la signature de classe NTServerFileRemoteReportSource pour étendre la classe
RemoteReportSource.
Public Class NTServerFileRemoteReportSource : Inherits RemoteReportSource
End Class public class NTServerFileRemoteReportSource : RemoteReportSource
{
}
La classe de base RemoteReportSource ne contenant aucun constructeur sans argument, vous devez créer un constructeur avec arguments pour remplacer celui de la classe de base RemoteReportSource.
10. Si vous codez votre projet en C#, supprimez le constructeur par défaut créé dans cette classe.
11. Créez un constructeur qui contient un paramètre de méthode de ServerFileReport, puis appelez le constructeur de la classe de base en transmettant le paramètre de rapport ainsi que la valeur booléenne
False.
Public Sub New(ByVal report As ServerFileReport)
MyBase.New(report, False)
108
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
End Sub
{
} public NTServerFileRemoteReportSource(ServerFileReport report) : base(report, false)
12. Dans le constructeur, affectez la propriété statique DefaultCredentials de la classe CredentialCache à la propriété Credentials de la propriété m_proxy de la classe de base.
MyBase.m_proxy.Credentials = CredentialCache.DefaultCredentials
base.m_proxy.Credentials = CredentialCache.DefaultCredentials;
13. Dans le menu Fichier, cliquez sur Enregistrer tout.
Résultats
Vous pouvez maintenant modifier la classe code-behind du Web Form ou du Windows Form.
1.3.6.4.2.2.4 Pour modifier la classe code-behind de sorte qu'elle désigne la source de rapport distant
Procédure
1. Revenez au Web Form ou Windows Form d'origine.
2. Dans le menu
Affichage
, cliquez sur
Code
.
3. Dans la méthode ConfigureCrystalReports(), ajoutez une nouvelle ligne entre le paramètre de la propriété serverFileReport.WebServiceUrl et celui de la propriété ReportSource du contrôle
CrystalReportViewer. Dans cette ligne, déclarez et instanciez la nouvelle classe étendue que vous avez créée, puis transmettez l'instance ServerFileReport en tant que paramètre de méthode.
Dim myNTServerFileRemoteReportSource As NTServerFileRemoteReportSource = New
NTServerFileRemoteReportSource(myServerFileReport)
NTServerFileRemoteReportSource ntServerFileRRS = new
NTServerFileRemoteReportSource(serverFileReport);
4. Modifiez la dernière ligne de code de cette méthode de la manière suivante : remplacez l'instance
ServerFileReport affectée à la propriété ReportSource du contrôle CrystalReportViewer par la nouvelle instance NTServerFileRemoteReportSource.
myCrystalReportViewer.ReportSource = myNTServerFileRemoteReportSource crystalReportViewer.ReportSource = ntServerFileRRS;
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
109
Résultats
Vous êtes maintenant prêt à tester l'application cliente qui a été modifiée pour transmettre les références de connexion nécessaires à partir d'une source de rapport distant. Cette application désigne le service de rapports des fichiers serveur par l'intermédiaire du répertoire virtuel des visualiseurs, qui nécessite désormais une authentification NT.
1.3.6.4.2.2.5 Pour tester la source de rapport distant à l'aide des références de connexion qui désignent le répertoire virtuel sécurisé des visualiseurs
Procédure
1. Dans le menu
Générer
, sélectionnez
Générer la solution
.
2. Dans le menu
Déboguer
, cliquez sur
Démarrer
.
L'application cliente se connecte au répertoire virtuel sécurisé des visualiseurs, et, si la nouvelle instance
NTServerFileRemoteReportSource a été configurée avec les références de connexion correctes, le rapport s'affiche.
3. Revenez dans Visual Studio, puis cliquez sur
Arrêter
pour quitter le mode débogage.
1.3.7 Considérations de sécurité
Les scénarios suivants doivent être pris en compte lors de la conception d'une application sécurisée
Stockage des données dans la mémoire cache frontale
Les rapports visualisés dans un navigateur Web peuvent contenir des données sensibles qu'un navigateur Web est susceptible de mettre en cache. Consultez la documentation Microsoft pour savoir comment désactiver la mise en cache pour différents navigateurs.
Protection du fichier de rapport
Les fichiers SAP Crystal Reports .rpt doivent contenir des données professionnelles sensibles. Il est recommandé de protéger l'accès à vos rapports en les gérant avec le serveur de la plateforme SAP BusinessObjects Business
Intelligence, en utilisant la sécurité de fichier ou le cryptage au niveau du système d'exploitation.
110
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Validation d'entrée utilisateur avec champs de paramètre
Les champs de paramètre invitent l'utilisateur à fournir les informations utilisées pour le traitement d'un rapport.
La boîte de dialogue d'invite valide les données mais des étapes supplémentaires permettent de s'assurer que les valeurs attendues sont fournies :
1. Utilisez le texte de l'invite pour décrire le type de données attendues.
2. Indiquez une valeur minimale et une valeur maximale pour limiter la plage de nombres à saisir pour les données numériques.
3. Utilisez un masque d'édition pour demander les données dans un format spécifique.
4. Construisez votre propre boîte de dialogue d'invite. Le SDK de SAP Crystal Reports .NET fournit de nombreuses API pouvant être utilisées pour construire votre propre boîte de dialogue d'invite. En créant votre propre boîte de dialogue d'invite, vous contrôlez totalement la manière dont l'utilisateur fournit les champs de paramètre.
Utilisation du contrôle d'impression ActiveX pour imprimer les rapports depuis le visualiseur Web Form .NET
Le visualiseur Web Form .NET SAP Crystal Reports vous permet d'imprimer le rapport sous format PDF ou en utilisant un contrôle d'impression ActiveX. Le format PDF est l'option par défaut recommandée pour l'impression d'un rapport. Le contrôle d'impression ActiveX est fourni comme solution alternative permettant une impression en un seul clic. Cette option n'est pas recommandée car elle requiert des droits d'administrateur pour être installée. Le contrôle d'impression ActiveX est en outre utilisé dans un navigateur Web, le bit d'arrêt n'est donc pas défini, ce qui est considéré comme étant moins sûr.
Construction d'une application pour visualiser les rapports dans la plateforme
SAP BusinessObjects Business Intelligence
Vous pouvez utiliser SAP Crystal Reports, version développeur pour Microsoft Visual Studio pour créer des applications destinées à visualiser les rapports stockés dans un système de plateforme SAP BusinessObjects
Business Intelligence. Il est nécessaire de prendre en compte les impacts en termes de sécurité lors de la création d'applications destinées à visualiser les rapports stockés dans un système de plateforme SAP BusinessObjects
Business Intelligence. Pour en savoir plus, voir le Guide d'administration de la plateforme SAP BusinessObjects
Business Intelligence.
Informations associées
Filtrage de données avec des paramètres ou des formules [page 134]
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
111
1.4 Utilisation du SDK
Cette section fournit des instructions détaillées sur l'utilisation de fonctionnalités spécifiques du SDK
SAP Crystal Reports .Net.
1.4.1 Impression d'un rapport
Le SDK SAP Crystal Reports .NET permet de créer des applications Windows ou des sites Web pouvant s'imprimer sur l'imprimante d'un utilisateur final ou sur une imprimante configurée sur votre serveur Web.
La manière la plus simple d'ajouter des fonctionnalités d'impression à votre application SAP Crystal Reports .NET est d'utiliser le bouton d'impression du contrôle CrystalReportViewer. Lorsque les utilisateurs cliquent sur le bouton d'impression de la barre d'outils, la boîte de dialogue d'impression standard du système s'affiche. Les paramètres d'impression personnalisée peuvent être spécifiés par le biais de cette boîte de dialogue.
Le SDK SAP Crystal Reports .NET permet de configurer des options d'impression et d'appeler une imprimante depuis le code, plutôt que depuis l'interface utilisateur de SAP Crystal Reports. Utilisez la classe PrintOptions et la méthode PrintToPrinter du modèle d'objet ReportDocument.
Classes utilisées pour l'impression de rapports
● CrystalDecisions.CrystalReports.Engine.ReportDocument
Représente un rapport et contient les propriétés et les méthodes permettant de définir, mettre en forme, charger, exporter et imprimer ce rapport.
● CrystalDecisions.CrystalReports.Engine.PrintOptions
Indique les propriétés et les méthodes permettant de définir les options d'impression d'un rapport.
● CrystalDecisions.Windows.Forms.CrystalReportViewer
Représente le contrôle CrystalReportViewer dans un Windows Form. Le contrôle CrystalReportViewer permet d'imprimer des rapports via l'interface utilisateur.
● CrystalDecisions.Web.CrystalReportViewer
Fournit des propriétés, des méthodes et des événements permettant de modifier ou d'extraire les informations sur la manière dont fonctionne et s'affiche le contrôle CrystalReportViewer. Le contrôle
CrystalReportViewer permet d'imprimer des rapports via l'interface utilisateur.
Informations associées
Exportation d'un rapport [page 121]
112
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.4.1.1 Impression d'un rapport depuis le contrôle
CrystalReportViewer
La manière la plus simple d'ajouter des fonctionnalités d'impression à votre application SAP Crystal Reports .NET est d'utiliser le bouton d'impression du contrôle CrystalReportViewer. Le bouton d'impression est activé par défaut sur la barre d'outils CrystalReportViewer.
Il existe deux contrôles CrystalReportViewer dans le SDK SAP Crystal Reports .NET. Pour un site Web, vous utiliserez la classe CrystalDecisions.Web.CrystalReportViewer. Pour une application Windows, vous utiliserez la classe CrystalDecisions.Windows.Forms.CrystalReportViewer.
Impression à l'aide de la classe
CrystalDecisions.Windows.Forms.CrystalReportViewer
Lorsque vous cliquez sur le bouton d'impression de la barre d'outils CrystalReportViewer dans une application
Windows, la boîte de dialogue d'impression Windows standard s'affiche. Vous pouvez invoquer par programmation la boîte de dialogue d'impression via la méthode CrystalReportViewer.PrintReport.
Le bouton d'impression peut être désactivé dans une application Windows en définissant la propriété
CrystalReportViewer.ShowPrintButton sur False.
Impression à l'aide de la classe CrystalDecisions.Web.CrystalReportViewer
Le contrôle CrystalReportViewer pour les sites Web prend en charge deux méthodes d'impression : PDF et
ActiveX.
L'impression PDF est le paramètre par défaut pour un site Web. Lorsque vous cliquez sur le bouton d'impression de la barre d'outils CrystalReportViewer dans un site Web, la boîte de dialogue
Options d'impression
s'affiche.
Saisissez une option d'impression personnalisée et cliquez sur
OK
. SAP Crystal Reports ouvre une nouvelle fenêtre avec un PDF de votre rapport. Imprimez le PDF sur votre imprimante locale.
Si l'impression ActiveX est activée, la boîte de dialogue d'impression Windows standard s'affiche lorsque vous cliquez sur le bouton d'impression. L'impression ActiveX requiert une configuration supplémentaire et
éventuellement l'installation du plug-in ActiveX PrintControl.cab sur l'ordinateur client.
Le bouton d'impression peut être désactivé sur un site Web en définissant la propriété
CrystalReportViewer.HasPrintButton sur False.
Informations associées
Impression d'un rapport par programmation [page 116]
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
113
1.4.1.1.1 Suppression du bouton d'impression depuis le contrôle CrystalReportViewer
Contexte
Vous pourrez continuer à utiliser le SDK pour imprimer un rapport, même si le bouton d'impression n'est pas visible.
Procédure
1. Ajoutez un contrôle CrystalReportViewer à votre application.
2. Définissez la propriété qui contrôle la visibilité du bouton d'impression sur False.
○ Pour une application Windows, définissez la propriété CrystalReportViewer.ShowPrintButton sur
False.
○ Pour un site Web, définissez la propriété CrystalReportViewer.HasPrintButton sur False.
Résultats
Lorsque vous exécuterez votre application, le bouton d'impression ne devrait plus apparaître sur le contrôle
CrystalReportViewer.
Exemple
Désactivation du bouton Imprimer dans une application Windows
Private Sub ConfigureCrystalReports()
CrystalReportViewer1.ShowPrintButton = False
End Sub private void ConfigureCrystalReports()
{
InitializeComponent();
crystalReportViewer1.ShowPrintButton = false;
}
Informations associées
Impression d'un rapport [page 112]
114
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.4.1.1.2 Impression d'un rapport avec la méthode
CrystalReportViewer.PrintReport
Prérequis
Assurez-vous qu'une imprimante a été configurée sur l'ordinateur client avant d'essayer d'imprimer.
Contexte
Vous pouvez invoquer par programmation la boîte de dialogue d'impression via la méthode
CrystalReportViewer.PrintReport dans une application Windows. Utilisez cette méthode pour imprimer lorsque la barre d'outils CrystalReportViewer est masquée ou dans une application qui utilise des boutons de barre d'outils personnalisés.
Procédure
1. Ajoutez un contrôle CrystalReportViewer à votre Windows Form.
2. Configurez une source de rapport valide et liez-la au contrôle CrystalReportViewer.
3. Appelez la méthode PrintReport pour invoquer la boîte de dialogue d'impression par défaut.
Exemple
Private Sub PrintReport()
CrystalReportViewer.PrintReport()
End Sub private void PrintReport()
{
crystalReportViewer.PrintReport();
}
1.4.1.1.3 Activation de l'impression ActiveX dans un site
Web
Contexte
Si l'impression ActiveX est activée, la boîte de dialogue d'impression standard du système s'affiche lorsque l'utilisateur clique sur le bouton d'impression. L'impression ActiveX requiert une configuration supplémentaire et
éventuellement l'installation du plug-in ActiveX PrintControl.cab sur l'ordinateur client.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
115
Procédure
1. Ajoutez un contrôle CrystalReportViewer à votre application.
2. Définissez la propriété de mode d'impression du contrôle CrystalReportViewer sur ActiveX.
CrystalReportViewer1.PrintMode = PrintMode.ActiveX
CrystalReportViewer1.PrintMode = PrintMode.ActiveX;
3. Dans votre fichier Web.Config, ajoutez une référence au contrôle ActiveX PrintControl.cab.
<configSections>
<section group name="businessObjects">
<sectionGroup name="crystalReports">
<section name="printControl" type="System.Configuration.NameValueSectionHandler" />
</sectionGroup>
</sectionGroup>
</configSections>
<businessObjects>
<crystalReports>
<printControl>
<add key="url" value="http://localhost/PrintControl.cab" />
</printControl>
</crystalReports>
</businessObjects>
Remplacez "localhost" par l'adresse de votre serveur Web.
L'élément printControl vous permet d'imprimer le rapport directement sur votre imprimante locale. Par défaut, ce contrôle n'est pas installé sur votre ordinateur local et doit être téléchargé séparément. Ce paramètre rend le fichier .cab visible par votre site Web SAP Crystal Reports .NET.
Résultats
Le contrôle CrystalReportViewer doit à présent utiliser la boîte de dialogue d'impression Windows au lieu de l'impression PDF. La première fois qu'un utilisateur essaie d'imprimer depuis le site Web SAP Crystal Reports, il se peut qu'il soit invité à installer le plug-in ActiveX PrintControl.cab.
Informations associées
Configuration du fichier Web.Config [page 20]
1.4.1.2 Impression d'un rapport par programmation
Vous pouvez configurer des options d'impression et appeler une imprimante par programmation. Pour ce faire, utilisez la classe PrintOptions et la méthode PrintToPrinter du modèle d'objet ReportDocument.
116
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Si le bouton
Imprimer
de la barre d'outils du contrôle CrystalReportViewer répond à vos besoins d'impression, il est inutile d'écrire un code pour configurer des options d'impression supplémentaires.
Toutefois, pour des scénarios particuliers, vous pouvez avoir recours à une solution basée sur du code pour l'impression des rapports :
● Vous pouvez contrôler le moment, l'emplacement et la configuration de votre impression. Désactivez le bouton
Imprimer
de la barre d'outils du contrôle CrystalReportViewer et gérez toutes les impressions via le code.
● Vous pouvez imprimer un rapport en arrière-plan, sans l'afficher. Les paramètres d'impression sont accessibles via la classe ReportDocument, qui peut être instanciée et configurée sans jamais afficher le rapport avec un contrôle CrystalReportViewer.
● Vous pouvez centraliser toutes les impressions sur le serveur Web pour un client Web. Utilisez la méthode
PrintToPrinter() pour envoyer des tâches d'impression à une imprimante connectée au serveur Web plutôt qu'à une imprimante locale connectée au client Web.
Remarque
L'impression par programmation à l'aide du modèle d'objet ReportDocument est moins complète que la structure de planification des rapports fournie avec SAP Crystal Reports Server ou la plateforme SAP
BusinessObjects Business Intelligence.
Impression par programmation depuis une application Web
Si vous utilisez la méthode ReportDocument.PrintToPrinter dans une application Web, le rapport est imprimé depuis le serveur Web et non depuis l'ordinateur client. Toute l'impression côté client utilise le contrôle
CrystalReportViewer.
Informations associées
Impression d'un rapport depuis le contrôle CrystalReportViewer [page 113]
1.4.1.2.1 Définition des options d'impression personnalisée avec le modèle d'objet ReportDocument
La classe PrintOptions permet de spécifier des paramètres supplémentaires avant l'impression d'un rapport par programmation. La classe PrintOptions permet d'effectuer les opérations suivantes :
● Changer la source de papier actuelle.
● Déterminer la hauteur ou la largeur de la sortie imprimée.
● Régler les marges de page.
● Forcer l'impression duplex ou simplex.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
117
● Changer l'imprimante par défaut.
Pour modifier les options d'impression d'un rapport, vous devez extraire un objet PrintOptions via la propriété
PrintOptions de la classe ReportDocument.
Copie des options d'impression
Les options d'impression peuvent être copiées depuis ou vers les paramètres par défaut de votre système local à l'aide des méthodes PrintOptions.CopyFrom ou PrintOptions.CopyTo.
Pour en savoir plus sur la classe PrintOptions, voir la Référence de l'API .NET SAP Crystal Reports.
Exemple
Forcer l'impression duplex
Cet exemple définit le mode d'impression par défaut sur Duplex.
Private Sub enableDuplex(ByVal rd As ReportDocument)
rd.PrintOptions.PrinterDuplex = PrinterDuplex.Vertical
End Sub private void enableDuplex(ReportDocument rd)
{
rd.PrintOptions.PrinterDuplex = PrinterDuplex.Vertical;
}
1.4.1.2.2 Impression d'un rapport sur l'imprimante par défaut
Contexte
La méthode ReportDocument.PrintToPrinter envoie un rapport à l'imprimante par défaut spécifiée dans le fichier du rapport. Pour envoyer le rapport sur l'imprimante par défaut spécifiée sur l'ordinateur client, vous devez définir la propriété PrintOptions.PrinterName avant d'imprimer le rapport.
Procédure
1. Créez une instance de la classe PrintDocument.
L'imprimante par défaut de l'ordinateur client est spécifiée dans la propriété
PrinterSettings.PrinterName de toute nouvelle classe PrintDocument.
Dim localPrinter As System.Drawing.Printing.PrintDocument = New PrintDocument()
118
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
System.Drawing.Printing.PrintDocument localPrinter = new PrintDocument();
2. Définissez la propriété PrinterName de l'objet ReportDocument sur la valeur spécifiée dans
PrinterSettings.PrinterName.
rd.PrintOptions.PrinterName = localPrinter.PrinterSettings.PrinterName
rd.PrintOptions.PrinterName = localPrinter.PrinterSettings.PrinterName;
3. Appelez la méthode ReportDocument.PrintToPrinter pour imprimer le rapport.
rd.PrintToPrinter(1, False, 0, 0) rd.PrintToPrinter(1, false, 0, 0);
Cette méthode PrintToPrinter utilise quatre paramètres : le nombre de copies à imprimer, si les pages doivent être assemblées ou non, la page de début et la page de fin.
Conseil
Pour imprimer toutes les pages, définissez les paramètres de page de début et de page de fin sur zéro.
Exemple
Private Sub printReport(ByVal rd As ReportDocument)
Dim localPrinter As System.Drawing.Printing.PrintDocument = New
PrintDocument()
rd.PrintOptions.PrinterName = localPrinter.PrinterSettings.PrinterName
rd.PrintToPrinter(1, False, 0, 0)
End Sub private void printReport(ReportDocument rd) {
System.Drawing.Printing.PrintDocument localPrinter = new PrintDocument();
rd.PrintOptions.PrinterName = localPrinter.PrinterSettings.PrinterName;
rd.PrintToPrinter(1, false, 0, 0);
}
1.4.1.2.3 Impression d'un rapport sur un fichier
Contexte
Vous pouvez imprimer un rapport sur un fichier de votre système local en modifiant les propriétés
PrinterSettings par défaut et en appelant la méthode ReportDocument.PrintToPrinter. Pour enregistrer un rapport sur un disque en vue de l'afficher ultérieurement ou pour enregistrer un rapport dans un format différent, exportez-le au lieu de l'imprimer sur un fichier.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
119
Procédure
1. Créez une instance des classes PrinterSettings et PageSettings.
Dim printerSettings As New PrinterSettings()
Dim pageSettings As New PageSettings()
PrinterSettings printerSettings = new PrinterSettings();
PageSettings pageSettings = new PageSettings();
2. Copiez les paramètres de l'objet ReportDocument vers les objets PrinterSettings et PageSettings.
rd.PrintOptions.CopyTo(printerSettings, pageSettings) rd.PrintOptions.CopyTo(printerSettings, pageSettings);
3. Définissez la propriété PrintToFile de l'objet PrinterSettings sur la valeur True.
printerSettings.PrintToFile = True printerSettings.PrintToFile = true;
4. Définissez l'emplacement du fichier de sortie.
printerSettings.PrintFileName = "c:\outputFile.prn" printerSettings.PrintFileName = "c:\\outputFile.prn";
Remarque
Lors d'une impression sur un fichier, le format du fichier de sortie est déterminé par l'imprimante. Il se peut que votre imprimante crée des fichiers XPS, PS ou d'un autre format. Consultez le manuel du fabricant pour plus d'informations.
5. Appelez la méthode ReportDocument.PrintToPrinter pour imprimer le rapport.
Cette méthode PrintToPrinter utilise trois paramètres : les options d'impression, les paramètres de page et une valeur booléenne qui indique si le rapport doit être remis en forme pour correspondre aux paramètres de page.
rd.PrintToPrinter(printerSettings, pageSettings, False) rd.PrintToPrinter(printerSettings, pageSettings, false);
Exemple
Private Sub printToFile(ByVal rd As ReportDocument)
Dim printerSettings As New PrinterSettings()
Dim pageSettings As New PageSettings()
rd.PrintOptions.CopyTo(printerSettings, pageSettings)
printerSettings.PrintToFile = True
printerSettings.PrintFileName = "c:\outputFile.prn"
rd.PrintToPrinter(printerSettings, pageSettings, False)
End Sub
120
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
private void printToFile(ReportDocument rd)
{
PrinterSettings printerSettings = new PrinterSettings();
PageSettings pageSettings = new PageSettings();
rd.PrintOptions.CopyTo(printerSettings, pageSettings);
printerSettings.PrintToFile = true;
printerSettings.PrintFileName = "c:\\outputFile.prn";
rd.PrintToPrinter(printerSettings, pageSettings, false);
}
Informations associées
Exportation d'un rapport [page 121]
1.4.1.3 Suppression du pilote de l'imprimante par défaut de votre rapport
Procédure
1. Dans l'
Explorateur de solutions
, cliquez deux fois sur le rapport.
2. Cliquez avec le bouton droit de la souris sur une zone quelconque du rapport et sélectionnez
Concepteur
Configuration de l'imprimante
.
3. Dans la boîte de dialogue
Configuration de l'impression
, activez la case à cocher
Aucune imprimante
, puis cliquez sur
OK
.
4. Cliquez sur
Fichier Tout enregistrer
.
Informations associées
Sélection de l'option Aucune imprimante sous Configuration de l'impression [page 74]
1.4.2 Exportation d'un rapport
SAP Crystal Reports permet d'exporter des rapports vers différents formats. Les formats disponibles dépendent de la version de SAP Crystal Reports que vous avez installée et de la méthode utilisée pour exporter le rapport.
Un rapport peut être exporté vers un disque, une fenêtre de navigateur ou vers le flux d'entrée/de sortie sous forme de séquence d'octets.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
121
Classes utilisées pour l'exportation de rapports
● CrystalDecisions.CrystalReports.Engine.ReportDocument
Représente un rapport et contient les propriétés et les méthodes permettant de définir, mettre en forme, charger, exporter et imprimer ce rapport.
● CrystalDecisions.Shared
Contient plusieurs classes utilisées pour spécifier les options d'exportation de différents formats de sortie.
● CrystalDecisions.Shared.ExportOptions
Indique les propriétés permettant d'extraire et de définir des options pour l'exportation de votre rapport.
Informations associées
Impression d'un rapport [page 112]
Boîte de dialogue Exportation [page 881]
1.4.2.1 Formats d'exportation disponibles
Les formats d'exportation pris en charge par SAP Crystal Reports peuvent être classés en deux groupes : les formats basés sur les pages et les formats basés sur les enregistrements. Les formats d'exportation sont davantage axés sur la charte graphique et produisent donc généralement un résultat proche de la mise en page et de la mise en forme de l'original. Les formats d'exportation d'enregistrements sont axés sur la représentation exacte des données plutôt que sur la mise en page et la mise en forme.
Mise en forme
SAP Crystal Reports (RPT)
SAP Crystal Reports Read-Only (RPTR)
Description
L'exportation vers le format SAP Crystal Reports s'apparente
à l'utilisation de la fonctionnalité
Enregistrer sous
avec l'option
Enregistrer les données avec le rapport
sélectionnée.
Ce format exporte (enregistre) le rapport avec les données en cours sans modifier le rapport d'origine. Si une source de rapport est un fichier SAP Crystal Reports Read-Only
(RPTR), vous ne pourrez pas l'exporter vers
SAP Crystal Reports (RPT).
Ce format exporte (enregistre) le rapport avec les données en cours sans modifier le rapport d'origine. Les rapports
RPTR sont des rapports Crystal qui peuvent être visualisés avec des applications de visualiseur de rapport, mais qui ne peuvent pas être modifiés avec le SDK ni ouverts par des applications de concepteur de rapports. La définition d'un rapport RPTR ne peut pas être modifiée, ce qui signifie qu'il n'est pas possible d'utiliser ce SDK pour définir l'emplacement de la source de données d'un RPTR via le contrôleur de base de données. Il est toutefois possible d'actualiser les données d'un rapport RPTR lors de l'exécution en actualisant le rapport dans un visualiseur.
122
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Mise en forme
HTML 4.0
Microsoft Excel (97-2003)
Microsoft Excel (97-2003) Données uniquement
Microsoft Excel 2007 (XLSX) Données uniquement
Microsoft Word (97-2003)
Microsoft Word (97-2003) - Modifiable
Description
Exporte le rapport au format HTML 4.0. Ce format conserve la mise en page et la mise en forme du rapport en utilisant le
DHTML.
Ce format convertit le contenu de votre rapport en cellules
Excel page par page. Le contenu de plusieurs pages est exporté vers la même feuille de calcul Excel. Si une feuille de calcul est pleine et qu'il reste des données à exporter, le programme d'exportation crée plusieurs feuilles de calcul pour intégrer ces données. Si un objet de rapport couvre plusieurs cellules, le programme d'exportation fusionne les cellules pour le représenter. Microsoft Excel est limité à
256 colonnes par feuille de calcul ; par conséquent, tout objet de rapport (ou partie de cet objet) ajouté à des cellules audelà des 256 colonnes ne peut être exporté. Ce format d'exportation conserve la plupart de la mise en forme, mais n'exporte pas les objets ligne et objets cadre du rapport.
Comme son nom l'indique, Microsoft Excel - Données uniquement est un format d'exportation d'enregistrements axé sur la représentation exacte des données. Toutefois, ce format exporte également la plupart de la mise en forme.
Contrairement au format Microsoft Excel, Microsoft Excel -
Données uniquement ne fusionne pas les cellules ; chaque objet est ajouté à une cellule unique. Ce format exporte aussi certains types de résumés de rapports Crystal sous forme de fonctions Excel. Les résumés pris en charge sont SUM,
AVERAGE, COUNT, MIN et MAX.
Le format XLSX est doté des mêmes propriétés que le format
Microsoft Excel (97-2003) Données uniquement ; toutefois, le format XLSX prend en charge jusqu'à 16 385 colonnes et
1 048 576 lignes dans un seul classeur.
Ce format génère un fichier RTF (Rich Text Format) qui contient du texte et des objets de dessin pour représenter les objets de rapport. Ce format d'exportation conserve la plupart de la mise en forme. Toutefois, les objets texte ne peuvent pas être placés à l'extérieur du bord gauche de la page. Les objets texte du rapport placés à l'extérieur du bord gauche de la zone imprimable sont donc déplacés vers la droite. (Cela est particulièrement visible dans les rapports comportant des pages larges.)
Le format Microsoft Word - Modifiable diffère du format
Microsoft Word : il s'agit d'un format d'exportation, mais la mise en page et la mise en forme ne sont pas intégralement conservées dans le format de sortie. Ce format convertit le contenu de tous les objets du rapport en lignes de texte.
Contrairement au format Microsoft Word, ce format n'utilise pas de cadres de texte. La mise en forme du texte est conservée, mais les attributs tels que couleur d'arrière-plan, modèle de remplissage, etc. peuvent ne pas être conservés.
Toutes les images du rapport sont alignées sur le contenu textuel. Par conséquent, les images sont automatiquement
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
123
Mise en forme
ODBC
Style d'enregistrement - Colonnes avec espaces
Style d'enregistrement - Colonnes sans espaces
Définition de rapport
Rich Text Format (RTF)
Valeurs séparées par des virgules (CSV)
Texte séparé par des tabulations (TTX)
Texte
Description déplacées afin d'intégrer le texte lorsque le document est
édité dans Microsoft Word. Ce format n'exporte pas les objets ligne et objets cadre du rapport. De même, les champs spéciaux Numéro de page et Page N sur M ne fonctionnent pas lorsqu'ils sont exportés dans ce format.
ODBC est un format d'échange de données basé sur les enregistrements. Ce format permet d'exporter les données de rapport vers n'importe quelle base de données compatible
ODBC.
Les documents exportés sont destinés à l'impression et à la redistribution. Le format PDF exporte à la fois la mise en page et la mise en forme de manière à correspondre à l'apparence du rapport dans l'onglet Aperçu. Le format PDF intègre les polices True Type qui apparaissent dans le document. (Les polices autres que True Type ne sont pas prises en charge.)
Ce format d'exportation ne prend pas en charge la technologie Font-Linking de Microsoft, utilisée pour des ensembles de caractères étendus comme le HKCS chinois.
Par conséquent, les polices utilisées dans le rapport doivent contenir tous les glyphes requis. Les types d'URI suivants sont pris en charge pour les hyperliens : http, https et mailto.
Exporte les données du rapport sous forme de texte. Ce format insère des espaces entre les colonnes.
Exporte les données du rapport sous forme de texte. Ce format n'insère pas d'espaces entre les colonnes.
Le format de définition de rapport exporte le rapport dans un fichier texte qui contient une brève description de la vue de conception du rapport. Ce format est uniquement géré dans le cadre d'une compatibilité avec SAP Crystal Reports 5.0.
Génère un fichier RTF contenant des objets de type texte et dessin.
Le format Valeurs délimitées est un format d'échange de données basé sur les enregistrements. Il exporte le contenu des objets du rapport sous forme d'ensemble de valeurs séparées par des séparateurs que vous indiquez. (Lorsqu'une virgule (,) est utilisée pour séparer des champs, on parle de
Valeurs séparées par des virgules (CSV). Ce format d'exportation est largement utilisé par les utilisateurs de
Microsoft Excel.)
Conserve la mise en page du rapport à quelques différences près : les objets texte sur plusieurs lignes sont exportés sur une seule ligne, toutes les valeurs de type chaîne comportent des guillemets ("") et les valeurs elles-mêmes sont séparées par des tabulations. Les fichiers TTX peuvent s'ouvrir dans
Microsoft Excel.
Génère du texte brut (sans conserver la mise en forme).
124
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Mise en forme
XML
Description
Utilisé essentiellement pour l'échange de données. Ce format génère du code XML à l'aide du schéma XML de
SAP Crystal Reports.
Sélection d'un format d'exportation
Les formats disponibles dépendent de la version de SAP Crystal Reports que vous avez installée et de la méthode utilisée pour exporter le rapport. Le contrôle CrystalReportViewer propose par défaut la plupart des formats d'exportation. Certains formats sont uniquement disponibles avec le SDK de SAP Crystal Reports .NET ou l'application autonome SAP Crystal Reports Designer.
SAP Crystal Reports Designer Mise en forme
SAP Crystal Reports (RPT)
SAP Crystal Reports Read-
Only (RPTR)
HTML 4.0
Microsoft Excel (97-2003)
Microsoft Excel (97-2003)
Données uniquement
Microsoft Excel 2007 (XLSX)
Données uniquement x x x
Microsoft Word (97-2003)
Microsoft Word (97-2003) -
Modifiable
ODBC
Style d'enregistrement -
Colonnes avec espaces
Style d'enregistrement -
Colonnes sans espaces x x x x x
Définition de rapport
Rich Text Format (RTF)
Valeurs séparées par des virgules (CSV)
Texte séparé par des tabulations (TTX)
Texte
XML x x
Contrôle CrystalReportViewer x x
SDK de
SAP Crystal Reports .NET
x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
125
1.4.2.2 Exportation d'un rapport depuis le contrôle
CrystalReportViewer
La manière la plus simple d'ajouter des fonctionnalités d'exportation à votre application SAP Crystal Reports .NET est d'utiliser le bouton d'exportation du contrôle CrystalReportViewer. Le bouton
Exporter
est activé par défaut sur la barre d'outils CrystalReportViewer.
L'utilisateur peut cliquer sur le bouton
Exporter
pour faire apparaître la boîte de dialogue d'exportation par défaut.
Les options d'exportation disponibles pour votre utilisateur sont déterminées par les pilotes inclus dans votre déploiement.
Désactivation de la fonction d'exportation de rapport depuis le visualiseur
L'exportation est activée par défaut dans toutes les applications SAP Crystal Reports. Vous pouvez limiter l'exportation de deux façons :
● Supprimer le bouton Exporter du visualiseur.
Vous pourrez continuer à utiliser le SDK pour exporter un rapport, même si le bouton d'exportation n'est pas visible.
● La désactivation de certains pilotes d'exportation dans SAP Crystal Reports fusionne les modules.
Lorsque vous déployez une application SAP Crystal Reports vers un ordinateur cible, vous devez inclure l'exécution de SAP Crystal Reports sous la forme d'un MSI ou d'un module de fusion. Si vous choisissez d'utiliser des modules de fusion pour votre déploiement, vous pouvez spécifier les pilotes d'exportation à inclure ou exclure.
Informations associées
Boîte de dialogue Exportation [page 881]
1.4.2.2.1 Suppression du bouton d'exportation depuis le contrôle CrystalReportViewer
Contexte
Vous pourrez continuer à utiliser le SDK pour exporter un rapport, même si le bouton d'exportation n'est pas visible.
126
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Procédure
1. Ajoutez un contrôle CrystalReportViewer à votre application.
2. Définissez la propriété qui contrôle la visibilité du bouton d'exportation sur False.
○ Pour une application Windows, définissez la propriété CrystalReportViewer.ShowExportButton sur
False.
○ Pour un site Web, définissez la propriété CrystalReportViewer.HasExportButton sur False.
Résultats
Lorsque vous exécuterez votre application, le bouton d'exportation ne devrait plus apparaître sur le contrôle
CrystalReportViewer.
Exemple
Désactivation du bouton Exporter dans une application Web
Private Sub ConfigureCrystalReports()
CrystalReportViewer1.HasExportButton = False
End Sub private void ConfigureCrystalReports()
{
InitializeComponent();
crystalReportViewer1.HasExportButton = false;
}
1.4.2.3 Exportation d'un rapport par programmation
Le SDK SAP Crystal Reports .NET permet d'exporter par programmation un rapport vers un plus grand nombre de formats et de destinations que le contrôle CrystalReportViewer.
Si le bouton
Exporter
de la barre d'outils du contrôle CrystalReportViewer répond à vos besoins d'exportation, il est inutile d'écrire un code pour configurer des options d'exportation supplémentaires.
Toutefois, pour des scénarios particuliers, vous pouvez avoir recours à une solution basée sur du code pour l'impression des rapports :
● Vous pouvez contrôler le moment, l'emplacement et la configuration de votre exportation. Désactivez le bouton
Exporter
de la barre d'outils du contrôle CrystalReportViewer et gérez toutes les exportations via le code.
● Vous pouvez exporter un rapport en arrière-plan, sans l'afficher.
● Vous pouvez exporter un rapport vers une réponse HTTP ou vers un flux. Le contrôle CrystalReportViewer prend uniquement en charge l'exportation d'un rapport vers un disque.
Il existe quatre méthodes pour exporter un rapport. Vous pouvez accéder à toutes ces méthodes via la classe
ReportDocument.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
127
● ReportDocument.Export
● ReportDocument.ExportToHTTPResponse
● ReportDocument.ExportToDisk
● ReportDocument.ExportToStream
La méthode la plus courante, ReportDocument.Export, permet d'exporter vos rapports vers n'importe quel format et destination pris en charge par le SDK SAP Crystal Reports .NET. Pour utiliser la méthode
ReportDocument.Export, vous devez d'abord définir plusieurs paramètres via la classe ExportOptions.
Chacune des trois autres méthodes offre un moyen pratique d'exporter un rapport d'une manière spécifique.
L'utilisation des autres méthodes génère en général moins de code, mais offre moins de contrôle sur le fichier qui en résulte.
1.4.2.3.1 Définition des options d'exportation personnalisées
Pour utiliser la méthode ReportDocument.Export, vous devez d'abord définir plusieurs paramètres via la classe
ExportOptions. Ces paramètres contrôlent l'emplacement de l'exportation, le format d'exportation et plusieurs options de style spécifiques au format de sortie.
Quatre options doivent être définies pour exporter un rapport à l'aide de la méthode ReportDocument.Export.
Option d'exportation
ExportDestinationType
ExportDestinationOptions
ExportFormatOptions
ExportFormatType
Description
Détermine comment exporter le rapport.
Détermine l'emplacement et le nom du fichier qui en résulte.
Détermine les options de mise en forme spécifiques au format de sortie.
Détermine le type de fichier de destination.
Définition de la propriété ExportDestinationType
La propriété ExportOptions.ExportDestinationType détermine comment exporter le rapport. Les valeurs disponibles sont stockées dans l'énumération ExportDestinationType.
ExportDestinationType.DiskFile est la valeur la plus courante. D'autres valeurs sont prises en charge, telles que ExchangeFolder, MicrosoftMail et NoDestination.
Définition de la propriété ExportDestinationOptions
La propriété ExportOptions.ExportDestinationOptions définit les options spécifiques à l'emplacement cible du fichier de sortie. La valeur de la propriété ExportDestinationOptions dépend de la valeur de la propriété ExportOptions.ExportDestinationType.
128
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
ExportDestinationType
DiskFile
ExchangeFolder
MicrosoftMail
ExportDestinationOptions
Un objet
DiskFileDestinationOptions
Définit les valeurs suivantes :
●
Définit le nom et l'emplacement du fichier de sortie.
Un objet
ExchangeFolderDestinationOp tions
●
Le profil et le mot de passe utilisateur du serveur Exchange.
●
Le chemin d'accès au dossier
Exchange.
Un objet
MicrosoftMailDestinationOpt ions
●
Le nom et le mot de passe utilisateur du compte de courrier
électronique.
●
L'objet et le corps du message
électronique.
●
Les destinataires du message
électronique.
Définition de la propriété ExportFormatType
Cette propriété détermine le format du fichier de sortie. Les valeurs disponibles sont stockées dans l'énumération
ExportFormatType. Les options disponibles dépendent de la version de SAP Crystal Reports utilisée.
SAP Crystal Reports, version développeur pour Microsoft Visual Studio prend en charge les options d'exportation suivantes :
● SAP Crystal Reports (RPT)
● SAP Crystal Reports Read-Only (RPTR)
● Rich Text Format (RTF)
● Microsoft Word (97-2003)
● Microsoft Excel (97-2003)
● Microsoft Excel (97-2003) Données uniquement
● Microsoft Excel (2007) Données uniquement
● HTML 4.0
● Valeurs séparées par des virgules (CSV)
● Microsoft Word modifiable (RTF)
● Texte séparé par des tabulations (TTX)
● Texte
Définition de la propriété ExportFormatOptions
La propriété ExportOptions.ExportFormatOptions définit les options spécifiques au format du fichier de sortie. La valeur de la propriété ExportFormatOption dépend de la valeur de la propriété
ExportOptions.ExportFormatType.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
129
ExportFormatOptions
Un objet
ExcelFormatOptions
Un objet HTMLFormatOptions
Un objet
PdfRtfWordFormatOptions
Format d'exportation Définit les valeurs suivantes :
●
Microsoft Excel (97-2003)
●
Microsoft Excel (97-2003) Données uniquement
●
La première et la dernière page du rapport à exporter.
●
La largeur de colonne par défaut.
●
S'il est nécessaire d'inclure des entêtes de colonne.
●
HTML 4.0
●
La première et la dernière page du rapport à exporter.
●
Le nom de la page HTML par défaut.
●
Le nom du dossier contenant les fichiers de prise en charge requis pour la sortie au format HTML, comme les images utilisées dans le rapport.
●
●
Rich Text Format (RTF)
●
Microsoft Word (97-2003)
●
Microsoft Word modifiable (RTF)
●
La première et la dernière page du rapport à exporter.
Exemple
Définition des options d'exportation pour Microsoft Excel - Données uniquement
Cet exemple définit les options d'exportation requises pour exporter un rapport au format “Microsoft Excel -
Données uniquement”.
La méthode instancie une nouvelle classe DiskFileDestinationOptions et affecte à la propriété
DiskFileDestinationOptions.DiskFileName un chemin d'accès au fichier. Pour exporter le fichier vers le disque, la propriété ExportOptions.ExportDestinationType doit être définie sur
ExportDestinationType.DiskFile et ExportOptions.DestinationOptions doit être définie sur un objet DiskFileDestinationOptions valide.
Si aucune mise en forme spécifique n'est requise, la propriété ExportOptions.ExportFormatOptions peut
être définie sur null.
Private Function ConfigureExportToExcelRecord(ByVal filepath As String) As
ExportOptions
Dim exOptions As New ExportOptions()
Dim dfDestinationOptions As New DiskFileDestinationOptions()
dfDestinationOptions.DiskFileName = filepath
exOptions.ExportDestinationType = ExportDestinationType.DiskFile
exOptions.DestinationOptions = dfDestinationOptions
exOptions.ExportFormatType = ExportFormatType.ExcelRecord
exOptions.ExportFormatOptions = Nothing
Return exOptions
End Function private ExportOptions ConfigureExportToExcelRecord(String filepath)
{
ExportOptions exOptions = new ExportOptions();
130
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
DiskFileDestinationOptions dfDestinationOptions = new
DiskFileDestinationOptions();
dfDestinationOptions.DiskFileName = filepath;
exOptions.ExportDestinationType = ExportDestinationType.DiskFile;
exOptions.DestinationOptions = dfDestinationOptions;
exOptions.ExportFormatType = ExportFormatType.ExcelRecord;
exOptions.ExportFormatOptions = null;
return exOptions;
}
Exemple
Définition des options d'exportation pour le format de sortie HTML 4.0
Cet exemple définit les options d'exportation requises pour exporter un rapport au format “HTML 4.0”.
Il n'est pas nécessaire d'instancier de classe DiskFileDestinationOptions pour les exportations au format
HTML. Ces options sont définies par le biais de la classe HTMLFormatOptions.
Cette méthode instancie une nouvelle classe HTMLFormatOptions et affecte le nom de fichier par défaut à la propriété HTMLFormatOptions.HTMLFileName et le chemin d'exportation par défaut à la propriété
HTMLFormatOptions.HTMLBaseFolderName. Le dossier de base contient chacune des pages HTML exportées par le rapport ainsi que toutes les images requises.
Définissez la propriété ExportOptions.ExportFormatOptions sur un objet HTMLFormatOptions valide.
Private Function ConfigureExportToHtml40(ByVal exportpath As String) As
ExportOptions
Dim exOptions As New ExportOptions()
Dim html40FormatOptions As New HTMLFormatOptions()
html40FormatOptions.HTMLBaseFolderName = exportpath
html40FormatOptions.HTMLFileName = "default.html"
html40FormatOptions.HTMLEnableSeparatedPages = True
html40FormatOptions.HTMLHasPageNavigator = True
exOptions.ExportFormatType = ExportFormatType.HTML40
exOptions.ExportFormatOptions = html40FormatOptions
Return exOptions
End Function private ExportOptions ConfigureExportToHtml40(String exportpath)
{
ExportOptions exOptions = new ExportOptions();
HTMLFormatOptions html40FormatOptions = new HTMLFormatOptions();
html40FormatOptions.HTMLBaseFolderName = exportpath;
html40FormatOptions.HTMLFileName = "default.html";
html40FormatOptions.HTMLEnableSeparatedPages = true;
html40FormatOptions.HTMLHasPageNavigator = true;
exOptions.ExportFormatType = ExportFormatType.HTML40;
exOptions.ExportFormatOptions = html40FormatOptions;
return exOptions;
}
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
131
Informations associées
Formats d'exportation disponibles [page 122]
1.4.2.3.2 Exportation vers un disque avec des options d'exportation personnalisée
Contexte
Cet exemple montre comment exporter un rapport Crystal vers le format Microsoft Word. Le SDK de
SAP Crystal Reports 2008 permet d'exporter des rapports vers un format spécifique, tel qu'Excel, PDF ou RTF.
Vous pouvez exporter des rapports vers différents formats en utilisant le modèle d'objet ReportDocument.
Cet exemple définit la propriété ReportDocument.ExportOptions et utilise la méthode
ReportDocument.Export pour exporter le rapport.
Procédure
1. Créez une méthode qui utilise un objet ReportDocument et un chemin de fichier en tant que paramètres.
2. Créez une instance de la classe DiskFileDestinationOptions et définissez la valeur de la propriété
DiskFileDestinationOptions.DiskFileName sur le chemin du fichier de sortie.
Dim dfDestinationOptions As New DiskFileDestinationOptions() dfDestinationOptions.DiskFileName = filepath
DiskFileDestinationOptions dfDestinationOptions = new
DiskFileDestinationOptions(); dfDestinationOptions.DiskFileName = filepath;
3. Créez une instance de la classe ExportOptions et définissez les propriétés requises.
a. Définissez la propriété ExportDestinationType sur ExportDestinationType.DiskFile.
b. Définissez la propriété ExportDestinationOptions sur l'objet DiskFileDestinationOptions.
c. Définissez la propriété ExportFormatType sur ExportFormatType.WordForWindows.
d. Si aucune mise en forme spécifique n'est requise, la propriété ExportOptions.ExportFormatOptions peut être définie sur null.
Dim wordExportOptions As New ExportOptions() wordExportOptions.ExportDestinationType = ExportDestinationType.DiskFile
wordExportOptions.ExportDestinationOptions = dfDestinationOptions wordExportOptions.ExportFormatType = ExportFormatType.WordForWindows
wordExportOptions.ExportFormatOptions = Nothing
ExportOptions wordExportOptions = new ExportOptions(); wordExportOptions.ExportDestinationType = ExportDestinationType.DiskFile; wordExportOptions.ExportDestinationOptions = dfDestinationOptions; wordExportOptions.ExportFormatType = ExportFormatType.WordForWindows;
132
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
wordExportOptions.ExportFormatOptions = null;
4. Appelez la méthode Export et transmettez l'objet ExportOptions en tant que paramètre.
Exemple
Private Sub ExportToWord_RD(ByVal rd As ReportDocument, ByVal filepath As String)
Dim dfDestinationOptions As New DiskFileDestinationOptions()
dfDestinationOptions.DiskFileName = filepath
Dim wordExportOptions As New ExportOptions()
wordExportOptions.ExportDestinationType = ExportDestinationType.DiskFile
wordExportOptions.ExportDestinationOptions = dfDestinationOptions
wordExportOptions.ExportFormatType = ExportFormatType.WordForWindows
wordExportOptions.ExportFormatOptions = Nothing
rd.Export(wordExportOptions)
End Sub private void ExportToWord_RD(ReportDocument rd, String filepath)
{
DiskFileDestinationOptions dfDestinationOptions = new
DiskFileDestinationOptions();
dfDestinationOptions.DiskFileName = filepath;
ExportOptions wordExportOptions = new ExportOptions();
wordExportOptions.ExportDestinationType = ExportDestinationType.DiskFile;
wordExportOptions.ExportDestinationOptions = dfDestinationOptions;
wordExportOptions.ExportFormatType = ExportFormatType.WordForWindows;
wordExportOptions.ExportFormatOptions = null;
rd.Export(wordExportOptions);
}
1.4.2.3.3 Exportation vers un disque au format PDF à l'aide de la méthode ReportDocument.ExportToDisk
Contexte
Cet exemple montre comment exporter un rapport Crystal vers le format PDF. Le SDK de
SAP Crystal Reports 2008 permet d'exporter des rapports vers un format spécifique, tel qu'Excel, PDF ou RTF.
Vous pouvez exporter des rapports vers différents formats en utilisant le modèle d'objet ReportDocument.
Procédure
1. Créez une méthode qui utilise un objet ReportDocument comme paramètre.
2. Spécifiez un répertoire de sortie et vérifiez qu'il existe. Si le répertoire de sortie n'existe pas, créez-le.
3. Appelez la méthode ExportToDisk et spécifiez le format de sortie ainsi que le nom du fichier de sortie.
Exemple
Private Shared Sub ExportToPDF_RD(ByVal rd As ReportDocument)
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
133
Dim exportPath As String = "C:\\Exported\\"
If Not System.IO.Directory.Exists(exportPath) Then
System.IO.Directory.CreateDirectory(exportPath)
End If
rd.ExportToDisk(ExportFormatType.PortableDocFormat, exportPath +
"PortableDoc.pdf")
End Sub private static void ExportToPDF_RD(ReportDocument rd) {
String exportPath = "C:\\Exported\\";
if (!System.IO.Directory.Exists(exportPath))
{
System.IO.Directory.CreateDirectory(exportPath);
}
rd.ExportToDisk(ExportFormatType.PortableDocFormat, exportPath +
"PortableDoc.pdf");
}
Informations associées
Modèle d'objet ReportDocument [page 37]
1.4.3 Filtrage de données avec des paramètres ou des formules
SAP Crystal Reports vous permet de personnaliser les données de votre rapport par le biais de paramètres de rapport ou en changeant la formule de sélection.
Un paramètre est une variable de rapport définie par l'utilisateur et instanciée à l'actualisation du rapport.
Lorsqu'un paramètre est utilisé dans une formule de sélection, il vous permet de modifier les données incluses dans votre rapport au moment de l'exécution. Les paramètres peuvent également être utilisés pour personnaliser l'apparence d'un rapport.
Les formules de sélection spécifient et filtrent les enregistrements et les groupes qui apparaissent dans un rapport. En modifiant la formule de sélection, vous modifiez la requête utilisée lors de l'extraction des données de la source de données.
Classes utilisées pour la définition de paramètres ou formules
● CrystalDecisions.CrystalReports.Engine.DataDefinition
Contient toutes les informations relatives à la manipulation des données basées sur la source de données d'un rapport.
● CrystalDecisions.CrystalReports.Engine.ParameterFieldDefinition
Représente un champ de paramètre dans le rapport. Cet objet indique les propriétés et les méthodes permettant d'extraire les informations et de définir les options d'un champ de paramètre dans le rapport.
134
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
● CrystalDecisions.Web.Parameter
Fournit des propriétés permettant de modifier ou d'extraire des informations concernant un paramètre dans un site Web.
1.4.3.1 Paramètres
Un paramètre est une variable de rapport définie par l'utilisateur et instanciée à l'actualisation du rapport. Il existe de nombreux types de paramètres et la définition par programmation des différents types peut entraîner des résultats et des expériences différents pour les utilisateurs de votre application.
Possibilités d'optimisation de l'utilisation des paramètres
Afin d'éviter des erreurs de moment d'exécution lors de la définition de paramètres par programmation, notez les
éléments suivants :
● Les valeurs de paramètres doivent être du même type que le paramètre.
● Si le paramètre possède un masque d'édition, les valeurs du paramètre doivent respecter ce masque.
● Lors de la lecture des valeurs de paramètres, assurez-vous de connaître le type de valeurs que vous lisez, c'est-à-dire, si ces valeurs sont discrètes ou si elles font partie d'une plage.
● Définissez le type de limite sur une valeur de plage avant de l'ajouter au paramètre.
● Assurez-vous que la limite supérieure d'une valeur de plage est plus grande que la limite inférieure.
Informations associées
Définition des paramètres [page 676]
Paramètres de données et paramètres non relatifs à des données [page 678]
Conception des champs de paramètre [page 677]
1.4.3.1.1 Propriétés des valeurs de paramètres
Les paramètres prennent en charge de nombreuses fonctions en plus de celles mentionnées ici. Pour obtenir une liste complète de ces fonctions, voir la classe ParameterField.
Paramètres à valeurs multiples ou uniques
Si un paramètre prend en charge plusieurs valeurs, un utilisateur peut sélectionner plusieurs valeurs pour un paramètre à l'actualisation du rapport. Si un paramètre prend en charge des valeurs uniques, un utilisateur ne
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
135
peut sélectionner qu'une seule valeur pour un paramètre à l'actualisation du rapport. Si un paramètre prend en charge plusieurs valeurs, il passe d'une variable unique à un tableau contenant de nombreuses valeurs.
Valeurs de paramètres discrètes ou faisant partie d'une plage
Les valeurs de paramètres discrètes représentent une valeur unique, telle que 1, "Jill", 3.141 ou True. Les valeurs de plages représentent une étendue spécifique de valeurs d'un point à un autre, telles que [1..45], (4..6],
["Lundi","Jeudi"]. La valeur de limite inférieure de la plage doit être plus petite que la limite supérieure.
De plus, les paramètres peuvent à la fois être discrets et faire partie d'une plage si le paramètre prend en charge plusieurs valeurs.
Valeurs par défaut
Vous pouvez spécifier des valeurs par défaut pour un paramètre et forcer l'utilisateur à sélectionner une seule valeur ou un grand nombre de valeurs. Vous pouvez également fournir des valeurs de paramètres par défaut mais autoriser l'utilisateur à saisir des valeurs personnalisées. Les valeurs par défaut sont stockées dans la propriété
DefaultValues de l'objet ParameterField. Une fois que l'utilisateur a sélectionné un ensemble de valeurs pour les paramètres du rapport, ces valeurs sont stockées dans la propriété CurrentValues.
Remarque
Les valeurs par défaut ne peuvent être que discrètes.
Valeurs de paramètres facultatives
Si la valeur d'un paramètre est définie sur "facultative", les utilisateurs ne sont pas obligés de saisir une valeur lorsqu'une invite s'affiche.
Valeurs de paramètres statiques ou dynamiques
Les valeurs de paramètres statiques sont stockées dans le rapport. Les valeurs de paramètres dynamiques sont extraites d'une source de données extérieure au rapport.
136
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Valeurs de paramètres de mise en cascade dynamique
Une invite dynamique peut inclure une liste de valeurs mise en cascade qui guide l'utilisateur dans une séquence d'invites dynamiques pour déterminer une valeur de paramètre finale. Par exemple, les utilisateurs peuvent être invités à choisir un pays avant qu'un choix de régions apparaisse.
Valeurs de paramètres interactives
Les valeurs de paramètres peuvent être manipulées au moment de l'exécution à l'aide de la propriété
CrystalReportViewer.ViewTimeSelectionFormula. La formule de sélection du moment de visualisation est prise en compte après application des résultats des formules de sélection enregistrés avec le rapport.
Types de valeurs de paramètres
Un champ de paramètre doit contenir un ParameterType spécifique.
Une valeur de paramètre doit être de l'un des types de paramètres suivants :
● ReportParameter
● StoredProcedureParameter
● QueryParameter
1.4.3.1.2 Panneau des paramètres
Mettez en forme et filtrez les données de rapport de manière interactive en utilisant le panneau des paramètres.
Le nouveau panneau des paramètres de SAP Crystal Reports 2008 permet aux utilisateurs de définir des paramètres statiques et dynamiques et d'actualiser le rapport. Les utilisateurs peuvent également mettre en forme et filtrer les données du rapport de manière interactive. Le panneau des paramètres est accessible depuis le volet des outils. Vous pouvez accéder au panneau des paramètres en cliquant sur le bouton
Paramètres
de la barre d'outils ou par programmation en utilisant le code suivant : myCrystalReportViewer.ToolPanelView = ToolPanelViewType.ParameterPanel
crystalReportViewer.ToolPanelView = ToolPanelViewType.ParameterPanel;
Vous pouvez masquer le bouton
Paramètres
par programmation en utilisant le code suivant : myCrystalReportViewer.ShowParameterPanelButton = False crystalReportViewer.ShowParameterPanelButton = false;
Le panneau affiche tous les paramètres qui ont été définis sur
Modifiable
ou
Lecture seule
. Si un paramètre est défini sur
Modifiable
, vous pouvez ajouter, supprimer ou modifier les valeurs du paramètre en cliquant sur le
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
137
bouton
Afficher la boîte de dialogue Paramètres avancés
. Si les valeurs du paramètre sont modifiées mais pas appliquées, un astérisque apparaît en regard du champ de paramètre pour indiquer que les valeurs n'ont pas été appliquées au rapport.
Remarque
Si le paramètre accepte les valeurs personnalisées, vous pouvez directement modifier la valeur du paramètre dans le champ de texte du panneau des paramètres.
Une icône de base de données apparaît à côté des paramètres de données. Lorsque vous modifiez la valeur d'un paramètre de données, le rapport actualise la base de données et y accède pour effectuer les modifications correspondantes. Lorsque vous modifiez la valeur d'un paramètre non relatif à des données, le rapport est mis en forme ou filtré en fonction des données enregistrées dans le rapport. Le rapport n'accède pas à la base de données.
Informations associées
Filtrage des données à l'aide des formules de sélection [page 146]
1.4.3.1.3 Définition de paramètres dans la page ASPX
Lorsque vous créez un rapport Crystal, la sélection des données de ce rapport est gérée par le critère "where". La valeur de ce critère peut être codée en dur, mais lorsqu'elle doit être dynamique, un paramètre est créé et la clause "where" lui est affectée. Les paramètres ne sont pas gérés de la même manière selon que vous utilisez un modèle de programmation allégée ou classique.
Lorsque vous développez un projet à l'aide d'un modèle de programmation classique, SAP Crystal Reports, version développeur pour Microsoft Visual Studio accède aux paramètres et interagit avec eux par le biais d'un groupe de classes associées aux paramètres dans le SDK de SAP Crystal Reports.
Lorsque vous utilisez un modèle de programmation allégée (le modèle de développement d'applications avec balises), le contrôle CrystalReportSourceaccède aux paramètres et interagit avec eux par le biais de la structure Parameters. La structure Parameters est une nouveauté de ASP.NET version 2.0, qui permet d'affecter des paramètres à n'importe quel contrôle DataSource (dans le cas présent, un contrôle
CrystalReportSource). Ces paramètres peuvent être affectés au rapport principal comme aux sous-rapports, si nécessaire.
Il est possible d'affecter un paramètre à partir de tous les types de paramètre suivants :
● ControlParameter
● QueryStringParameter
● SessionParameter
● FormParameter
● CookieParameter
Cette affectation permet alors de créer une solution de programmation allégée dans laquelle les paramètres d'un rapport peuvent être définis à partir de sélections effectuées dans les contrôles DropDownList (ou d'autres types
138
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
de contrôle), de valeurs contenues dans une chaîne de requête URL, de valeurs extraites d'un objet Session, de valeurs provenant de champs de formulaires ou d'un cookie.
Configuration des propriétés Parameters directement dans le fichier XML
Dans un fichier XML, la balise <Parameters> est imbriquée dans la balise <CrystalReportSource>. Dans la balise imbriquée <Parameters>, il est possible de configurer des liens à un paramètre par défaut ou à un paramètre à partir d'un contrôle.
Exemple
Configuration d'un paramètre dans XML
Cet exemple définit la valeur par défaut du paramètre City sur Tokyo.
<CR:CrystalReportSource ID="CrystalReportSource1"
runat="server">
<Report FileName="SalesReport.rpt">
<Parameters>
<CR:Parameter ConvertEmptyStringToNull="False"
DefaultValue="Tokyo" Name="City" ReportName="" />
</Parameters>
</Report>
</CR:CrystalReportSource>
Exemple
Liaison d'un paramètre à un contrôle
Vous pouvez lier la valeur d'un paramètre à un autre contrôle au sein du Web Form. Cet exemple définit la valeur d'un paramètre nommé City sur la valeur d'un contrôle de zone de texte nommé Location.
<CR:CrystalReportSource ID="CrystalReportSource1"
runat="server">
<Report FileName="SalesReport.rpt">
<Parameters>
<CR:ControlParameter ControlID="Location"
ConvertEmptyStringToNull="False"
Name="city" PropertyName="Text" ReportName="" />
</Parameters>
</Report>
</CR:CrystalReportSource>
Informations associées
Définition des paramètres [page 676]
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
139
1.4.3.1.3.1 Accès à la boîte de dialogue Editeur de collections de paramètres
Contexte
Les paramètres sont configurés dans la boîte de dialogue
Editeur de collections de paramètres
.
Procédure
1. Sélectionnez le contrôle
CrystalReportSource
.
2. Dans
Propriétés
, développez
Report
.
3. Dans la propriété
Report
, cliquez sur le bouton de sélection (
...
) tout à fait à droite de
Parameters (Collection)
.
4. Dans la boîte de dialogue
Editeur de collections de paramètres
, saisissez un ou plusieurs paramètres pour le rapport principal ainsi que pour tous les sous-rapports.
1.4.3.1.4 Définition de paramètres discrets dans un rapport
Cet exemple définit les paramètres sur des valeurs spécifiques utilisées par l'exemple de rapport.
Prérequis
Vous devez disposer d'un rapport avec un champ de paramètre déjà spécifié.
Contexte
En utilisant le modèle d'objet ReportDocument, vous pouvez définir les valeurs des paramètres existants dans un rapport. Les paramètres sont accessibles par nom ou valeur d'index numérique. Pour ajouter un nouveau paramètre à un rapport, vous devez utiliser le modèle d'objet ReportClientDocument.
Procédure
1. Crée une constante de chaîne PARAMETER_FIELD_NAME et définit sa valeur sur le nom d'un paramètre existant.
2. Créez une instance de la classe ArrayList.
140
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
3. Pour chaque valeur que vous souhaitez affecter au paramètre, ajoutez une valeur à l'instance ArrayList.
4. Appelez la méthode ReportDocument.SetParameterValue et transmettez le nom de paramètre et la liste de valeurs.
La méthode ReportDocument.SetParameterValue définit la valeur actuelle d'un champ de paramètre.
Cette valeur peut être une valeur primaire, ParameterValue, un tableau d'un type ou l'autre ou une collection ParameterValues.
Exemple
Définition de paramètres discrets dans un rapport
Private Sub SettingParameters_RD(ByVal TestReport As ReportDocument)
Dim PARAMETER_FIELD_NAME As String = "Country"
Dim countries As New ArrayList()
countries.Add("Canada")
countries.Add("USA")
TestReport.SetParameterValue(PARAMETER_FIELD_NAME, countries.ToArray())
crystalReportViewer.ReportSource = TestReport
End Sub private void SettingParameters_RD(ReportDocument TestReport)
{
string PARAMETER_FIELD_NAME = "Country";
ArrayList countries = new ArrayList();
countries.Add("Canada");
countries.Add("USA");
TestReport.SetParameterValue(PARAMETER_FIELD_NAME, countries.ToArray());
crystalReportViewer.ReportSource = TestReport;
}
Étapes suivantes
Un site Web SAP Crystal Reports peut requérir un code supplémentaire pour gérer l'état de la session entre les affichages de page.
Informations associées
Tutoriel : Persistance du modèle d'objet ReportDocument à l'aide de Session [page 330]
Tutoriel : Lecture et définition des paramètres discrets [page 377]
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
141
1.4.3.1.5 Définition de paramètres discrets dans un sousrapport
Cet exemple attribue à un paramètre de sous-rapport une valeur spécifique.
Prérequis
Vous devez disposer d'un rapport avec un champ de paramètre déjà spécifié.
Contexte
Pour définir une valeur discrète dans un rapport, vous devez appeler la méthode
ReportDocument.SetParameterValue avec le nom du paramètre et la valeur du paramètre. Cette méthode n'est pas prise en charge pour les sous-rapports. Dans ce cas, vous devez accéder au paramètre du sous-rapport via la collection ParameterFields du rapport principal et le définir sur un nouvel objet
ParameterDiscreteValue.
Procédure
1. Créez une instance de la classe ParameterDiscreteValue.
Conseil
Utilisez la classe ParameterRangeValue pour les paramètres limités.
2. Définissez la propriété ParameterDiscreteValue.Value sur la nouvelle valeur du paramètre.
Dim dv As New ParameterDiscreteValue()
dv.Value = parameterValue
ParameterDiscreteValue dv = new ParameterDiscreteValue();
dv.Value = parameterValue;
3. Créez une instance de la collection ParameterFields et affectez-lui la valeur de la propriété
ReportDocument.ParameterFields du rapport principal.
Dim parameterFields As ParameterFields = testReport.ParameterFields
ParameterFields parameterFields = testReport.ParameterFields;
4. Accédez au paramètre du sous-rapport via un index nommé de l'instance ParameterFields.
Dim parameterField As ParameterField = parameterFields(parameterFieldName, subreportName)
142
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
ParameterField parameterField = parameterFields[parameterFieldName, subreportName];
La collection ParameterFields requiert deux index, l'un pour le nom du paramètre et l'autre pour le nom du sous-rapport.
5. Effacez la valeur existante dans le champ de paramètre et ajoutez l'objet ParameterDiscreteValue que vous avez créé préalablement.
parameterField.CurrentValues.Clear()
parameterField.CurrentValues.Add(dv)
parameterField.CurrentValues.Clear();
parameterField.CurrentValues.Add(dv);
6. Liez le rapport à un contrôle CrystalReportViewer.
Remarque
ParameterFields doit être défini avant la propriété ReportSource du contrôle CrystalReportViewer ; sinon, le contrôle vous invite à saisir les informations de paramètres.
Exemple
Définition de paramètres discrets dans un sous-rapport
Private Sub SubreportSettingParameters_RD(ByVal testReport As ReportDocument,
ByVal subreportName As String, ByVal parameterFieldName As String, ByVal parameterValue As String)
Dim dv As New ParameterDiscreteValue()
dv.Value = parameterValue
Dim parameterFields As ParameterFields = testReport.ParameterFields
Dim parameterField As ParameterField = parameterFields(parameterFieldName, subreportName)
parameterField.CurrentValues.Clear()
parameterField.CurrentValues.Add(dv)
crystalReportViewer1.ReportSource = TestReport
End Sub private void SubreportSettingParameters_RD(ReportDocument testReport,
String subreportName, String parameterFieldName, String parameterValue)
{
ParameterDiscreteValue dv = new ParameterDiscreteValue();
dv.Value = parameterValue;
ParameterFields parameterFields = testReport.ParameterFields;
ParameterField parameterField = parameterFields[parameterFieldName, subreportName];
parameterField.CurrentValues.Clear();
parameterField.CurrentValues.Add(dv);
crystalReportViewer1.ReportSource = TestReport;
}
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
143
Étapes suivantes
Un site Web SAP Crystal Reports peut requérir un code supplémentaire pour gérer l'état de la session entre les affichages de page.
Informations associées
Tutoriel : Persistance du modèle d'objet ReportDocument à l'aide de Session [page 330]
Tutoriel : Lecture et définition des paramètres de plage d'un sous-rapport [page 270]
1.4.3.1.6 Définition de paramètres limités dans un rapport
Prérequis
Vous devez disposer d'un rapport avec un champ de paramètre déjà spécifié.
Contexte
En utilisant le modèle d'objet ReportDocument, vous pouvez définir les valeurs des paramètres existants dans un rapport. Les paramètres sont accessibles par nom ou valeur d'index numérique. Pour ajouter un nouveau paramètre à un rapport, vous devez utiliser le modèle d'objet ReportClientDocument.
Pour définir un paramètre limité, vous devez créer une instance de la classe ParameterRangeValue et la transmettre à la méthode ReportDocument.SetParameterValue.
Procédure
1. Crée une constante de chaîne PARAMETER_FIELD_NAME et définit sa valeur sur le nom d'un paramètre existant.
2. Créez une instance de la classe ParameterRangeValue.
Dim dateRange As New ParameterRangeValue()
ParameterRangeValue dateRange = new ParameterRangeValue();
3. Définissez les valeurs de début et de fin pour l'objet ParameterRangeValue.
dateRange.StartValue = startDate
dateRange.EndValue = endDate
144
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
dateRange.StartValue = startDate;
dateRange.EndValue = endDate;
4. Définissez les limites supérieure et inférieure de la plage.
Option Description
RangeBoundType.BoundExclusive
Les valeurs supérieures et inférieures ne sont pas incluses dans la plage.
RangeBoundType.BoundInclusive
Les valeurs supérieures et inférieures sont incluses dans la plage.
RangeBoundType.NoBound
Aucune plage n'est sélectionnée.
dateRange.LowerBoundType = RangeBoundType.BoundInclusive
dateRange.UpperBoundType = RangeBoundType.BoundInclusive
dateRange.LowerBoundType = RangeBoundType.BoundInclusive;
dateRange.UpperBoundType = RangeBoundType.BoundInclusive;
5. Appelez la méthode ReportDocument.SetParameterValue et transmettez le nom du paramètre et l'objet
ParameterRangeValue.
La méthode ReportDocument.SetParameterValue définit la valeur actuelle d'un champ de paramètre.
Cette valeur peut être une valeur primaire, ParameterValue, un tableau d'un type ou l'autre ou une collection ParameterValues.
Exemple
Private Sub SettingParameters_RD(ByVal testReport As ReportDocument, ByVal startDate As String, ByVal endDate As String)
Dim PARAMETER_FIELD_NAME As String = "SalesDates"
Dim dateRange As New ParameterRangeValue()
dateRange.StartValue = startDate
dateRange.EndValue = endDate
dateRange.LowerBoundType = RangeBoundType.BoundInclusive
dateRange.UpperBoundType = RangeBoundType.BoundInclusive
testReport.SetParameterValue(PARAMETER_FIELD_NAME, dateRange)
crystalReportViewer1.ReportSource = testReport
End Sub private void SettingParameters_RD(ReportDocument testReport, String startDate,
String endDate)
{
string PARAMETER_FIELD_NAME = "SalesDates";
ParameterRangeValue dateRange = new ParameterRangeValue();
dateRange.StartValue = startDate;
dateRange.EndValue = endDate;
dateRange.LowerBoundType = RangeBoundType.BoundInclusive;
dateRange.UpperBoundType = RangeBoundType.BoundInclusive;
testReport.SetParameterValue(PARAMETER_FIELD_NAME, dateRange);
crystalReportViewer1.ReportSource = testReport;
}
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
145
Étapes suivantes
Un site Web SAP Crystal Reports peut requérir un code supplémentaire pour gérer l'état de la session entre les affichages de page.
Informations associées
Tutoriel : Persistance du modèle d'objet ReportDocument à l'aide de Session [page 330]
1.4.3.2 Filtrage des données à l'aide des formules de sélection
Les formules de sélection spécifient et filtrent les enregistrements et les groupes qui apparaissent dans un rapport. Les trois formules de sélection suivantes permettent de filtrer les données :
● Formule de sélection d'enregistrement
● Formule de sélection des données enregistrées
● Formule de sélection de groupe
Le tableau suivant montre les types de champs autorisés dans différents filtres de rapports :
Table 5 :
Paramètres
Résumés
Formules d'heure d'impres sion/totaux cumulés
-
-
X
Formule de sélection d'enre gistrement
Formule de sélection des données enregistrées
-
-
X
-
X
X
Formule de sélection de groupe
Le tableau suivant montre les différents comportements associés aux différents filtres de rapports :
Table 6 :
Formule de sélection d'enre gistrement
Formule de sélection des données enregistrées
Oui.
Peut-on se référer au ré sumé ?
Quand la formule est-elle éva luée ?
Non.
Pendant la lecture des enre gistrements.
Si un résumé est utilisé, à l'heure d'impression ; sinon, pendant la lecture des enre gistrements.
Formule de sélection de groupe
Oui.
A l'heure d'impression.
146
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Quand le rapport est-il actua lisé ?
Le calcul du résumé est-il af fecté ?
Formule de sélection d'enre gistrement
Formule de sélection des données enregistrées
Si le résultat de l'évaluation est faux, lorsque les enregis trements sont abandonnés.
Si les enregistrements sont lus, lors de l'évaluation. Si le résultat de l'évaluation est faux, lorsque les enregistre ments sont abandonnés.
Oui, les enregistrements fil trés ne sont pas comptabili sés.
Si le filtre est évalué pendant la lecture des enregistre ments, alors non ; sinon, oui.
Formule de sélection de groupe
N/A
Non, les enregistrements sont comptabilisés même lors qu'ils sont filtrés.
Vous pouvez appliquer la formule de sélection des données enregistrées au résultat de la formule de sélection d'enregistrement. Le diagramme suivant décrit le flux d'utilisation des formules de sélection d'enregistrement et de sélection des données enregistrées :
Formule de sélection d'enregistrement
La formule de sélection d'enregistrement spécifie les enregistrements qui formeront les données enregistrées du rapport. Cette formule de sélection autorise deux niveaux de filtrage :
● filtrage par la base de données ;
● filtrage par le moteur de traitement du rapport.
Formule de sélection des données enregistrées
SavedDataFilter permet aux utilisateurs de visualiser un sous-ensemble des données enregistrées dans un rapport. En cas de modification de SavedDataFilter, les données enregistrées dans le rapport ne sont pas ignorées et la base de données n'est pas sollicitée.
Formule de sélection de groupe
La formule de sélection de groupe spécifie les enregistrements qui seront pris en compte lors du rendu des pages du rapport. Cette formule utilise généralement les valeurs produites à des étapes antérieures de traitement du rapport, comme les résumés.
Remarque
La formule de sélection de groupe filtre les enregistrements et pas les groupes.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
147
1.4.3.2.1 Filtrage de données à l'aide de formules de sélection
Contexte
Cet exemple applique un filtre à l'un des paramètres de la base de données qui sont utilisés par l'exemple de rapport. Le filtre permet aux utilisateurs de personnaliser les valeurs qui apparaissent dans un rapport.
Procédure
1. Créez une méthode qui utilise un objet ReportDocument et une chaîne contenant une formule de sélection.
Le SDK SAP Crystal Reports .NET utilise la même syntaxe pour une formule de sélection que le concepteur incorporé de SAP Crystal Reports.
2. Affectez la formule de sélection à la propriété DataDefinition.RecordSelectionFormula de l'objet
ReportDocument en cours.
La classe DataDefinition contient toutes les informations relatives à la manipulation des données basées sur la source de données d'un rapport. La classe DataDefinition de chaque rapport est accessible via la propriété
ReportDocument.DataDefinition.
3. Liez la propriété ReportSource du contrôle CrystalReportViewer à l'instance ReportDocument.
Résultats
Le rapport sera actualisé avec les nouveaux résultats en fonction de la formule de sélection spécifiée.
Exemple
Cet exemple accepte un objet ReportDocument et un paramètre d'entier. Le paramètre d'entier est concaténé avec une chaîne existante pour créer une formule de sélection complète. La formule de sélection est appliquée au rapport avant la liaison du contrôle CrystalReportViewer à l'objet ReportDocument.
Private Sub FilterData_RD(ByVal TestReport As ReportDocument, ByVal sales As
Integer)
Dim selectFormula As String = "{Customer.Last Year's Sales} > " + sales
TestReport.DataDefinition.RecordSelectionFormula = selectionFormula
crystalReportViewer.ReportSource = TestReport
End Sub private void FilterData_RD(ReportDocument TestReport, int sales)
{
string selectFormula = "{Customer.Last Year's Sales} > " + sales;
TestReport.DataDefinition.RecordSelectionFormula = selectionFormula;
crystalReportViewer.ReportSource = TestReport;
}
148
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Étapes suivantes
Un site Web SAP Crystal Reports peut requérir un code supplémentaire pour gérer l'état de la session entre les affichages de page.
Informations associées
Tutoriel : Persistance du modèle d'objet ReportDocument à l'aide de Session [page 330]
Incorporation des paramètres dans des formules [page 681]
1.4.4 Définition de la source de données
SAP Crystal Reports permet de créer des rapports à partir de n'importe quelle source de données, notamment les sources persistantes telles que les bases de données et les fichiers XML, et les sources exécutables telles que les ensembles d'objets.
Le modèle d'objet ReportDocument permet d'accéder par programmation aux informations de connexion à ces sources de données et de les modifier pour le fichier de rapport au moment de l'exécution.
Une source de données peut être définie de différentes manières :
● En utilisant la méthode ReportDocument.DatasourceConnections[0].SetConnection.
Cette méthode permet de se connecter à un rapport ou à un sous-rapport.
● En mettant à jour la propriété ReportDocument.Table.LogOnInfo et en appelant la méthode
ReportDocument.Table.ApplyLogOnInfo.
Cette méthode permet de se connecter à un rapport ou à un sous-rapport. Cette méthode permet également de spécifier un emplacement de tableau entièrement qualifié.
● En utilisant la méthode CrystalReportViewer.LogOnInfo.
Cette méthode permet de se connecter à un rapport, mais ne permet pas de définir l'emplacement de la base de données.
Classes utilisées pour la définition de la source de données
● CrystalDecisions.Shared.ConnectionInfo
Indique les propriétés permettant d'extraire et de définir des options de connexion aux serveurs de bases de données ou aux sources de données ODBC.
● CrystalDecisions.CrystalReports.Engine.Table
Représente une table de base de données à laquelle accède le rapport. Cette classe indique les propriétés et les méthodes permettant d'extraire les informations sur la table et de définir les informations de connexion de la table.
● CrystalDecisions.CrystalReports.Engine.ReportDocument
Représente un rapport et contient les propriétés et les méthodes permettant de spécifier une source de données au moment de l'exécution.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
149
Informations associées
Sources de données prises en charge [page 643]
Accès aux données et ajout des données [page 643]
1.4.4.1 Connexion à une base de données
La source de données la plus courante pour un rapport Crystal est une base de données. Vous pouvez accéder à une base de données à partir de l'une des sources suivantes :
● Directement à partir du fichier de rapport, à l'aide des informations de connectivité de la base de données stockées dans ce fichier.
Les informations de connectivité à la base de données sont configurées à l'aide du concepteur
SAP Crystal Report incorporé lorsque le rapport est créé ou modifié. Ces informations sont automatiquement transmises à la base de données par le moteur de rapport chaque fois qu'un rapport est affiché.
Les références de connexion peuvent être enregistrées avec le rapport ou transmises au moment de l'exécution.
● A partir du code de l'API .NET de SAP Crystal Reports.
Les informations de connectivité à la base de données peuvent être reconfigurées avec un code qui interagit avec le rapport par programmation au moment de l'exécution.
Le scénario le plus courant pour la création d'une connexion à une base de données consiste à définir les paramètres de connexion à la base de données dans le concepteur SAP Crystal Reports, puis à fournir les informations de connexion par programmation au moment de l'exécution.
Informations associées
Accès aux données et ajout des données [page 643]
1.4.4.1.1 Optimisation de la sécurité lors d'une connexion à une base de données SQL Server
Quelle que soit la source des rapports, le problème de sécurité reste le même : comment protéger la base de données des attaques malveillantes ?
utiliser l'authentification Windows avec la sécurité intégrée
Pour une sécurité optimale, Microsoft recommande l'utilisation de l'authentification Windows avec la sécurité intégrée. Avec cette configuration, aucun ID utilisateur ni mot de passe n'est nécessaire dans l'application.
150
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
utiliser l'authentification SQL Server avec un compte de base de données à accès limité
Pour utiliser l'authentification SQL Server avec votre base de données, vous devez prendre des mesures supplémentaires pour parvenir à une sécurité optimale.
N'utilisez jamais l'ID et le mot de passe de l'administrateur système dans votre code. Ceci représentant une menace considérable pour la sécurité. Procédez plutôt de la manière suivante :
● Créez un compte de base de données à accès limité.
● Configurez ce compte pour autoriser uniquement l'accès aux tables requises de la base de données.
● Pour chaque table accessible, autorisez uniquement l'exécution de l'instruction SELECT.
Microsoft recommande également de crypter votre ID utilisateur et votre mot de passe. Pour en savoir plus sur le cryptage de l'ID utilisateur et du mot de passe, consultez les informations sur la sécurité dans MSDN.
1.4.4.1.2 Connexion à une base de données SQL Server sécurisée avec un sous-rapport
Prérequis
Pour exécuter cet exemple, vous devez disposer d'un rapport contenant un sous-rapport qui requiert une authentification SQL sécurisée. Le nom d'utilisateur et le mot de passe pour se connecter à la base de données
SQL Server doivent être fournis.
Contexte
Cet exemple permet d'activer la base de données d'un sous-rapport par programmation.
Procédure
1. Extrayez l'instance DataSourceConnections de la propriété DataSourceConnections des instances de rapport et sous-rapport.
2. Extrayez l'élément IConnectionInfo au niveau de l'index 0 de l'instance DataSourceConnections.
3. Appelez la méthode SetConnection avec votre nom de serveur, de base de données, d'utilisateur et votre mot de passe.
4. Appelez la méthode SetLogon avec votre nom d'utilisateur et de votre mot de passe.
Exemple
Private Function SubreportLogon_RD(ByVal TestReport As ReportDocument) As
ReportDocument
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
151
Dim dataSourceConnections As DataSourceConnections =
TestReport.DataSourceConnections
Dim connectInfo As IConnectionInfo = dataSourceConnections(0)
connectInfo.SetConnection("ServerName", "DatabaseName", "UserName",
"Password")
Dim TestSubreport As ReportDocument = TestReport.Subreports("Subreport1")
Dim subreportDataSourceConnections As DataSourceConnections =
TestSubreport.DataSourceConnections
Dim connectInfo As IConnectionInfo = subreportDataSourceConnections(0)
connectInfo.SetLogon("UserName", "Password")
End Function private ReportDocument SubreportLogon_RD(ReportDocument TestReport)
{
DataSourceConnections dataSourceConnections =
TestReport.DataSourceConnections;
IConnectionInfo connectInfo = dataSourceConnections[0];
connectInfo.SetConnection("ServerName", "DatabaseName", "UserName",
"Password");
ReportDocument TestSubreport = TestReport.Subreports["Subreport1"];
DataSourceConnections subreportDataSourceConnections =
TestSubreport.DataSourceConnections;
IConnectionInfo connectInfo = subreportDataSourceConnections[0];
connectInfo.SetLogon("UserName", "Password");
}
1.4.4.1.3 Connexion à une base de données SQL Server sécurisée avec le modèle d'objet ReportDocument
Cet exemple montre comme se connecter à une base de données en utilisant une authentification SQL sécurisée.
Prérequis
Avant de commencer, vous devez disposer d'un rapport requérant une authentification SQL sécurisée.
Contexte
Pour mettre à jour les informations de connexion pour un rapport en utilisant le modèle d'objet ReportDocument, vous devez mettre à jour la propriété ConnectionInfo pour chaque objet Table de la collection
ReportDocument.Database.Tables. Une fois chaque propriété mise à jour, appelez la méthode
Table.ApplyLogOnInfo pour valider les modifications.
152
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Procédure
1. Créez un objet ConnectionInfo.
2. Définissez les propriétés DatabaseName, UserID et Password de l'objet ConnectionInfo sur les valeurs requises pour la connexion.
Remarque
Si vous définissez uniquement les propriétés DatabaseName, UserID et Password, vous êtes connecté au serveur par défaut de la base de données spécifiée dans le rapport. Toutefois, si vous affectez une autre propriété ServerName, vous pouvez rediriger le rapport vers un serveur différent au moment de l'exécution.
3. Extrayez l'instance Tables de la propriété Database de la classe ReportDocument.
Remarque
Tables est une classe indexée contenant des instances de la classe Table.
4. Pour chaque objet Table de la collection : a. Extrayez l'instance TableLogOnInfode la propriété LogOnInfo de la classe Table.
b. Mettez à jour la propriété ConnectionInfo de l'objet TableLogOnInfo.
c. Appelez la méthode ApplyLogOnInfo pour valider la modification.
Exemple
Private Sub setDatabaseLogon(ByVal rd As ReportDocument, ByVal databaseName As
String, ByVal userName As String, ByVal password As String)
Dim myConnectionInfo As New ConnectionInfo()
myConnectionInfo.DatabaseName = databaseName
myConnectionInfo.UserID = userName
myConnectionInfo.Password = password
Dim myTables As Tables = rd.Database.Tables
For Each myTable As Table In myTables
Dim newLogonInfo As TableLogOnInfo = myTable.LogOnInfo
newLogonInfo.ConnectionInfo = myConnectionInfo
myTable.ApplyLogOnInfo(newLogonInfo)
Next
End Sub private void setDatabaseLogon(ReportDocument rd, String databaseName, String userName, String password)
{
ConnectionInfo connectionInfo = new ConnectionInfo();
connectionInfo.DatabaseName = databaseName;
connectionInfo.UserID = userName;
connectionInfo.Password = password;
Tables tables = rd.Database.Tables;
foreach (Table table in tables)
{
TableLogOnInfo newLogonInfo = table.LogOnInfo;
newLogonInfo.ConnectionInfo = connectionInfo;
table.ApplyLogOnInfo(newLogonInfo);
}
}
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
153
Étapes suivantes
Une fois les informations de connexion à la base de données définies pour l'instance ReportDocument, mettez à jour la propriété ReportSource de l'objet CrystalReportViewer.
1.4.4.1.4 Connexion à une base de données SQL Server sécurisée avec le contrôle CrystalReportViewer
Contexte
Lorsque vous utilisez le modèle d'objet CrystalReportViewer pour vous connecter à une base de données SQL
Server sécurisée, vous devez utiliser les classes de l'espace de noms CrystalDecisions.Shared.
Les propriétés de la classe ConnectionInfo permettent la connexion au serveur de base de données ou aux sources de données ODBC.
Procédure
1. Créez un objet ConnectionInfo.
2. Définissez les propriétés DatabaseName, UserID et Password de l'objet ConnectionInfo sur les valeurs requises pour la connexion.
Remarque
Si vous définissez uniquement les propriétés DatabaseName, UserID et Password, vous êtes connecté au serveur par défaut de la base de données spécifiée dans le rapport. Toutefois, si vous affectez une autre propriété ServerName, vous pouvez rediriger le rapport vers un serveur différent au moment de l'exécution.
3. Extrayez l'instance TableLogOnInfosde la propriété LogOnInfo de la classe CrystalReportViewer.
Remarque
TableLogOnInfos est une classe indexée contenant des instances de la classe TableLogOnInfo.
4. Pour chaque objet TableLogOnInfo de la collection, définissez la ConnectionInfo propriété d'TableLogOnInfoobjet sur l'ConnectionInfo objet.
Exemple
Private Sub setDatabaseLogon(ByVal databaseName As String, ByVal userName As
String, ByVal password As String)
Dim myCconnectionInfo As New ConnectionInfo()
Dim logOnInfos As TableLogOnInfos = crystalReportViewer.LogOnInfo
For Each logOnInfo As TableLogOnInfo In logOnInfos
logOnInfo.ConnectionInfo = myCconnectionInfo
154
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Next
myCconnectionInfo.DatabaseName = databaseName
myCconnectionInfo.UserID = userName
myCconnectionInfo.Password = password
End Sub private void setDatabaseLogon(String databaseName, String userName, String password){
ConnectionInfo connectionInfo = new ConnectionInfo();
TableLogOnInfos logOnInfos = crystalReportViewer.LogOnInfo;
foreach(TableLogOnInfo logOnInfo in logOnInfos) {
logOnInfo.ConnectionInfo = connectionInfo;
}
connectionInfo.DatabaseName = databaseName;
connectionInfo.UserID = userName;
connectionInfo.Password = password;
}
1.4.4.2 Connexion aux IDataReader
De nombreux projets .NET utilisent les DataReader, plutôt que les DataSets, pour extraire des données. Par exemple, le moyen le plus courant de lier un contrôle (tel que le contrôle GridView) aux données consiste à créer une méthode qui extrait les données par le biais d'un DataReader, puis de renvoyer ces données à partir de la méthode via une interface IDataReader.
Le concepteur de rapports SAP Crystal incorporé peut accéder à l'interface IDataReader si certaines conditions sont remplies :
● Les données doivent être renvoyées à partir d'une méthode, par le biais de l'interface IDataReader.
● Le fournisseur de données utilisé dans la méthode doit être le fournisseur de données OleDb .NET.
Remarque
Les classes de ce fournisseur de données se trouvent dans l'espace de noms System.Data.OleDb.
● La méthode doit être partagée [Visual Basic] ou statique [C#].
● La classe contenant cette méthode doit faire partie d'un projet de bibliothèque de classes et être compilée dans un assembly.
Pour créer un rapport Crystal utilisant une instance d'IDataReader comme source de données, vous devez créer une bibliothèque de classes à l'aide d'une méthode statique qui renvoie un objet IDataReader. Après avoir compilé cette bibliothèque de classes, l'assemblage qui en résulte fait office de source de données pour votre rapport.
Remarque
Vous ne serez pas en mesure de définir la source de données de votre rapport sur IDataReader tant que vous n'aurez pas créé et compilé la bibliothèque de classes.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
155
Informations associées
Tutoriel : Connexion aux IDataReader [page 542]
1.4.4.3 Connexion aux DataSets ADO.NET
Un objet DataSet ADO.NET est une collection de classes de DataSets créées en mémoire. Vous pouvez créer un
DataSet ADO.NET à partir de diverses sources de données (y compris à partir de bases de données Access,
Oracle et SQL Server) à l'aide du concepteur de DataSets ADO.NET de Visual Studio. Le concepteur de DataSets
ADO.NET affiche une vue graphique de la base de données avec ses tables, ses champs et les types correspondants. Vous pouvez faire glisser des tables de l'Explorateur de serveurs vers un fichier de schéma dans l'onglet Schéma du concepteur.
Pour créer un rapport Crystal utilisant un ensemble de données ADO.Net comme source de données, vous devez créer une bibliothèque de classes à l'aide d'une méthode statique ou d'une propriété qui renvoie un objet
DataSet. Après avoir compilé cette bibliothèque de classes, l'assemblage qui en résulte fait office de source de données pour votre rapport.
Remarque
Vous ne pourrez pas définir la source de données de votre rapport sur le DataSet tant que vous n'aurez pas créé et compilé la bibliothèque de classes.
Dans quels cas utiliser un DataSet
Les DataSets sont utiles lorsque :
● Les données du DataSet doivent être modifiées après l'exécution de la requête.
● Les données de plusieurs sources de données doivent être mises en relation.
Remarque
Les DataSets sont une représentation XML des données qui proviennent généralement d'une base de données. Un DataSet correspond non pas à une seule table mais à un groupe de tables dans une base de données. Cela peut présenter un problème d'évolutivité au niveau des rapports. Si un rapport extrait plusieurs tables dans un DataSet et qu'une jointure est requise entre ces tables, c'est au rapport d'effectuer la jointure lorsqu'il interagit séparément avec chaque table. Ce processus n'est pas efficace. Il est toujours plus judicieux de placer les instructions de jointure dans la requête que vous utilisez pour remplir le DataSet. Cela génère une "pseudo-table" unique de données pré-jointes dans votre DataSet, qui
"libère" ainsi le rapport et lui permet de se consacrer à l'affichage des données.
156
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Informations associées
Eviter d'utiliser des DataSets pour des requêtes simples [page 68]
En cas d'utilisation des DataSets, les mettre en mémoire cache [page 68]
Tutoriel : Connexion aux DataSets ADO.NET [page 529]
1.4.4.4 Connexion aux ensembles d'objets
SAP Crystal Reports 2008 a la capacité de créer des rapports à partir de données d'objet. Les données d'objet peuvent être simples, telles que des données de chaîne ou d'entier. ou peuvent être complexes, telles qu'une classe ou une collection. Les collections doivent être un simple tableau ou un objet IEnumerable. SAP Crystal
Reports peut accéder à ces collections d'objets comme à une source de données normale, fournissant une source de données polyvalente pour vos rapports Crystal.
Une collection d'objets permet d'écrire une classe personnalisée qui remplit un objet avec des données par programmation ou de façon dynamique. Vous pouvez également rédiger vos propres objets d'accès aux données en augmentant le nombre de sources de données fournies avec une installation par défaut SAP Crystal Reports, version développeur pour Microsoft Visual Studio.
Pour utiliser une collection d'objets comme source de données, vous devez créer une classe qui fournit au moins une propriété publique. Si la propriété renvoie des données simples, telles que des valeurs de chaîne ou d'entier,
SAP Crystal Reports traite ces données en tant que champ d'une base de données. Si la propriété renvoie des données complexes, telles qu'un objet ArrayList, chaque objet de la collection d'objets fournit une ligne de détails dans le rapport.
Accès aux données au sein des objets
Les versions antérieures de SAP Crystal Reports permettent d'accéder à des propriétés qui renvoient uniquement des types de données simples. Par exemple, si un objet contient une propriété qui renvoie une chaîne, cette chaîne est fournie en tant que champ normal au moment de la conception. Mais si l'objet contient une propriété qui renvoie un objet, les données au sein de l'objet renvoyé ne sont pas fournies, même s'il contient des données simples.
SAP Crystal Reports 2008 et les versions ultérieures permettent d'accéder aux données contenues dans des types de données complexes grâce à une expansion des types complexes. Au moment de la conception, l'objet renvoyé apparaît en tant que source de données hiérarchique. Les données complexes peuvent être étendues pour révéler tout type de données simples qu'elles fournissent et qui peuvent ensuite être ajoutées au rapport.
Pour activer l'expansion des types complexes, ajoutez l'attribut CrystalComplexTypeExpansionLevels à la propriété qui renvoie l'objet que vous souhaitez étendre. Vous devez définir l'attribut
CrystalComplexTypeExpansionLevels sur une valeur supérieure à 1 pour explorer en avant les données de classe. Si vous ne définissez pas l'attribut CrystalComplexTypeExpansionLevels, SAP Crystal Reports ne pourra pas accéder aux données de champ au sein de la classe.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
157
Exemple
Exposition de données simples
Cet exemple comporte deux objets : Employee et Person. Lorsque l'objet Employee est ajouté au rapport comme source de données, la propriété Employee.EmployeeID est fournie en tant que champ valide ; toutefois, la propriété Employee.Person n'est pas visible, car elle renvoie un type de données complexes.
Class Employee
Private _employeeID As Integer
Private _person As New Person()
Public Property EmployeeID() As Integer
Get
Return _employeeID
End Get
Set(ByVal value As Integer)
_employeeID = value
End Set
End Property
Public ReadOnly Property Person() As Person
Get
Return _person
End Get
End Property
End Class
Class Person
Private _name As String
Public Property Name() As String
Get
Return _name
End Get
Set(ByVal value As String)
_name = value
End Set
End Property
End Class class Employee
{
int _employeeID;
Person _person = new Person();
public int EmployeeID
{
get { return _employeeID; }
set { _employeeID = value; }
}
public Person Person
{
get { return _person; }
}
} class Person
{
private String _name;
public String Name
{
get { return _name; }
set { _name = value; }
}
}
158
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Exemple
Autorisation d'expansion de types complexes
Dans l'exemple précédent, la propriété Employee.Person n'est pas visible, car elle renvoie un type de données complexes.
Dans cet exemple, l'attribut CrystalComplexTypeExpansionLevels a été ajouté à la propriété
Employee.Person, ce qui permet au concepteur du rapport d'afficher un nouveau champ dans l'
Explorateur de champs
: Person-Name.
Class Employee
Private _employeeID As Integer
Private _person As New Person()
Public Property EmployeeID() As Integer
Get
Return _employeeID
End Get
Set(ByVal value As Integer)
_employeeID = value
End Set
End Property
<CrystalDecisions.CrystalReports.Engine.CrystalComplexTypeExpansionLevels(1)>
_
Public ReadOnly Property Person() As Person
Get
Return _person
End Get
End Property
End Class
Class Person
Private _name As String
Public Property Name() As String
Get
Return _name
End Get
Set(ByVal value As String)
_name = value
End Set
End Property
End Class class Employee
{
int _employeeID;
Person _person = new Person();
public int EmployeeID
{
get { return _employeeID; }
set { _employeeID = value; }
}
[CrystalDecisions.CrystalReports.Engine.CrystalComplexTypeExpansionLevels(1)]
public Person Person
{
get { return _person; }
}
} class Person
{
private String _name;
public String Name
{
get { return _name; }
set { _name = value; }
}
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
159
}
Informations associées
Tutoriels : Connexion aux collections d'objets [page 553]
1.4.4.5 Activation de la mise en cache des rapports dans un site Web SAP Crystal Reports
Prérequis
Ces étapes font appel aux tâches guidées. Cette fonctionnalité est disponible dans Visual Studio 2005 et versions ultérieures.
Contexte
Les projets Windows qui utilisent Crystal Reports, version développeur pour Microsoft Visual Studio font appel à la même structure de mise en cache que celle utilisée dans Visual Studio .NET 2003. A savoir, lorsqu'un rapport est ajouté à un projet, deux classes de rapport wrapper sont générées : une classe de rapport standard et une classe de rapport mis en cache.
Si aucune classe wrapper de rapport n'est généré pour un rapport, la mise en cache est contrôlée via la propriété
EnableCaching du contrôle CrystalReportSource.
Procédure
1. Créer un site Web Crystal Reports, version développeur pour Microsoft Visual Studio.
2. Dans la page Default.aspx, sélectionnez le mode
Source
.
3. Localisez la balise XML du contrôle CrystalReportSource.
4. Modifiez la valeur de la propriété EnableCaching en la faisant passer de
False
à
True
.
Remarque
Pour en savoir plus sur la mise en cache des rapports, sur la version mise en cache de la classe de rapport wrapper et sur l'opportunité de faire ou non appel à la mise en cache, voir
Cache et persistance du modèle d'objet ReportDocument [page 58] .
160
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Exemple
<CR:CrystalReportSource ID="myCrystalReportSource" runat="server"
EnableCaching="True">
<Report FileName="CrystalReport1.rpt">
</Report>
</CR:CrystalReportSource>
1.4.4.6 Utilisation de LINQ
LINQ (Language Integrated Query) est un composant Microsoft Framework permettant d'effectuer des requêtes sur tout type de source de données.
SAP Crystal Reports peut créer des rapports sur une collection d'objets personnalisés. Cela permet de mieux contrôler l'affichage des informations dans un rapport. Toutefois, la constitution d'une collection d'objets peut se révéler compliquée si cette collection contient des données d'agrégat issues de plusieurs sources de données.
L'utilisation de LINQ simplifie le processus de reporting sur une collection d'objets et permet d'exécuter des requêtes de type SQL sur des objets personnalisés. Par exemple, supposons que vous ayez une base de données
SQL, un fichier XML et un fichier Microsoft Access contenant des données commerciales. LINQ permet d'effectuer une requête à partir des trois sources de données et d'afficher les données dans un rapport unique.
LINQ permet d'effectuer les opérations suivantes :
● Constituer une collection d'objets à partir de plusieurs sources de données.
● Lier deux collections d'objets.
● Regrouper des éléments au sein d'une collection.
Vous devez installer les logiciels suivants pour utiliser LINQ avec SAP Crystal Reports :
● Visual Studio 2008 ou une version plus récente
● Microsoft .NET Framework version 3.5
● SAP Crystal Reports Basic pour Visual Studio 2008 ou une version plus récente
Informations associées
Définition de la source de données [page 149]
1.4.5 Visualisation d'un rapport
Le contrôle CrystalReportViewer permet de visualiser des rapports Crystal. Il existe deux contrôles
CrystalReportViewer dans le SDK SAP Crystal Reports .NET. Pour un site Web, utilisez la classe
CrystalDecisions.Web.CrystalReportViewer. Pour une application Windows, utilisez la classe
CrystalDecisions.Windows.Forms.CrystalReportViewer.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
161
Pour visualiser un rapport, vous devez d'abord ajouter un contrôle CrystalReportViewer à votre application, puis affecter la propriété ReportSource de ce contrôle à un rapport. Le processus d'affectation d'un rapport à un contrôle CrystalReportViewer est appelé liaison de rapports.
Il existe différentes manières de lier un contrôle CrystalReportViewer à un rapport. Cette section détaille chaque scénario de liaison de rapports, ainsi que les considérations générales concernant la visualisation de rapport.
Classes utilisées pour la visualisation de rapports
● CrystalDecisions.Windows.Forms.CrystalReportViewer
Fournit des propriétés, des méthodes et des événements permettant de modifier ou d'extraire les informations sur la manière dont fonctionne et s'affiche le contrôle CrystalReportViewer.
● CrystalDecisions.Web.CrystalReportViewer
Fournit des propriétés, des méthodes et des événements permettant de modifier ou d'extraire les informations sur la manière dont fonctionne et s'affiche le contrôle CrystalReportViewer.
● CrystalDecisions.CrystalReports.Engine.ReportDocument
Représente un rapport et contient les propriétés et les méthodes permettant de définir, mettre en forme, charger, exporter et imprimer ce rapport.
Informations associées
Comment utiliser les contrôles visualiseur de rapports ? [page 43]
Contrôle CrystalReportViewer [page 42]
Scénarios de liaison de rapports [page 167]
1.4.5.1 Comparaison des rapports incorporés et non incorporés
Différence entre un rapport incorporé et un rapport non incorporé
Un rapport incorporé est un rapport qui a été importé ou créé dans un projet Visual Studio. Lorsqu'un rapport est incorporé dans un projet, une classe wrapper est automatiquement générée pour ce rapport. Cela permet d'accéder au rapport par son nom, plutôt que par le biais d'une instance ReportDocument distincte.
Un rapport non incorporé est un rapport externe au projet Visual Studio. Il existe de nombreuses manières d'accéder au rapport et de le charger dans un modèle d'objet (afin de pouvoir interagir avec lui par programmation), mais ce rapport restera toujours externe au projet.
162
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Fonctionnement d'un rapport incorporé
Lorsqu'un rapport est importé ou créé dans un projet, une classe wrapper (du même nom que le rapport) est générée. Cette classe wrapper inclut ou représente le rapport dans le projet. Une fois cette opération terminée, tout le code du projet interagit avec la classe créée pour représenter le rapport plutôt qu'avec le rapport luimême.
Lorsque le projet est compilé, le rapport et sa classe wrapper sont incorporés dans l'assembly, comme pour n'importe quelle autre ressource du projet.
Remarque
Avec .Net Framework, la taille des fichiers DLL est limitée. Cela signifie que la compilation du projet peut
échouer s'il contient des rapports incorporés volumineux. Pour les projets utilisant des rapports volumineux, désactivez les données enregistrées dans le rapport ou modifiez votre projet de sorte à utiliser des rapports non incorporés. La taille limite varie selon les versions de .Net Framework. Pour en savoir plus, reportez-vous à la documentation de .Net Framework.
La classe wrapper d'un rapport s'étend à partir de la classe de base commune ReportDocument. Elle hérite de toutes les propriétés et méthodes de ReportDocument.
La classe ReportDocument est la classe racine du modèle d'objet ReportDocument.
Fonctionnement d'un rapport non incorporé
L'accès à un rapport non incorporé se fait toujours depuis l'extérieur et le SDK peut y accéder de diverses manières :
● Le rapport peut être situé sur le disque dur avec un chemin d'accès au répertoire de fichiers.
● Le rapport peut être exposé en tant que service Web de rapports.
● Le rapport peut faire partie d'un groupe de rapports exposés via les services Crystal.
Les rapports non incorporés ne sont jamais importés dans un projet, et par conséquent, aucune classe wrapper n'est créée (contrairement aux rapports incorporés). A la place, le rapport non incorporé est chargé dans un des modèles d'objet au moment de l'exécution, de l'une des manières suivantes :
● Le rapport est chargé par et dans le modèle d'objet ReportDocument à l'aide de la méthode
ReportDocument.Load().
● Le modèle d'objet CrystalReportViewer utilise la propriété CrystalReportViewer.ReportSource pour lier directement le rapport au contrôle.
Comment choisir entre un rapport incorporé ou non incorporé
Si vous souhaitez simplifier le déploiement de votre projet, utilisez des rapports incorporés. Vous aurez moins de fichiers à gérer et aucun risque de placement incorrect des rapports suite à un chemin d'accès erroné. Cette solution est également plus sûre dans la mesure où les rapports ne sont pas exposés pour les modifications.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
163
S'ils garantissent simplicité et sécurité, les rapports incorporés impliquent une charge de travail plus importante.
Ils ne peuvent pas être modifiés sans recompiler le projet dans son intégralité. Si des rapports doivent être modifiés régulièrement, ne les incorporez pas. Leur accès et leur modification seront ainsi facilités et vous n'aurez pas à recompiler les assemblys à chaque fois. En outre, la taille des rapports incorporés est limitée. Les rapports très volumineux ne peuvent pas être compilés en tant que ressources incorporées.
Les scénarios de liaison de rapports vous indiqueront de nombreuses manières de lier des rapports incorporés et non incorporés. Vous verrez également comment utiliser ReportDocument en tant que classe générique pour l'un comme pour l'autre type de rapport. Cela permet de limiter au maximum les modifications de code, si vous décidez de passer d'une solution à une autre.
Incorporation de rapports dans un projet Web
La prise en charge des rapports incorporés est activée par le biais d'un Build Provider qui compile les rapports sous la forme d'un fichier DLL. Pour incorporer un rapport dans un fichier DLL lors de la compilation, vous devez attribuer au paramètre embedRptInResourc de votre fichier web.config la valeur True. Pour accéder à la classe du wrapper via Intellisense, vous devez placer le rapport dans le dossier App_Code/Global de votre solution.
Remarque
Si le rapport est situé dans le répertoire App_Code/Global et que le paramètre embedRptInResource est défini sur False, le fichier du rapport ne sera pas copié dans l'emplacement cible au moment de la publication du site Web. Pour contourner ce problème, copiez votre site Web dans l'emplacement cible.
embedRptInResource
True
True
False
False
Emplacement du rapport Intellisense disponible
App_Code/Global X
En dehors de
App_Code/Global
, mais dans le projet
App_Code/Global
X
En dehors de
App_Code/Global , mais dans le projet
Publier pour déployer
X
X
X X
X
Copier pour déployer
X
X
Informations associées
Configuration du fichier Web.Config [page 20]
164
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.4.5.2 Définition de la source du rapport
Le contrôle CrystalReportViewer n'affiche qu'un rapport à la fois. Pour indiquer au contrôle le rapport qu'il doit afficher, vous devez lier sa propriété ReportSource à un rapport particulier. Au moment de l'exécution, le contrôle charge le rapport lié à la propriété ReportSource et l'affiche.
Un contrôle CrystalReportViewer peut être lié à un fichier sur un disque, à un objet ReportDocument ou à un objet
ReportClientDocument. La liaison à un objet fournit des fonctionnalités supplémentaires par le biais des modèles d'objet ReportDocument et ReportClientDocument. Il s'agit de la manière la plus simple de définir la propriété
ReportSource.
Dans sa forme la plus simple, l'affectation se présente de la manière suivante : crystalReportViewer1.ReportSource = "C:\WorldSalesReport.rpt" crystalReportViewer1.ReportSource = "C:\\WorldSalesReport.rpt";
Dans cet exemple, le rapport est lié au contrôle directement à partir de son chemin d'accès au répertoire de fichiers.
Contrôle CrystalReportSource
Le contrôle CrystalReportSource est un élément du modèle de développement d'applications avec balises fourni avec ASP.NET version 2.0.
Remarque
Le contrôle CrystalReportSource n'est disponible que pour les sites Web.
Dans la structure de contrôle DataSource, les contrôles .NET visuels se connectent aux contrôles DataSource non visuels (contrôles qui ne gèrent pas les informations d'affichage). Cette nouvelle structure DataSource encapsule les informations de connectivité des données écrites sous forme de lignes de code dans les contrôles .NET insérés dans le Web Form.
1.4.5.2.1 Liaison du contrôle CrystalReportViewer à un fichier sur disque
Contexte
La manière la plus simple de lier un contrôle CrystalReportViewer à un rapport Crystal est de définir la propriété
ReportSource sur un emplacement du disque. Ce rapport non incorporé est affiché lors de l'exécution de l'application.
Cette opération lie le rapport directement au contrôle. Toutes les interactions par programmation avec le rapport doivent être effectuées dans le modèle d'objet limité CrystalReportViewer.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
165
Procédure
1. Ajoutez un contrôle CrystalReportViewer à l'application Windows ou au site Web.
2. Ouvrez le Web Form ou Windows Form.
3. Dans le menu
Affichage
, cliquez sur
Code
.
4. Définissez la propriété ReportSource sur l'emplacement du rapport sur votre système de fichiers local.
○ Lors de l'utilisation d'une application Windows Form ou d'un site Web : myCrystalReportViewer.ReportSource = "C:\MyReport.rpt" crystalReportViewer.ReportSource = "C:\\MyReport.rpt";
○ Lors de l'utilisation d'une application WPF : myCrystalReportViewer.ViewerCore.ReportSource = "C:\MyReport.rpt" crystalReportViewer.ViewerCore.ReportSource = "C:\\MyReport.rpt";
1.4.5.2.2 Liaison du contrôle CrystalReportViewer à un objet
ReportDocument
Contexte
Ce scénario de liaison de rapports permet d'utiliser ReportDocument, le modèle d'objet le plus puissant, avec des rapports non incorporés (externes à votre projet).
Au lieu de lier directement les chemins d'accès des répertoires au visualiseur, vous les transmettez à la méthode
ReportDocument.Load(). Vous liez ensuite le contrôle CrystalReportViewer à l'objet ReportDocument.
Procédure
1. Ajoutez un contrôle CrystalReportViewer à l'application Windows ou au site Web.
2. Ouvrez le Web Form ou Windows Form.
3. Dans le menu
Affichage
, cliquez sur
Code
.
4. Instanciez un nouvel objet ReportDocument et chargez un rapport depuis le disque à l'aide de la méthode
ReportDocument.Load.
Dim rd As ReportDocument = New ReportDocument() rd.Load(reportPath)
ReportDocument rd = new ReportDocument(); rd.Load(reportPath);
166
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
5. Définissez la propriété ReportSource sur l'objet ReportDocument.
○ Lors de l'utilisation d'une application Windows Form ou d'un site Web : myCrystalReportViewer.ReportSource = rd crystalReportViewer.ReportSource = rd;
○ Lors de l'utilisation d'une application WPF : myCrystalReportViewer.ViewerCore.ReportSource = rd crystalReportViewer.ViewerCore.ReportSource = rd;
1.4.5.3 Scénarios de liaison de rapports
SAP Crystal Reports, version développeur pour Microsoft Visual Studio, propose plusieurs méthodes pour associer un contrôle CrystalReportViewer à un rapport. Afin de vous aider à choisir le scénario de liaison de rapports le mieux adapté à votre application, cette section récapitule les avantages et les inconvénients des scénarios recommandés et explique pourquoi certains sont plus utilisés que d'autres.
Remarque
La plupart des sites Web ou des projets Windows peuvent reposer sur les deux scénarios de liaison les plus simples : la liaison à un rapport incorporé ou non incorporé.
Après avoir lu cette section, vous pouvez consulter la liste détaillée de tous les scénarios afin d'examiner en détail toutes les options disponibles dans le SDK.
Scénarios de liaison recommandés pour SAP Crystal Reports
Les scénarios qui lient les rapports à l'aide du modèle d'objet ReportDocument sont généralement plus utilisés que ceux qui font appel au modèle d'objet CrystalReportViewer. Cela tient au fait que le modèle d'objet
ReportDocument fournit une interface API plus complète pour programmer l'interaction avec le rapport.
. S'il n'est pas le plus à même d'optimiser les performances, ce scénario est le plus simple d'utilisation : vous ajoutez un rapport au projet pour créer une classe wrapper de rapport, vous instanciez cette classe wrapper, puis vous la transmettez au contrôle CrystalReportViewer. Etant donné que la classe wrapper du rapport hérite des caractéristiques de la classe de base ReportDocument, vous avez accès à toutes les fonctionnalités du modèle d'objet ReportDocument.
Une autre méthode courante de liaison des rapports est décrite dans
modèle d'objet ReportDocument avec en plus l'avantage des rapports non incorporés qui peuvent être modifiés sans avoir à recompiler l'application dans son intégralité.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
167
Scénarios de liaison recommandés pour le Report Application Server
Avec le serveur RAS et selon la manière dont vous configurez votre projet, vous pouvez utiliser des scénarios supplémentaires de liaison de rapports.
● Si vous utilisez SAP Crystal Reports 10 avec le RAS 10, vous pouvez transférer des projets créés à l'origine dans SAP Crystal Reports (en utilisant des rapports incorporés) vers le serveur RAS et le modèle d'objet
ReportClientDocument, en ajoutant uniquement deux lignes de code par rapport.
● Pour optimiser le scénario ci-dessus, faites des copies de vos rapports incorporés sur le serveur RAS et dirigez ce dernier de manière à ce qu'il utilise ces copies.
Scénarios de liaison recommandés pour SAP Crystal Reports Server ou la plateforme SAP BusinessObjects Business Intelligence
Si vous avez procédé à une mise à niveau vers SAP Crystal Reports Server ou la plateforme SAP BusinessObjects
Business Intelligence, vous avez le choix entre quatre scénarios de liaison de rapports recommandés. Votre choix dépendra de vos attentes en matière de modification des rapports et d'évolutivité :
● Vous pouvez afficher un rapport qui ne nécessite aucun modification par programmation avec une vitesse et des performances optimales.
● Vous pouvez modifier l'affichage de votre rapport par programmation en accédant au modèle d'objet
ReportClientDocument.
● Si vous utilisez SAP Crystal Reports, version développeur pour Microsoft Visual Studio avec
SAP Crystal Reports Server ou la plateforme SAP BusinessObjects Business Intelligence, vous pouvez transférer des projets initialement créés dans SAP Crystal Reports (en utilisant des rapports incorporés) vers
SAP Crystal Reports Server ou la plateforme SAP BusinessObjects Business Intelligence, tout en conservant le code de rapport existant, en publiant des copies des rapports incorporés dans SAP Crystal Reports Server ou dans la plateforme SAP BusinessObjects Business Intelligence.
● Vous pouvez accéder à votre rapport en tant qu'instance d'InfoObject dans la structure de plateforme, ce qui vous permet de planifier ce rapport et d'en modifier les paramètres.
Informations associées
Contrôles du visualiseur de rapports [page 35]
1.4.5.3.1 Liaison de rapports à l'aide du modèle d'objet
CrystalReportViewer
Le modèle d'objet CrystalReportViewer est le modèle d'objet le plus simple. Etant donné la portée limitée de ses fonctionnalités, son utilisation est généralement déconseillée au profit du modèle d'objet plus complet
ReportDocument.
168
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Informations associées
Modèle d'objet CrystalReportViewer [page 36]
Liaison au chemin d'accès d'un répertoire de fichiers par code [page 169]
1.4.5.3.1.1 Liaison au chemin d'accès d'un répertoire de fichiers par code
Modèle d'objet
Ce scénario de liaison de rapports utilise le modèle d'objet CrystalReportViewer.
Emplacement des rapports
Les rapports se trouvent dans un répertoire de fichiers.
Description
Il s'agit du scénario de liaison de rapports le plus simple : vous liez un rapport situé dans le répertoire de fichiers au contrôle CrystalReportViewer par le biais de son chemin d'accès.
Avantages
● Peu de maintenance : les rapports sont ajoutés, supprimés ou modifiés sans avoir à recompiler l'application.
● Implémentation simplifiée : il est inutile de déclarer et d'instancier les classes. Ce scénario contourne l'utilisation du modèle d'objet ReportDocument en transférant directement un rapport au contrôle
CrystalReportViewer.
Inconvénients
● Distribution limitée : les rapports restent généralement stockés sur le même ordinateur que l'application, en raison des complications générées par l'octroi au compte utilisateur ASPNET de droits d'accès à un autre ordinateur du réseau.
● Modèle d'objet limité : ce scénario de liaison n'offre qu'un modèle d'objet limité qui fait partie du contrôle
CrystalReportViewer.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
169
Informations associées
Liaison au chemin d'accès d'un répertoire de fichiers via la fenêtre Propriétés [page 170]
1.4.5.3.1.1.1 Liaison du contrôle CrystalReportViewer à un fichier sur disque
Contexte
La manière la plus simple de lier un contrôle CrystalReportViewer à un rapport Crystal est de définir la propriété
ReportSource sur un emplacement du disque. Ce rapport non incorporé est affiché lors de l'exécution de l'application.
Cette opération lie le rapport directement au contrôle. Toutes les interactions par programmation avec le rapport doivent être effectuées dans le modèle d'objet limité CrystalReportViewer.
Procédure
1. Ajoutez un contrôle CrystalReportViewer à l'application Windows ou au site Web.
2. Ouvrez le Web Form ou Windows Form.
3. Dans le menu
Affichage
, cliquez sur
Code
.
4. Définissez la propriété ReportSource sur l'emplacement du rapport sur votre système de fichiers local.
○ Lors de l'utilisation d'une application Windows Form ou d'un site Web : myCrystalReportViewer.ReportSource = "C:\MyReport.rpt" crystalReportViewer.ReportSource = "C:\\MyReport.rpt";
○ Lors de l'utilisation d'une application WPF : myCrystalReportViewer.ViewerCore.ReportSource = "C:\MyReport.rpt" crystalReportViewer.ViewerCore.ReportSource = "C:\\MyReport.rpt";
1.4.5.3.1.2 Liaison au chemin d'accès d'un répertoire de fichiers via la fenêtre Propriétés
Modèle d'objet
Ce scénario de liaison de rapports utilise le modèle d'objet CrystalReportViewer.
170
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Emplacement des rapports
Les rapports se trouvent dans un répertoire de fichiers.
Description
contrôle CrystalReportViewer par le biais de son chemin d'accès, mais définissez cette affectation dans la fenêtre Propriétés, directement à l'aide de la propriété DataBindings>ReportSource ou de la propriété
ReportSource.
Dans un projet Web, le chemin d'accès au rapport est inséré directement dans le code HTML de la page ASPX plutôt que dans le code de la classe code-behind.
Avantages
● Aperçu au moment de la conception : vous pouvez afficher un aperçu du rapport au moment de sa conception, dans le Web Form ou le Windows Form.
Remarque
L'aperçu au moment de la conception est une fonctionnalité dont les projets Web bénéficiaient déjà, mais qui est nouvelle pour les projets Windows.
● Peu de maintenance : les rapports sont ajoutés, supprimés ou modifiés sans avoir à recompiler l'application.
● Implémentation simplifiée : il est inutile de déclarer et d'instancier les classes. Ce scénario contourne l'utilisation du modèle d'objet ReportDocument en transférant directement un rapport au contrôle
CrystalReportViewer.
Inconvénients
● Pour les applications Web, étant donné que la liaison se fait au niveau de la page HTML, vous devez appeler la méthode DataBind() du contrôle CrystalReportViewer dans la classe code-behind.
Remarque
Cette restriction a été supprimée dans SAP Crystal Reports pour Visual Studio 2005.
● Distribution limitée : les rapports restent généralement stockés sur le même ordinateur que l'application, en raison des complications générées par l'octroi au compte utilisateur ASPNET de droits d'accès à un autre ordinateur du réseau.
● Modèle d'objet limité : ce scénario de liaison n'offre qu'un modèle d'objet limité qui fait partie du contrôle
CrystalReportViewer.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
171
Informations associées
Liaison à un contrôle CrystalReportSource (sites Web dans Visual Studio) [page 172]
1.4.5.3.1.2.1 Pour lier un rapport par l'intermédiaire du chemin d'accès à son répertoire de fichiers à l'aide de la fenêtre Propriétés
Procédure
1. Créez un projet Web ou Windows.
2. Dans la
boîte à outils
, faites glisser un contrôle CrystalReportViewer dans un Web Form ou un
Windows Form.
3. Cliquez sur le contrôle CrystalReportViewer pour le sélectionner.
4. Dans la fenêtre
Propriétés
, affectez à la propriété ReportSource le chemin d'accès à un répertoire de fichiers.
Remarque
Le chemin d'accès au répertoire de fichiers pointe sur les exemples de rapports de Visual Studio 2005.
En raison de la fonctionnalité d'aperçu au moment de la conception, le rapport s'affiche en mode Aperçu.
C:\Program Files\Microsoft Visual Studio 8.0\Crystal Reports\Samples\fr\Reports
\Feature Examples\Hierarchical Grouping.rpt
5. Pour visualiser le rapport, générez et exécutez votre projet.
1.4.5.3.1.3 Liaison à un contrôle CrystalReportSource (sites
Web dans Visual Studio)
Modèle d'objet
Ce scénario de liaison de rapports utilise le modèle d'objet CrystalReportViewer.
Emplacement des rapports
Les rapports se trouvent dans un répertoire de fichiers.
172
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Description
de développement d'applications avec balises et programmation allégée d'ASP.NET version 2.0.
Remarque
Ce scénario de liaison de rapports n'est disponible que pour les sites Web.
Dans ce scénario, vous utilisez des tâches guidées pour créer un contrôle CrystalReportSource. Vous sélectionnez ensuite un rapport pour le contrôle CrystalReportSource.
Au lieu d'écrire manuellement du code pour interagir avec le rapport et permettre son accès au modèle d'objet
CrystalReportViewer, vous effectuez des sélections dans le panneau des tâches guidées (mode Design) ou vous saisissez directement des déclarations XML (mode Source).
Avec les déclarations XML, vous pouvez associer les balises <Parameters> et <DataSources>, imbriquées dans la balise <Report>, à un ensemble de contrôles non visuels accessibles à partir des structures Parameter et
DataSource.
Remarque
Les structures Parameter et DataSource sont de nouvelles fonctionnalités d'ASP.NET 2.0. Elles incluent des contrôles tels que ControlParameter ou QueryStringParameter et SqlDataSource ou JetDataSource.
Le modèle de développement d'applications avec balises est un moyen simple et rapide d'interagir de manière limitée avec le rapport sans avoir à écrire du code.
Avantages
● Aperçu au moment de la conception : vous pouvez afficher un aperçu du rapport au moment de sa conception, dans le Web Form ou le Windows Form.
● Interaction simplifiée avec le rapport : le modèle de développement d'applications avec balises, plus simple et allégé en programmation, peut être utilisé pour interagir avec le rapport.
● Avantages identiques à ceux répertoriés dans le scénario
Liaison au chemin d'accès d'un répertoire de fichiers par code [page 169]
.
Inconvénients
● Distribution limitée : les rapports restent généralement stockés sur le même ordinateur que l'application, en raison des complications générées par l'octroi au compte utilisateur ASPNET de droits d'accès à un autre ordinateur du réseau.
● Modèle d'objet limité : ce scénario de liaison n'offre qu'un modèle d'objet limité qui fait partie du contrôle
CrystalReportViewer.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
173
1.4.5.3.1.3.1 Liaison à un contrôle CrystalReportSource à l'aide du modèle de programmation allégée
Procédure
1. Faites glisser un contrôle
CrystalReportViewer
sur le Web Form.
2. Dans l'angle supérieur droit du contrôle CrystalReportViewer, cliquez sur le petit bouton triangulaire.
Le panneau des tâches guidées
Tâches CrystalReportViewer
s'affiche. Dans la liste
Sélectionner la source du rapport
, la valeur <Aucune> s'affiche.
3. Cliquez sur la liste
Sélectionner la source du rapport
, puis sélectionnez
<Source du nouveau rapport…>
.
La boîte de dialogue
Créer la source du rapport
s'ouvre.
4. Dans la zone
Indiquer le nom du contrôle CrystalReportSource
, laissez l'entrée par défaut
CrystalReportSource1.
5. Cliquez sur la liste
Spécifier un rapport pour le contrôle CrystalReportSource
, puis sélectionnez
<Parcourir...>
.
L'autre sélection possible est
<Nouveau rapport>
. Cette option permet de créer un rapport Crystal.
6. Sélectionnez un rapport à afficher dans le contrôle CrystalReportViewer et cliquez sur
OK
.
7. Cliquez à nouveau sur
OK
pour fermer la boîte de dialogue
Créer la source du rapport
.
Informations associées
1.4.5.3.1.4 Liaison à l'URL d'un service Web de rapports
Modèle d'objet
Ce scénario de liaison de rapports utilise le modèle d'objet CrystalReportViewer.
Emplacement des rapports
Les rapports, situés à l'emplacement d'un service Web de rapports, sont hébergés sur un serveur Web (en général distant).
174
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Description
Un rapport, stocké sur un autre serveur et traité comme un service Web de rapports, est lié par le biais de son
URL au contrôle CrystalReportViewer.
Avantages
● Large distribution : les rapports peuvent exister n'importe où sur Internet.
● Distribution facile : les services Web de rapports se trouvent sur le port 80, ce qui les rend accessibles même par le biais de pare-feu.
Inconvénients
● Modèle d'objet limité : ce scénario de liaison n'offre qu'un modèle d'objet limité qui fait partie du contrôle
CrystalReportViewer.
Implémentation
Remarque
de code spécifique nécessaire à cette procédure. Il est impossible de suivre cette procédure sans cette configuration.
● Dans la méthode ConfigureCrystalReports() (que vous avez créée dans la section
Configuration d'un projet [page 15]
), affectez l'URL d'un service Web de rapports à la propriété ReportSource de la classe
CrystalReportViewer.
Cette opération lie le rapport directement au contrôle. Toutes les interactions par programmation avec le rapport doivent être effectuées dans le modèle d'objet limité CrystalReportViewer.
myCrystalReportViewer.ReportSource = _
"http://localhost/TestProject/World_Sales_ReportService.asmx" crystalReportViewer.ReportSource =
"http://localhost/TestProject/World_Sales_ReportService.asmx";
Remarque
Pour utiliser ce scénario de liaison, créez un projet de services Web de rapports dans Visual Studio.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
175
Informations associées
Utilisation de Crystal Reports en tant que service Web [page 81]
1.4.5.3.1.5 Scénarios de liaison CrystalReportViewer avec les services Crystal
Utilisation des services Crystal dans Visual Studio
SAP Crystal Reports, version développeur pour Microsoft Visual Studio permet d'accéder par programmation aux fichiers serveur via Crystal Services.
Utilisation des services Crystal dans Visual Studio 2003
Dans Visual Studio 2003, vous pouvez accéder aux rapports Crystal via le nœud Services Crystal dans l'Explorateur de serveurs. Une fois SAP Crystal Reports et les services Crystal installés, Services Crystal apparaît sous la forme d'un sous-nœud sous chaque serveur de l'Explorateur de serveurs.
Le nœud Services Crystal peut être développé pour afficher des listes de rapports situés à divers emplacements :
● Répertoire de fichiers local sur votre disque dur
● Report Application Server (RAS)
● Crystal Enterprise
Vous pouvez placer n'importe quel rapport répertorié dans ces listes dans un Web Form ou un Windows Form à l'aide d'une opération glisser-déplacer.
Selon la version de SAP Crystal Reports que vous avez installée et les licences supplémentaires que vous avez
éventuellement acquises pour le RAS (Report Application Server) ou Crystal Enterprise, les services Crystal exposent généralement deux nœuds qui peuvent être développés. Le tableau situé dans la section suivante décrit les conditions requises pour accéder à un nœud particulier.
Il se peut que vous deviez ajuster vos paramètres de pare-feu afin d'accéder au CMS de la plateforme SAP
BusinessObjects Business Intelligence. Le port par défaut pour le CMS est 6400. Contactez votre administrateur système pour plus d'informations sur l'adresse réseau et les paramètres de port de votre système de plateforme
SAP BusinessObjects Business Intelligence. Pour plus d'informations sur la personnalisation des ports, voir le
Guide d'administration de la plateforme SAP BusinessObjects Business Intelligence.
Classes wrapper
Lorsque vous faites glisser un rapport depuis les services Crystal vers un Web Form ou un Windows Form, cela crée une instance de la classe wrapper qui référence le rapport dans la région du code de la classe code-behind généré par le Concepteur Web Form ou Windows Form.
176
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Remarque
Le type de classe wrapper varie selon les versions de SAP Crystal Reports. Voir le tableau ci-dessous.
Les services Crystal répertoriés dans le tableau ci-dessous exposent des types de classes wrapper qui ne contiennent pas de modèle d'objet et dépendent du modèle d'objet limité fourni par le contrôle
CrystalReportViewer.
La table indique les services Crystal inclus dans SAP Crystal Reports pour Visual Studio 2003. Ces services exposent des groupes de rapports, soit à partir du répertoire de fichiers local, soit à partir du WCS
(Web Component Server) de Crystal Enterprise. Les rapports sont contenus dans deux classes wrapper différentes : ServerFileReport pour les rapports situés dans le répertoire de fichiers local, et EnterpriseReport pour les rapports situés sur le WCS de Crystal Enterprise.
Table 7 :
Classe wrapper expo sée par le biais des services Crystal
ServerFileReport
Nom du nœud sous les services Crystal
Versions de SAP Crys tal Reports
Description
Fichiers serveur
EnterpriseReport Crystal Enterprise
Conditions requises pour accéder au nœud
SAP Crystal Reports pour Visual Stu dio .NET 2003
(le nœud est remplacé lorsque SAP Crys tal Reports 9 ou 10 est installé)
SAP Crystal Reports pour Visual Stu dio .NET 2003
(le nœud est remplacé lorsque SAP Crys tal Reports 9 ou 10 est installé)
Expose les rapports si tués dans le répertoire de fichiers local par le biais d'un service Web commun, ServerFileRe portService. Pour en savoir plus, voir
.
Configurez les autorisa tions pour les utilisa teurs ASPNET. (Voir
Liaison aux fichiers ser veur (VS .NET 2003)
.)
Accède aux services
Web de rapports expo sés par le serveur WCS de Crystal Enter prise 8, 8.5, 9 ou 10 par le biais d'un service
Web commun, Enter priseReportService.
Pour en savoir plus, voir
Liaison à Crys tal Enterprise
Vous devez pouvoir ac céder à Crystal Enter prise (qui expose les rapports Enterprise par le biais de son WCS).
1.4.5.3.1.5.1 Liaison aux fichiers serveur (VS .NET 2003)
Modèle d'objet
Ce scénario de liaison de rapports utilise CrystalReportViewer.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
177
Emplacement des rapports
Les rapports se trouvent dans un dossier situé dans le répertoire de fichiers local. Ces rapports sont exposés en tant que services Web de rapports.
Présentation des services Crystal
Ce scénario de liaison de rapports s'applique aux rapports accessibles depuis le nœud du serveur de services
Crystal dans l'Explorateur de serveurs.
Cette section présente le sous-nœud Fichiers serveur des services Crystal dans Visual Studio .NET 2003.
[NOMSERVEUR]
● Services Crystal
○ Fichiers serveur
Description
Le sous-nœud Fichiers serveur accède aux rapports qui ont été exposés comme services Web de rapports à partir du répertoire de fichiers local, puis les affiche. Ces rapports sont exposés à l'aide du protocole des services Web de rapports. Dans Visual Studio .NET 2003, cliquez sur le nœud Fichiers serveur situé sous Services Crystal pour accéder aux fichiers serveur.
Avantages
● Accès centralisé aux rapports : offre un point d'accès unique à tous les rapports situés dans votre répertoire d'exemples de rapports, ce qui crée un référentiel de rapports efficace sur votre disque dur local.
Inconvénients
● Remplacé dans SAP Crystal Reports 9 et 10 par un nœud Services Crystal de serveur RAS non géré. Pour en savoir plus, voir la section Description ci-dessus.
● Modèle d'objet limité : ce scénario de liaison n'offre qu'un modèle d'objet limité qui fait partie du contrôle
CrystalReportViewer.
178
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Configuration des fichiers serveur
Les fichiers serveur sont fournis en tant que nœud de Services Crystal dans SAP Crystal Reports pour Visual
Studio 2003. Lorsque SAP Crystal Reports 9 ou 10 (les versions complètes) est installé par-dessus la version incluse avec Visual Studio 2003, le nœud des fichiers serveur n'est plus visible.
Chaque édition de SAP Crystal Reports Developer continue à prendre en charge les fichiers serveur dans le SDK.
Toutefois, une programmation manuelle est nécessaire pour utiliser les fichiers serveur dans cette version.
Informations associées
Configuration des fichiers serveur dans les services Crystal [page 85]
Liaison à Crystal Enterprise (VS .NET 2003) [page 182]
Utilisation des services Crystal [page 84]
1.4.5.3.1.5.1.1 Pour installer les services Crystal
Prérequis
SAP Crystal Reports pour Visual Studio 2003 doit être installé.
Contexte
Les services Crystal ne sont pas installés par défaut lors de l'installation de Visual Studio .NET 2003. Dans cette procédure, vous allez installer les Services Crystal à partir du CD d'installation de Visual Studio .NET 2003.
Procédure
1. Sur le CD d'installation de Microsoft Visual Studio .NET, localisez Crystal Reports.
2. Sélectionnez les services Web Crystal.
3. Cliquez sur le bouton Mettre à jour.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
179
1.4.5.3.1.5.1.2 Pour utiliser le nœud Services
Crystal > Fichiers serveur
Prérequis
● SAP Crystal Reports pour Visual Studio 2003 est installé et fonctionnel.
● Ou SAP Crystal Reports 9 ou versions ultérieures est installé et fonctionnel.
Remarque
Dans SAP Crystal Reports 9 et 10, les fichiers serveur sont remplacés (ils ne s'affichent plus en tant que nœud sous Services Crystal). Il est toutefois toujours possible de les coder manuellement.
Remarque
de code spécifique nécessaire à cette procédure. Il est impossible de suivre cette procédure sans cette configuration.
Procédure
1. Dans le menu Affichage, cliquez sur
Autres fenêtres
, puis sur
Explorateur de serveurs
.
2. Développez le nœud
Services Crystal
, puis
Fichiers serveur
.
3. Sélectionnez un rapport dans l'arborescence
Fichiers serveur
, puis faites-le glisser dans votre formulaire.
Remarque
Lorsqu'un rapport Fichiers serveur est placé dans votre formulaire, une instance de la classe
ServerFileReport est ajoutée à la région du code généré par le concepteur de votre formulaire.
Lorsqu'une classe qui hérite de System.ComponentModel.Component (telle que ServerFileReport) est instanciée et configurée dans la région du code généré par le concepteur, une icône correspondant à cette classe instanciée s'affiche au bas du formulaire en mode Design.
En mode Design, un objet serverFileReport1 s'affiche au bas du formulaire.
4. Passez en mode code et ouvrez la région du code généré par le
Concepteur Web Form ou Windows Form
.
Une classe ServerFileReport a été instanciée et configurée dans cette région.
5. Dans la méthode ConfigureCrystalReports() (que vous avez créée dans la section Configuration d'un projet), affectez l'instance de ServerFileReport à la propriété ReportSource du contrôle
CrystalReportViewer.
myCrystalReportViewer.ReportSource = serverFileReport1 crystalReportViewer.ReportSource = serverFileReport1;
180
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Étapes suivantes
Pour visualiser le rapport, générez et exécutez votre projet.
1.4.5.3.1.5.1.3 Pour coder manuellement les fichiers serveur
Prérequis
● SAP Crystal Reports pour Visual Studio 2003 est installé et fonctionnel.
● Ou SAP Crystal Reports 9 ou versions ultérieures est installé et fonctionnel.
Remarque
Dans SAP Crystal Reports 9 et 10, les fichiers serveur sont remplacés (ils ne s'affichent plus en tant que nœud sous Services Crystal). Il est toutefois toujours possible de les coder manuellement.
Remarque
de code spécifique nécessaire à cette procédure. Il est impossible de suivre cette procédure sans cette configuration.
Procédure
1. Dans la méthode ConfigureCrystalReports() (que vous avez créée dans la section Configuration d'un projet), déclarez une instance deServerFileReport.
Dim myServerFileReport As CrystalDecisions.Shared.ServerFileReport = _
New CrystalDecisions.Shared.ServerFileReport()
CrystalDecisions.Shared.ServerFileReport serverFileReport = new
CrystalDecisions.Shared.ServerFileReport();
2. Attribuez à la propriété ObjectType de ServerFileReport la valeur REPORT.
myServerFileReport.ObjectType = CrystalDecisions.
[Shared].EnumServerFileType.REPORT
serverFileReport.ObjectType = CrystalDecisions.Shared.EnumServerFileType.REPORT;
3. Attribuez à la propriété ReportPath de ServerFileReport le rapport et son sous-répertoire.
myServerFileReport.ReportPath = "\General Business\World Sales Report.rpt" serverFileReport.ReportPath = "\\General Business\\World Sales Report.rpt";
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
181
4. Définissez la propriété WebServiceURL de ServerFileReport sur le répertoire virtuel du visualiseur de votre version installée de SAP Crystal Reports.
Remarque
Dans cet exemple de code, le répertoire virtuel des visualiseurs est configuré pour SAP Crystal Reports 10.
myServerFileReport.WebServiceUrl = "http://localhost/crystalreportviewers10/
ServerFileReportService.asmx" serverFileReport.WebServiceUrl = "http://localhost/crystalreportviewers10/
ServerFileReportService.asmx";
5. Attribuez à la propriété ReportSource du contrôle CrystalReportViewer l'instance ServerFileReport.
myCrystalReportViewer.ReportSource = myServerFileReport crystalReportViewer.ReportSource = serverFileReport1;
1.4.5.3.1.5.2 Liaison à Crystal Enterprise (VS .NET 2003)
Il fait référence à une ancienne technologie et s'adresse aux utilisateurs équipés d'une version de
Crystal Enterprise. Crystal Enterprise a été remplacé par SAP Crystal Reports Server et la plateforme SAP
BusinessObjects Business Intelligence.
Modèle d'objet
Ce scénario de liaison de rapports utilise le modèle d'objet CrystalReportViewer (voir
Liaison de rapports à l'aide du modèle d'objet CrystalReportViewer [page 168] ).
Emplacement des rapports
Les rapports sont situés sur le WCS (Web Component Server) de Crystal Enterprise 8, 8.5, 9 ou 10. Les rapports issus du serveur WCS sont exposés comme services Web de rapports par le biais du service Web
EnterpriseReportService.asmx. Ce service Web se trouve dans le répertoire virtuel des visualiseurs du WCS.
Présentation des services Crystal
Ce scénario de liaison de rapports s'applique aux rapports accessibles depuis le nœud du serveur de services
Crystal dans l'Explorateur de serveurs.
Cette section présente le sous-nœud Crystal Enterprise des services Crystal dans Visual Studio .NET 2003.
182
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
[NOMSERVEUR]
● Services Crystal
○ Crystal Enterprise
Description
Le sous-nœud Crystal Enterprise accède aux rapports qui ont été exposés comme services Web de rapports à partir d'un serveur WCS, puis les affiche.
Pour que le sous-nœud Crystal Enterprise accède à une liste de rapports depuis le serveur WCS
Crystal Enterprise et les affiche correctement, les conditions suivantes doivent être remplies :
● Le serveur que vous visualisez actuellement dans l'Explorateur de serveurs exécute
Crystal Enterprise 8 ou 8.5.
Remarque
Vous devez mettre à niveau SAP Crystal Reports pour Visual Studio 2003 vers
SAP Crystal Reports Developer (version 9 ou ultérieure) pour pouvoir vous connecter à
Crystal Enterprise 9 ou version ultérieure.
● Le serveur WCS de Crystal Enterprise est installé sur le serveur Crystal Enterprise.
Remarque
Le serveur WCS est installé par défaut dans Crystal Enterprise 9 et 10. Dans Crystal Enterprise 8 et 8.5, le serveur WCS doit être installé séparément.
● Pour configurer des services Web de rapports sur le serveur Crystal Enterprise 10, vous devez installer
Visual Studio .NET 2003 sur le serveur Crystal Enterprise, puis exécuter une installation personnalisée pour ajouter spécifiquement les services Crystal.
Si l'administrateur de Crystal Enterprise ne souhaite pas installer une version complète de
Visual Studio .NET 2003 sur le serveur Crystal Enterprise, il peut procéder comme suit :
○ Installer le module de fusion managed.msm.
○ Rechercher le répertoire virtuel des visualiseurs installé sur l'ordinateur de développement et copier le fichier EnterpriseReportService.asmx de ce répertoire vers le répertoire virtuel des visualiseurs de l'ordinateur serveur.
Une fois les rapports affichés dans les services Crystal, choisissez-en un et faites-le glisser dans le Web Form ou le
Windows Form. Une fois dans le formulaire, le rapport est ajouté à une classe wrapper de rapport, puis affiché sous forme d'instance dans la barre d'état des composants.
Remarque
Il existe plusieurs types de classes wrapper de rapport, en fonction de la source du rapport sur le serveur et du protocole de connexion. Ceux-ci varient en fonction des versions de SAP Crystal Reports.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
183
Installation des services Crystal
Les services Crystal ne sont pas installés par défaut lors de l'installation de Visual Studio .NET 2003. Pour ajouter les services Crystal, chargez le CD d'installation de Microsoft Visual Studio .NET, localisez Crystal Reports, sélectionnez les services Web Crystal, puis cliquez sur le bouton Mettre à jour.
Avantages
● Les rapports Crystal Enterprise sont facilement accessibles à partir d'une application Web ou Windows.
Inconvénients
● Modèle d'objet limité : ce scénario de liaison n'offre qu'un modèle d'objet limité qui fait partie du contrôle
CrystalReportViewer.
Remarque
Dans SAP Crystal Reports 9 et 10, les services Crystal sont mis à niveau vers une classe wrapper et un protocole de connexion différents.
Informations associées
Répertoire des visualiseurs [page 14]
Utilisation des services Crystal [page 84]
Liaison aux fichiers serveur (Visual Studio 2005 et versions ultérieures) [page 186]
1.4.5.3.1.5.2.1 Pour accéder à Services
Crystal > Crystal Enterprise dans l'Explorateur de serveurs
Procédure
1. Dans le menu
Affichage
, cliquez sur
Autres fenêtres
, puis sur
Explorateur de serveurs
.
2. Si votre serveur Crystal Enterprise ne se trouve pas sur votre ordinateur local (recommandé) : a. Cliquez avec le bouton droit de la souris sur
Serveurs
, puis cliquez sur
Ajouter un serveur
.
b. Dans le champ
Ordinateur
de la boîte de dialogue
Ajouter un serveur
, saisissez le nom réseau du serveur
Crystal Enterprise, puis cliquez sur
OK
.
184
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
c. Dans le nœud
Serveurs
, développez le sous-nœud du serveur ajouté, puis développez le sous-nœud
Services Crystal
de celui-ci.
d. Dans la boîte de dialogue
Ouverture d'une session Enterprise
, saisissez les valeurs dans les champs
Nom d'utilisateur
et
Mot de passe
, puis cliquez sur
OK
.
3. Si votre serveur Crystal Enterprise est installé sur votre ordinateur local : a. Dans le nœud
Serveurs
, développez le sous-nœud correspondant à votre ordinateur local, puis développez le sous-nœud
Services Crystal
de celui-ci.
b. Dans la boîte de dialogue
Ouverture d'une session Enterprise
, saisissez les valeurs dans les champs
Nom d'utilisateur
et
Mot de passe
, puis cliquez sur
OK
.
Résultats
Vous pouvez maintenant configurer Services Crystal > Crystal Enterprise dans votre projet Web ou Windows.
1.4.5.3.1.5.2.2 Pour configurer un rapport Services
Crystal > Crystal Enterprise
Prérequis
Cette procédure fonctionne uniquement avec un projet créé à partir de la procédure
. La section Configuration d'un projet contient une configuration de références d'espaces de noms et de code spécifique nécessaire à cette procédure. Il est impossible de suivre cette procédure sans cette configuration.
Procédure
1. Sélectionnez un rapport dans le sous-nœud Crystal Enterprise, puis faites-le glisser dans votre Web Form ou votre Windows Form.
Au bas du formulaire, dans la barre d'état des composants, un objet enterpriseReport1 s'affiche.
2. Passez en mode code et ouvrez la région du code généré par le Concepteur Web Form ou Windows Form.
Remarque
Une classe EnterpriseReport a été instanciée et configurée dans cette région.
3. Dans la méthode ConfigureCrystalReports() (que vous avez créée dans la section
Configuration d'un projet [page 15]
), affectez l'instance d'EnterpriseReport à la propriété ReportSource du contrôle
CrystalReportViewer.
myCrystalReportViewer.ReportSource = enterpriseReport1 crystalReportViewer.ReportSource = enterpriseReport1;
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
185
4. Pour visualiser le rapport, générez et exécutez votre projet.
1.4.5.3.1.5.3 Liaison aux fichiers serveur (Visual Studio 2005 et versions ultérieures)
Modèle d'objet
Ce scénario de liaison de rapports utilise le modèle d'objet CrystalReportViewer.
Emplacement des rapports
Les rapports se trouvent dans un dossier situé dans le répertoire de fichiers local. Ces rapports sont exposés en tant que services Web de rapports.
Présentation générale des fichiers serveur
Ce scénario de liaison s'applique aux rapports accessibles en tant que fichiers serveur par l'intermédiaire d'un service Web.
Description
Le service Web Fichiers serveur accède aux rapports qui ont été exposés comme services Web de rapports à partir du répertoire de fichiers local, puis les affiche. Dans Visual Studio 2005 et versions ultérieures, les fichiers serveur sont accessibles par programmation.
Avantages
● Accès centralisé aux rapports : offre un point d'accès unique à tous les rapports situés dans votre répertoire d'exemples de rapports, ce qui crée un référentiel de rapports efficace sur votre disque dur local.
Inconvénients
● Modèle d'objet limité : ce scénario de liaison n'offre qu'un modèle d'objet limité qui fait partie du contrôle
CrystalReportViewer.
186
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Configuration des fichiers serveur
Dans SAP Crystal Reports, version développeur pour Microsoft Visual Studio, les fichiers serveur sont accessibles par programmation. Chaque édition de SAP Crystal Reports Developer continue à prendre en charge par programmation les fichiers serveur dans le SDK.
Informations associées
Configuration des fichiers serveur dans Visual Studio 2005 et les versions plus récentes [page 88]
1.4.5.3.1.5.3.1 Pour coder manuellement les fichiers serveur
Prérequis
● Un service Web de rapports permettant d'accéder par programmation aux fichiers serveur doit être configuré.
● Ou SAP Crystal Reports Developer est installé et en cours de fonctionnement.
Remarque
de code spécifique nécessaire à cette procédure. Il est impossible de suivre cette procédure sans cette configuration.
Procédure
1. Dans la méthode ConfigureCrystalReports() (que vous avez créée dans la section
Configuration d'un projet [page 15]
), déclarez une instance de ServerFileReport.
Dim myServerFileReport As CrystalDecisions.Shared.ServerFileReport = _New
CrystalDecisions.Shared.ServerFileReport()
CrystalDecisions.Shared.ServerFileReport serverFileReport = new
CrystalDecisions.Shared.ServerFileReport();
2. Attribuez à la propriété ObjectType de ServerFileReport la valeur REPORT.
myServerFileReport.ObjectType = CrystalDecisions.
[Shared].EnumServerFileType.REPORT
serverFileReport.ObjectType = CrystalDecisions.Shared.EnumServerFileType.REPORT;
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
187
3. Définissez la propriété ReportPath de la classe ServerFileReport sur le rapport et son sous-répertoire.
myServerFileReport.ReportPath = "\General Business\World Sales
Report.rpt" serverFileReport.ReportPath = "\\General Business\\World Sales
Report.rpt";
4. Définissez la propriété WebServiceURL de ServerFileReport sur l'emplacement du service Web de rapports.
Si vous disposez de SAP Crystal Reports Developer, cet emplacement correspond au répertoire virtuel du visualiseur de la version installée de SAP Crystal Reports (voir
Répertoire des visualiseurs [page 14] ). Si vous
ne disposez pas de SAP Crystal Reports Developer, il s'agit de l'URL du service Web de rapports que vous
Remarque
Dans le code ci-dessous, le répertoire virtuel des visualiseurs est configuré pour SAP Crystal Reports pour
Visual Studio 2005.
myServerFileReport.WebServiceUrl =
"http://localhost/CrystalReportsWebServices2005/ServerFileReportService.asmx" serverFileReport.WebServiceUrl =
"http://localhost/CrystalReportsWebServices2005/ServerFileReportService.asmx";
5. Attribuez à la propriété ReportSource du contrôle CrystalReportViewer l'instance ServerFileReport.
myCrystalReportViewer.ReportSource = myServerFileReport crystalReportViewer.ReportSource = serverFileReport1;
1.4.5.3.1.5.4 Liaison à SAP Crystal Reports Server ou à la plateforme SAP BusinessObjects Business
Intelligence (Visual Studio)
Modèle d'objet
Ce scénario de liaison de rapports utilise le modèle d'objet CrystalReportViewer (voir
Liaison de rapports à l'aide du modèle d'objet CrystalReportViewer [page 168] ).
Emplacement des rapports
Les rapports sont situés sur le WCS (Web Component Server) de SAP Crystal Reports Server ou de la plateforme
SAP BusinessObjects Business Intelligence. Les rapports issus du serveur WCS sont exposés comme services
188
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Web de rapports par le biais du service Web EnterpriseReportService.asmx. Ce service Web se trouve dans le répertoire virtuel des visualiseurs du WCS.
Présentation des services Crystal
Ce scénario de liaison de rapports s'applique aux rapports accessibles depuis le nœud du serveur de services
Crystal dans l'Explorateur de serveurs.
Cette section présente le sous-nœud Services SAP Crystal Reports des services Crystal dans Visual Studio.
[NOMSERVEUR]
● Services SAP Crystal Reports
○ Rapports du serveur
Description
Le sous-nœud de la plateforme SAP BusinessObjects Business Intelligence accède aux rapports qui ont été fournis en tant que services Web de rapports à partir d'un serveur WCS de plateforme SAP BusinessObjects
Business Intelligence, puis les affiche.
Pour que le sous-nœud de la plateforme SAP BusinessObjects Business Intelligence accède à une liste de rapports depuis le serveur WCS de la plateforme SAP BusinessObjects Business Intelligence et les affiche correctement, les conditions suivantes doivent être remplies :
● Le serveur que vous visualisez actuellement dans l'Explorateur de serveurs exécute la plateforme SAP
BusinessObjects Business Intelligence.
● Pour configurer les services Web de rapports dans la plateforme SAP BusinessObjects Business Intelligence, vous devez installer Visual Studio sur le serveur de la plateforme SAP BusinessObjects Business Intelligence, puis exécuter une installation personnalisée pour ajouter spécifiquement les services Crystal.
Remarque
L'installation de Visual Studio sur le serveur de la plateforme SAP BusinessObjects Business Intelligence et l'installation personnalisée des services Crystal sont nécessaires pour que le fichier
EnterpriseReportService.asmx soit correctement installé et configuré dans le répertoire virtuel des visualiseurs.
Si l'administrateur de Crystal Enterprise ne souhaite pas installer une version complète de Visual Studio sur le serveur de la plateforme SAP BusinessObjects Business Intelligence, il peut procéder comme suit :
○ Installer le module de fusion managed.msm.
○ Rechercher le répertoire virtuel des visualiseurs installé sur l'ordinateur de développement et copier le fichier EnterpriseReportService.asmx de ce répertoire vers le répertoire virtuel des visualiseurs de l'ordinateur serveur.
Une fois que les rapports s'affichent dans les services SAP BusinessObjects, vous pouvez lier un contrôle
CrystalReportsViewer à n'importe quel rapport répertorié. Pour en savoir plus, voir la documentation relative
à la plateforme SAP BusinessObjects Business Intelligence.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
189
Avantages
● Les rapports de la plateforme SAP BusinessObjects Business Intelligence sont facilement accessibles depuis une application Web ou Windows.
Inconvénients
● Modèle d'objet limité : ce scénario de liaison n'offre qu'un modèle d'objet limité qui fait partie du contrôle
CrystalReportViewer.
Remarque
Dans SAP Crystal Reports 9 et 10, les services Crystal sont mis à niveau vers une classe wrapper et un protocole de connexion différents.
Informations associées
Répertoire des visualiseurs [page 14]
Utilisation des services Crystal [page 84]
Choisir le modèle d'objet correct pour votre projet [page 32]
1.4.5.3.1.5.4.1 Pour lier un rapport par l'intermédiaire du chemin d'accès à son répertoire de fichiers à l'aide de la fenêtre Propriétés
Procédure
1. Créez un projet Web ou Windows.
2. Dans la
boîte à outils
, faites glisser un contrôle CrystalReportViewer dans un Web Form ou un
Windows Form.
3. Cliquez sur le contrôle CrystalReportViewer pour le sélectionner.
4. Dans la fenêtre
Propriétés
, affectez à la propriété ReportSource le chemin d'accès à un répertoire de fichiers.
Remarque
Le chemin d'accès au répertoire de fichiers pointe sur les exemples de rapports de Visual Studio 2005.
190
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
En raison de la fonctionnalité d'aperçu au moment de la conception, le rapport s'affiche en mode Aperçu.
C:\Program Files\Microsoft Visual Studio 8.0\Crystal Reports\Samples\fr\Reports
\Feature Examples\Hierarchical Grouping.rpt
5. Pour visualiser le rapport, générez et exécutez votre projet.
1.4.5.3.1.6 Liaison à ReportSource
(SAP Crystal Reports Server ou
SAP BusinessObjects Enterprise 11)
Remarque
Les fonctionnalités décrites dans cette page ne sont pas disponibles dans SAP Crystal Reports, version développeur pour Microsoft Visual Studio mais le sont dans l'une des versions mises à niveau.
Modèle d'objet
Ce scénario de liaison de rapports utilise le modèle d'objet CrystalReportViewer.
Emplacement des rapports
Les rapports sont accessibles depuis le Page Server de la plateforme SAP BusinessObjects Business Intelligence.
Description
SAP Crystal Reports Server ou la plateforme SAP BusinessObjects Business Intelligence permet de distribuer des rapports à partir de serveurs au sein d'une structure Enterprise. Un rapport stocké dans
SAP Crystal Reports Server ou dans la plateforme SAP BusinessObjects Business Intelligence peut être affiché par différents serveurs à différents moments, selon vos besoins. Dans SAP Crystal Reports Server ou la plateforme SAP BusinessObjects Business Intelligence, si vous voulez afficher un rapport avec les meilleures performances possibles et que vous ne souhaitez pas lui apporter de modifications importantes par programmation, affichez-le directement depuis le Page Server avec la classe ReportSource.
La classe ReportSource n'est associée à aucun modèle d'objet. Si vous souhaitez modifier des paramètres ou des informations de connexion à la base de données, vous pouvez utiliser le modèle d'objet limité fourni par le contrôle CrystalReportViewer. Toutefois, pour une interaction par programmation plus complexe avec le rapport, utilisez l'un des autres scénarios de liaison de rapports SAP Crystal Reports Server ou de plateforme SAP
BusinessObjects Business Intelligence.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
191
Remarque
Pour une comparaison de plusieurs scénarios utilisant des serveurs différents dans
SAP Crystal Reports Server ou la plateforme SAP BusinessObjects Business Intelligence, voir les scénarios de liaison recommandés pour SAP Crystal Reports Server ou la plateforme SAP BusinessObjects Business
Intelligence à la section
Scénarios de liaison de rapports [page 167]
.
Il se peut que vous deviez ajuster vos paramètres de pare-feu afin d'accéder au CMS de la plateforme SAP
BusinessObjects Business Intelligence. Le port par défaut pour le CMS est 6400. Contactez votre administrateur système pour plus d'informations sur l'adresse réseau et les paramètres de port de votre système de plateforme
SAP BusinessObjects Business Intelligence. Pour plus d'informations sur la personnalisation des ports, voir le
Guide d'administration de la plateforme SAP BusinessObjects Business Intelligence.
Avantages
● Scénario le plus rapide : offre les meilleures performances d'affichage d'un rapport dans
SAP Crystal Reports Server ou la plateforme SAP BusinessObjects Business Intelligence.
Inconvénients
● Modèle d'objet limité : les modifications par programmation qui peuvent être apportées aux paramètres ou aux informations de connexion à la base de données sont limitées au modèle d'objet
CrystalReportViewer.
● Disponibilité limitée : ce scénario est uniquement disponible dans Crystal Enterprise version 10,
SAP Crystal Reports Server ou SAP BusinessObjects Enterprise XI.
Informations associées
Liaison de rapports à l'aide du modèle d'objet ReportDocument [page 196]
192
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.4.5.3.1.6.1 Liaison du contrôle CrystalReportViewer à un rapport pris en charge en dehors du Page
Server de SAP Crystal Reports Server ou de la plateforme SAP BusinessObjects Business
Intelligence
Prérequis
● SAP Crystal Reports Server ou la plateforme SAP BusinessObjects Business Intelligence doit être installé et en cours de fonctionnement.
● Le SDK SAP Crystal Reports Server ou de la plateforme SAP BusinessObjects Business Intelligence (y compris les assemblys .NET) doit être installé et en cours de fonctionnement.
Remarque
Si vous avez installé SAP Crystal Reports Server ou la plateforme SAP BusinessObjects Business
Intelligence sur votre ordinateur de développement, le SDK est inclus dans cette installation.
Procédure
1. Localisez et notez le nom d'un serveur SAP Crystal Reports Server ou de plateforme SAP BusinessObjects
Business Intelligence. Pour cet exemple, le nom du serveur est "BOE01".
a. Pour rechercher le nom du serveur, cliquez avec le bouton droit de la souris sur l'icône Poste de travail, puis sélectionnez Propriétés.
b. Dans la boîte de dialogue Propriétés système, cliquez sur l'onglet Identification réseau.
c. Le nom de l'ordinateur apparaît dans le champ "Nom complet de l'ordinateur".
2. Utilisez l'Assistant de publication pour publier le rapport Chart.rpt sur le serveur SAP Crystal Reports Server ou de plateforme SAP BusinessObjects Business Intelligence.
Remarque
Pour savoir comment utiliser l'Assistant de publication, consultez la documentation utilisateur de
SAP Crystal Reports Server ou de la plateforme SAP BusinessObjects Business Intelligence.
3. Ajoutez les références d'assembly suivantes à votre projet :
○ CrystalDecisions.Enterprise.Framework
○ CrystalDecisions.Enterprise.InfoStore
○ CrystalDecisions.Enterprise.Viewing.ReportSource
○ CrystalDecisions.ReportAppServer.Controllers
4. Dans le menu
Affichage
, cliquez sur
Code
pour afficher la classe code-behind du Web Form ou du Windows
Form. Au-dessus de la classe, ajoutez une instruction "Imports" [Visual Basic] ou "using" [C#] pour l'espace de noms CrystalDecisions.Enterprise.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
193
Imports CrystalDecisions.Enterprise
Imports CrystalDecisions.Enterprise.Viewing
Imports CrystalDecisions.ReportAppServer.Controllers
using CrystalDecisions.Enterprise; using CrystalDecisions.Enterprise.Viewing; using CrystalDecisions.ReportAppServer.Controllers;
1.4.5.3.1.6.2 Connexion à SAP Crystal Reports Server ou
SAP BusinessObjects Enterprise
Procédure
), déclarez une variable de chaîne serverName et attribuez-lui le nom du serveur
SAP Crystal Reports Server ou du serveur SAP BusinessObjects Enterprise.
Dim serverName As String = "BOE01" string serverName = "BOE01";
2. Déclarez et instanciez la classe SessionMgr.
Dim mySessionMgr As SessionMgr = New SessionMgr()
SessionMgr sessionMgr = new SessionMgr();
3. Transmettez le nom de l'utilisateur (Administrator), le mot de passe (vide), la variable serverName et le type de connexion (secEnterprise) à la méthode de connexion de l'instance de SessionMgr, puis extrayez-la comme une instance d'EnterpriseSession.
Dim myEnterpriseSession As EnterpriseSession = mySessionMgr.Logon( _
"Administrator", "", serverName, "secEnterprise")
EnterpriseSession enterpriseSession = sessionMgr.Logon(
"Administrator", "", serverName, "secEnterprise");
4. Extrayez le service InfoStore (en tant que EnterpriseService), de la méthode GetService d'EnterpriseSession.
Dim myEnterpriseService As EnterpriseService = _
myEnterpriseSession.GetService("InfoStore")
EnterpriseService enterpriseService = enterpriseSession.GetService("InfoStore");
5. Déclarez et instanciez InfoStore, puis transmettez à InfoStore le service EnterpriseService extrait comme un paramètre.
Dim myInfoStore As InfoStore = New InfoStore(myEnterpriseService)
InfoStore infoStore = new InfoStore(enterpriseService);
194
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.4.5.3.1.6.3 Extraction du rapport Hierarchical Grouping de
SAP Crystal Reports Server ou de
SAP BusinessObjects Enterprise
Procédure
1. Pour réattribuer la valeur de l'instance d'EnterpriseService au service de référence de rapport du Page Server, transmettez la chaîne "PSReportFactory" à la méthode GetService() d'EnterpriseService.
myEnterpriseService = myEnterpriseSession.GetService("PSReportFactory") enterpriseService = enterpriseSession.GetService("PSReportFactory");
2. Renvoyez la propriété Interface de l'instance EnterpriseService en tant que variable objet.
Dim psrfObject As Object = myEnterpriseService.Interface
Object psrfObject = enterpriseService.Interface;
3. Effectuez un cast de la variable objet en une instance de PSReportFactory.
Dim myPSReportFactory As PSReportFactory = CType(psrfObject, PSReportFactory)
PSReportFactory psReportFactory = (PSReportFactory)psrfObject;
4. Saisissez la chaîne de requête suivante pour interroger SAP Crystal Reports Server ou
SAP BusinessObjects Enterprise sur le rapport.
Dim queryString As String = "Select SI_ID, SI_NAME, SI_PARENTID From
CI_INFOOBJECTS " _
& "Where SI_PROGID='CrystalEnterprise.Report' " _
& "And SI_NAME Like 'Chart'" string queryString = "Select SI_ID, SI_NAME, SI_PARENTID From CI_INFOOBJECTS "
+ "Where SI_PROGID='CrystalEnterprise.Report' "
+ "And SI_NAME Like 'Chart'";
5. Transmettez la chaîne de requête à la méthode Query d'InfoStore pour extraire une classe indexée
InfoObjects qui contient le résultat de la requête.
Dim myInfoObjects As InfoObjects = myInfoStore.Query(queryString)
InfoObjects infoObjects = infoStore.Query(queryString);
6. Extrayez l'InfoObject de la première colonne de la classe indexée InfoObjects.
Dim myInfoObject As InfoObject = myInfoObjects(1)
InfoObject infoObject = infoObjects[1];
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
195
7. Déclarez et remplissez une instance de ReportSource à partir de la méthode OpenReportSource() de l'instance de PSReportFactory en transmettant la propriété ID d'InfoObject.
Dim myReportSource As ReportSource = myPSReportFactory.OpenReportSource(myInfoObject.ID)
ReportSource reportSource = psReportFactory.OpenReportSource(infoObject.ID);
8. Liez l'instance ReportSource à la propriété ReportSource du contrôle CrystalReportViewer.
myCrystalReportViewer.ReportSource = myReportSource crystalReportViewer.ReportSource = reportSource;
9. Pour visualiser le rapport, générez et exécutez votre projet.
Le rapport s'affiche désormais depuis le Page Server de SAP Crystal Reports Server ou de
SAP BusinessObjects Enterprise en fonction de son ID. Si vous utilisez une autre méthode pour accéder à reportID (en sélectionnant l'ID dans une liste de rapports dans un contrôle DropDownList par exemple), vous n'aurez pas à rechercher InfoStore ni à générer une classe InfoObject pour extraire reportID.
1.4.5.3.2 Liaison de rapports à l'aide du modèle d'objet
ReportDocument
Le modèle d'objet ReportDocument est le plus puissant et le plus complet des modèles d'objet fournis avec
SAP Crystal Reports, version développeur pour Microsoft Visual Studio. Il s'agit du modèle d'objet privilégié pour développer un projet avec SAP Crystal Reports, version développeur pour Microsoft Visual Studio.
1.4.5.3.2.1 Liaison à une classe de rapport incorporé
Modèle d'objet
Ce scénario de liaison de rapports utilise le modèle d'objet ReportDocument.
Emplacement des rapports
Les rapports sont incorporés dans le projet.
Remarque
Dans les précédentes versions de cette documentation, les rapports incorporés étaient appelés "rapports fortement typés". Le principal terme désormais utilisé pour faire référence à un rapport qui a été ajouté ou importé dans un projet Visual Studio est "incorporé".
196
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Description
Dans ce scénario, un rapport est incorporé dans un projet. Pour incorporer un rapport, vous pouvez soit créer un rapport à l'aide du SAP Crystal Reports Designer incorporé (inclus dans Visual Studio), soit importer un rapport existant dans le projet. Une fois le rapport créé ou importé, une classe wrapper représentant ce rapport est automatiquement générée. Cette classe wrapper porte le même nom que le rapport. Dérivée de la classe de base
ReportDocument, elle hérite naturellement de toutes les propriétés et méthodes de la classe ReportDocument qui fait partie du modèle d'objet ReportDocument.
Avantages
● Sécurité renforcée : les rapports sont incorporés et donc distribués en tant que partie de l'application.
● Interaction par programmation étendue : fournit un accès au puissant modèle d'objet ReportDocument.
● Sécurité renforcée : offre le contrôle le plus complet sur l'accès aux sources des rapports.
● Utilisation la plus courante : la plupart des développeurs considèrent que ce scénario offre le plus grand nombre d'avantages.
Inconvénients
● Maintenance supplémentaire : toute modification apportée aux rapports nécessite la recompilation et la redistribution de l'application.
1.4.5.3.2.1.1 Pour lier à une classe de rapport incorporé
Contexte
Une fois un rapport créé ou importé, une classe wrapper représentant ce rapport est automatiquement générée.
Cette classe wrapper porte le même nom que le rapport. Dérivée de la classe de base ReportDocument, elle hérite naturellement de toutes les propriétés et méthodes de la classe ReportDocument qui fait partie du modèle d'objet
ReportDocument.
Procédure
1. Ajoutez un contrôle CrystalReportViewer à un Windows Form.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
197
Remarque
Toutes les versions de SAP Crystal Reports prennent en charge la liaison à une classe de rapport incorporée pour les applications Windows. Certaines configurations fournissent une prise en charge de ce scénario de liaison pour les sites Web grâce à un fournisseur intégré amélioré.
2. Ajoutez un rapport au projet. Cela génère automatiquement une classe wrapper ayant le même nom que le rapport.
3. Instanciez la classe wrapper du rapport.
Dim myReport As New QuarterlySalesReport()
QuarterlySalesReport myReport = new QuarterlySalesReport();
4. Affectez-la à la propriété ReportSource du contrôle CrystalReportViewer.
myCrystalReportViewer.ReportSource = myReport crystalReportViewer.ReportSource = myReport;
1.4.5.3.2.2 Liaison à un rapport non incorporé chargé dans la classe ReportDocument
Modèle d'objet
Ce scénario de liaison de rapports utilise le modèle d'objet ReportDocument.
Emplacement des rapports
Les rapports se trouvent dans le répertoire de fichiers.
Description
Ce scénario de liaison de rapports permet d'utiliser ReportDocument, le modèle d'objet le plus puissant, avec des rapports non incorporés (externes à votre projet).
par l'intermédiaire de leur chemin d'accès à un répertoire de fichiers, mais au lieu de les lier directement au visualiseur, vous les transmettez à la méthode ReportDocument.Load(). Cela vous permet d'utiliser le modèle d'objet ReportDocument.
Par ailleurs, chaque rapport externe étant chargé dans la classe ReportDocument commune, vous pouvez développer un processus de sélection de rapports qui permet le partage du code de liaison avec tous les rapports.
198
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Avantages
● Peu de maintenance : les rapports sont ajoutés, supprimés ou modifiés sans avoir à recompiler l'application.
● Interaction par programmation étendue : fournit un accès au puissant modèle d'objet ReportDocument.
● Moins de codage grâce au partage de code : les rapports peuvent partager le même code, car ils sont tous chargés dans la classe ReportDocument commune.
Inconvénients
● Distribution limitée : les rapports doivent se trouver sur le même ordinateur que l'application. (L'accès à d'autres serveurs du réseau à partir du compte utilisateur ASPNET du serveur Web est généralement limité.)
● Effort de déploiement accru : les rapports doivent être distribués avec l'application en utilisant le chemin relatif correct.
● Source des rapports moins sécurisée : les rapports peuvent être déplacés ou supprimés sur l'ordinateur de déploiement au moment de l'exécution.
1.4.5.3.2.2.1 Pour lier à une classe de rapport non incorporé
à l'aide du modèle d'objet ReportDocument
Prérequis
Remarque
de code spécifique nécessaire à cette procédure. Il est impossible de suivre cette procédure sans cette configuration.
Procédure
1. Ajoutez une instruction "Imports" [Visual Basic] ou "using" [C#] au début de la classe pour l'espace de noms CrystalDecisions.CrystalReports.Engine.
Remarque
Vous devez déclarer cet espace de noms pour pouvoir accéder à la classe ReportDocument sans préfixe d'espace de noms.
Imports CrystalDecisions.CrystalReports.Engine
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
199
using CrystalDecisions.CrystalReports.Engine;
2. Recherchez le fichier World Sales Report.rpt dans le sous-répertoire General Business de votre version
SAP Crystal Reports.
3. Copiez dans le Presse-papiers le chemin d'accès complet au répertoire de fichiers en incluant World Sales
Report.rpt.
d'accès au fichier World Sales Report copié lors de l'étape précédente.
Dim reportPath As String = _
"C:\Program Files\Microsoft Visual Studio 9.0\" _ & "Crystal Reports\Samples
\fr\Reports\General Business\" _ & "World Sales Report.rpt" string reportPath =
"C:\\Program Files\\Microsoft Visual Studio 9.0\\" + "Crystal Reports\\Samples
\\fr\\Reports\\General Business\\" + "World Sales Report.rpt";
5. Sous la chaîne déclarée, déclarez une instance de ReportDocument.
Dim myReportDocument As ReportDocument = New ReportDocument()
ReportDocument reportDocument = new ReportDocument();
6. Chargez la variable chaîne liée à la classe de rapport non incorporé et contenant le chemin d'accès au répertoire de fichiers dans ReportDocument.
myReportDocument.Load(reportPath) reportDocument.Load(reportPath);
7. Affectez l'instance de ReportDocument (qui contient maintenant la classe de rapport non incorporé chargée) à la propriété ReportSource du contrôle CrystalReportViewer.
myCrystalReportViewer.ReportSource = myReportDocument crystalReportViewer.ReportSource = reportDocument;
8. Pour visualiser le rapport, générez et exécutez votre projet.
1.4.5.3.2.3 Liaison à une classe de rapport incorporé et mis en cache
Modèle d'objet
Ce scénario de liaison de rapports utilise le modèle d'objet ReportDocument.
200
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Emplacement des rapports
Les rapports sont incorporés dans le projet.
Description
Lorsqu'un rapport est incorporé dans un projet Visual Studio, une classe wrapper, qui représente le rapport dans le projet, est automatiquement générée. Parallèlement, une classe utilitaire de gestion du cache pour ce rapport est également créée.
Dans ce scénario, vous liez le contrôle CrystalReportViewer à la classe utilitaire de gestion du cache de manière à ce que la mise en mémoire cache des rapports dans l'objet Cache ASP.NET soit gérée automatiquement.
Utilisation de la mise en cache
La mise en cache doit être utilisée dans des cas particuliers et limités car elle peut "surconsommer" des ressources système lorsqu'elle n'est pas gérée avec précaution.
Mise en cache des rapports non incorporés
Si vous souhaitez gérer la mise en cache de rapports non incorporés, vous devez créer votre propre classe
Avantages
● Conçu pour le partage : idéal pour stocker les rapports qui présentent un fort potentiel de partage et peu de modifications à apporter aux paramètres ou aux informations de connexion.
● Accès aux données optimisé : si les rapports à fort potentiel de partage sont très volumineux ou s'ils contiennent une requête tellement complexe que l'extraction prend plusieurs minutes, la classe utilitaire de gestion du cache permet d'accéder plus rapidement aux données.
Inconvénients
● Charge du serveur : les rapports stockés dans l'objet Cache ASP.NET peuvent "surcharger" les ressources mémoire sur le serveur.
● Problèmes de persistance : le cache possède certaines dépendances qui permettent la vérification des modifications apportées à l'instance d'un rapport et la remise en cache de cette instance. Toutefois, si la base
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
201
de données est modifiée, l'instance du rapport stockée dans l'objet Cache n'est pas actualisée en conséquence.
● Consommation de ressources : un rapport dont les paramètres sont appelés fréquemment à l'aide de différentes chaînes de paramètre(particulièrement si l'un de ces paramètres correspond à l'ID utilisateur) implique à chaque fois la mise en cache d'un nouveau rapport. Ce processus consomme des ressources système. Si le rapport ne présente pas un fort potentiel de partage, affectez son instance à un objet Session.
Informations associées
Utilisation de rapports standard ou mis en cache ? [page 216]
Modèle d'objet ReportDocument [page 37]
Session et persistance du modèle d'objet ReportDocument [page 57]
1.4.5.3.2.3.1 Pour lier à une classe utilitaire de gestion du cache
Prérequis
Remarque
de code spécifique nécessaire à cette procédure. Il est impossible de suivre cette procédure sans cette configuration.
Procédure
utilitaire de gestion du cache.
2. Instanciez la classe utilitaire de gestion du cache associée au rapport Hierarchical Grouping.rpt.
Dim cachedHierarchicalGroupingReport As CachedHierarchical_Grouping
= New CachedHierarchical_Grouping()
CachedHierarchical_Grouping cachedHierarchicalGroupingReport = new
CachedHierarchical_Grouping();
3. Transmettez l'instance de la classe utilitaire de gestion du cache au contrôle CrystalReportViewer.
myCrystalReportViewer.ReportSource = cachedHierarchicalGroupingReport
202
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
crystalReportViewer.ReportSource = cachedHierarchicalGroupingReport;
4. Pour visualiser le rapport, générez et exécutez votre projet.
1.4.5.3.2.4 Liaison à un rapport non incorporé chargé dans une classe utilitaire de gestion du cache
Modèle d'objet
Ce scénario de liaison de rapports utilise le modèle d'objet ReportDocument.
Emplacement des rapports
Les rapports se trouvent dans le répertoire de fichiers.
Description
Ce scénario de liaison de rapports est semblable au scénario
Liaison à une classe de rapport incorporé et mis en cache [page 200]
. La différence tient au fait que dans ce scénario les rapports ne sont pas incorporés. Pour en
savoir plus sur les rapports incorporés, voir Utilisation de rapports incorporés ou non incorporés ?
Comparaison des rapports incorporés et non incorporés [page 162]
SAP Crystal Reports, version développeur pour Microsoft Visual Studio est fourni avec deux fonctionnalités d'aide
à la mise en cache des rapports avec l'objet Cache ASP.NET :
● Une structure intégrée de gestion de la mise en cache des rapports qui détecte des rapports identiques possédant des paramètres ou des informations de connexion uniques qui nécessitent une clé unique pour chaque instance mise en cache.
● Une interface, ICachedReport, qui identifie les classes utilitaire de gestion du cache auprès de la structure de gestion de la mise en cache des rapports.
Dans Liaison à une classe de rapport incorporé et mis en cache [page 200]
, vous en avez appris davantage sur la classe Cached[NomRapport] qui est automatiquement générée lorsqu'un rapport est incorporé dans un projet.
Vous pouvez toutefois créer manuellement une classe utilitaire de gestion du cache pour gérer les rapports non incorporés. Pour obtenir un exemple de code, voir la section Implémentation ci-dessous.
Utilisation de la mise en cache
La mise en cache doit être utilisée dans des cas particuliers et limités car elle peut "surconsommer" des ressources système lorsqu'elle n'est pas gérée avec précaution.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
203
Avantages
● Conçu pour le partage : idéal pour stocker les rapports qui présentent un fort potentiel de partage et peu de modifications à apporter aux paramètres ou aux informations de connexion.
● Accès aux données optimisé : si les rapports à fort potentiel de partage sont très volumineux ou s'ils contiennent une requête tellement complexe que l'extraction prend plusieurs minutes, la classe utilitaire de gestion du cache permet d'accéder plus rapidement aux données.
Inconvénients
● Charge du serveur : les rapports stockés dans l'objet Cache ASP.NET peuvent "surcharger" les ressources mémoire sur le serveur.
● Problèmes de persistance : le cache possède certaines dépendances qui permettent la vérification des modifications apportées à l'instance d'un rapport et la remise en cache de cette instance. Toutefois, si la base de données est modifiée, l'instance du rapport stockée dans l'objet Cache n'est pas actualisée en conséquence.
● Consommation de ressources : un rapport dont les paramètres sont appelés fréquemment à l'aide de différentes chaînes de paramètre(particulièrement si l'un de ces paramètres correspond à l'ID utilisateur) implique à chaque fois la mise en cache d'un nouveau rapport. Ce processus consomme des ressources système. Si le rapport ne présente pas un fort potentiel de partage, affectez son instance à un objet Session.
Informations associées
Liaison avec le composant ReportDocument [page 208]
Modèle d'objet ReportDocument [page 37]
Session et persistance du modèle d'objet ReportDocument [page 57]
1.4.5.3.2.4.1 Pour mettre en cache une classe de rapport non incorporé, puis la lier au contrôle
CrystalReportViewer
Prérequis
Remarque
de code spécifique nécessaire à cette procédure. Il est impossible de suivre cette procédure sans cette configuration.
204
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Procédure
1. Recherchez le fichier World Sales Report.rpt dans le sous-répertoire General Business.
2. Copiez dans le Presse-papiers le chemin d'accès complet au répertoire de fichiers en incluant World Sales
Report.rpt.
3. Dans la méthode ConfigureCrystalReports() (que vous avez créée dans la section
Configuration d'un projet [page 15]
), déclarez une variable chaîne reportPath et affectez-lui une chaîne contenant le chemin d'accès au fichier World Sales Report copié lors de l'étape précédente.
Dim reportPath As String = _
"C:\Program Files\Microsoft Visual Studio 9.0\" _
& "Crystal Reports\Samples\En\Reports\General Business\" _
& "World Sales Report.rpt" string reportPath =
"C:\\Program Files\\Microsoft Visual Studio 9.0\\"
+ "Crystal Reports\\Samples\\En\\Reports\\General Business\\"
+ "World Sales Report.rpt";
4. Déclarez et instanciez la classe NonEmbeddedReportCacher, puis transmettez-lui la variable chaîne reportFile.
Remarque
Pour apprendre à créer la classe NonEmbeddedReportCacher, voir la procédure décrite juste après cette procédure.
Dim myNonEmbeddedReportCacher As NonEmbeddedReportCacher = _New
NonEmbeddedReportCacher(reportFile)
NonEmbeddedReportCacher nonEmbeddedReportCacher = new
NonEmbeddedReportCacher(reportFile);
5. Affectez l'instance de la classe utilitaire de gestion du cache à la propriété ReportSource du contrôle
CrystalReportViewer.
myCrystalReportViewer.ReportSource = myNonEmbeddedReportCacher crystalReportViewer.ReportSource = nonEmbeddedReportCacher;
1.4.5.3.2.4.2 Pour créer la classe utilitaire de gestion du cache NonEmbeddedReportCacher
Procédure
1. Créez dans votre projet une classe nommée NonEmbeddedReportCacher.
Public Class NonEmbeddedReportCacher
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
205
End Class using System; namespace MyWebApplication
{
public class NonEmbeddedReportCacher
{
public NonEmbeddedReportCacher()
{
}
}
}
2. Ajoutez l'interface ICachedReport à la signature de la classe.
Public Class NonEmbeddedReportCacher
Implements ICachedReport public class NonEmbeddedReportCacher : ICachedReport
3. Ajoutez trois instructions "Imports" [Visual Basic] ou "using" [C#] au début de la classe.
Imports CrystalDecisions.Shared
Imports CrystalDecisions.ReportSource
Imports CrystalDecisions.CrystalReports.Engine
using CrystalDecisions.Shared; using CrystalDecisions.ReportSource; using CrystalDecisions.CrystalReports.Engine;
4. Dans la classe, déclarez deux instances de niveau classe : une instance chaîne nommée reportFileName et une instance de ReportDocument nommée nonEmbeddedReportDocument.
Private reportFileName As String
Private nonEmbeddedReportDocument As ReportDocument private string reportFileName; private ReportDocument nonEmbeddedReportDocument;
5. Configurez le constructeur de manière à ce qu'il accepte une chaîne reportFileName et dans le constructeur, attribuez cette chaîne à la variable de classe reportFileName.
Public Sub New(ByVal reportFileName As String)
Me.reportFileName = reportFileName
End Sub public NonEmbeddedReportCacher(string reportFileName)
{
this.reportFileName = reportFileName;
}
Les étapes suivantes implémentent les propriétés et les méthodes requises par l'interface :
○ IsCacheable
○ ShareDBLogonInfo
○ CacheTimeOut
○ CreateReport()
○ GetCustomizedCacheKey(requête RequestContext)
206
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
6. Créez la propriété IsCacheable qui renvoie la valeur True.
Public Overridable Property IsCacheable() As Boolean Implements
ICachedReport.IsCacheable
Get
Return True
End Get
Set(ByVal Value As Boolean)
End Set
End Property public virtual Boolean IsCacheable
{
get
{
return true;
}
set
{
}
}
7. Créez la propriété ShareDBLogonInfo qui renvoie la valeur False.
Public Overridable Property ShareDBLogonInfo() As Boolean Implements
ICachedReport.ShareDBLogonInfo
Get
Return False
End Get
Set(ByVal Value As Boolean)
End Set
End Property public virtual Boolean ShareDBLogonInfo
{
get
{
return false;
}
set
{
}
}
8. Créez la propriété CacheTimeOut qui renvoie une valeur de constante depuis la classe
CachedReportConstants.
Public Overridable Property CacheTimeOut() As TimeSpan Implements
ICachedReport.CacheTimeOut
Get
Return CachedReportConstants.DEFAULT_TIMEOUT
End Get
Set(ByVal Value As TimeSpan)
End Set
End Property public virtual TimeSpan CacheTimeOut
{
get
{
return CachedReportConstants.DEFAULT_TIMEOUT;
}
set
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
207
{
}
}
9. Créez la méthode CreateReport(), qui renvoie un rapport non incorporé chargé dans l'instance de niveau classe ReportDocument.
Public Overridable Function CreateReport() As ReportDocument Implements
ICachedReport.CreateReport
nonEmbeddedReportDocument = New ReportDocument()
nonEmbeddedReportDocument.Load(reportFileName)
Return nonEmbeddedReportDocument
End Function public virtual ReportDocument CreateReport()
{
nonEmbeddedReportDocument = new ReportDocument();
nonEmbeddedReportDocument.Load(reportFileName);
return nonEmbeddedReportDocument;
}
10. Créez la méthode GetCustomizedCacheKey() qui renvoie une valeur nulle.
Remarque
Le fait que cette méthode renvoie une valeur nulle indique au SDK de SAP Crystal Reports .NET qu'il doit gérer la clé de recherche du cache lui-même. Vous avez également la possibilité de créer et d'ajouter ici votre propre méthode de clé de cache.
Public Overridable Function GetCustomizedCacheKey(ByVal request As
RequestContext) As String Implements ICachedReport.GetCustomizedCacheKey
Return Nothing
End Function public virtual String GetCustomizedCacheKey(RequestContext request)
{
return null;
}
11. Pour visualiser le rapport, générez et exécutez votre projet.
1.4.5.3.2.5 Liaison avec le composant ReportDocument
Modèle d'objet
Ce scénario de liaison de rapports utilise le modèle d'objet ReportDocument.
Emplacement des rapports
Les rapports se trouvent dans le répertoire de fichiers.
208
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Description
Le composant ReportDocument se trouve dans la boîte à outils et fournit une méthode basée sur une interface utilisateur graphique pour générer un code d'instanciation de classe du rapport dans la classe code-behind. Vous pouvez spécifier un rapport non incorporé, un rapport incorporé ou un rapport incorporé mis en cache.
Remarque
La boîte de dialogue utilise les anciens termes "rapport non typé" pour désigner un rapport non incorporé et
"rapport fortement typé" pour désigner un rapport incorporé.
En utilisant cette boîte de dialogue pour ajouter ReportDocument en tant que composant, la classe
ReportDocument (ou la classe wrapper du rapport incorporé) est instanciée dans la région générée automatiquement de la classe code-behind. En même temps, une icône apparaît dans la barre d'état des composants de l'environnement de développement intégré pour représenter visuellement la classe de rapport instanciée.
Remarque
Il est inutile d'ajouter un composant ReportDocument à votre projet pour instancier le rapport dans la classe code-behind. Pour mieux contrôler votre code, il est recommandé d'ajouter le code d'instanciation de classe manuellement.
Informations associées
Modèle d'objet ReportDocument [page 37]
1.4.5.3.2.6 Scénarios de liaison ReportDocument utilisant les services Crystal (VS .NET 2003)
Les services Crystal offrent un accès pratique aux rapports dans Visual Studio 2003. Cette fonctionnalité n'est pas disponible dans Visual Studio 2005 ou Visual Studio 2008. Une fois SAP Crystal Reports et les services
Crystal installés, Services Crystal apparaît sous la forme d'un sous-nœud situé sous chaque serveur du nœud
Serveurs de l'Explorateur de serveurs. Le nœud Services Crystal peut être développé pour afficher des listes de rapports situés à divers emplacements :
● Répertoire de fichiers local sur votre disque dur
● Report Application Server (RAS)
● Plateforme SAP BusinessObjects Business Intelligence (BIP)
Vous pouvez placer n'importe quel rapport répertorié dans ces listes dans un Web Form ou un Windows Form à l'aide d'une opération glisser-déplacer.
Selon la version de SAP Crystal Reports que vous avez installée et les licences supplémentaires que vous avez
éventuellement acquises pour le RAS (Report Application Server) ou la plateforme SAP BusinessObjects Business
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
209
Intelligence, les services Crystal fournissent généralement deux nœuds qui peuvent être développés. Le tableau situé dans la section suivante décrit les conditions requises pour accéder à un nœud particulier.
Remarque
Certaines versions de la plateforme SAP BusinessObjects Business Intelligence ne comprennent pas la prise en charge des services Crystal. Pour en savoir plus, consultez la documentation relative à la plateforme SAP
BusinessObjects Business Intelligence.
Il se peut que vous deviez ajuster vos paramètres de pare-feu afin d'accéder au CMS de la plateforme SAP
BusinessObjects Business Intelligence. Le port par défaut pour le CMS est 6400. Contactez votre administrateur système pour plus d'informations sur l'adresse réseau et les paramètres de port de votre système de plateforme
SAP BusinessObjects Business Intelligence. Pour plus d'informations sur la personnalisation des ports, voir le
Guide d'administration de la plateforme SAP BusinessObjects Business Intelligence.
Classes wrapper
Lorsque vous faites glisser un rapport depuis les services Crystal vers un Web Form ou un Windows Form, cela crée une instance de classe wrapper qui référence le rapport dans la région du code de la classe code-behind généré par le Web Form ou Windows Form.
Remarque
Le type de classe wrapper varie selon les versions de SAP Crystal Reports. Voir le tableau ci-dessous.
Les services Crystal répertoriés dans le tableau ci-dessous exposent les types de la classe wrapper
ReportDocument.
Ces deux services Crystal sont fournis avec SAP Crystal Reports 10. Ils fournissent des groupes de rapports pris en charge depuis un serveur RAS géré ou non géré. ReportDocument correspond désormais à la classe wrapper
(depuis SAP Crystal Reports 9).
Table 8 :
Classe wrapper expo sée par le biais des services Crystal
ReportDocument
Nom du nœud sous les services Crystal
Versions de SAP Crys tal Reports
Description Conditions requises pour accéder au nœud
Report Application Ser ver
SAP Crystal Reports 10 Expose les rapports si tués sur un serveur
RAS chargé dans Re portDocument. Pour en savoir plus, voir
Server (SAP Crys tal Reports 10 et ver sions ultérieures) [page
Installez un serveur
RAS non géré.
210
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Classe wrapper expo sée par le biais des services Crystal
ReportDocument
Nom du nœud sous les services Crystal
Crystal Enterprise
Versions de SAP Crys tal Reports
Description Conditions requises pour accéder au nœud
SAP Crystal Reports 10 Expose les rapports si tués sur le serveur RAS géré chargé dans Re portDocument. Pour en savoir plus, voir
(SAP Crystal Re ports 10 et versions ul térieures) [page 214] .
Installez Crystal Enter prise.
Les précédentes versions des services Crystal exposent des types de classes wrapper qui n'utilisent pas le modèle d'objet ReportDocument. Elles dépendent donc du modèle d'objet limité fourni par le contrôle
CrystalReportViewer. Pour en savoir plus, voir
Scénarios de liaison CrystalReportViewer avec les services Crystal
1.4.5.3.2.6.1 Liaison au Report Application Server
(SAP Crystal Reports 10 et versions ultérieures)
Remarque
Les fonctionnalités décrites dans cette page ne sont pas disponibles dans SAP Crystal Reports, version développeur pour Microsoft Visual Studio mais le sont dans l'une des versions mises à niveau.
Modèle d'objet
Ce scénario de liaison de rapports utilise le modèle d'objet ReportDocument.
Emplacement des rapports
Les rapports se trouvent sur le serveur RAS non géré. Ils sont inclus dans la classe ReportDocument.
Présentation des services Crystal
Ce scénario de liaison de rapports s'applique aux rapports accessibles depuis le nœud du serveur de services
Crystal dans l'Explorateur de serveurs.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
211
Cette section présente le sous-nœud Report Application Server des services Crystal dans
SAP Crystal Reports Developer.
[NOMSERVEUR]
● Services Crystal
○ Report Application Server
Description
Le sous-nœud Report Application Server accède aux rapports qui ont été exposés par un serveur RAS non géré, puis les affiche. Le nœud RAS fonctionne uniquement lorsque le serveur RAS non géré a été installé sur votre ordinateur de développement.
Lorsque vous déplacez un rapport par glisser-déposer depuis le nœud Services Crystal > Plateforme SAP
BusinessObjects Business Intelligence vers un Web Form ou un Windows Form, une instance de ReportDocument est générée. La classe ReportDocument fonctionne comme une classe wrapper. Son rôle consiste à représenter le rapport transmis depuis le serveur RAS non géré.
Avantages
● Accès simple : les rapports situés sur le serveur RAS non géré peuvent être facilement visualisés dans une arborescence et déplacés à l'aide d'une simple opération glisser dans un Web Form.
● Interaction par programmation étendue : fournit un accès au puissant modèle d'objet ReportDocument. La classe wrapper dans cette version est ReportDocument. Il s'agit de la première version des Services Crystal donnant accès au modèle d'objet ReportDocument.
Inconvénients
● Codage moins direct : le codage des rapports RAS est moins direct que lorsqu'il est effectué à l'aide du modèle d'objet ReportClientDocument.
Informations associées
Liaison à Crystal Enterprise (SAP Crystal Reports 10 et versions ultérieures) [page 214]
Modèle d'objet ReportDocument [page 37]
Utilisation des services Crystal [page 84]
212
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.4.5.3.2.6.1.1 Pour utiliser les services Crystal > Report
Application Server
Prérequis
● SAP Crystal Reports 10 ou une version ultérieure doit être installée et en cours de fonctionnement.
● Le serveur RAS non géré doit être installé et en cours de fonctionnement.
Remarque
de code spécifique nécessaire à cette procédure. Il est impossible de suivre cette procédure sans cette configuration.
Procédure
1. Dans Visual Studio, ouvrez l'
Explorateur de serveurs
.
2. Développez le nœud
Services Crystal
, puis le nœud
Report Application Server
.
3. Sélectionnez un rapport dans l'arborescence
Report Application Server
, puis faites-le glisser dans votre
Web Form ou votre Windows Form.
En mode Design, un objet reportDocument1 s'affiche au bas du formulaire.
Remarque
Lorsqu'un rapport Report Application Server est placé dans votre formulaire, une instance de la classe
ReportDocument est ajoutée à la zone Code généré par le concepteur de votre formulaire.
Lorsqu'une classe qui hérite de System.ComponentModel.Component (telle que ReportDocument) est instanciée et configurée dans la région du code généré par le Concepteur, une icône correspondant à cette classe instanciée s'affiche au bas du formulaire en mode Design.
4. Passez en mode code et ouvrez la région du
code généré par le Concepteur Web Form ou Windows Form
.
Remarque
Une classe ReportDocument a été instanciée et configurée dans cette région.
5. Dans la méthode ConfigureCrystalReports() (que vous avez créée dans la section
Configuration d'un projet [page 15]
), affectez l'instance de ReportDocument à la propriété ReportSource du contrôle
CrystalReportViewer.
myCrystalReportViewer.ReportSource = reportDocument1 crystalReportViewer.ReportSource = reportDocument1;
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
213
6. Pour visualiser le rapport, générez et exécutez votre projet.
1.4.5.3.2.6.2 Liaison à Crystal Enterprise
(SAP Crystal Reports 10 et versions ultérieures)
Remarque
Les fonctionnalités décrites dans cette page ne sont pas disponibles dans SAP Crystal Reports, version développeur pour Microsoft Visual Studio mais le sont dans l'une des versions mises à niveau.
Modèle d'objet
Ce scénario de liaison de rapports utilise le modèle d'objet ReportDocument.
Emplacement des rapports
Les rapports se trouvent sur le serveur RAS géré. Ils sont inclus dans la classe ReportDocument.
Présentation des services Crystal
Ce scénario de liaison de rapports s'applique aux rapports accessibles depuis le nœud du serveur de services
Crystal dans l'Explorateur de serveurs.
Cette section présente le sous-nœud de la plateforme SAP BusinessObjects Business Intelligence des services
Crystal dans SAP Crystal Reports Developer.
[NOMSERVEUR]
● Services Crystal
○ Crystal Enterprise
Description
Le sous-nœud de la plateforme SAP BusinessObjects Business Intelligence accède aux rapports qui ont été fournis par un serveur RAS géré dans la plateforme SAP BusinessObjects Business Intelligence, puis les affiche.
Le nœud Services Crystal > Plateforme SAP BusinessObjects Business Intelligence fournit les rapports de Crystal
Enterprise via le serveur RAS géré. Le nœud de la plateforme SAP BusinessObjects Business Intelligence
214
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
fonctionne, mais si la plateforme SAP BusinessObjects Business Intelligence n'a pas été installée sur l'ordinateur de développement, accédez aux propriétés de ce nœud et définissez le nom du serveur de la plateforme SAP
BusinessObjects Business Intelligence sur le réseau.
Lorsque vous déplacez un rapport par glisser-déposer depuis le nœud Services Crystal > Plateforme SAP
BusinessObjects Business Intelligence vers un Web Form ou un Windows Form, une instance de ReportDocument est générée. La classe ReportDocument fonctionne comme une classe wrapper. Son rôle consiste à représenter le rapport transmis depuis le serveur RAS dans Crystal Enterprise.
Avantages
● Accès facile : les rapports situés sur le serveur RAS dans Crystal Enterprise sont facilement accessibles à partir d'une application Web.
● Interaction par programmation étendue : fournit un accès au puissant modèle d'objet ReportDocument. La classe wrapper dans cette version est ReportDocument. C'est la première version des services Crystal qui donne accès au modèle d'objet ReportDocument.
Inconvénients
● Codage moins direct : le codage des rapports RAS est moins direct que lorsqu'il est effectué à l'aide du modèle d'objet ReportClientDocument.
Informations associées
Utilisation des services Crystal [page 84]
1.4.5.3.2.6.2.1 Pour utiliser les Services
Crystal > Crystal Enterprise
Prérequis
● SAP Crystal Reports 10 ou XI doit être installé et en cours de fonctionnement.
Remarque
de code spécifique nécessaire à cette procédure. Il est impossible de suivre cette procédure sans cette configuration.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
215
Procédure
1. Dans Visual Studio, ouvrez l'
Explorateur de serveurs
.
2. Développez le nœud
Services Crystal
, puis le nœud
Crystal Enterprise
.
3. Sélectionnez un rapport dans l'arborescence
Crystal Enterprise
, puis faites-le glisser dans votre formulaire.
En mode Design, un objet reportDocument1 s'affiche au bas du formulaire.
Remarque
Lorsqu'un rapport Crystal Enterprise est placé dans votre formulaire, une instance de la classe
ReportDocument est ajoutée à la région du code généré par le Concepteur de votre formulaire.
Lorsqu'une classe qui hérite de System.ComponentModel.Component (telle que ReportDocument) est instanciée et configurée dans la région du code généré par le Concepteur, une icône correspondant à cette classe instanciée s'affiche au bas du formulaire en mode Design.
4. Passez en mode code et ouvrez la région du
code généré par le Concepteur Web Form ou Windows Form
.
Une classe ReportDocument a été instanciée et configurée dans cette région.
CrystalReportViewer.
myCrystalReportViewer.ReportSource = reportDocument1 crystalReportViewer.ReportSource = reportDocument1;
6. Générez puis exécutez votre projet Web pour visualiser le rapport.
1.4.5.4 Utilisation de rapports standard ou mis en cache ?
Lorsque vous envisagez de générer une application à l'aide du SDK de SAP Crystal Reports, l'un des points les plus importants à déterminer concerne l'utilisation de rapports standard ou de rapports mis en cache. Connaître les principes fondamentaux du SDK qui influencent la mise en cache des rapports vous aidera à choisir la structure la mieux adaptée à votre projet SAP Crystal Reports, version développeur pour Microsoft Visual Studio.
Qu'est-ce qu'un rapport mis en cache ?
Un rapport mis en cache est un objet de rapport qui a été stocké dans l'objet Cache ASP.NET dans le but d'augmenter les performances et l'évolutivité. SAP Crystal Reports fournit une structure particulière pour la mise en cache des instances de ReportDocument. Cette structure met automatiquement en cache tout rapport qui implémente l'interface ICachedReport.
216
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Qu'est ce que l'objet Cache ASP.NET ?
Dans ASP comme dans ASP.NET, les objets de rapport sont placés dans Session ou dans Application sur le serveur Web pour deux raisons :
1. Pour garantir la persistance des objets de rapport au fur et à mesure que les pages sont rechargées.
2. Pour accroître l'évolutivité et les performances en plaçant les rapports volumineux ou lents à se charger dans la mémoire du serveur.
Dans ASP.NET, une version plus avancée de l'objet Application, appelée Cache, a été introduite. Tout comme l'objet Application, l'objet Cache rend les instances uniques d'un objet de rapport persistantes. Cache permet en outre de rechercher des dépendances basées sur des fichiers, des clés ou des délais. Ces dépendances peuvent arriver à expiration automatiquement et actualiser les objets de rapport stockés dans le cache afin que le contenu de ce dernier soit toujours actuel.
Les rapports stockés dans Cache sont propres à l'utilisateur et à la session.
Remarque
Les termes "objet Cache" et "Cache", tout comme les termes "objet Session" et "Session" ou "objet
Application" et "Application" sont utilisés de manière interchangeable et signifient la même chose. Le terme
"objet" souligne le fait qu'il s'agit d'objets qui garantissent la persistance et s'exécutent dans l'espace mémoire du .NET Framework sur le serveur Web.
Comment les objets de rapport sont-ils placés dans l'objet Cache ASP.NET ?
Il existe deux manières de placer les objets de rapport dans l'objet Cache ASP.NET :
● En affectant les objets de rapport à l'objet Cache à l'aide de la même syntaxe que celle utilisée pour une affectation à l'objet Session ou Application (affectation explicite).
● En instanciant une version du rapport qui implémente l'interface ICachedReport. Le moteur de rapport recherche alors tous les objets de rapport qui implémentent cette interface et place automatiquement ces objets dans l'objet Cache (affectation implicite).
Qu'est-ce que l'interface ICachedReport ?
L'interface ICachedReport marque d'un indicateur toutes les classes de rapport qui lui permettent de fonctionner avec la structure de mise en mémoire cache de SAP Crystal Reports. Cette structure personnalisée fournit une couche sur l'objet Cache ASP.NET afin de répondre à des besoins spécifiques de mise en mémoire cache des rapports.
L'interface ICachedReport comporte des signatures de méthodes qui, lorsqu'elles sont implémentées dans la classe de rapport, indiquent à la structure comment mettre en cache cette classe.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
217
Quelles sont les fonctionnalités de mise en mémoire cache fournies lors de l'incorporation d'un rapport dans un projet Visual Studio ?
Lorsque vous créez ou importez un rapport dans un projet Visual Studio, ce rapport est incorporé dans le projet et deux classes sont automatiquement générées :
● Une classe wrapper (du même nom que le rapport).
Cette classe wrapper représente le rapport dans le projet et hérite de toutes les propriétés et méthodes de
ReportDocument. Pour en savoir plus, voir
Comparaison des rapports incorporés et non incorporés [page
● Une classe utilitaire de gestion du cache (nommée classe Cached[NomRapport]).
Cette classe gère la mise en cache du rapport incorporé à l'aide de l'objet Cache ASP.NET et de la structure de mise en mémoire cache construite dans le SDK de SAP Crystal Reports.
La table suivante présente les éléments générés lors de l'ajout du rapport de regroupement hiérarchique :
Table 9 :
Nom des éléments
Hierarchical Grouping.rpt
Classe Hierarchical_Grouping
Classe CachedHierarchical_Grouping
Correspond au rapport
à la classe wrapper du rapport
à la classe utilitaire de gestion du cache servant à gérer la mise en mémoire cache de la classe wrapper du rapport
La classe wrapper de rapport et la classe utilitaire de gestion du cache ont des rôles distincts :
● La classe wrapper de rapport hérite de ReportDocument et, par conséquent, a accès au modèle d'objet
ReportDocument dans son intégralité. Il s'agit de la classe principale que vous programmez pour interagir avec le rapport.
● La classe utilitaire de gestion du cache gère et stocke les instances de la classe wrapper de rapport dans l'objet Cache ASP.NET. Elle identifie les différentes instances de la classe wrapper et évite qu'elles ne s'écrasent mutuellement dans le Cache. Par exemple, elle distingue les différences générées lorsque les paramètres et les informations de connexion sont modifiés. Pour cela, elle affecte une clé unique à chaque instance de la classe wrapper de rapport.
● Pour s'identifier auprès de la fonction de mise en cache du .NET Framework de SAP Crystal Reports, la classe utilitaire de gestion du cache implémente l'interface ICachedReport.
La classe wrapper de rapport et la classe utilitaire de gestion du cache sont toutes deux générées dans le même fichier de classe. Pour les visualiser, cliquez avec le bouton droit de la souris sur le fichier de classe dans l'Explorateur de solutions, puis sélectionnez Afficher le code. Dans le fichier ouvert, le code correspondant à la classe wrapper est affiché dans le haut du fichier et le code relatif à la classe utilitaire de gestion du cache est affiché plus bas, à mi-fichier.
Remarque
218
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Quand mettre les rapports en cache ?
Ne placez qu'un nombre restreint d'objets de rapport dans l'objet Cache ASP.NET. La plupart des objets de rapport présentent un faible potentiel de partage (en d'autres termes, ils ne sont pas utilisés en tant que ressources partagées avec d'autres objets). Ils viendraient en quelque sorte "encombrer" le Cache. S'ils doivent
être rendus persistants, placez plutôt les objets de rapport dans l'objet Session de l'utilisateur.
Placez l'objet de rapport dans Cache ASP.NET uniquement si le rapport doit être affiché à de nombreuses reprises par le même utilisateur au cours d'une session donnée. Ceci est particulièrement important si un objet de rapport est très volumineux ou s'il contient une requête si complexe que l'extraction de ses données prend plusieurs minutes.
Informations associées
Liaison à une classe de rapport incorporé et mis en cache [page 200]
1.4.5.5 Affichage d'un rapport au moment de la conception
SAP Crystal Reports vous permet d'afficher l'aperçu d'un rapport au moment de la conception dans Visual Studio.
Lorsqu'un rapport est affecté à la propriété ReportSource dans la fenêtre
Propriétés
, il s'affiche sous forme d'aperçu dans le Windows Form ou la page ASPX.
Les données statiques, telles que les dates, images ou champs de texte, s'affichent comme au moment de l'exécution. Les données dynamiques, telles que les données provenant d'une base de données, peuvent utiliser des valeurs artificielles à la place des données de votre source de données. Si votre rapport contient des donnée enregistrées, celles-ci apparaissent dans l'aperçu lors de la conception.
Le SAP Crystal Reports Designer incorporé fournit des fonctionnalités d'affichage supplémentaires via l'onglet
Aperçu. Lorsque vous affichez votre rapport dans l'onglet Aperçu, SAP Crystal Reports tente d'extraire les nouvelles données de la source de données spécifiée. L'aperçu au moment de la conception ne tente pas d'extraire de données. Il affiche les données actuellement enregistrées dans le rapport.
Remarque
L'onglet Aperçu n'est pas disponible dans le SAP Crystal Reports Designer pour Visual Studio .NET 2003 incorporé.
Informations associées
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
219
1.4.6 Personnalisation du contrôle CrystalReportViewer
Le contrôle CrystalReportViewer permet de lier et d'afficher des rapports dans le .NET Framework. Le contrôle
CrystalReportViewer par défaut inclut des éléments d'interface utilisateur pour vous aider à afficher, enregistrer et parcourir un rapport.
En fonction de votre application, vous pouvez modifier certains éléments du contrôle par défaut.
SAP Crystal Reports vous permet de personnaliser l'aspect et la convivialité du visualiseur dans votre application de différentes manières, notamment :
● La barre d'outils CrystalReportViewer peut être supprimée du visualiseur.
● Les boutons de la barre d'outils CrystalReportViewer peuvent être ajoutés ou supprimés par programmation.
● Le contrôle CrystalReportViewer prend en charge la personnalisation via CSS ou Thèmes.
Cette section explique comment modifier le contrôle du visualiseur pour votre application.
Classes utilisées pour la visualisation de rapports
● CrystalDecisions.Windows.Forms.CrystalReportViewer
Fournit des propriétés, des méthodes et des événements permettant de modifier ou d'extraire les informations sur la manière dont fonctionne et s'affiche le contrôle CrystalReportViewer.
● CrystalDecisions.Web.CrystalReportViewer
Fournit des propriétés, des méthodes et des événements permettant de modifier ou d'extraire les informations sur la manière dont fonctionne et s'affiche le contrôle CrystalReportViewer.
Informations associées
Comment utiliser les contrôles visualiseur de rapports ? [page 43]
1.4.6.1 Indicateur de traitement de rapport
L'indicateur de traitement de rapport fournit une indication visuelle du temps de traitement sur votre site Web
SAP Crystal Reports. Lorsque le temps de traitement du rapport dépasse un seuil spécifié, une boîte de dialogue apparaît pour fournir une indication sur le progrès de l'action en cours.
Le texte de la boîte de dialogue et le délai préalable à l'apparition de la boîte de dialogue peuvent être spécifiés dans le fichier Web.Config de votre site Web.
Le texte par défaut est : Veuillez patienter pendant le traitement du document.
Le délai par défaut préalable à l'apparition de l'indicateur de traitement de rapport est de 200 ms.
220
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Informations associées
Configuration du fichier Web.Config [page 20]
1.4.6.1.1 Personnalisation du texte de l'indicateur de traitement de rapport
Contexte
Le texte du message de l'indicateur de traitement de rapport est configuré dans le fichier Web.Config de votre site Web.
Procédure
1. Ajoutez un contrôle CrystalReportViewer à votre application.
2. Ouvrez votre fichier Web.config.
Si vous ne disposez pas de fichier Web.Config, cliquez sur
Déboguer Démarrer le débogage
pour déboguer votre application. Visual Studio vous invite à créer un fichier Web.Config. Cliquez sur
OK
pour créer le fichier.
3. Dans votre fichier Web.Config, ajoutez le paramètre NameValueSectionHandler en tant que premier enfant de l'élément de configuration.
<configSections>
<sectionGroup name="businessObjects">
<sectionGroup name="crystalReports">
<section name="crystalReportViewer" type="System.Configuration.NameValueSectionHandler" />
</sectionGroup>
</sectionGroup>
</configSections>
L'élément configSections doit être l'unique premier enfant de l'élément configuration. Si vous disposez déjà d'un élément configSections pour SAP Crystal Reports, ajoutez l'élément section de
CrystalReportViewer au nœud configSections existant.
4. Ajoutez le paramètre processingIndicatorText directement après l'élément configSections.
<businessObjects>
<crystalReports>
<crystalReportViewer>
<add key="processingIndicatorText" value="Thank you for waiting"/>
</crystalReportViewer>
</crystalReports>
</businessObjects>
5. Remplacez le texte de l'attribut value par le message à afficher dans l'indicateur de traitement de rapport.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
221
L'élément processingIndicatorText contrôle le texte affiché dans l'indicateur de traitement de rapport.
Le texte par défaut est : Veuillez patienter pendant le traitement du document.
Résultats
Le contrôle CrystalReportViewer doit à présent utiliser le message personnalisé dans l'indicateur de traitement de rapport.
Exemple
Cet exemple réduit le délai de l'indicateur de traitement de rapport à 20 ms et remplace le message affiché par
“Merci d'avoir patienté”.
<?xml version="1.0"?>
<configuration>
<configSections>
<sectionGroup name="businessObjects">
<sectionGroup name="crystalReports">
<section name="crystalReportViewer" type="System.Configuration.NameValueSectionHandler" />
</sectionGroup>
</sectionGroup>
</configSections>
<businessObjects>
<crystalReports>
<crystalReportViewer>
<add key="processingIndicatorText" value="Thank you for waiting."/>
<add key="processingIndicatorDelay" value="20"/>
</crystalReportViewer>
</crystalReports>
</businessObjects>
<appSettings>
<add key="CrystalImageCleaner-AutoStart" value="true"/>
<add key="CrystalImageCleaner-Sleep" value="60000"/>
<add key="CrystalImageCleaner-Age" value="120000"/>
</appSettings>
<connectionStrings/>
<system.web>
<compilation debug="true">
<assemblies>
<add assembly="CrystalDecisions.Web, Version=12.0.2000.0,
Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
<add assembly="CrystalDecisions.Shared, Version=12.0.2000.0,
Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
<add assembly="CrystalDecisions.ReportSource, Version=12.0.2000.0,
Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
<add assembly="CrystalDecisions.CrystalReports.Engine,
Version=12.0.2000.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
</assemblies>
</compilation>
<authentication mode="Windows"/>
<httpHandlers>
<add verb="GET" path="CrystalImageHandler.aspx" type="CrystalDecisions.Web.CrystalImageHandler, CrystalDecisions.Web,
Version=12.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/>
</httpHandlers>
</system.web>
</configuration>
222
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.4.6.1.2 Modification du délai préalable à l'apparition de l'indicateur de traitement de rapport
Contexte
Le délai préalable à l'apparition de l'indicateur de traitement de rapport est configuré dans le fichier Web.Config de votre site Web. L'élément processingIndicatorDelay contrôle le délai préalable à l'apparition de l'indicateur de traitement de rapport.
Procédure
1. Ajoutez un contrôle CrystalReportViewer à votre application.
2. Ouvrez votre fichier Web.config.
Si vous ne disposez pas de fichier Web.Config, cliquez sur
Déboguer Démarrer le débogage
pour déboguer votre application. Visual Studio vous invite à créer un fichier Web.Config. Cliquez sur
OK
pour créer le fichier.
3. Dans votre fichier Web.Config, ajoutez le paramètre NameValueSectionHandler en tant que premier enfant de l'élément de configuration.
<configSections>
<sectionGroup name="businessObjects">
<sectionGroup name="crystalReports">
<section name="crystalReportViewer" type="System.Configuration.NameValueSectionHandler" />
</sectionGroup>
</sectionGroup>
</configSections>
L'élément configSections doit être l'unique premier enfant de l'élément configuration. Si vous disposez déjà d'un élément configSections pour SAP Crystal Reports, ajoutez l'élément section de
CrystalReportViewer au nœud configSections existant.
4. Ajoutez le paramètre processingIndicatorDelay directement après l'élément configSections.
<businessObjects>
<crystalReports>
<crystalReportViewer>
<add key="processingIndicatorDelay" value="20"/>
</crystalReportViewer>
</crystalReports>
</businessObjects>
5. Remplacez le texte de l'attribut value par la durée qui doit s'écouler avant l'apparition de l'indicateur de traitement de rapport.
La valeur est spécifiée en millisecondes. Le fait de définir cette valeur sur 0 désactive l'indicateur de traitement de rapport. La valeur par défaut est de 200 ms.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
223
Exemple
Cet exemple réduit le délai de l'indicateur de traitement de rapport à 20 ms et remplace le message affiché par
“Merci d'avoir patienté”.
<?xml version="1.0"?>
<configuration>
<configSections>
<sectionGroup name="businessObjects">
<sectionGroup name="crystalReports">
<section name="crystalReportViewer" type="System.Configuration.NameValueSectionHandler" />
</sectionGroup>
</sectionGroup>
</configSections>
<businessObjects>
<crystalReports>
<crystalReportViewer>
<add key="processingIndicatorText" value="Thank you for waiting."/>
<add key="processingIndicatorDelay" value="20"/>
</crystalReportViewer>
</crystalReports>
</businessObjects>
<appSettings>
<add key="CrystalImageCleaner-AutoStart" value="true"/>
<add key="CrystalImageCleaner-Sleep" value="60000"/>
<add key="CrystalImageCleaner-Age" value="120000"/>
</appSettings>
<connectionStrings/>
<system.web>
<compilation debug="true">
<assemblies>
<add assembly="CrystalDecisions.Web, Version=12.0.2000.0,
Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
<add assembly="CrystalDecisions.Shared, Version=12.0.2000.0,
Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
<add assembly="CrystalDecisions.ReportSource, Version=12.0.2000.0,
Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
<add assembly="CrystalDecisions.CrystalReports.Engine,
Version=12.0.2000.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
</assemblies>
</compilation>
<authentication mode="Windows"/>
<httpHandlers>
<add verb="GET" path="CrystalImageHandler.aspx" type="CrystalDecisions.Web.CrystalImageHandler, CrystalDecisions.Web,
Version=12.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/>
</httpHandlers>
</system.web>
</configuration>
1.4.6.2 Prise en charge de plusieurs langues avec le contrôle
CrystalReportViewer
SAP Crystal Reports, version développeur pour Microsoft Visual Studio inclut la prise en charge des clients Web et
Windows multilingues via une localisation dynamique.
224
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
La localisation dynamique permet aux utilisateurs d'afficher des info-bulles ainsi que d'autres contenus du contrôle CrystalReportViewer dans la langue de leur choix. Pour activer la localisation dynamique, vous devez rendre disponible les fichiers de ressources de langue dans la langue souhaitée.
Informations associées
Tutoriel : Configuration de la prise en charge de client multilingue [page 567]
1.4.6.2.1 Fichiers de ressources de langue
Les fichiers de ressources de langue contiennent une série de paires clés/valeurs qui fournissent le texte affiché dans l'application. Pour chaque élément de texte qui apparaît dans une application de rapport Crystal, il existe une valeur correspondante dans le fichier de ressources de langue qui spécifie la manière dont doit apparaître le texte dans chaque langue.
Fichiers de ressources de langue
Sur le serveur Web ou le client Windows, vous pouvez accéder aux ressources de langue du contrôle
CrystalReportViewer à partir de deux sources différentes :
● Les fichiers DLL de ressources de langue par défaut, comprenant les langues suivantes :
○ Anglais (en)
○ Français (fr)
○ Allemand (de)
○ Espagnol (es)
○ Italien (it)
○ Japonais (jp)
○ Coréen (ko)
○ Chinois simplifié (zh-chs)
○ Chinois traditionnel (zh-cht)
● Les fichiers de ressources de langue personnalisées, qui sont créés sous forme de chaînes de texte, puis compilés en tant que fichiers DLL de ressources de langue personnalisées.
Ressources neutres et non neutres
Les ressources de langue comprennent des ressources neutres et non neutres.
Les ressources neutres représentent un paramètre de langue général, tel que en (pour l'anglais), fr (pour le français) et jp (pour le japonais).
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
225
Les ressources non neutres représentent une version de la langue qualifiée par des critères supplémentaires, tels que la région : par exemple, de-AT pour Allemand (Autriche).
Ressources globales et locales
Les ressources de langue par défaut sont installées dans le GAC et sont donc toujours disponibles de manière globale, mais les ressources de langue personnalisée sont accessibles de manière globale ou locale.
Le dossier des ressources de langue peut être stocké dans un emplacement central et partagé à partir de cet emplacement ou bien il peut être copié dans un répertoire local de l'application Web ou Windows.
Lorsque les ressources de langue sont stockées dans un emplacement central, on les appelle des ressources globales. Dans ce scénario, l'application Web ou Windows doit être informée de leur emplacement grâce aux paramètres d'un fichier de configuration XML. Pour que le chargement d'une ressource globale s'effectue correctement, le nom du dossier contenant les fichiers de la ressource doit correspondre aux paramètres régionaux de la langue.
Si les ressources de langue sont copiées dans le répertoire local, on les appelle des ressources locales. Dans ce scénario, aucun fichier de configuration n'est nécessaire. Pour que le chargement d'une ressource locale s'effectue correctement, la culture des fichiers de ressource et le nom du dossier contenant les fichiers de ressource doivent correspondre aux paramètres régionaux de langue.
Choix entre ressources globales et ressources locales
Choisissez de préférence les ressources globales lorsque les ressources doivent être partagées avec plusieurs applications. Par exemple, l'utilisation des ressources globales est plus adaptée à un serveur Web contenant plusieurs sites Web requérant le partage d'un ensemble de ressources de langues à travers tous les sites Web.
Choisissez de préférence les ressources locales lorsque les ressources sont utilisées par une seule application, dont la large distribution requiert une configuration simple. Par exemple, l'utilisation des ressources locales est plus adaptée à une application Windows composée d'un seul dossier d'application destiné à une large distribution.
La plupart du temps, les applications Web sont plus adaptées aux ressources globales et les applications
Windows sont plus adaptées aux ressources locales.
Quelle ressource est chargée en premier ?
Si vous configurez des ressources globales et locales pour une application particulière, les ressources locales sont prioritaires (elles sont chargées en premier). Si vous souhaitez garantir l'utilisation des ressources globales, vérifiez que votre fichier de configuration est correct et supprimez le dossier de ressources locales.
Les ressources neutres et non neutres sont également influencées par l'ordre de chargement des ressources. Si vous avez configuré des ressources neutres et non neutres pour une langue donnée (telles que "allemand
(Autriche)" et "allemand"), les ressources non neutres sont vérifiées en premier.
Dans les deux cas, le spécifique prévaut sur le général.
226
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Affichage côté client
Les facteurs suivants déterminent la langue affichée par l'application cliente au moment de l'exécution :
Dans une application Windows :
● les paramètres régionaux de l'ordinateur de chaque utilisateur.
Dans un site Web :
● les paramètres régionaux du serveur Web ;
● les paramètres de langue du navigateur client ;
● la propriété Culture que vous définissez sur une autre page ASPX.
1.4.6.2.2 Prise en charge des standards de codage de caractères Unicode et GB18030
SAP Crystal Reports, version développeur pour Microsoft Visual Studio inclut la prise en charge des caractères internationaux selon les standards de codage de caractères suivants :
● Unicode
● GB18030
Pour comprendre comment SAP Crystal Reports prend en charge le codage de caractères Unicode et GB18030, vous devez connaître les trois différentes vues de caractères (répertoire de caractères, caractères sous forme de points de code, caractères sous forme de données codées). Vous devez également connaître la relation entre les points de code (terme plus précis désignant les caractères codés) et les unités de code.
1.4.6.2.2.1 Vues des caractères
Pour comprendre les standards de codage de caractères, vous devez faire la distinction entre trois vues de caractères :
● Le répertoire de caractères (la liste résumée des caractères).
● Les caractères sous forme de points de code avec valeurs scalaires.
● Les caractères sous forme de données codées.
Répertoire de caractères (liste résumée des caractères)
Le répertoire de caractères est une liste résumée de plus d'un million de caractères que l'on retrouve dans une grande diversité de scripts, notamment le latin, le cyrillique, le chinois, le coréen, le japonais, l'hébreu et l'araméen. D'autres symboles tels que des notes de musique sont également inclus dans le répertoire de caractères.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
227
Les standards de codage de caractères Unicode et GB18030 possèdent tous deux un répertoire de caractères.
Lorsque de nouveaux caractères sont ajoutés à un standard, l'autre standard ajoute également ces caractères pour maintenir la parité.
Caractères sous forme de points de code avec valeurs scalaires
Remarque
Cette seconde vue des caractères s'applique uniquement au format Unicode, et non à GB18030.
Chaque caractère du répertoire de caractères est affecté à un point de code. Chaque point de code a une valeur numérique spécifique que l'on appelle valeur scalaire. La valeur scalaire est souvent exprimée en hexadécimaux.
Les points de code se situent dans un espace de code. Cet espace de code contient différentes valeurs scalaires qui se répartissent sur deux plans :
● Le plan BMP (Basic Multilingual Plane) (taille : 64k).
Dans le standard Unicode, l'expression en hexadécimaux des valeurs de ce plan inférieur se situe entre U
+0000 et U+FFFF.
● Plan SMP (Supplemental Multilingual Plane) (16 sections supplémentaires d'une taille de 64k).
Dans le standard Unicode, l'expression en hexadécimaux des valeurs de ce plan supérieur se situe entre U
+10000 to U+10FFFF.
L'espace de code complet pour toutes les valeurs scalaires possibles est égal à une taille de 17 * 64k
(1 088 000 valeurs possibles).
Caractères sous forme de données codées
Chaque format de codage convertit des caractères du répertoire de caractères en données codées.
Dans le format GB18030, les données codées sont directement dérivées du répertoire de caractères : le concept d'une valeur scalaire jouant le rôle d'intermédiaire entre le répertoire de caractères et les données codées s'applique uniquement à Unicode.
Dans le format Unicode, les données codées sont obtenues en appliquant un algorithme à la valeur scalaire.
Unicode définit trois formats de codage de caractères :
● UTF-8
● UTF-16
● UTF-32
228
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.4.6.2.2.2 Relation entre les points de code et les unités de code
Pour comprendre comment SAP Crystal Reports, version développeur pour Visual Studio</nom_produit> prend en charge GB18030 et Unicode, il est important de comprendre la relation entre les points de code et les unités de code.
Points de code et unités de code
Dans chaque format de codage, les points de code sont mis en correspondance avec une ou plusieurs unités de code.
Une unité de code est une unité unique au sein de chaque format de codage. La taille de l'unité de code est
équivalente à la valeur en bits du format de codage concerné :
● Une unité de code UTF-8 est égale à 8 bits.
● Une unité de code UTF-16 est égale à 16 bits.
● Une unité de code UTF-32 est égale à 32 bits.
● Avec GB18030, une unité de code est égale à 8 bits.
Nombre d'unités de code dans chaque point de code
Le nombre d'unités de code devant être mises en correspondance avec un point de code varie en fonction des formats de codage :
● UTF-8
Le codage UTF-8 comporte souvent plusieurs unités de code par point de code, car les unités de code sont plus petites. Les points de code sont mis en correspondance avec une, deux, trois ou quatre unités de code.
● UTF-16
Les unités de code UTF-16 sont deux fois plus volumineuses que les unités de code 8 bits. Par conséquent, un point de code dont la valeur scalaire est inférieure à U+10000 est codé avec une seule unité de code.
Pour les points de code dont la valeur scalaire est supérieure ou égale à U+10000, deux unités de code sont nécessaires par point de code. Ces paires d'unités de code sont désignées par un terme unique en codage
UTF-16 : "paires de substitution Unicode".
Remarque
La prise en charge des paires de substitution est abordée ci-dessous.
● UTF-32
L'unité de code 32 bits utilisée dans le codage UTF-32 est suffisamment volumineuse pour que chaque point de code soit codé avec une seule unité de code.
● GB18030
Le codage GB18030 comporte souvent plusieurs unités de code par point de code, car les unités de code sont plus petites. Les points de code sont mis en correspondance avec une, deux ou quatre unités de code.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
229
Prise en charge des paires de substitution Unicode
Certains scripts pris en charge par le standard Unicode contiennent des caractères dont les points de code ont une valeur scalaire supérieure ou égale à U+10000. Dans le codage UTF-16, ces points de code sont codés à l'aide de paires de substitution.
Il est important que les paires de substitution Unicode soient manipulées correctement. Par exemple, lorsque vous travaillez sur un texte dans une application utilisant le codage UTF-16, le curseur doit se déplacer sur chaque point de code comme s'il s'agissait d'un caractère texte unique lors de l'ajout, de la suppression ou de la sélection de caractères à couper, copier ou coller.
1.4.6.2.2.3 Prise en charge de GB18030 via Unicode par
SAP Crystal Reports
SAP Crystal Reports, version développeur pour Microsoft Visual Studio</nom_produit> ne prend pas directement en charge le codage GB18030. Il accède au standard GB18030 par le biais de valeurs qui ont déjà été converties dans l'un des formats de codage Unicode.
Les conversions sont effectuées par différentes sources, notamment le .NET Framework, certains pilotes de bases de données et le système d'exploitation Windows. Le texte est généralement stocké sur le disque dur au format UTF-8, puis chargé en mémoire au format UTF-16. SAP Crystal Reports prend en charge les paires de substitution Unicode en UTF-16.
Exemples de prise en charge du format GB18030 via Unicode
Les principaux cas de figure de prise en charge du format GB18030 via la conversion en Unicode sont les suivants :
● Bases de données contenant des données codées en GB18030
Les données codées en GB18030 sont prises en charge uniquement lorsque le pilote de la base de données convertit les données en UTF-16 au moment de leur extraction.
Remarque
Microsoft SQL Server 2005 convertit les données GB18030 en UTF-16 au moment de leur extraction. Pour les autres serveurs, consultez le fournisseur de votre base de données.
● DataSets exposant les données issues d'une source GB18030
Quelle que soit la source d'origine, les DataSets sont formatés en XML, lequel est encodé en UTF-8.
● Services Web qui exposent des données issues d'une source GB18030
Le texte envoyé ou reçu via un service Web est déjà converti en Unicode.
230
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Scénarios GB18030 non pris en charge
SAP Crystal Reports ne permet pas d'accéder aux fichiers texte codés au format GB18030, ni de les importer.
Le fichier texte codé au format GB18030 doit d'abord être converti au format Unicode par un tiers afin que
SAP Crystal Reports puisse ensuite interagir avec le fichier texte codé au format Unicode.
1.4.6.3 Gestion des événements Error
Dans les précédentes versions de SAP Crystal Reports, version développeur pour Microsoft Visual Studio, chaque fois que vous utilisiez le contrôle CrystalReportViewer, vous deviez intercepter toutes les éventuelles exceptions renvoyées. Toute exception non interceptée interrompait le traitement des pages et générait un message d'erreur.
Afin d'éviter les interruptions et les erreurs, un nouvel événement à été ajouté au contrôle
CrystalReportViewer : l'événement Error. Lorsque cet événement est utilisé, des messages d'exception s'affichent au début du contrôle CrystalReportViewer sans entraîner d'interruption.
1.4.6.3.1 Pour supprimer la page d'erreur à l'aide de la méthode d'événement Error
Contexte
Pour supprimer l'exception renvoyée, vous devez appeler la méthode d'événement Error et définir
ErrorEventArgs.Handled sur True dans le gestionnaire d'événements.
Procédure
1. Ajoutez la méthode d'événement Error à votre classe code-behind.
2. Définissez ErrorEventArgs.Handled sur True dans le gestionnaire d'événements.
Exemple
Sub myCrystalReportViewer_Error(ByVal source As Object, ByVal e As
CrystalDecisions.Web.ErrorEventArgs)
e.Handled = True
End Sub void crystalReportViewer_Error(object source,
CrystalDecisions.Web.ErrorEventArgs e)
{
e.Handled = true;
}
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
231
1.4.6.4 Personnalisation du contrôle CrystalReportViewer avec la CSS
L'apparence visuelle du contrôle CrystalReportViewer est créée grâce à des graphiques et des feuilles de style en cascade (CSS).
La feuille de style, nommée default.css, est stockée dans un sous-répertoire du répertoire virtuel du visualiseur nommé css.
Remarque
Dans Visual Studio 2005 et versions ultérieures (ainsi que dans ASP.NET version 2.0), l'aspect des contrôles visuels peut être géré par un nouvel outil appelé Thèmes. Les thèmes peuvent être appliqués au contrôle
CrystalReportViewer afin de garantir la cohérence de l'aspect des contrôles au sein d'une même page ou dans l'intégralité d'un site Web.
Informations associées
Personnalisation du contrôle CrystalReportViewer avec Thèmes [page 233]
Boîte de dialogue Définir la classe CSS [page 925]
Mise en forme de rapports à l'aide de feuilles de style en cascade [page 719]
1.4.6.4.1 Personnalisation de la CSS pour le contrôle
CrystalReportViewer
Contexte
Cette feuille de style est accessible via la propriété CssFileName du contrôle CrystalReportViewer et peut
être visualisée dans la fenêtre Propriétés lorsque leCrystalReportViewer contrôle est sélectionné en mode
Design.
Procédure
1. Créez un site Web contenant un contrôle CrystalReportViewer et un rapport Crystal.
2. Compilez et exécutez le projet au moins une fois pour visualiser le contrôle CrystalReportViewer avec ses paramètres de style par défaut, puis quittez le mode débogage.
232
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
3. Ouvrez la page Default.aspx en mode Design.
4. Cliquez une fois sur le contrôle
CrystalReportViewer
pour le sélectionner.
5. Dans la fenêtre Propriétés, localisez le chemin d'accès au répertoire du fichier default.css dans la propriété
CssFileName
.
6. Dans l'Explorateur Windows, localisez ce fichier et copiez-le dans le répertoire de votre site Web.
7. Renommez le fichier en custom.css.
8. Modifiez la propriété
CssFileName
de sorte qu'elle pointe sur le répertoire du site Web et sur le fichier custom.css.
9. Recompilez votre projet et assurez-vous que le contrôle
CrystalReportViewer
voit le fichier custom.css dans le répertoire de votre site Web local.
10. Quittez le mode débogage.
11. Ouvrez le fichier custom.css, puis modifiez la feuille de style.
12. Recompilez le projet et vérifiez que vos modifications ont été appliquées au contrôle
CrystalReportViewer
.
1.4.6.5 Personnalisation du contrôle CrystalReportViewer avec Thèmes
Thèmes est un outil qui permet de donner un aspect et une convivialité identique à tous les contrôles visuels d'une page (ou de tout un site Web).
Pour gérer l'aspect des contrôles visuels au niveau de la page, affectez le nom d'un thème à la propriété Theme d'un contrôle visuel. Ce thème sera alors appliqué à tous les contrôles visuels de la page.
Le contrôle CrystalReportViewer est compatible avec les thèmes ASP.NET 2.0. Toute modification apportée à un thème est répercutée sur le contrôle CrystalReportViewer ainsi que sur tous les autres contrôles de la page.
Pour en savoir plus sur la configuration et la personnalisation des thèmes dans ASP.NET 2.0, voir la documentation de .NET Framework version 2.0.
Informations associées
Personnalisation du contrôle CrystalReportViewer avec la CSS [page 232]
1.4.6.6 Personnalisation de la barre d'outils
CrystalReportViewer
La barre d'outils CrystalReportViewer contient des boutons contrôlant les fonctions courantes du contrôle
CrystalReportViewer, telles que l'impression, l'exportation ou le changement de la page en cours d'affichage.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
233
Personnalisation des boutons de la barre d'outils
La barre d'outils CrystalReportViewer contient des boutons contrôlant les fonctions courantes du contrôle
CrystalReportViewer, telles que l'impression, l'exportation ou le changement de la page en cours d'affichage.
La visibilité de chaque bouton sur le contrôle CrystalReportViewer est contrôlée via une propriété correspondante de la classe CrystalReportViewer. Les noms des propriétés diffèrent entre les versions Windows et Web du contrôle CrystalReportViewer.
Sur un site Web, l'apparence de la barre d'outils peut être contrôlée via la CSS ou via Thèmes ASP .Net. Vous pouvez modifier l'apparence des icônes de boutons par défaut en modifiant les images dans le répertoire virtuel du visualiseur.
Suppression de la barre d'outils
Vous pouvez supprimer la barre d'outils du contrôle CrystalReportViewer par programmation ou via le panneau
Tâches guidées. Vous pouvez créer des contrôles personnalisés pour répliquer le comportement de nombreux boutons de la barre d'outils CrystalReportViewer.
Informations associées
Personnalisation du contrôle CrystalReportViewer avec la CSS [page 232]
Personnalisation du contrôle CrystalReportViewer avec Thèmes [page 233]
Répertoire des visualiseurs [page 14]
1.4.6.6.1 Contrôle des boutons apparaissant sur la barre d'outils CrystalReportViewer
Chacun des boutons de la barre d'outils CrystalReportViewer peut être activé ou désactivé individuellement.
La visibilité de chaque bouton sur le contrôle CrystalReportViewer est contrôlée via une propriété correspondante de la classe CrystalReportViewer. Il existe deux contrôles CrystalReportViewer dans le SDK
SAP Crystal Reports .NET. Pour un site Web, utilisez la classe
CrystalDecisions.Web.CrystalReportViewer. Pour une application Windows, utilisez la classe
CrystalDecisions.Windows.Forms.CrystalReportViewer.
Le nom de la propriété qui contrôle la visibilité d'un bouton de la barre d'outils diffère selon la version du contrôle
CrystalReportViewer que vous utilisez. Pour la classe CrystalDecisions.Web.CrystalReportViewer, chaque propriété commence par “Has”, comme HasExportButton, HasPrintButton ou HasSearchButton.
En ce qui concerne la classe CrystalDecisions.Windows.Forms.CrystalReportViewer, chaque propriété commence par “Show”, comme ShowExportButton, ShowPrintButton ou ShowSearchButton.
234
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Pour en savoir plus sur la classe CrystalDecisions.Web.CrystalReportViewer ou la classe
CrystalDecisions.Windows.Forms.CrystalReportViewer, voir la Référence de l'API .NET
SAP Crystal Reports.
Remarque
La suppression d'un bouton de la barre d'outils ne désactive pas le comportement correspondant.
Exemple
Cet exemple montre comment supprimer plusieurs boutons de la barre d'outils CrystalReportViewer dans un site Web.
Private Sub ConfigureCrystalReports()
CrystalReportViewer1.HasPrintButton = False
CrystalReportViewer1.HasExportButton = False
CrystalReportViewer1.HasSearchButton = False
End Sub private void ConfigureCrystalReports()
{
InitializeComponent();
crystalReportViewer1.HasPrintButton = false;
crystalReportViewer1.HasExportButton = false;
crystalReportViewer1.HasSearchButton = false;
}
Informations associées
Suppression du bouton d'impression depuis le contrôle CrystalReportViewer [page 114]
Suppression du bouton d'exportation depuis le contrôle CrystalReportViewer [page 126]
1.4.6.6.2 Suppression de la barre d'outils
CrystalReportViewer
Contexte
Conseil
La barre d'outils peut être supprimée de votre application par programmation ou en décochant la case
Afficher la barre d'outils
dans le panneau Tâches guidées des
Tâches CrystalReportViewer
.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
235
Procédure
1. Ajoutez un contrôle CrystalReportViewer à votre application.
2. Définissez la propriété CrystalReportViewer.DisplayToolbar sur False.
Résultats
Lorsque vous exécuterez votre application, la barre d'outils ne devrait plus apparaître sur le contrôle
CrystalReportViewer.
Exemple
Private Sub ConfigureCrystalReports()
CrystalReportViewer1.DisplayToolbar = False
End Sub private void ConfigureCrystalReports()
{
InitializeComponent();
crystalReportViewer1.DisplayToolbar = false;
}
1.4.6.6.3 Modification des boutons de la barre d'outils par défaut dans le visualiseur Web
Contexte
La barre d'outils CrystalReportViewer se compose de différents graphiques qui représentent la plupart des propriétés disponibles. Les graphiques sont stockés dans le répertoire virtuel du visualiseur de votre version de
SAP Crystal Reports, version développeur pour Microsoft Visual Studio.
Pour un site Web, la barre d'outils utilise des graphiques qui représentent les propriétés suivantes :
● Arborescence des groupes
● Exporter
● Imprimer
● Explorer en amont
● Navigation : première page, dernière page, page précédente et page suivante
● Aller à la page
● Rechercher
● Logo SAP BusinessObjects
Il est possible de remplacer ces boutons par votre propre jeu d'icônes personnalisées.
236
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Procédure
1. Naviguez jusqu'au répertoire virtuel du visualiseur.
2. Cliquez deux fois sur le dossier images.
3. Cliquez deux fois sur le dossier toolbar.
Dans le dossier "toolbar", vous trouverez toutes les images utilisées pour la barre d'outils
CrystalReportViewer.
4. Remplacez les images par d'autres images de votre choix ou ouvrez les images dans un éditeur de graphiques pour les modifier. Le nom de l'image doit toutefois rester le même.
Résultats
Les images de la barre d'outils CrystalReportViewer sont remplacées pour toutes les applications Web utilisant le répertoire virtuel du visualiseur.
Informations associées
Répertoire des visualiseurs [page 14]
1.4.7 Utilisation des rapports SAP Crystal Reports Read-Only
(RPTR)
Les rapports SAP Crystal Reports Read-Only (RPTR) sont des rapports Crystal qui peuvent être visualisés avec des applications de visualiseur de rapport, mais qui ne peuvent pas être modifiés avec le SDK ni ouverts par des applications de concepteur de rapports. Cela vous permet de protéger votre propriété intellectuelle en empêchant les utilisateurs de modifier le rapport ou d'obtenir les informations en lien avec votre logique métier stockées dans la définition du rapport.
Les rapports au format SAP Crystal Reports Read-Only utilisent l'extension de fichier RPTR à la place de l'extension de fichier RPT utilisée par les rapports Crystal. Vous pouvez créer un rapport RPTR en exportant un rapport RPT au format RPTR. Cependant, la conversion d'un rapport RPTR en rapport RPT n'est pas prise en charge.
La définition d'un rapport RPTR ne pouvant pas être modifiée, il n'est pas possible d'utiliser ce SDK pour définir l'emplacement de la source de données d'un rapport RPTR via le contrôleur de base de données. Il est en revanche possible d'actualiser les données d'un rapport RPTR au moment de l'exécution.
Vous pouvez utiliser ce SDK pour exécuter les tâches suivantes :
● Créer un rapport RPTR en exportant un rapport Crystal (RPT) au format RPTR.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
237
Remarque
Seuls les rapports créés par SAP Crystal Reports 2011 peuvent être exportés au format RPTR.
● Afficher un rapport RPTR en obtenant la source du rapport et en la transmettant au visualiseur.
● Actualiser les données d'un rapport RPTR au moment de l'exécution.
● Ouvrir un rapport RPTR et l'exporter sous d'autres formats que RPT.
Vous ne pouvez en revanche pas utiliser ce SDK pour exécuter les tâches suivantes :
● Modifier la définition du rapport d'un rapport RPTR.
● Définir l'emplacement de la source de données du rapport.
● Extraire les informations relatives à la définition d'un rapport RPTR, notamment les formules, les champs, les sections et les objets du rapport.
● Exporter un rapport RPTR au format RPT.
● Ajouter un rapport RPTR en tant que sous-rapport d'un rapport RPT.
1.5 Tutoriels
1.5.1 Tutoriels du modèle d'objet CrystalReportViewer
Les tutoriels présentés dans cette section utilisent des méthodes et des propriétés de la classe
CrystalReportViewer et les classes de l'espace de noms CrystalDecisions.Shared.
Les tutoriels présentés dans cette section utilisent des méthodes et des propriétés de la classe
CrystalReportViewer et les classes de l'espace de noms CrystalDecisions.Shared.
1.5.1.1 Tutoriel : Connexion à une base de données SQL
Server sécurisée
Dans ce tutoriel, vous allez apprendre à ajouter un code de connexion afin d'afficher un rapport contenant des informations provenant d'une base de données SQL Server sécurisée.
Introduction
Lorsque vous utilisez le modèle d'objet CrystalReportViewer pour vous connecter à une base de données SQL
Server sécurisée, vous devez utiliser les classes de l'espace de noms CrystalDecisions.Shared.
Les propriétés de la classe ConnectionInfo permettent la connexion au serveur de base de données ou aux sources de données ODBC. Dans ce tutoriel, vous allez définir les propriétés ServerName, DatabaseName, UserID et Password. Si vous définissez uniquement les propriétés DatabaseName, UserID et Password, vous êtes connecté au serveur par défaut de la base de données spécifiée dans le rapport. Toutefois, si vous affectez une autre propriété ServerName, vous pouvez rediriger le rapport vers un serveur différent au moment de l'exécution.
238
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Vous extrayez l'instance TableLogOnInfos de la propriété LogOnInfo du contrôle CrystalReportViewer. Vous affectez ensuite l'instance ConnectionInfo à chaque objet TableLogOnInfo de l'instance TableLogOnInfos.
Le code de connexion de ce tutoriel s'applique également aux sous-rapports insérés dans le rapport principal.
Pour le modèle d'objet ReportDocument, vous devez modifier le code pour l'adapter aux sous-rapports (voir
Tutoriel : Connexion à une base de données SQL Server sécurisée avec un sous-rapport [page 371] ).
Pour créer ce tutoriel à l'aide du modèle d'objet ReportDocument, voir
Tutoriel : Connexion à une base de données
modèle d'objet ReportDocument plutôt que le modèle d'objet CrystalReportViewer.
Exemple de code
Chaque tutoriel fournit des exemples de code Visual Basic et C# qui illustrent la version terminée du projet. Suivez les instructions de ce tutoriel pour créer un projet ou ouvrez le projet d'exemple de code pour travailler à partir d'une version terminée.
Les exemples de code sont stockés dans des dossiers classés par langue et par type de projet. Les noms des dossiers de chaque version d'exemple de code sont les suivants :
● Site Web C# : CS_Web_CRVObjMod_DBLogon
● Projet Windows C# : CS_Win_CRVObjMod_DBLogon
● Site Web Visual Basic : VB_Web_CRVObjMod_DBLogon
● Projet Windows Visual Basic : VB_Win_CRVObjMod_DBLogon
Informations associées
Choisir le modèle d'objet correct pour votre projet [page 32]
Répertoire d'exemples de rapports [page 15]
1.5.1.1.1 Création d'un rapport connecté à une base de données SQL Server sécurisée
Prérequis
● Configuration de SQL Server :
○ Si vous disposez de SQL Server (ou de la version OEM, MSDE), il doit être configuré de manière à exiger une authentification SQL Server.
○ Si vous ne disposez pas de SQL Server (ou de la version OEM, MSDE), vous devez installer MSDE en attribuant à l'authentification SQL Server la valeur True.
● La base de données Northwind fournie avec SQL Server doit être installée et vous devez vérifier que l'authentification SQL Server est bien requise.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
239
● Vous devez créer un compte à accès limité qui sera utilisé au sein du site Web.
Contexte
Après avoir configuré SQL Server et la base de données Northwind conformément aux instructions des sections ci-dessus, vous êtes prêt à créer un rapport dont les informations proviennent, de façon sécurisée, de la base de données Northwind.
Remarque
de code spécifique nécessaire à cette procédure. Il est impossible de suivre cette procédure sans cette configuration.
Procédure
1. Dans l'
Explorateur de solutions
, cliquez avec le bouton droit de la souris sur le nom du projet affiché en gras, pointez sur
Ajouter
, puis cliquez sur
Nouvel élément
.
2. Dans la boîte de dialogue
Ajouter un nouvel élément
, dans la vue
Modèles
, sélectionnez le modèle
Rapport
Crystal
.
3. Dans le champ
Nom
, saisissez le nom "NorthwindCustomers.rpt", puis cliquez sur
Ouvrir
.
4. Dans le panneau
Créer un document de rapport Crystal
de la boîte de dialogue
Galerie de rapports Crystal
, sélectionnez
en utilisant l' Assistant de création de rapports
.
5. Dans le panneau
Choisir un expert
, sélectionnez
Standard
, puis cliquez sur
OK
.
La fenêtre Assistant de création de rapports standard s'affiche.
6. Dans le panneau
Sources de données disponibles
, développez le dossier
Créer une nouvelle connexion
.
7. Dans le sous-dossier qui s'ouvre, développez le dossier
OLE DB (ADO)
.
La fenêtre OLE DB (ADO) s'affiche.
8. Sélectionnez
Microsoft OLE DB Provider for SQL Server
, puis cliquez sur
Suivant
.
9. Saisissez les valeurs correspondant à votre serveur de base de données, l'ID utilisateur et le mot de passe dans les champs
Serveur
,
ID utilisateur
et
Mot de passe
.
10. Dans la liste déroulante
Base de données
, sélectionnez "Northwind".
Laissez la case à cocher Sécurité intégrée désactivée, car vous utilisez l'authentification SQL Server au lieu de l'authentification NT.
11. Cliquez sur
Terminer
.
Le dossier OLE DB est maintenant développé, affichant votre serveur de base de données et, à l'intérieur de celui-ci, la base de données Northwind.
12. Développez les nœuds
Northwind
,
dbo
et
Tables
, puis sélectionnez la table
Customers
.
13. Cliquez sur le bouton
>
pour déplacer la table dans le panneau
Tables sélectionnées
, puis cliquez sur
Suivant
.
240
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
14. Développez la table
Customers
, maintenez la touche Ctrl enfoncée et cliquez sur
CompanyName
,
ContactName
et
City
.
15. Cliquez sur le bouton
>
pour déplacer ces champs dans le panneau
Champs à afficher
, puis cliquez sur
Suivant
.
16. Dans le panneau
Champs disponibles
, sous
Champs du rapport
, sélectionnez
Customer.City
, cliquez sur le bouton
>
pour déplacer le champ dans le panneau
Regrouper par
, puis cliquez sur
Terminer
.
Le rapport NorthwindCustomers est créé et chargé dans la fenêtre principale de Visual Studio.
1.5.1.1.2 Liaison du rapport sans code de connexion
Durant la procédure Configuration d'un projet [page 15]
, vous avez placé un contrôle CrystalReportViewer dans un Web Form ou un Windows Form. Lors de l'étape précédente, vous avez ajouté un rapport NorthwindCustomers au projet.
Dans cette section, vous allez lier le chemin d'accès au répertoire du rapport NorthwindCustomers au contrôle
CrystalReportViewer. Vous allez ensuite vérifier si le rapport s'affiche correctement lorsque le code de connexion
à la base de données n'a pas été défini.
1.5.1.1.2.1 Pour lier le chemin d'accès au répertoire du rapport NorthwindCustomers au contrôle
CrystalReportViewer.
Procédure
1. Ouvrez le Web Form ou Windows Form.
2. Dans le menu
Affichage
, cliquez sur
Code
.
3. Localisez la méthode ConfigureCrystalReports() (que vous avez créée dans la section
Configuration d'un projet [page 15]
).
4. Déclarez une variable chaîne, nommez-la reportPath et affectez-lui un chemin d'accès au rapport local au moment de l'exécution. Ce chemin est déterminé différemment selon qu'il s'agit d'un site Web ou d'un projet
Windows :
○ Pour un site Web, transmettez le nom du fichier de rapport local sous forme de paramètre de type chaîne dans la méthode Server.MapPath(). Ceci permet d'associer le rapport local au chemin d'accès du répertoire de fichiers du disque dur au moment de l'exécution.
Dim reportPath As String = Server.MapPath("NorthwindCustomers.rpt") string reportPath = Server.MapPath("NorthwindCustomers.rpt");
○ Pour un projet Windows, concaténez la propriété Application.StartupPath avec une barre oblique inverse et le nom du fichier de rapport local. Ceci permet d'associer le rapport au même répertoire que celui du fichier exécutable Windows.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
241
Remarque
Au moment de la compilation, vous copierez le rapport dans le répertoire contenant le fichier exécutable.
Dim reportPath As String = Application.StartupPath & "\" &
"NorthwindCustomers.rpt" string reportPath = Application.StartupPath + "\\" + "NorthwindCustomers.rpt";
5. Affectez le chemin d'accès au répertoire du fichier du rapport NorthwindCustomers à la propriété
ReportSource du contrôle CrystalReportViewer.
myCrystalReportViewer.ReportSource = reportPath crystalReportViewer.ReportSource = reportPath;
1.5.1.1.2.2 Pour tester le chargement du rapport
NorthwindCustomers
Contexte
Vous êtes maintenant prêt à générer et exécuter votre projet. Dans la mesure où le code permettant de se connecter à la base de données n'a pas encore été écrit, le chargement du rapport doit échouer.
Procédure
1. Dans le menu
Générer
, sélectionnez
Générer la solution
.
2. Si vous rencontrez des erreurs lors de la génération, corrigez-les.
3. Si vous utilisez un rapport non incorporé dans un projet Windows, recherchez l'exécutable Windows compilé dans le sous-répertoire \bin\debug\, puis copiez le rapport dans ce sous-répertoire.
Remarque
Pour que le rapport non incorporé soit chargé par l'exécutable Windows au moment de l'exécution, le rapport doit être stocké dans le même répertoire que l'exécutable Windows.
4. Dans le menu
Déboguer
, cliquez sur
Démarrer
.
Le rapport NorthwindCustomers ne s'affiche pas. Il s'affiche après que vous avez ajouté le code de connexion
à la base de données.
Remarque
Les résultats peuvent varier selon la version de SAP Crystal Reports utilisée. Par exemple, si vous utilisez
SAP Crystal Reports 10 ou une version ultérieure, vous êtes invité à saisir les informations de connexion à
242
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
la base de données pour le rapport. Si vous exécutez une version antérieure de SAP Crystal Reports, une exception est renvoyée. Dans les deux cas, vous devez effectuer la procédure suivante pour créer une application entièrement fonctionnelle.
5. Revenez dans Visual Studio, puis cliquez sur
Arrêter
pour quitter le mode débogage.
1.5.1.1.3 Ajout du code de connexion au rapport
Vous êtes maintenant prêt à ajouter le code de connexion à la classe code-behind. Vous commencez par créer une méthode d'assistance privée nommée SetDBLogonForReport().
1.5.1.1.3.1 Pour créer et coder la méthode
SetDBLogonForReport()
Procédure
1. Revenez à la classe code-behind de ce Web Form ou Windows Form.
2. Dans la partie inférieure de la classe, créez une méthode privée nommée SetDBLogonForReport() avec la variable ConnectionInfo dans la signature de la méthode.
Private Sub SetDBLogonForReport(ByVal myConnectionInfo As ConnectionInfo)
End Sub private void SetDBLogonForReport(ConnectionInfo connectionInfo)
{
}
3. Dans cette méthode, extrayez l'instance TableLogOnInfos de la propriété LogOnInfo de la classe
CrystalReportViewer.
Remarque
TableLogOnInfos est une classe indexée contenant des instances de la classe TableLogOnInfo.
Dim myTableLogOnInfos As TableLogOnInfos = myCrystalReportViewer.LogOnInfo
TableLogOnInfos tableLogOnInfos = crystalReportViewer.LogOnInfo;
4. Créez une boucle foreach qui effectue une boucle sur chaque instance TableLogOnInfode l'instance de classe indexée TableLogOnInfos.
For Each myTableLogOnInfo As TableLogOnInfo In myTableLogOnInfos
Next foreach(TableLogOnInfo tableLogOnInfo in tableLogOnInfos)
{
}
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
243
5. Dans la boucle foreach, affectez à la propriété ConnectionInfo de TableLogOnInfo le paramètre
ConnectionInfo.
myTableLogOnInfo.ConnectionInfo = myConnectionInfo tableLogOnInfo.ConnectionInfo = connectionInfo;
1.5.1.1.3.2 Pour modifier la méthode
ConfigureCrystalReports() selon le code de connexion à la base de données
Contexte
Cette procédure a créé une méthode permettant de définir les informations de connexion à la base de données.
Toutefois, vous devez modifier la méthode ConfigureCrystalReports() pour désigner cette méthode afin que le rapport sache qu'il dispose des informations de connexion à la base de données.
La modification de la méthode ConfigureCrystalReports() se déroule en deux étapes :
● Configurer l'instance ConnectionInfo.
● Appeler la méthode SetDBLogonForReport().
Procédure
1. Dans la méthode ConfigureCrystalReports(), déclarez et instanciez la classe ConnectionInfo endessous du code qui lie le rapport au contrôle CrystalReportViewer.
Dim myConnectionInfo As ConnectionInfo = New ConnectionInfo()
ConnectionInfo connectionInfo = new ConnectionInfo();
2. Sur la ligne suivante, appelez la méthode SetDBLogonForReport() en transmettant l'instance
ConnectionInfo.
SetDBLogonForReport(myConnectionInfo)
SetDBLogonForReport(connectionInfo);
3. Définissez les propriétés DatabaseName, UserIDet Password de l'instance ConnectionInfo.
Remarque
Pour des raisons de sécurité, il est important que vous utilisiez un compte de base de données à accès limité.
244
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Dans votre propre code, remplacez l'exemple de mot de passe 1234 (indiqué ci-dessous) par votre propre mot de passe.
myConnectionInfo.DatabaseName = "Northwind" myConnectionInfo.UserID = "limitedPermissionAccount" myConnectionInfo.Password = "1234" connectionInfo.DatabaseName = "Northwind"; connectionInfo.UserID = "limitedPermissionAccount"; connectionInfo.Password = "1234";
1.5.1.1.3.3 Pour tester le chargement du rapport
NorthwindCustomers
Contexte
Vous êtes maintenant prêt à générer et exécuter votre projet. Le rapport doit se charger correctement, car vous avez ajouté le code de connexion à la base de données.
Procédure
1. Dans le menu Générer, sélectionnez
Générer la solution
.
2. Si vous rencontrez des erreurs lors de la génération, corrigez-les.
3. Dans le menu
Déboguer
, cliquez sur
Démarrer
.
Le rapport NorthwindCustomers s'affiche correctement.
4. Revenez dans Visual Studio, puis cliquez sur
Arrêter
pour quitter le mode débogage.
1.5.1.1.4 Ajout de la possibilité de modifier l'emplacement de la base de données au moment de l'exécution
Dans cette section, vous allez apprendre à modifier l'emplacement de la base de données au moment de l'exécution. Cette opération nécessite simplement une légère modification de l'instance ConnectionInfo.
Remarque
Dans ce tutoriel, vous allez changer le nom du serveur de base de données, et non le nom de la base de données. Il est impossible de changer le nom de la base de données avec le contrôle CrystalReportViewer.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
245
1.5.1.1.4.1 Pour modifier l'emplacement de la base de données au moment de l'exécution
Procédure
1. Dans la méthode ConfigureCrystalReports(), créez plusieurs sauts de ligne dans le code après la ligne qui appelle la méthode SetDBLogonForReport().
2. Dans les sauts de ligne, définissez la propriété ServerName de l'instance ConnectionInfo.
Remarque
Dans le code que vous écrivez, remplacez l'exemple de nom de serveur DevDatabaseServer (indiqué cidessous) par votre propre nom de serveur.
myConnectionInfo.ServerName = "DevDatabaseServer" connectionInfo.ServerName = "DevDatabaseServer";
1.5.1.1.4.2 Pour vérifier si un autre serveur de base de données peut être redéfini pour le rapport au moment de l'exécution
Contexte
Vous êtes maintenant prêt à générer et exécuter votre projet. Le rapport devrait se rediriger vers l'autre serveur de base de données au moment de l'exécution.
Procédure
1. Dans le menu Générer, sélectionnez
Générer la solution
.
2. Si vous rencontrez des erreurs lors de la génération, corrigez-les.
3. Dans le menu
Déboguer
, cliquez sur
Démarrer
.
Le rapport NorthwindCustomers s'affiche correctement.
4. Revenez dans Visual Studio, puis cliquez sur
Arrêter
pour quitter le mode débogage.
246
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.5.1.2 Tutoriel : Lecture et définition des paramètres discrets
Dans ce tutoriel, vous allez apprendre à créer un rapport dont les données peuvent être filtrées en fonction d'un paramètre discret.
Introduction
Un paramètre discret est une valeur unique alors qu'un paramètre de plage fait référence à une plage de valeurs.
Les éléments textuels (tels que les villes) sont généralement accessibles via des paramètres discrets. Les
éléments numériques (tels que les salaires des employés) sont généralement accessibles via des paramètres de plage.
Dans ce tutoriel, vous allez définir une valeur de paramètre discret afin d'afficher un rapport sur les clients basé sur un champ. Ce rapport affiche uniquement les clients vivant dans les villes sélectionnées dans une liste de villes. Cette liste provient des valeurs par défaut du paramètre Ville. Les valeurs par défaut du paramètre Ville sont encapsulées dans le rapport.
Créez tout d'abord un rapport sur les clients avec un paramètre de ville. Les données du rapport proviennent de l'exemple de base de données fourni avec SAP Crystal Reports, version développeur pour Microsoft Visual Studio.
Lorsque vous instanciez le rapport dans le code, vous créez une instance ArrayList contenant des noms de ville
(Paris, Tokyo), puis transmettez cette instance à une méthode d'assistance qui définit ces noms de ville comme les valeurs actuelles du paramètre Ville. Vous liez ensuite le rapport au contrôle CrystalReportViewer et seuls les clients vivant à Paris ou à Tokyo sont affichés dans ce rapport.
Dans la partie suivante du tutoriel, vous allez effectuer les opérations suivantes :
● Créer une méthode qui extrait toutes les valeurs par défaut et les renvoie dans une instance ArrayList.
● Ajouter un contrôle ListBox au formulaire et le remplir avec les valeurs provenant de l'ArrayList.
● Ajouter un contrôle Button pour réafficher le rapport en fonction des sélections ListBox.
Dans la dernière partie du tutoriel, vous coderez l'événement de clic pour extraire les éléments sélectionnés à partir du contrôle ListBox et définir les valeurs actuelles du paramètre Ville. Le rapport est réaffiché, indiquant uniquement les clients qui vivent dans les villes sélectionnées dans le contrôle ListBox.
Exemple de code
Ce tutoriel fournit des exemples de code Visual Basic et C# qui illustrent la version terminée du projet. Suivez les instructions de ce tutoriel pour créer un projet ou ouvrez le projet d'exemple de code pour travailler à partir d'une version terminée.
Les exemples de code sont stockés dans des dossiers classés par langue et par type de projet. Les noms des dossiers de chaque version d'exemple de code sont les suivants :
● Site Web C# : CS_Web_CRVObjMod_Parameters
● Projet Windows C# : CS_Win_CRVObjMod_Parameters
● Site Web Visual Basic : VB_Web_CRVObjMod_Parameters
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
247
● Projet Windows Visual Basic : VB_Win_CRVObjMod_Parameters
Base de données Xtreme
La base de données Xtreme est utilisée par certains tutoriels. Elle figure dans le package d'exemples de code qui peut être téléchargé à l'adresse suivante : http://www.sdn.sap.com/irj/boc/sdklibrary . Vous devez créer manuellement une connexion ODBC à la base de données.
Informations associées
Répertoire d'exemples de rapports [page 15]
1.5.1.2.1 Création d'un rapport avec des paramètres
Commencez par créer un rapport à partir des informations de la base de données Xtreme.
1.5.1.2.1.1 Pour créer un rapport avec des paramètres
Procédure
1. Dans l'
Explorateur de solutions
, cliquez avec le bouton droit de la souris sur le nom du projet affiché en gras, pointez sur
Ajouter
, puis cliquez sur
Nouvel élément
.
2. Dans la boîte de dialogue
Ajouter un nouvel élément
, dans la vue
Modèles
, sélectionnez le modèle
Rapport
Crystal
.
3. Dans le champ
Nom
, saisissez le nom
CustomersByCity.rpt
, puis cliquez sur
Ajouter
.
4. Dans le panneau
Créer un document de rapport Crystal
de la boîte de dialogue
Galerie de rapports Crystal
, sélectionnez
en utilisant l' Assistant de création de rapports
.
5. Dans le panneau
Choisir un expert
, sélectionnez
Standard
, puis cliquez sur
OK
.
6. Dans le panneau
Sources de données disponibles
de la fenêtre Assistant de création de rapports standard, développez le dossier
Créer une nouvelle connexion
.
7. Dans le sous-dossier qui s'ouvre, développez le dossier
ODBC (RDO)
.
8. Dans la fenêtre ODBC (RDO), sélectionnez l'entrée DSN ODBC correspondant à la base de données Xtreme, puis cliquez sur
Terminer
.
9. Développez le nœud
Tables
, cliquez deux fois sur la table
Clients
pour la déplacer dans le panneau
Tables sélectionnées
, puis cliquez sur
Suivant
.
10. Développez la table
Clients
, puis utilisez la combinaison de touches CTRL-clic pour sélectionner les champs
Nom du client
,
Titre
,
Adresse 1
,
Nom du contact
et
Ville
.
248
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
11. Cliquez sur le bouton
>
pour déplacer ces champs dans le panneau
Champs à afficher
, puis cliquez sur le bouton
Suivant
.
12. Dans le panneau
Champs disponibles
, sous
Champs du rapport
, cliquez deux fois sur
Clients.Ville
pour déplacer le champ dans le panneau
Regrouper par
, puis cliquez sur
Terminer
.
Le rapport CustomersByCity est créé et chargé dans la fenêtre principale de Visual Studio.
1.5.1.2.1.2 Pour ajouter un paramètre Ville
Contexte
Vous êtes maintenant prêt à ajouter un paramètre appelé Ville et à le remplir avec des valeurs par défaut.
L'
Explorateur de champs
doit être visible, car il permet d'accéder à plusieurs fonctions du rapport, notamment aux paramètres. Pour rendre l'
Explorateur de champs
visible, dans le menu
Crystal Reports
, cliquez sur
Explorateur de champs
.
Procédure
1. Si l'
Explorateur de champs
n'est pas visible, cliquez sur
Activer/Désactiver l'affichage du champ
dans la barre d'outils Crystal Reports.
Conseil
Vous pouvez également afficher l'
Explorateur de champs
en ouvrant le menu
Crystal Reports
, puis en cliquant sur
Explorateur de champs
.
2. Dans l'
Explorateur de champs
, cliquez avec le bouton droit de la souris sur
Champs de paramètre
, puis sélectionnez
Nouveau
.
3. Dans la boîte de dialogue
Créer un champ de paramètre
: a. Attribuez à
Nom
la valeur
Ville
.
b. Attribuez à
Type
la valeur
Chaîne
. Attribuez à
Texte de l'invite
la valeur
Sélectionnez une ou plusieurs villes
.
c. Attribuez à
Champ de valeur
la valeur
Ville
.
d. Cliquez sur
Actions
, puis sélectionnez
Ajouter toutes les valeurs de la base de données
. La liste complète des villes apparaît dans le volet du milieu.
e. Dans le volet
Options de valeur
, attribuez à
Texte de l'invite
la valeur
Sélectionnez une ou plusieurs villes
.
f.
Dans ce même volet, attribuez à
Autoriser plusieurs valeurs
la valeur
True
.
g. Attribuez à
Autoriser les valeurs discrètes
la valeur
True
.
4. Cliquez sur
OK
pour fermer la boîte de dialogue
Créer un champ de paramètre
.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
249
1.5.1.2.1.3 Pour connecter le paramètre Ville à la colonne
Ville de la base de données
Contexte
Vous venez de définir les valeurs par défaut de sorte qu'elles contiennent une liste importante de villes. Plus loin dans ce tutoriel, vous accéderez par programmation à cette même liste de valeurs par défaut, via la propriété
ParameterFieldInfo de la classe CrystalReportViewer.
Vous devez maintenant utiliser l'Expert Sélection pour définir une formule permettant de connecter la colonne
Ville de la base de données au champ de paramètre Ville que vous venez de créer.
Procédure
1. Dans la barre d'outils Crystal Reports, cliquez sur
Expert Sélection
.
2. Dans la boîte de dialogue
Choisir un champ
, sous
Champs du rapport
, sélectionnez
Clients.Ville
, puis cliquez sur
OK
.
3. Dans la boîte de dialogue Select Expert, dans l'onglet Customer.City, choisissez "est égal à" dans la liste déroulante.
4. Dans la nouvelle liste déroulante qui s'affiche à droite, sélectionnez le premier élément de la liste,
{?Ville}
, puis cliquez sur
OK
.
Remarque
Cette sélection, {?City}, correspond au paramètre Ville que vous avez créé précédemment.
5. Dans le menu
Fichier
, sélectionnez
Enregistrer tout
.
Résultats
Vous êtes maintenant prêt à lier le rapport au contrôle
CrystalReportViewer
et à définir le paramètre Ville avec deux valeurs d'origine, Paris et Tokyo.
1.5.1.2.2 Liaison du rapport
Lorsque vous avez sélectionné les instructions de la procédure Configuration d'un projet [page 15]
en préparation de ce tutoriel, vous avez placé un contrôle CrystalReportViewer sur le Web Form ou le Windows Form. Au cours des étapes précédentes, vous avez ajouté un rapport CustomersByCity au projet.
Dans cette section, vous allez lier le chemin d'accès au répertoire du rapport CustomersByCity au contrôle
CrystalReportViewer. Vous allez ensuite vérifier si le rapport s'affiche correctement lorsque les valeurs actuelles n'ont pas été définies pour ce paramètre.
250
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.5.1.2.2.1 Pour lier le chemin d'accès au répertoire du rapport CustomersByCity au contrôle
CrystalReportViewer.
Procédure
1. Ouvrez le Web Form ou Windows Form.
2. Dans le menu
Affichage
, cliquez sur
Code
pour afficher la classe code-behind du Web Form ou du Windows
Form.
3. Localisez la méthode ConfigureCrystalReports() (que vous avez créée dans la section
Configuration d'un projet [page 15]
).
4. Déclarez une variable chaîne, nommez-la reportPath et affectez-lui un chemin d'accès au rapport local au moment de l'exécution. Ce chemin est déterminé différemment selon qu'il s'agit d'un site Web ou d'un projet
Windows :
○ Pour un site Web, transmettez le nom du fichier de rapport local sous forme de paramètre de type chaîne dans la méthode Server.MapPath(). Ceci permet d'associer le rapport local au chemin d'accès du répertoire de fichiers du disque dur au moment de l'exécution.
Dim reportPath As String = Server.MapPath("CustomersByCity.rpt") string reportPath = Server.MapPath("CustomersByCity.rpt");
○ Pour un projet Windows, concaténez la propriété Application.StartupPath avec une barre oblique inverse et le nom du fichier de rapport local. Ceci permet d'associer le rapport au même répertoire que celui du fichier exécutable Windows.
Remarque
Au moment de la compilation, vous copierez le rapport dans le répertoire contenant le fichier exécutable.
Dim reportPath As String = Application.StartupPath & "\" &
"CustomersByCity.rpt" string reportPath = Application.StartupPath + "\\" + "CustomersByCity.rpt";
5. Affectez le chemin d'accès au répertoire du fichier du rapport CustomersByCity à la propriété ReportSource du contrôle CrystalReportViewer.
myCrystalReportViewer.ReportSource = reportPath crystalReportViewer.ReportSource = reportPath;
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
251
1.5.1.2.2.2 Pour tester le chargement du rapport
CustomersByCity
Contexte
Vous êtes maintenant prêt à générer et exécuter votre projet. Le chargement du rapport doit échouer, car le code permettant de définir une valeur pour le champ de paramètre Ville n'a pas encore été écrit.
Procédure
1. Dans le menu
Générer
, sélectionnez
Générer la solution
.
2. Si vous rencontrez des erreurs lors de la génération, corrigez-les.
3. Si vous utilisez un rapport non incorporé dans un projet Windows, recherchez l'exécutable Windows compilé dans le sous-répertoire \bin\ [Visual Basic] ou \bin\debug\ [C#], puis copiez le rapport dans ce sous-répertoire.
Remarque
Pour que le rapport non incorporé soit chargé par l'exécutable Windows au moment de l'exécution, le rapport doit être stocké dans le même répertoire que l'exécutable Windows.
4. Dans le menu
Déboguer
, cliquez sur
Démarrer
.
Le rapport CustomersByCity ne s'affiche pas. Il s'affiche après que vous avez ajouté une valeur au paramètre
Ville plus loin dans ce tutoriel.
Remarque
Les résultats peuvent varier selon la version de SAP Crystal Reports utilisée. Dans les versions plus récentes, un formulaire s'affiche vous demandant de fournir des valeurs de paramètre pour ce rapport.
Dans les versions antérieures, une exception "Valeur actuelle du champ de paramètre introuvable" est renvoyée. Dans les deux cas, vous devez ajouter du code supplémentaire pour créer une application entièrement fonctionnelle.
5. Revenez dans Visual Studio, puis cliquez sur
Arrêter
pour quitter le mode débogage.
1.5.1.2.3 Définition manuelle des paramètres dans le code
Vous êtes maintenant prêt à créer deux valeurs ("Paris" et "Tokyo") dans le champ de paramètre Ville du rapport
CustomersByCity.
Cette opération nécessite un code qui peut être décomposé selon les processus suivants :
● Une constante PARAMETER_FIELD_NAME est nécessaire pour contenir le champ de paramètre "Ville".
● Le code permettant d'ajouter les valeurs actuelles au paramètre Ville étant utilisé dans différents emplacements dans ce tutoriel, il est préférable de créer ce code en tant que méthode d'assistance distincte.
252
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
● Dans la méthode ConfigureCrystalReports(), vous devez ajouter les paramètres "Paris" et "Tokyo" à une instance ArrayList, puis transmettre le rapport et l'instance à la méthode d'assistance pour le traitement.
1.5.1.2.3.1 Pour créer une constante
PARAMETER_FIELD_NAME
Procédure
1. Revenez à la classe code-behind de ce Web Form ou Windows Form.
2. Au niveau de la classe, créez une constante chaîne, PARAMETER_FIELD_NAME, et attribuez-lui la valeur "Ville."
Private Const PARAMETER_FIELD_NAME As String = "City" private const string PARAMETER_FIELD_NAME = "City";
1.5.1.2.3.2 Pour créer une méthode d'assistance permettant d'ajouter les valeurs actuelles au paramètre dans le rapport
Contexte
Vous êtes maintenant prêt à créer la méthode d'assistance qui permet d'ajouter les valeurs actuelles au paramètre dans le rapport.
Procédure
1. Revenez à la classe code-behind de ce Web Form ou Windows Form.
2. Au-dessus de la signature de classe, ajoutez une déclaration "Imports" [Visual Basic] ou "using"
[C#] au début de la classe de l'espace de noms System.Collections (si cet espace de noms n'a pas déjà été déclaré).
Remarque
Cette déclaration est nécessaire pour accéder à la classe ArrayList.
Imports System.Collections
using System.Collections;
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
253
3. Dans la partie inférieure de la classe, créez une méthode privée nommée
SetCurrentValuesForParameterField() avec deux variables dans la signature de la méthode :
ParameterFields et ArrayList.
Private Sub SetCurrentValuesForParameterField(ByVal myParameterFields As
ParameterFields, ByVal myArrayList As
ArrayList)
End Sub
{
} private void SetCurrentValuesForParameterField(ParameterFields parameterFields,
ArrayList arrayList)
4. Dans cette méthode, déclarez et instanciez la classeParameterValues en tant que variable currentParameterValues.
Remarque
Pour que la classe ParameterValues soit accessible, vous devez avoir inclus une déclaration "Imports"
[Visual Basic] ou "using" [C#] dans la partie supérieure de la classe code-behind pour l'espace de
.)
Dim currentParameterValues As ParameterValues = New ParameterValues()
ParameterValues currentParameterValues = new ParameterValues();
5. Créez une boucle foreach pour extraire toutes les valeurs envoyées (comme type Object) de l'instance
ArrayList.
Remarque
Dans cette méthode, vous extrayez les valeurs d'ArrayList. Par la suite, vous écrirez du code permettant d'ajouter des valeurs à l'ArrayList.
For Each submittedValue As Object In myArrayList
Next foreach(object submittedValue in arrayList)
{
}
6. Dans la boucle foreach, déclarez et instanciez la classe ParameterDiscreteValue.
Dim myParameterDiscreteValue As ParameterDiscreteValue = New
ParameterDiscreteValue()
ParameterDiscreteValue parameterDiscreteValue = new ParameterDiscreteValue();
7. Dans la boucle foreach, convertissez la submittedValue en chaîne et transmettez-la à la propriété Value de l'instance ParameterDiscreteValue.
myParameterDiscreteValue.Value = submittedValue.ToString()
254
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
parameterDiscreteValue.Value = submittedValue.ToString();
8. Dans la boucle foreach, ajoutez l'instance ParameterDiscreteValue dans la classe indexée currentParameterValues.
L'écriture de code dans la boucle foreach est à présent terminée. Vous placez le code restant (à l'aide des
étapes suivantes) après la boucle foreach.
currentParameterValues.Add(myParameterDiscreteValue) currentParameterValues.Add(parameterDiscreteValue);
9. En dehors de la boucle foreach, extrayez l'instance ParameterField de la classe indexée
ParameterFields, qui se base sur l'entrée d'index de la constante PARAMETER_FIELD_NAME.
Dim myParameterField As ParameterField = myParameterFields(PARAMETER_FIELD_NAME)
ParameterField parameterField = parameterFields[PARAMETER_FIELD_NAME];
10. Transmettez l'instance currentParameterValues à la propriété CurrentValues de l'instance
ParameterField.
myParameterField.CurrentValues = currentParameterValues parameterField.CurrentValues = currentParameterValues;
1.5.1.2.3.3 Pour appeler la méthode
SetCurrentValuesForParameterField () avant la liaison du rapport au contrôle
CrystalReportViewer
Contexte
Cette procédure a permis de créer une méthode qui extrait les valeurs envoyées d'une instance ArrayList et les place comme valeurs actuelles dans une instance ParameterField. Vous devez maintenant appeler cette méthode avant que votre rapport ne soit lié au contrôle CrystalReportViewer afin que le rapport sache qu'il dispose de paramètres.
Procédure
1. Dans la méthode ConfigureCrystalReports(), déclarez et instanciez une ArrayList au-dessus de la ligne qui lie le rapport au contrôle CrystalReportViewer.
Dim myArrayList As ArrayList = New ArrayList()
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
255
ArrayList arrayList = new ArrayList();
2. Ajoutez les noms de ville "Paris" et "Tokyo" comme chaînes à l'instance ArrayList.
myArrayList.Add("Paris") myArrayList.Add("Tokyo") arrayList.Add("Paris"); arrayList.Add("Tokyo");
3. Sous le code qui lie le contrôle CrystalReportViewer, extrayez l'instance ParameterFields de la propriété ParameterFieldInfo du contrôle CrystalReportViewer.
Dim myParameterFields As ParameterFields = myCrystalReportViewer.ParameterFieldInfo
ParameterFields parameterFields = crystalReportViewer.ParameterFieldInfo;
4. Appelez la méthode SetCurrentValuesForParameterField(), puis transmettez l'instance
ParameterFields et l'instance ArrayList.
SetCurrentValuesForParameterField(myParameterFields, myArrayList)
SetCurrentValuesForParameterField(parameterFields, arrayList);
1.5.1.2.3.4 Pour tester le chargement du rapport
CustomersByCity
Contexte
Vous êtes maintenant prêt à générer et exécuter votre projet. Le rapport doit s'afficher correctement, car le code définissant les valeurs actuelles dans le champ de paramètre est désormais écrit.
Procédure
1. Dans le menu
Générer
, sélectionnez
Générer la solution
.
2. Si vous rencontrez des erreurs lors de la génération, corrigez-les.
3. Dans le menu
Déboguer
, cliquez sur
Démarrer
.
4. Revenez dans Visual Studio, puis cliquez sur
Arrêter
pour quitter le mode débogage.
256
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Résultats
Dans la section suivante, vous allez apprendre à extraire les valeurs par défaut du champ de paramètre et à définir ces valeurs dans un contrôle ListBox. Ces valeurs seront utilisées à la fin du tutoriel pour sélectionner de façon dynamique de nouvelles villes et filtrer le rapport en fonction des nouvelles villes sélectionnées.
1.5.1.2.4 Création d'un contrôle ListBox qui affiche les paramètres par défaut
Le reste du tutoriel concerne l'affichage de la liste complète des valeurs par défaut du champ de paramètre dans un contrôle ListBox et le refiltrage du contenu du rapport en fonction des sélections effectuées à partir du contrôle ListBox.
Dans cette section, vous allez apprendre à remplir le contrôle ListBox à partir des valeurs par défaut du champ de paramètre.
Remarque
N'oubliez pas que vous avez défini les valeurs par défaut, une liste importante de villes, lors de la création du rapport au début de ce tutoriel.
Pour ce faire, vous devez ajouter et configurer un contrôle ListBox, puis créer une méthode d'assistance pour remplir ce contrôle ListBox.
1.5.1.2.4.1 Pour créer et configurer un contrôle ListBox sur le formulaire
Procédure
1. Ouvrez le Web Form ou Windows Form.
2. Dans le menu
Affichage
, cliquez sur
Concepteur
.
3. Si vous développez un site Web, procédez comme suit : a. Cliquez sur le contrôle
CrystalReportViewer
pour le sélectionner.
b. Appuyez sur la FLECHE GAUCHE du clavier afin de faire apparaître un curseur clignotant, puis appuyez sur ENTREE.
4. Si vous développez un projet Windows, procédez comme suit : a. Cliquez sur le contrôle
CrystalReportViewer
pour le sélectionner.
b. Dans la fenêtre
Propriétés
, attribuez à la propriété Dock la valeur "Bottom".
c. Redimensionnez le contrôle
CrystalReportViewer
pour laisser assez d'espace au-dessus afin d'ajouter un contrôle ListBox.
d. Dans la fenêtre
Propriétés
, attribuez à la propriété Anchor la valeur "Top, Bottom, Left, Right".
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
257
5. Dans la
boîte à outils
, faites glisser un contrôle
ListBox
au-dessus du contrôle
CrystalReportViewer
.
6. Cliquez sur le contrôle
ListBox
pour le sélectionner.
7. Dans la fenêtre
Propriétés
, procédez comme suit : a. Attribuez à
ID
ou
Name
la valeur "defaultParameterValuesList".
b. Attribuez à
SelectionMode
la valeur "Multiple" (ou "MultiExtended" dans un projet Windows).
8. Dans le menu
Fichier
, sélectionnez
Enregistrer tout
.
1.5.1.2.4.2 Pour créer une méthode d'assistance qui extrait les valeurs par défaut du champ de paramètre
Contexte
Vous êtes maintenant prêt à créer une méthode d'assistance qui extrait les valeurs par défaut du champ de paramètre.
Procédure
1. Ouvrez le Web Form ou Windows Form.
2. Dans le menu
Affichage
, cliquez sur
Code
.
3. Dans la partie inférieure de la classe, créez une méthode privée nommée
GetDefaultValuesFromParameterField() qui renvoie une instance ArrayList, en transmettant
ParameterFields dans la signature de la méthode.
Private Function GetDefaultValuesFromParameterField(ByVal myParameterFields As ParameterFields) As ArrayList
End Function
{
} private ArrayList
GetDefaultValuesFromParameterField(ParameterFields parameterFields)
4. Extrayez l'instance ParameterField de la classe indexée ParameterFields, basée sur l'entrée d'index de la constante PARAMETER_FIELD_NAME.
Dim myParameterField As ParameterField = myParameterFields(PARAMETER_FIELD_NAME)
ParameterField parameterField = parameterFields[PARAMETER_FIELD_NAME];
5. Extrayez une classe indexée ParameterValues (en tant que variable defaultParameterValues) de la propriété DefaultValues de l'instance ParameterField.
Dim defaultParameterValues As ParameterValues = myParameterField.DefaultValues
258
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
ParameterValues defaultParameterValues = parameterField.DefaultValues;
6. Déclarez et instanciez une ArrayList.
Dim myArrayList As ArrayList = New ArrayList()
ArrayList arrayList = new ArrayList();
7. Créez une boucle foreach pour extraire chaque instance ParameterValue de la variable defaultParameterValues.
Dans la boucle foreach, créez maintenant un bloc conditionnel imbriqué qui recherche des valeurs de paramètre discret (par opposition aux valeurs de paramètre de plage). Il existe deux versions de ce bloc conditionnel, car l'API a subi de légères modifications au cours de l'évolution des versions de
SAP Crystal Reports, version développeur pour Microsoft Visual Studio. Vérifiez votre API (à l'aide d'IntelliSense) pour connaître la propriété disponible sous ParameterValue :
For Each myParameterValue As ParameterValue In defaultParameterValues
Next foreach(ParameterValue parameterValue in defaultParameterValues)
{
}
8. Si la propriété disponible est IsRange, saisissez le code suivant dans la boucle foreach :
If (Not myParameterValue.IsRange) Then
End If if(!parameterValue.IsRange)
{
}
9. Ou, si la propriété disponible est Kind (DiscreteOrRangeKind, une énumération comportant trois valeurs :
DiscreteValue, RangeValue, DiscreteAndRangeValue), saisissez le code suivant dans la boucle foreach :
If (myParameterValue.Kind = DiscreteOrRangeKind.DiscreteValue) Then
End If if(parameterValue.Kind == DiscreteOrRangeKind.DiscreteValue)
{
}
10. Dans le bloc conditionnel imbriqué, effectuez un cast de l'instance ParameterValue en sa classe étendue
DiscreteParameterValue.
Dim myParameterDiscreteValue As ParameterDiscreteValue =
CType(myParameterValue, ParameterDiscreteValue)
ParameterDiscreteValue parameterDiscreteValue =
(ParameterDiscreteValue)parameterValue;
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
259
11. Dans le bloc conditionnel imbriqué, ajoutez la propriété Value de l'instance ParameterDiscreteValue
(convertie en chaîne) dans l'instance ArrayList.
myArrayList.Add(myParameterDiscreteValue.Value.ToString()) arrayList.Add(parameterDiscreteValue.Value.ToString());
12. En dehors du bloc conditionnel et de la boucle foreach, en fin de méthode, renvoyez l'instance ArrayList depuis la méthode.
Return myArrayList return arrayList;
1.5.1.2.4.3 Pour lier l'ArrayList renvoyée de la méthode au contrôle ListBox dans un projet Web
Contexte
Vous avez extrait les valeurs par défaut du champ de paramètre et les avez renvoyées de la méthode sous la forme d'une ArrayList. Vous allez maintenant lier cette ArrayList au contrôle ListBox defaultParameterValuesList.
Le code varie légèrement selon que vous utilisez un projet Web ou un projet Windows ; en conséquence, vous ne devez effectuer que l'une des procédures Web ou Windows ci-après.
Procédure
1. Dans la méthode ConfigureCrystalReports(), créez plusieurs sauts de ligne dans le code, immédiatement après la ligne de code qui extrait l'instance ParameterFields.
2. Dans les sauts de ligne, créez un bloc conditionnel Not IsPostBack.
Remarque
Le bloc conditionnel Not IsPostBack est utilisé pour encapsuler du code devant être exécuté uniquement lors du premier chargement de la page. Les contrôles sont généralement liés aux valeurs de données dans des blocs conditionnels Not IsPostBack afin que leurs valeurs de données (et tout
événement de contrôle suivant) ne soient pas redéfinies lorsque les pages sont rechargées.
If Not IsPostBack Then
End If if(!IsPostBack)
{
}
260
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
3. Dans le bloc conditionnel Not IsPostBack, attribuez à la propriété DataSource du contrôle ListBox defaultParameterValuesList la méthode d'assistance GetDefaultValuesFromParameterField(), en transmettant l'instance ParameterFields en tant que paramètre de méthode.
defaultParameterValuesList.DataSource =
GetDefaultValuesFromParameterField(myParameterFields) defaultParameterValuesList.DataSource =
GetDefaultValuesFromParameterField(parameterFields);
4. Toujours dans le bloc conditionnel Not IsPostBack, appelez la méthode DataBind() du contrôle ListBox defaultParameterValuesList.
defaultParameterValuesList.DataBind() defaultParameterValuesList.DataBind();
1.5.1.2.4.4 Pour lier l'ArrayList renvoyée de la méthode au contrôle ListBox dans un projet Windows
Procédure
1. Dans la méthode ConfigureCrystalReports(), créez plusieurs sauts de ligne dans le code, immédiatement après la ligne de code qui extrait l'instance ParameterFields.
Dans ces sauts de ligne, vous pouvez à présent saisir un code supplémentaire définissant la source de données du contrôle ListBox defaultParameterValuesList lors du premier chargement de la page.
2. Dans les sauts de lignes, attribuez à la propriété DataSource du contrôle ListBox defaultParameterValuesList la méthode d'assistance GetDefaultValuesFromParameterField(), en transmettant l'instance
ParameterFields en tant que paramètre de méthode.
defaultParameterValuesList.DataSource =
GetDefaultValuesFromParameterField(myParameterFields) defaultParameterValuesList.DataSource =
GetDefaultValuesFromParameterField(parameterFields);
1.5.1.2.4.5 Pour vérifier si le contrôle ListBox defaultParameterValuesList est rempli
Contexte
Vous êtes maintenant prêt à créer et exécuter le projet pour vérifier si la zone de texte defaultParameterValuesList est renseignée.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
261
Procédure
1. Dans le menu Générer, sélectionnez
Générer la solution
.
2. Si vous rencontrez des erreurs lors de la génération, corrigez-les.
3. Dans le menu
Déboguer
, cliquez sur
Démarrer
.
Le contrôle ListBox ListBox defaultParameterValuesList affiche la liste complète des valeurs par défaut (dans ce tutoriel, il s'agit de villes).
4. Revenez dans Visual Studio, puis cliquez sur
Arrêter
pour quitter le mode débogage.
1.5.1.2.5 Définition des paramètres à partir des sélections
ListBox
Dans cette section, vous allez ajouter un bouton pour réafficher le rapport en fonction des sélections du contrôle
ListBox defaultParameterValuesList. Dans la méthode d'événement de ce bouton, vous appellerez la même méthode que celle appelée lors du premier chargement de la page :
SetCurrentValuesForParameterField(). Mais cette fois, au lieu de transmettre des valeurs arbitraires
(Paris et Tokyo), vous transmettrez les valeurs sélectionnées depuis le contrôle ListBox defaultParameterValuesList.
1.5.1.2.5.1 Pour créer et configurer un contrôle Button de réaffichage sur le formulaire
Procédure
1. Ouvrez le Web Form ou Windows Form.
2. Dans le menu
Affichage
, cliquez sur
Concepteur
.
3. Dans la
boîte à outils
, faites glisser un contrôle
Button
à droite du contrôle
ListBox
.
4. Cliquez sur le contrôle
Button
pour le sélectionner.
5. Dans la fenêtre
Propriétés
, procédez comme suit : a. Attribuez à
ID
ou
Name
la valeur "redisplay".
b. Attribuez à
Text
la valeur "Réafficher le rapport".
262
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.5.1.2.5.2 Pour créer la méthode d'événement de clic du contrôle Button de réaffichage dans un projet
Web
Contexte
Vous êtes maintenant prêt à créer une méthode d'événement de clic qui recherche des éléments sélectionnés dans le contrôle ListBox et les transmet à la méthode SetCurrentValuesForParameterField().
Le code varie légèrement pour un projet Web ou un projet Windows ; en conséquence, vous ne devez effectuer que l'une des procédures Web ou Windows ci-après.
Procédure
1. Cliquez deux fois sur le bouton
Réafficher le rapport
.
Cette opération affiche la classe code-behind dans laquelle une méthode d'événement redisplay_Click() a été générée automatiquement.
2. Au-dessus de la signature de classe, ajoutez une déclaration "Imports" [Visual Basic] ou "using"
[C#] au début de la classe de l'espace de noms System.Web.UI.WebControls (si cet espace de noms n'a pas déjà été déclaré).
Imports System.Web.UI.WebControls
using System.Web.UI.WebControls;
3. Dans la méthode d'événement redisplay_Click() qui vient d'être automatiquement générée, déclarez et instanciez une ArrayList.
Dim myArrayList As ArrayList = New ArrayList()
ArrayList arrayList = new ArrayList();
4. Créez une boucle foreach pour extraire chaque instance ListItem de la propriété Items du contrôle
ListBox defaultParameterValuesList.
For Each item As ListItem In defaultParameterValuesList.Items
Next foreach(ListItem item in defaultParameterValuesList.Items)
{
}
5. Dans la boucle foreach, créez un bloc conditionnel imbriqué qui vérifie si la propriété Selected de l'instance actuelle Item a pour valeur True.
If item.Selected Then
End If
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
263
if(item.Selected)
{
}
6. Dans le bloc conditionnel, ajoutez la propriété Value de l'instance Item à l'instance ArrayList.
myArrayList.Add(item.Value) arrayList.Add(item.Value);
7. En dehors du bloc conditionnel et de la boucle foreach, liez à nouveau le chemin d'accès au répertoire du rapport CustomersByCity à la propriété ReportSource de la classe CrystalReportViewer.
Remarque
Le chemin d'accès au fichier indiqué ci-dessous s'applique à un projet Visual Studio. "NomProjet" est remplacé par le nom de votre site Web. "NomUtilisateur" est remplacé par votre nom de connexion.
Le chemin par défaut d'un projet de site Web est le suivant : myCrystalReportViewer.ReportSource = "C:\WebSites\NomProjet\CustomersByCity.rpt" crystalReportViewer.ReportSource = "C:\\WebSites\\ NomProjet\
\CustomersByCity.rpt";
8. Extrayez l'instance ParameterFields de la propriété ParameterFieldInfo du contrôle
CrystalReportViewer.
Dim myParameterFields As ParameterFields = myCrystalReportViewer.ParameterFieldInfo
ParameterFields parameterFields = crystalReportViewer.ParameterFieldInfo;
9. Transmettez l'instance ParameterFields et l'instance ArrayList à la méthode
SetCurrentValuesForParameterField().
SetCurrentValuesForParameterField(myParameterFields, myArrayList)
SetCurrentValuesForParameterField(parameterFields, arrayList);
1.5.1.2.5.3 Pour créer la méthode d'événement de clic du contrôle Button de réaffichage dans un projet
Windows
Procédure
1. Cliquez deux fois sur le contrôle Button de réaffichage.
264
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Cette opération affiche la classe code-behind dans laquelle une méthode d'événement redisplay_Click() a été générée automatiquement.
2. Dans la méthode d'événement redisplay_Click() qui vient d'être automatiquement générée, déclarez et instanciez une ArrayList.
Dim myArrayList As ArrayList = New ArrayList()
ArrayList arrayList = new ArrayList();
3. Créez une boucle foreach pour extraire chaque élément (sous forme de chaîne) de la propriété
SelectedItems du contrôle ListBox defaultParameterValuesList.
For Each item As String In defaultParameterValuesList.SelectedItems
Next foreach(string item in defaultParameterValuesList.SelectedItems)
{
}
4. Dans la boucle foreach, ajoutez l'instance chaîne item à l'instance ArrayList.
myArrayList.Add(item) arrayList.Add(item);
5. En dehors de la boucle foreach, liez à nouveau le chemin d'accès au répertoire du rapport CustomersByCity à la propriété ReportSource de la classe CrystalReportViewer.
Remarque
Le chemin d'accès au fichier indiqué ci-dessous s'applique à un projet Visual Studio. "NomProjet" est remplacé par le nom de votre projet Windows. "NomUtilisateur" est remplacé par votre nom de connexion.
Le chemin par défaut d'un projet Windows est le suivant : myCrystalReportViewer.ReportSource = "C:\Documents and Settings\NomUtilisateur
\Mes Documents\Visual Studio\Projects\NomProjet\CustomersByCity.rpt" crystalReportViewer.ReportSource = "C:\\Documents and Settings\\NomUtilisateur\
\Mes Documents\\Visual Studio\\Projects\\NomProjet\\CustomersByCity.rpt";
6. Extrayez l'instance ParameterFields de la propriété ParameterFieldInfo du contrôle
CrystalReportViewer.
Dim myParameterFields As ParameterFields = myCrystalReportViewer.ParameterFieldInfo
ParameterFields parameterFields = crystalReportViewer.ParameterFieldInfo;
7. Transmettez l'instance ParameterFields et l'instance ArrayList à la méthode
SetCurrentValuesForParameterField().
SetCurrentValuesForParameterField(myParameterFields, myArrayList)
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
265
SetCurrentValuesForParameterField(parameterFields, arrayList);
1.5.1.2.5.4 Pour vérifier si le contrôle ListBox defaultParameterValuesList est rempli
Contexte
Les valeurs sélectionnées du contrôle ListBox ayant été appliquées comme valeurs actuelles du champ de paramètre, vous êtes maintenant prêt à réafficher le rapport.
Vous êtes maintenant prêt à générer et exécuter le projet pour vérifier si le champ de paramètre a bien été correctement redéfini.
Procédure
1. Dans le menu
Générer
, sélectionnez
Générer la solution
.
2. Si vous rencontrez des erreurs lors de la génération, corrigez-les.
3. Dans le menu
Déboguer
, cliquez sur
Démarrer
.
4. Dans le contrôle
ListBox
, cliquez sur des villes différentes dans la liste en maintenant la touche Ctrl enfoncée.
5. Cliquez sur le bouton
Réafficher le rapport
.
La page est rechargée, affichant les enregistrements des clients qui vivent dans les villes sélectionnées dans la liste.
6. Revenez dans Visual Studio, puis cliquez sur
Arrêter
pour quitter le mode débogage.
1.5.1.2.6 Configuration de la persistance des paramètres
Dans cette section, vous allez configurer la persistance (dans un tutoriel via le Web) des sélections des champs de paramètre effectuées à partir du contrôle ListBox.
1.5.1.2.6.1 Pour ajouter un code de persistance à la méthode
ConfigureCrystalReports()
Contexte
Vous devez ajouter un code de persistance à votre application afin que les modifications apportées soient rendues persistantes lorsque les pages Web sont rechargées.
266
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Pour commencer, vous allez ajouter un code de persistance à la méthode ConfigureCrystalReports() en ajoutant un bloc Else au bloc conditionnel If Not IsPostBack. Vous allez ensuite définir des valeurs uniques pour l'instance ArrayList pour l'une des deux conditions du bloc conditionnel. A l'ouverture de la page, vous allez définir les valeurs par défaut ("Paris" et "Tokyo") dans l'instance ArrayList. Au rechargement de la page, vous allez extraire l'instance ArrayList stockée dans Session.
Procédure
1. Dans la méthode ConfigureCrystalReports(), coupez et collez au bas du bloc conditionnel Not
IsPostBack les deux lignes de code permettant d'ajouter Paris et Tokyo à l'instance ArrayList.
Lorsque vous avez terminé, le bloc conditionnel doit ressembler à ceci :
If Not IsPostBack Then
defaultParameterValuesList.DataSource =
GetDefaultValuesFromParameterField(myParameterFields)
defaultParameterValuesList.DataBind()
myArrayList.Add("Paris")
myArrayList.Add("Tokyo")
End If if (!IsPostBack)
{
defaultParameterValuesList.DataSource =
GetDefaultValuesFromParameterField(parameterFields);
defaultParameterValuesList.DataBind();
arrayList.Add("Paris");
arrayList.Add("Tokyo");
}
2. Ajoutez une ligne de code finale au bloc conditionnel qui affecte l'instance ArrayList à Session.
Remarque
Vous pouvez utiliser le nom de variable comme identificateur de chaîne pour la Session ajoutée.
Session("myArrayList") = myArrayList
Session["arrayList"] = arrayList;
3. Ajoutez une condition Else au bloc conditionnel Not IsPostBack.
4. Dans le bloc Else, extrayez l'instance ArrayList de Session, puis effectuez un cast de celle-ci en instance
ArrayList.
myArrayList = Ctype(Session("myArrayList"), ArrayList) arrayList = (ArrayList)Session["arrayList"];
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
267
Résultats
Lorsque vous avez terminé, le bloc conditionnel doit ressembler à ceci :
If Not IsPostBack Then
defaultParameterValuesList.DataSource =
GetDefaultValuesFromParameterField(myParameterFields)
defaultParameterValuesList.DataBind()
myArrayList.Add("Paris")
myArrayList.Add("Tokyo")
Session("myArrayList") = myArrayList
Else
myArrayList = Ctype(Session("myArrayList"), ArrayList)
End If if (!IsPostBack)
{
defaultParameterValuesList.DataSource =
GetDefaultValuesFromParameterField(parameterFields);
defaultParameterValuesList.DataBind();
arrayList.Add("Paris");
arrayList.Add("Tokyo");
Session["arrayList"] = arrayList;
} else
{
arrayList = (ArrayList)Session["arrayList"];
}
Ces modifications apportées à la méthode ConfigureCrystalReports() permettent de garantir que l'instance actuelle ArrayList est toujours disponible pour être transmise à la méthode
SetCurrentValuesForParameterField().
Dans la section suivante, vous allez apporter deux modifications au code dans l'événement de clic :
● Sélectionner l'instance ArrayList créée et l'affecter à Session.
● Remplacer les deux dernières lignes de code (qui configurent et affichent le rapport) par un appel à la méthode ConfigureCrystalReports() afin d'exécuter cette fonctionnalité sur un bloc de code commun.
1.5.1.2.6.2 Pour modifier le code de la méthode d'événement de clic selon la persistance Session
Procédure
1. Supprimez les trois dernières lignes de code dans la méthode d'événement de clic.
○ La première ligne de code à supprimer représente le code qui lie le chemin d'accès au répertoire de fichiers du rapport à la propriété ReportSource du contrôle CrystalReportViewer.
○ La deuxième ligne de code à supprimer représente le code qui extrait l'instance ParameterFields de la propriété ParameterFieldInfo du contrôle CrystalReportViewer.
○ La troisième ligne de code à supprimer représente l'appel à la méthode
SetCurrentValuesForParameterField().
Dans l'étape suivante, vous allez ajouter deux nouvelles lignes de code pour remplacer le code supprimé.
268
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
2. Dans la méthode d'événement de clic, immédiatement en dehors de la boucle foreach, ajoutez une ligne de code qui affecte l'instance ArrayList à Session.
Remarque
Vous pouvez utiliser le nom de variable comme identificateur de chaîne pour la Session ajoutée.
Session("myArrayList") = myArrayList
Session["arrayList"] = arrayList;
3. Appeler la méthode ConfigureCrystalReports().
Cette méthode extrait l'instance ArrayList, l'applique au rapport, puis lie le rapport au contrôle
CrystalReportViewer.
ConfigureCrystalReports()
ConfigureCrystalReports();
1.5.1.2.6.3 Pour vérifier si le contrôle ListBox defaultParameterValuesList est rempli
Contexte
Vous êtes maintenant prêt à générer et exécuter le projet pour vérifier si le champ de paramètre a bien été correctement redéfini.
Procédure
1. Dans le menu
Générer
, sélectionnez
Générer la solution
.
2. Si vous rencontrez des erreurs lors de la génération, corrigez-les.
3. Dans le menu
Déboguer
, cliquez sur
Démarrer
.
4. Dans le contrôle
ListBox
, utilisez la combinaison de touches MAJ-clic pour sélectionner toutes les villes dans la liste.
5. Cliquez sur
Réafficher le rapport
.
La page se recharge et affiche les enregistrements clients de tous les clients dans toutes les villes. Il s'agit d'un rapport volumineux contenant de nombreuses pages.
6. Dans la barre d'outils CrystalReportViewer, cliquez sur
Page suivante
.
7. La liste des villes sélectionnées est désormais rendue persistante. La page 2 du rapport s'affiche.
8. Revenez dans Visual Studio, puis cliquez sur
Arrêter
pour quitter le mode débogage.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
269
1.5.1.3 Tutoriel : Lecture et définition des paramètres de plage d'un sous-rapport
Dans ce tutoriel, vous allez traiter un problème supplémentaire : que faire si un rapport contient un sous-rapport nécessitant des paramètres différents ?
Introduction
Dans le tutoriel précédent,
Tutoriel : Lecture et définition des paramètres discrets [page 247] , vous avez appris à
créer un rapport avec un paramètre discret et à créer un code permettant de définir ce paramètre au moment de l'exécution, en utilisant chaque fois des valeurs de paramètres codées en dur et des valeurs de paramètres transmises à partir d'un contrôle ListBox ou TextBox.
Dans ce tutoriel, vous allez apprendre à ajouter des paramètres de plage à un sous-rapport.
Vous devez apporter quatre modifications au projet que vous avez précédemment créé :
● Vous ajoutez un sous-rapport au rapport d'origine.
Ce sous-rapport désigne la table Commandes de la base de données Xtreme. La table Commandes est liée à la table Clients utilisée dans le tutoriel précédent par la clé externe ID client.
● Vous ajoutez un paramètre de plage au sous-rapport qui effectue un filtrage selon une plage de dates de commande.
● Vous ajoutez deux contrôles Text au formulaire : orderStartDate et orderEndDate afin de définir la plage des dates de commande au moment de l'exécution.
● Vous modifiez la méthode SetCurrentValuesForParameter() que vous avez créée lors du tutoriel précédent.
Cette méthode crée une instance ParameterRangeValue contenant les valeurs startDate et endDate, puis transmet cette instance ParameterRangeValue au paramètre de plage dans le sous-rapport.
Une fois le tutoriel terminé, vous pouvez filtrer les valeurs affichées dans le rapport au moment de l'exécution. Le code que vous ajoutez limite le nombre de villes affichées dans le rapport principal ainsi que la plage de dates de commande qui apparaîtront dans le sous-rapport.
Ce tutoriel peut également être effectué avec des classes du modèle d'objet ReportDocument ; voir
Lecture et définition des paramètres avec un sous-rapport [page 404]
utilisant le modèle d'objet
ReportDocument.
Exemple de code
Ce tutoriel fournit des exemples de code Visual Basic et C# qui illustrent la version terminée du projet. Suivez les instructions de ce tutoriel pour créer un projet ou ouvrez le projet d'exemple de code pour travailler à partir d'une version terminée.
Les exemples de code sont stockés dans des dossiers classés par langue et par type de projet. Les noms des dossiers de chaque version d'exemple de code sont les suivants :
● Site Web C# : CS_Web_CRVObjMod_ParametersSubrpt
● Projet Windows C# : CS_Win_CRVObjMod_ParametersSubrpt
270
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
● Site Web Visual Basic : VB_Web_CRVObjMod_ParametersSubrpt
● Projet Windows Visual Basic : VB_Win_CRVObjMod_ParametersSubrpt
Informations associées
Choisir le modèle d'objet correct pour votre projet [page 32]
Répertoire d'exemples de rapports [page 15]
1.5.1.3.1 Ajout d'un sous-rapport au rapport d'origine
Pour commencer, vous ajoutez un sous-rapport au rapport d'origine.
1.5.1.3.1.1 Pour ajouter un sous-rapport
Procédure
.
2. Dans l'
Explorateur de solutions
, cliquez deux fois sur le rapport
CustomersByCity
pour l'ouvrir.
3. Cliquez avec le bouton droit de la souris sur la barre grise
Détails
et sélectionnez
Insérer une section en dessous
.
4. Cliquez avec le bouton droit de la souris sur la nouvelle section
Détails b
que vous avez créée, sélectionnez
Insérer
, puis cliquez sur
Sous-rapport
.
Un carré gris encadre le curseur de la souris.
5. Faites glisser le rectangle gris sur la nouvelle section
Détails b
, puis relâchez le bouton de la souris.
6. Dans l'onglet
Sous-rapport
de la boîte de dialogue
Insérer un sous-rapport
, sélectionnez
Créer un sous-rapport
à l'aide de l'Assistant de création de rapports
.
Remarque
La boîte de dialogue Insérer un sous-rapport inclut d'autres options permettant de sélectionner un rapport
7. Dans le champ
Nom du nouveau rapport
, saisissez "CustomerOrders".
8. Cliquez sur
Assistant de création de rapports...
9. Dans le panneau
Sources de données disponibles
de la fenêtre Assistant de création de rapports standard, développez le dossier
Créer une nouvelle connexion
.
10. Dans le sous-dossier qui s'ouvre, développez le dossier
ODBC (RDO)
.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
271
11. Dans la fenêtre ODBC (RDO), sélectionnez l'entrée DSN ODBC correspondant à la base de données Xtreme, puis cliquez sur
Terminer
.
Le dossier ODBC (RDO) se développe pour afficher la base de données Xtreme.
12. Sélectionnez la table
Commandes
et cliquez sur le bouton
>
pour la déplacer dans le panneau
Tables sélectionnées
, puis cliquez sur
Suivant
.
13. Dans le panneau
Champs disponibles
, sélectionnez
ID commande
,
Date de commande
,
Date d'expédition
et
Transporteur
.
14. Cliquez sur le bouton
>
pour déplacer ces champs dans le panneau
Champs à afficher
, puis cliquez sur
Terminer
.
15. Dans la boîte de dialogue
Insérer un sous-rapport
, sélectionnez l'onglet
Mise en relation
.
16. Dans la liste
Champs disponibles
du panneau
Champs du rapport principal à mettre en relation
, développez la table
Clients
, sélectionnez
ID client
, puis cliquez sur le bouton
>
.
17. Dans le panneau
Mise en relation du champ Clients.ID client
qui s'affiche, laissez les sélections par défaut.
Ces sélections de paramètres et de données génèrent automatiquement une relation entre le rapport principal et le sous-rapport.
18. Cliquez sur
OK
.
Le nouveau sous-rapport, CustomerOrders, s'affiche dans la section Détails b du rapport principal.
Remarque
Lorsque vous ajoutez un sous-rapport à la section Détails, le sous-rapport s'affiche pour chaque ligne, ce qui influe sur les performances du rapport. Si vous ne souhaitez pas obtenir des informations aussi détaillées, placez le sous-rapport dans une section Groupe plutôt qu'une section Détails.
1.5.1.3.1.2 Pour vérifier les paramètres du sous-rapport
Procédure
1. Dans la section Détails du rapport, cliquez deux fois sur le sous-rapport
CustomerOrders
pour l'afficher.
Des boutons de navigation apparaissent au bas de la fenêtre du concepteur à la fois pour le rapport principal et le sous-rapport CustomerOrders.
2. Si l'
Explorateur de champs
n'est pas visible, cliquez sur
Activer/Désactiver l'affichage du champ
dans la barre d'outils Crystal Reports.
Remarque
Vous pouvez également afficher l'
Explorateur de champs
en ouvrant le menu
Crystal Reports
, puis en cliquant sur
Explorateur de champs
.
3. Dans l'
Explorateur de champs
, développez
Champs de paramètre
.
4. Vérifiez que le champ de paramètre Pm-Clients.ID Client a été automatiquement généré lorsque le sous-rapport a été relié.
5. Dans la barre d'outils Crystal Reports, cliquez sur
Expert Sélection
.
272
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
6. Dans la boîte de dialogue
Expert Sélection
, vérifiez que le critère Commandes.ID Client est égal à
{Pm-Clients.ID Client} est défini, puis cliquez sur
OK
.
7. Dans le menu
Fichier
, sélectionnez
Enregistrer tout
.
Résultats
Vous avez réussi à ajouter un sous-rapport CustomerOrders au rapport CustomersByCity.
1.5.1.3.1.3 Pour ajouter un paramètre OrderDateRange au sous-rapport
Procédure
1. Dans l'
Explorateur de champs
, cliquez avec le bouton droit de la souris sur
Champs de paramètre
et sélectionnez
Nouveau
.
2. Dans la boîte de dialogue Créer un champ de paramètre : a. Attribuez à
Nom
la valeur "OrderDateRange".
b. Attribuez à
Texte de l'invite
la valeur "Spécifiez une plage de dates des commandes à afficher".
c. Attribuez à
Type de valeur
la valeur "
Date
".
d. Attribuez au paramètre
Options
une seule sélection, "
Valeur(s) de plage
".
3. Cliquez sur
OK
.
4. Dans la barre d'outils Crystal Reports, cliquez sur
Expert Sélection
.
5. Cliquez sur l'onglet
Nouveau
.
6. Dans la boîte de dialogue
Choisir un champ
, développez la table
Commandes
, sélectionnez
Date de commande
, puis cliquez sur
OK
.
7. Dans le nouvel onglet Commandes.date de commande, sélectionnez
formule
dans la liste déroulante des critères : {Commandes.date de commande} in {?OrderDateRange}
8. Cliquez sur
OK
.
9. Dans le menu
Fichier
, sélectionnez
Enregistrer tout
.
Vous avez réussi à ajouter un paramètre OrderDateRange au sous-rapport et à l'associer à la colonne
Commandes.Date de commande. Dans la section suivante, vous allez ajouter un code afin de désigner le paramètre OrderDateRange dans le sous-rapport.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
273
1.5.1.3.2 Ajout du code de paramètre au sous-rapport
Contexte
Vous allez à présent ajouter le code de paramètre du sous-rapport à la classe code-behind. Vous commencez par créer une méthode d'assistance privée SetDateRangeForOrders().
Procédure
1. Ouvrez le Web Form ou Windows Form.
2. Dans le menu
Affichage
, cliquez sur
Code
.
3. Au début de la classe, ajoutez deux nouvelles constantes sous la constante PARAMETER_FIELD_NAME existante définie dans le tutoriel précédent.
Private Const SUBREPORT_PARAMETER_FIELD_NAME As String =
"OrderDateRange"
Private Const SUBREPORT_NAME As String = "CustomerOrders" private const string SUBREPORT_PARAMETER_FIELD_NAME =
"OrderDateRange"; private const string SUBREPORT_NAME = "CustomerOrders";
4. Dans la partie inférieure de la classe, créez une méthode privée nommée SetDateRangeForOrders() avec les trois paramètres suivants : ParameterFields, une chaîne startDate et une chaîne endDate.
Private Sub SetDateRangeForOrders(ByVal myParameterFields As
ParameterFields, ByVal startDate As String, ByVal endDate As
String)
End Sub
{
} private void SetDateRangeForOrders(ParameterFields parameterFields, string startDate, string endDate)
5. Dans cette méthode, déclarez et instanciez la classe ParameterRangeValue.
Remarque
Pour que la classe ParameterRangeValue soit accessible, vous devez inclure une instruction "Imports"
[Visual Basic] ou "using" [C#] dans la partie supérieure de la classe code-behind pour l'espace de
.)
Dim myParameterRangeValue As ParameterRangeValue = New
ParameterRangeValue()
ParameterRangeValue parameterRangeValue = new
ParameterRangeValue();
274
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
6. Attribuez à la propriété StartValue de l'instance ParameterRangeValue le paramètre de méthode startDate.
Remarque
Les propriétés StartValue et EndValue de la classe ParameterRangeValue acceptent les valeurs de type Object. Ce type générique permet de transmettre la valeur de plage sous plusieurs formes, y compris texte, nombre, date, devise ou heure.
myParameterRangeValue.StartValue = startDate parameterRangeValue.StartValue = startDate;
7. Attribuez à la propriété EndValue de l'instance ParameterRangeValue le paramètre de méthode endDate.
myParameterRangeValue.EndValue = endDate parameterRangeValue.EndValue = endDate;
8. Définissez les limites inférieures et supérieures afin de les inclure.
Remarque
Pour le paramètre BoundInclusive, les valeurs de plage supérieures et inférieures sont incluses dans la plage.
myParameterRangeValue.LowerBoundType =
RangeBoundType.BoundInclusive
myParameterRangeValue.UpperBoundType =
RangeBoundType.BoundInclusive
parameterRangeValue.LowerBoundType = RangeBoundType.BoundInclusive; parameterRangeValue.UpperBoundType = RangeBoundType.BoundInclusive;
Vous allez à présent affecter l'instance ParameterRangeValue au paramètre du sous-rapport.
9. Extrayez l'instance ParameterField de la classe indexée ParameterFields, basée sur les deux valeurs indexées suivantes : le nom du champ de paramètre du sous-rapport et le nom du sous-rapport. Transmettez les deux valeurs de constante que vous avez déclarées au début de la classe.
Dim myParameterField As ParameterField = myParameterFields(SUBREPORT_PARAMETER_FIELD_NAME, SUBREPORT_NAME)
ParameterField parameterField = parameterFields[SUBREPORT_PARAMETER_FIELD_NAME, SUBREPORT_NAME];
10. Appelez la méthode Clear() de la propriété CurrentValues de l'instance ParameterField afin de supprimer les éventuelles valeurs existantes de la propriété CurrentValues.
myParameterField.CurrentValues.Clear() parameterField.CurrentValues.Clear();
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
275
11. Ajoutez l'instance ParameterRangeValue que vous venez de créer à la propriété CurrentValues de l'instance ParameterField.
myParameterField.CurrentValues.Add(myParameterRangeValue) parameterField.CurrentValues.Add(parameterRangeValue);
Résultats
Cette procédure a défini des valeurs de date de début et de fin dans une instance ParameterRangeValue et les a transmises au paramètre OrderDateRange du sous-rapport CustomerOrders.
1.5.1.3.3 Ajout de contrôles TextBox pour contenir les valeurs de paramètres de plage
Dans cette section, vous allez ajouter deux contrôles TextBox pour transmettre au paramètre de plage
OrderDateRange des valeurs de date de début et de date de fin au moment de l'exécution dans le sous-rapport
CustomerOrders.
Remarque
Si vous implémentez ce tutoriel dans un site Web, la persistance des valeurs de date que les utilisateurs saisissent dans les zones de texte est conservée par ViewState.
1.5.1.3.3.1 Pour créer et configurer un contrôle Button de réaffichage sur le formulaire
Procédure
1. Ouvrez le Web Form ou Windows Form.
2. Dans le menu
Affichage
, cliquez sur
Concepteur
.
3. Si vous développez un site Web, procédez comme suit : a. Cliquez entre le contrôle
ListBox
et le contrôle
Button
.
b. Appuyez trois fois sur ENTREE pour insérer deux lignes entre le contrôle ListBox et le contrôle Button.
c. Sur la première ligne créée sous le contrôle ListBox, saisissez
Date de début de la commande
.
d. Sur la seconde ligne créée sous le contrôle ListBox, saisissez
Date de fin de la commande
.
4. Si vous développez un projet Windows, procédez comme suit : a. Dans la
boîte à outils
, faites glisser deux contrôles
Label
à droite du contrôle ListBox. Placez une
étiquette sur l'autre, en positionnant les deux étiquettes au-dessus du contrôle
Button
.
276
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
b. Sélectionnez le premier contrôle
Label
, puis attribuez à la propriété Text la valeur
Date de début de la commande
dans la fenêtre
Propriétés
.
c. Sélectionnez le second contrôle
Label
, puis attribuez à la propriété Text la valeur
Date de fin de la commande
dans la fenêtre
Propriétés
.
5. Dans la
boîte à outils
, faites glisser un contrôle à droite de "Date de début de la commande."
6. Cliquez sur le contrôle
TextBox
pour le sélectionner.
7. Dans la fenêtre
Propriétés
, attribuez à
ID
(ou
Name
) la valeur
orderStartDate
.
8. Dans la
boîte à outils
, faites glisser un contrôle
TextBox
à droite de "Date de fin de la commande."
9. Cliquez sur le contrôle
TextBox
pour le sélectionner.
10. Dans la fenêtre
Propriétés
, attribuez à
ID
(ou
Name
) la valeur
orderEndDate
.
11. Dans le menu
Fichier
, sélectionnez
Enregistrer tout
.
1.5.1.3.4 Modification des méthodes d'appel du sous-rapport
Vous devez à présent modifier la méthode ConfigureCrystalReports() et la méthode d'événement redisplay_Click() pour recevoir des informations de ces contrôles TextBox, les appliquer à la méthode
SetDateRangeForOrders() et traiter les informations de paramètre pour les sous-rapports.
Dans le tutoriel précédent,
Tutoriel : Lecture et définition des paramètres discrets [page 247]
, vous avez conçu ces méthodes de deux façons différentes si vous avez inclus la persistance Session.
Remarque
Les projets Windows ne nécessitent aucune persistance Session. Les sites Web nécessitent généralement la persistance Session.
Choisissez l'une des deux (mais pas les deux) procédures ci-dessous. Modifiez les méthodes qui excluent la persistance Session ou les méthodes qui incluent la persistance Session :
1.5.1.3.4.1 Modification des méthodes qui excluent la persistance Session
Si vous avez créé le tutoriel précédent
Tutoriel : Lecture et définition des paramètres discrets [page 247]
et exclu
.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
277
1.5.1.3.4.1.1 Pour modifier la méthode
ConfigureCrystalReports() excluant la persistance Session
Procédure
1. Dans la méthode ConfigureCrystalReports(), créez plusieurs sauts de ligne dans le code après les lignes qui affectent "Paris" et "Tokyo" comme variables ArrayList.
2. Dans les sauts de ligne, déclarez et définissez des valeurs en code dur pour les deux variables chaîne, startDate et endDate.
Dim startDate As String = "1/8/1997"
Dim endDate As String = "31/8/1997" string startDate = "1/8/1997"; string endDate = "31/8/1997";
3. Sous le code qui appelle la méthode SetCurrentValuesForParameterField(), appelez la méthode
SetDateRangeForOrders() et transmettez l'instance ParameterFields et les variables startDate et endDate.
SetDateRangeForOrders(myParameterFields, startDate, endDate)
SetDateRangeForOrders(parameterFields, startDate, endDate);
4. Dans le menu
Fichier
, sélectionnez
Enregistrer tout
.
1.5.1.3.4.1.2 Pour modifier la méthode redisplay_Click() excluant la persistance Session
Procédure
1. Dans la méthode d'événement redisplay_Click(), créez plusieurs sauts de ligne dans le code au-dessus de la ligne qui lie le rapport au contrôle CrystalReportViewer.
2. Dans les sauts de ligne, déclarez et définissez les valeurs des deux variables chaîne startDate et endDate à partir des contrôles TextBox que vous avez ajoutés au Web Form ou Windows Form.
Dim startDate As String = orderStartDate.Text
Dim endDate As String = orderEndDate.Text
string startDate = orderStartDate.Text; string endDate = orderEndDate.Text;
278
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
3. Sous le code qui appelle la méthode SetCurrentValuesForParameterField(), appelez la méthode
SetDateRangeForOrders() et transmettez l'instance ParameterFields et les variables startDate et endDate.
SetDateRangeForOrders(myParameterFields, startDate, endDate)
SetDateRangeForOrders(parameterFields, startDate, endDate);
4. Dans le menu
Fichier
, sélectionnez
Enregistrer tout
.
1.5.1.3.4.2 Modification des méthodes qui incluent la persistance Session
Si vous avez créé le tutoriel précédent
Tutoriel : Lecture et définition des paramètres discrets [page 247]
et inclus
.
1.5.1.3.4.2.1 Pour modifier la méthode
ConfigureCrystalReports() incluant la persistance Session
Procédure
1. Dans la méthode ConfigureCrystalReports(), créez plusieurs sauts de ligne dans le code après la ligne qui déclare et instancie ArrayList.
2. Dans les sauts de ligne, déclarez deux variables chaîne, startDate et endDate.
Dim startDate As String
Dim endDate As String string startDate; string endDate;
3. Dans le bloc conditionnel Not IsPostBack, saisissez des valeurs par défaut pour les variables startDate et endDate.
startDate = "1/8/1997" endDate = "31/8/1997" startDate = "1/8/1997"; endDate = "31/8/1997";
4. Dans le bloc conditionnel Not IsPostBack, affectez les variables startDate et endDate à Session.
Session("startDate") = startDate
Session("endDate") = endDate
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
279
Session["startDate"] = startDate;
Session["endDate"] = endDate;
5. Dans le bloc Else, après l'extraction de l'instance ArrayList de Session, extrayez les variables startDate et endDate de Session.
startDate = Session("startDate").ToString() endDate = Session("endDate").ToString() startDate = Session["startDate"].ToString(); endDate = Session["endDate"].ToString();
Cette approche permet d'atteindre la fin du bloc avec les variables de date affectées dans les deux cas. Cette méthode suit la logique parallèle de l'affectation de la variable ArrayList que vous avez configurée dans le tutoriel précédent.
6. Sous le code qui appelle la méthode SetCurrentValuesForParameterField(), appelez la méthode
SetDateRangeForOrders() et transmettez l'instance ParameterFields et les variables startDate et endDate.
SetDateRangeForOrders(myParameterFields, startDate, endDate)
SetDateRangeForOrders(parameterFields, startDate, endDate);
7. Dans le menu
Fichier
, sélectionnez
Enregistrer tout
.
1.5.1.3.4.2.2 Pour modifier la méthode redisplay_Click() incluant la persistance Session
Contexte
Modifiez à présent la méthode d'événement redisplay_Click.
Procédure
1. Dans la méthode d'événement redisplay_Click(), créez plusieurs sauts de ligne dans le code après la ligne qui affecte l'instance ArrayList à Session.
2. Dans les sauts de ligne, affectez la propriété Text des contrôles TextBox orderStartDate et orderEndDate aux variables Session.
Session("startDate") = orderStartDate.Text
Session("endDate") = orderEndDate.Text
Session["startDate"] = orderStartDate.Text;
Session["endDate"] = orderEndDate.Text;
3. Dans le menu
Fichier
, sélectionnez
Enregistrer tout
.
280
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Résultats
Ces valeurs Session startDate et endDate sont à présent extraites et appliquées lors de l'appel de la méthode
ConfigureCrystalReports().
Vous êtes maintenant prêt à générer et exécuter le projet pour vérifier que les valeurs TextBox redéfinissent le paramètre de plage dans le sous-rapport.
1.5.1.3.5 Vérification du paramètre du sous-rapport
Contexte
Vous allez à présent vérifier le paramètre du sous-rapport à partir des valeurs TextBox.
Procédure
1. Dans le menu
Générer
, sélectionnez
Générer la solution
.
2. Si vous rencontrez des erreurs lors de la génération, corrigez-les.
3. Dans le menu
Déboguer
, cliquez sur
Démarrer
.
4. Dans le contrôle
ListBox
, cliquez sur au moins quatre villes différentes dans la liste en maintenant la touche
Ctrl enfoncée.
5. Dans le contrôle TextBox
orderStartDate
, saisissez
1/1/1997
.
6. Dans le contrôle TextBox
orderEndDate
, saisissez
8/31/1997
.
7. Cliquez sur le bouton
Réafficher le rapport
.
La page se recharge et affiche les enregistrements des clients qui vivent dans les villes que vous venez de sélectionner dans la liste, ainsi qu'un sous-rapport indiquant les commandes correspondant à la plage de dates spécifiées ci-dessus.
8. Dans le contrôle
CrystalReportViewer
, augmentez le facteur de
zoom
à 125 %.
La page se recharge avec un facteur de zoom de 125 %. Les valeurs sélectionnées à la fois pour les villes et la plage des dates de commande sont rendues persistantes.
9. Revenez dans Visual Studio, puis cliquez sur
Arrêter
pour quitter le mode débogage.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
281
1.5.1.4 Tutoriel : Filtrage des données à l'aide des formules de sélection
Dans ce tutoriel, vous allez apprendre à utiliser des formules de sélection afin de filtrer les enregistrements à afficher dans un rapport Crystal.
Introduction
Les formules de sélection servent à filtrer les enregistrements à afficher dans un rapport Crystal. Pour écrire des formules de sélection, vous pouvez utiliser la syntaxe Basic et la syntaxe Crystal.
Dans ce tutoriel, vous allez créer une formule de sélection afin de filtrer les enregistrements clients dans lesquels le champ Ventes de l'année dernière est supérieur à une valeur spécifique et le champ Nom du client est comparé
à une autre chaîne. Un contrôle ListBox sert à sélectionner un opérateur de comparaison pour le champ Nom du client. Vous pouvez choisir d'afficher les noms de client qui sont égaux, inférieurs, supérieurs, inférieurs ou égaux, supérieurs ou égaux, ou pas égaux à la valeur de chaîne que vous avez spécifiée.
La formule est transmise sous forme de variable chaîne à la propriété SelectionFormula de la classe
CrystalReportViewer. Une fois la propriété définie, le rapport Crystal lié au contrôle CrystalReportViewer est filtré avant d'être affiché.
Exemple de code
Ce tutoriel fournit des exemples de code Visual Basic et C# qui illustrent la version terminée du projet. Suivez les instructions de ce tutoriel pour créer un projet ou ouvrez le projet d'exemple de code pour travailler à partir d'une version terminée.
Les exemples de code sont stockés dans des dossiers classés par langue et par type de projet. Les noms des dossiers de chaque version d'exemple de code sont les suivants :
● Site Web C# : CS_Web_CRVObjMod_FilteringData
● Projet Windows C# : CS_Win_CRVObjMod_FilteringData
● Site Web Visual Basic : VB_Web_CRVObjMod_FilteringData
● Projet Windows Visual Basic : VB_Win_CRVObjMod_FilteringData
Informations associées
Formules - Référence [page 761]
Répertoire d'exemples de rapports [page 15]
282
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.5.1.4.1 Création d'un rapport avec une formule de sélection
Dans cette section, vous créez un rapport à partir des informations de la base de données Xtreme.
1.5.1.4.1.1 Pour créer un rapport avec des données sécurisées de la base de données Xtreme
Procédure
1. Dans l'
Explorateur de solutions
, cliquez avec le bouton droit de la souris sur le nom du projet affiché en gras, pointez sur
Ajouter
, puis cliquez sur
Nouvel élément
.
2. Dans la boîte de dialogue
Ajouter un nouvel élément
, dans la vue
Modèles
, sélectionnez le modèle
Rapport
Crystal
.
3. Dans le champ
Nom
, saisissez le nom
CustomersBySalesName.rpt
, puis cliquez sur
Ajouter
.
4. Dans le panneau
Créer un document de rapport Crystal
de la boîte de dialogue
Galerie de rapports Crystal
, sélectionnez
en utilisant l' Assistant de création de rapports
.
5. Dans le panneau
Choisir un expert
, sélectionnez
Standard
, puis cliquez sur
OK
.
6. Dans le panneau
Sources de données disponibles
de la fenêtre
Assistant de création de rapports standard
, développez le dossier
Créer une nouvelle connexion
.
7. Dans le sous-dossier qui s'ouvre, développez le dossier
ODBC (RDO)
.
8. Dans la fenêtre
ODBC (RDO)
, sélectionnez l'entrée DSN ODBC correspondant à l'exemple de base de données
Xtreme, puis cliquez sur
Terminer
.
Le dossier ODBC (RDO) se développe pour afficher la base de données Xtreme.
9. Développez le nœud
Tables
, cliquez deux fois sur la table
Clients
pour la déplacer dans le panneau
Tables sélectionnées
, puis cliquez sur
Suivant
.
10. Développez la table
Clients
, puis utilisez la combinaison de touches Ctrl-clic pour sélectionner les champs
Nom du client
et
Ventes de l'année dernière
.
11. Cliquez sur le bouton
>
pour déplacer ces champs dans le panneau
Champs à afficher
, puis cliquez sur
Suivant
.
12. Dans le panneau
Champs disponibles
, sous
Champs du rapport
, cliquez deux fois sur
Clients.Noms du client
pour déplacer le champ dans le panneau
Regrouper par
, puis cliquez sur
Terminer
.
Le rapport CustomersBySalesName est créé et chargé dans la fenêtre principale de Visual Studio.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
283
1.5.1.4.1.2 Pour créer une formule de sélection en fonction du champ Ventes de l'année dernière
Contexte
Vous allez ensuite créer une formule de sélection pour filtrer les données en fonction du champ Ventes de l'année dernière.
Procédure
1. Ouvrez le Web Form ou Windows Form.
2. Dans le menu
Affichage
, cliquez sur
Code
pour afficher la classe code-behind du Web Form ou du Windows
Form.
3. Pour un site Web, dans la méthode ConfigureCrystalReports() (que vous avez créée dans la section
Configuration d'un projet [page 15]
), créez un bloc conditionnel Not IsPostBack.
Remarque
Le bloc conditionnel Not IsPostBack encapsule du code devant être exécuté uniquement lors du premier chargement de la page.
If Not IsPostBack Then
End If if(!IsPostBack)
{
}
4. Pour un site Web, ajoutez les lignes de code suivantes dans le bloc conditionnel Not IsPostBack. Pour un projet Windows, ajoutez le code à la méthode ConfigureCrystalReports(), sans le bloc conditionnel Not
IsPostBack.
a. Saisissez la formule afin de sélectionner uniquement les enregistrements Ventes de l'année dernière supérieurs à 11 000 $ et les clients dont le nom commence par la lettre "A".
Dim mySelectFormula As String = "{Customer.Last Year's Sales} >
11000.00 " _
& "AND Mid({Customer.Customer Name}, 1, 1) = ""A"" " string selectFormula = "{Customer.Last Year's Sales} > 11000.00
"
+ "AND Mid({Customer.Customer Name}, 1, 1) = \"A\""; b. Affectez la chaîne de formule de sélection à la propriété SelectionFormula du contrôle
CrystalReportViewer
.
myCrystalReportViewer.SelectionFormula = mySelectFormula crystalReportViewer.SelectionFormula = selectFormula;
284
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.5.1.4.2 Liaison du rapport
Lorsque vous avez suivi les instructions de la procédure Configuration d'un projet [page 15]
en préparation de ce tutoriel, vous avez placé un contrôle CrystalReportViewer sur le Web Form ou le Windows Form. Aux étapes précédentes, vous avez ajouté un rapport CustomersBySalesName et une formule de sélection au projet.
Dans cette section, vous allez lier le chemin d'accès au répertoire du rapport CustomersBySalesName au contrôle CrystalReportViewer. Vous allez ensuite vérifier si le rapport s'affiche correctement avec les rapports filtrés selon la formule de sélection.
1.5.1.4.2.1 Pour lier le chemin d'accès au répertoire du rapport CustomersBySalesName au contrôle
CrystalReportViewer.
Procédure
1. Ouvrez le Web Form ou Windows Form.
2. Dans le menu
Affichage
, cliquez sur
Code
pour afficher la classe code-behind du Web Form ou du Windows
Form.
3. Localisez la méthode ConfigureCrystalReports() (que vous avez créée dans la section
Configuration d'un projet [page 15]
).
4. Déclarez une variable chaîne, nommez-la reportPath et affectez-lui un chemin d'accès au rapport local au moment de l'exécution. Ce chemin est déterminé différemment selon qu'il s'agit d'un site Web ou d'un projet
Windows :
○ Pour un site Web, transmettez le nom du fichier de rapport local sous forme de paramètre de type chaîne dans la méthode Server.MapPath(). Ceci permet d'associer le rapport local au chemin d'accès du répertoire de fichiers du disque dur au moment de l'exécution.
Dim reportPath As String =
Server.MapPath("CustomersBySalesName.rpt") string reportPath = Server.MapPath("CustomersBySalesName.rpt");
○ Pour un projet Windows, concaténez la propriété Application.StartupPath avec une barre oblique inverse et le nom du fichier de rapport local. Ceci permet d'associer le rapport au même répertoire que celui du fichier exécutable Windows.
Remarque
Au moment de la compilation, vous copierez le rapport dans le répertoire contenant le fichier exécutable.
Dim reportPath As String = Application.StartupPath & "\" &
"CustomersBySalesName.rpt" string reportPath = Application.StartupPath + "\\" +
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
285
"CustomersBySalesName.rpt";
5. Affectez le chemin d'accès au répertoire du fichier du rapport NorthwindCustomers à la propriété
ReportSource du contrôle CrystalReportViewer.
myCrystalReportViewer.ReportSource = reportPath crystalReportViewer.ReportSource = reportPath;
1.5.1.4.2.2 Pour vérifier la formule de sélection du rapport
CustomersBySalesName
Procédure
1. Dans le menu
Générer
, cliquez sur
Générer la solution
.
2. Si vous rencontrez des erreurs lors de la génération, corrigez-les.
3. Si vous utilisez un rapport non incorporé dans un projet Windows, recherchez l'exécutable Windows compilé dans le sous-répertoire \bin\ [Visual Basic] ou \bin\debug\ [C#], puis copiez le rapport dans ce sous-répertoire.
Remarque
Pour que le rapport non incorporé soit chargé par l'exécutable Windows au moment de l'exécution, le rapport doit être stocké dans le même répertoire que l'exécutable Windows.
4. Dans le menu
Déboguer
, cliquez sur
Démarrer
.
Le rapport Crystal affiche quatre enregistrements clients : Alley Cat Cycles, Ankara Bicycle Company,
Arsenault et Maurier ainsi que Athens Bicycle Co.
5. Revenez dans Visual Studio, puis cliquez sur
Arrêter
pour quitter le mode débogage.
1.5.1.4.3 Ajout de contrôles dans la formule de sélection
Contexte
Dans cette section, vous allez ajouter des contrôles pour modifier de façon dynamique les valeurs utilisées dans la formule de sélection. Pour le champ Ventes de l'année dernière, vous ajoutez une zone de texte pour spécifier la valeur minimale des ventes à afficher dans le rapport Crystal. Pour le champ Nom du client, vous ajoutez des contrôles DropDownList et TextBox pour spécifier les noms de client à afficher.
286
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Procédure
1. Ouvrez le Web Form ou Windows Form.
2. Dans le menu
Affichage
, cliquez sur
Concepteur
.
3. Si vous développez un site Web, procédez comme suit : a. Cliquez sur le contrôle
CrystalReportViewer
pour le sélectionner.
b. Appuyez sur la FLECHE GAUCHE du clavier afin de faire apparaître un curseur clignotant, puis appuyez trois fois sur ENTREE.
Le contrôle CrystalReportViewer descend de trois lignes.
4. Si vous développez un projet Windows, procédez comme suit : a. Cliquez sur le contrôle
CrystalReportViewer
pour le sélectionner.
b. Dans la fenêtre
Propriétés
, attribuez à la propriété
Dock
la valeur "Bottom".
c. Redimensionnez le contrôle
CrystalReportViewer
afin d'afficher environ trois lignes au-dessus.
d. Dans la fenêtre
Propriétés
, attribuez à la propriété
Anchor
la valeur "Top, Bottom, Left, Right".
5. Si vous développez un site Web, saisissez dans la première ligne
Saisissez la valeur minimale des ventes de l'année dernière : $
.
6. Si vous développez un projet Windows, procédez comme suit : a. Dans la
Boîte à outils
, faites glisser un contrôle
Label
en haut du formulaire.
b. Dans la fenêtre
Propriétés
, attribuez à la propriété
Text
la valeur
Saisissez la valeur minimale des ventes de l'année dernière : $
.
7. Dans la
Boîte à outils
, faites glisser un contrôle
TextBox
à droite du texte.
8. Sélectionnez le contrôle
TextBox
, puis effectuez les opérations suivantes dans la fenêtre
Propriétés
: a. Attribuez à
ID
(ou
Name
) la valeur
lastYearsSales
.
b. Attribuez à
Text
la valeur
11000.00
.
9. Si vous développez un site Web, saisissez dans la deuxième ligne
Afficher les noms des clients
.
10. Si vous développez un projet Windows, procédez comme suit : a. Dans la
Boîte à outils
, faites glisser un contrôle
Label
sur la deuxième ligne du formulaire.
b. Dans la fenêtre
Propriétés
, attribuez à la propriété
Text
la valeur "Afficher les noms des clients".
11. Dans la
Boîte à outils
, faites glisser un contrôle
DropDownList
(
ComboBox
dans un projet Windows) à droite du texte.
12. Sélectionnez le contrôle
DropDownList
(
ComboBox
), puis attribuez à
ID
(ou
Name
) la valeur
"selectOperatorList" dans la fenêtre
Propriétés
.
13. Dans la
Boîte à outils
, faites glisser un contrôle
TextBox
à droite du contrôle DropDownList.
14. Sélectionnez le contrôle
TextBox
, puis effectuez les opérations suivantes dans la fenêtre
Propriétés
: a. Attribuez à
ID
(ou
Name
) la valeur customerName.
b. Attribuez à
Text
la valeur
A
.
15. Dans la
Boîte à outils
, faites glisser un contrôle
Button
sur la troisième ligne du formulaire et au-dessus du contrôle CrystalReportViewer.
16. Sélectionnez le contrôle
Button
, puis effectuez les opérations suivantes dans la fenêtre
Propriétés
: a. Attribuez à
ID
(ou
Name
) la valeur
redisplay
.
b. Attribuez à
Text
la valeur
Réafficher le rapport
.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
287
1.5.1.4.4 Définition manuelle de la formule de sélection dans le code
Vous allez à présent ajouter un code pour modifier la formule de sélection dans la classe code-behind.
1.5.1.4.4.1 Pour coder la formule de sélection
Procédure
1. Ouvrez le Web Form ou Windows Form.
2. Dans le menu
Affichage
, sélectionnez
Concepteur
.
3. Cliquez deux fois sur
Réafficher le rapport
.
La classe code-behind du rapport s'affiche et indique qu'une méthode d'événement redisplay_Click() a
été automatiquement générée.
4. Pour la formule de sélection, créez une variable chaîne dont les valeurs proviennent des contrôles
TextBox
.
La formule de sélection est similaire au texte que vous avez saisi dans la méthode
ConfigureCrystalReports(). Au lieu de spécifier une valeur minimale de ventes de 11 000 $, vous utilisez la valeur provenant du contrôle TextBox lastYearsSales. Pour le champ Nom du client, vous utilisez la valeur provenant du contrôle TextBox customerName.
Dim mySelectFormula As String = "{Customer.Last Year's Sales} >
" & lastYearsSales.Text _
& " AND Mid({Customer.Customer Name}, 1, 1) > """ & customerName.Text & """" string selectFormula = "{Customer.Last Year's Sales} > " + lastYearsSales.Text
+ " AND Mid({Customer.Customer Name}, 1, 1) > \"" + customerName.Text + "\"";
5. Affectez la variable chaîne à la propriété SelectionFormula du contrôle
CrystalReportViewer
.
myCrystalReportViewer.SelectionFormula = mySelectFormula crystalReportViewer.SelectionFormula = selectFormula;
6. Liez à nouveau le rapport CustomerBySalesName à la propriété ReportSource du contrôle
CrystalReportViewer
.
Remarque
Le chemin d'accès au fichier indiqué ici s'applique à un projet Visual Studio.
NomProjet
est remplacé par le nom de votre projet Web ou Windows.
NomUtilisateur
est remplacé par votre nom de connexion.
○ Le chemin par défaut d'un projet de site Web est le suivant : myCrystalReportViewer.ReportSource = "C:\WebSites\ NomProjet
\CustomersBySalesName.rpt"
288
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
crystalReportViewer.ReportSource = "C:\\WebSites\\ NomProjet\
\CustomersBySalesName.rpt";
○ Le chemin par défaut d'un projet de site Windows est le suivant : myCrystalReportViewer.ReportSource = "C:\Documents and Settings\
NomUtilisateur\Mes documents\Visual Studio\Projects\ NomProjet
\CustomersBySalesName.rpt" crystalReportViewer.ReportSource = "C:\\Documents and Settings\\
NomUtilisateur\\Mes documents\\Visual Studio\\Projects\\ NomProjet\
\CustomersBySalesName.rpt";
Résultats
Vous venez de créer une formule de sélection que vous pouvez modifier au moment de l'exécution.
1.5.1.4.4.2 Pour vérifier la formule de sélection
Procédure
1. Dans le menu
Générer
, cliquez sur
Générer la solution
.
2. Si vous rencontrez des erreurs lors de la génération, corrigez-les.
3. Dans le menu
Déboguer
, cliquez sur
Démarrer
.
4. Dans le contrôle
TextBox lastYearsSales
, saisissez
200000
.
5. Dans le contrôle
TextBox customerName
, saisissez
SAB
.
6. Cliquez sur
Réafficher
le
rapport
.
Le rapport Crystal affiche trois enregistrements clients : SAB Mountain, Tek Bikes et Tienda de Bicicletas El
Pardo.
Seuls les enregistrements clients dont le nom vient après les lettres "SAB" et dont les ventes annuelles de l'année dernière sont supérieures à la valeur "200000" s'affichent.
7. Revenez dans Visual Studio, puis cliquez sur
Arrêter
pour quitter le mode débogage.
1.5.1.4.5 Utilisation d'un contrôle DropDownList pour modifier la formule de sélection
Dans cette section, vous allez remplir le contrôle DropDownList avec des opérateurs de comparaison. Vous créez une énumération contenant les opérateurs de comparaison.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
289
Le contrôle DropDownList permet de choisir d'afficher les noms de client qui sont égaux, inférieurs, supérieurs, inférieurs ou égaux, supérieurs ou égaux, ou pas égaux au texte que vous avez saisi dans le contrôle TextBox.
Dans la méthode d'événement redisplay_Click(), vous modifiez la chaîne actuellement affectée à la propriété
SelectionFormula du contrôle CrystalReportViewer.
1.5.1.4.5.1 Pour créer une énumération
CeComparisonOperator
Procédure
1. Dans l'
Explorateur de solutions
, cliquez avec le bouton droit de la souris sur le nom du projet affiché en gras, pointez sur
Ajouter
, puis cliquez sur
Nouvel élément
.
2. Dans la boîte de dialogue
Ajouter un nouvel élément
, sélectionnez
Classe
dans la vue
Modèles
.
3. Dans le champ
Nom
, saisissez
CeComparisonOperator
, puis cliquez sur
Ajouter
.
Remarque
Vous pouvez être invité à placer cette classe dans un répertoire Code. Cliquez sur le bouton Oui.
4. Dans la signature de classe, remplacez le mot class par enum pour convertir la classe en énumération.
Dans un projet Windows C# pour Visual Studio, vous devez également remplacer l'espace de noms par le nom de votre projet.
Remarque
Dans Visual Basic, n'oubliez pas de remplacer les signatures d'ouverture et de fermeture de la classe par enum.
5. Les énumérations ne comportant aucun constructeur, supprimez la méthode constructeur par défaut qui est fournie dans la version C# du code.
6. Dans l'énumération, saisissez les valeurs suivantes :
EqualTo
LessThan
GreaterThan
LessThan_or_EqualTo
GreaterThan_or_EqualTo
Not_EqualTo
EqualTo,
LessThan,
GreaterThan,
LessThan_or_EqualTo,
GreaterThan_or_EqualTo,
Not_EqualTo
290
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.5.1.4.5.2 Pour remplir le contrôle DropDownList à l'aide de l'énumération CeComparisonOperator pour un site Web
Contexte
Les procédures suivantes indiquent comment lier l'énumération CeComparisonOperator au contrôle
DropDownList pour un site Web ou un projet Windows. Suivez les instructions de l'une des procédures ci-dessous.
Procédure
1. Ouvrez le Web Form.
2. Dans le menu
Affichage
, cliquez sur
Code
.
3. Dans le bloc conditionnel Not IsPostBack de la méthode ConfigureCrystalReports(), avant la déclaration de chaîne de la formule de sélection, définissez la propriété DataSource du contrôle
DropDownList selon les valeurs de l'énumération CeComparisonOperator.
selectOperatorList.DataSource =
System.Enum.GetValues(GetType(CeComparisonOperator)) selectOperatorList.DataSource =
System.Enum.GetValues(typeof(CeComparisonOperator));
4. Appelez à présent la méthode DataBind() du contrôle
DropDownList selectOperatorList
pour lier les valeurs au contrôle.
selectOperatorList.DataBind() selectOperatorList.DataBind();
1.5.1.4.5.3 Pour remplir le contrôle DropDownList à l'aide de l'énumération CeComparisonOperator pour un projet Windows
Procédure
1. Ouvrez le Windows Form.
2. Dans le menu
Affichage
, cliquez sur
Code
.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
291
3. Dans la méthode ConfigureCrystalReports(), avant la déclaration de chaîne de la formule de sélection, définissez la propriété DataSource du contrôle
ComboBox selectOperatorList
selon les valeurs de l'énumération CeComparisonOperator.
selectOperatorList.DataSource =
System.Enum.GetValues(GetType(CeComparisonOperator)) selectOperatorList.DataSource =
System.Enum.GetValues(typeof(CeComparisonOperator));
1.5.1.4.5.4 Pour créer la méthode d'assistance
GetSelectedCompareOperator()
Contexte
Créez ensuite la méthode d'assistance GetSelectedCompareOperator() pour renvoyer l'index sélectionné sous la forme d'une chaîne représentant un signe d'opérateur de comparaison.
Procédure
1. A la fin de la classe, créez une méthode d'assistance privée intitulée GetSelectedCompareOperator() qui renvoie une variable chaîne.
Private Function GetSelectedCompareOperator() As String
End Function private string GetSelectedCompareOperator()
{
}
2. Dans la méthode, créez une instruction "Select Case" [Visual Basic] ou "switch" [C#] qui référence les membres de l'énumération CeComparisonOperator et renvoie le signe d'opérateur de comparaison sous la forme d'une variable chaîne.
Select Case selectOperatorList.SelectedIndex
Case CeComparisonOperator.EqualTo
return "="
Case CeComparisonOperator.LessThan
return "<"
Case CeComparisonOperator.GreaterThan
return ">"
Case CeComparisonOperator.LessThan_or_EqualTo
return "<="
Case CeComparisonOperator.GreaterThan_or_EqualTo
return ">="
Case CeComparisonOperator.Not_EqualTo
return "<>"
Case Else
return "="
End Select
292
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
switch ((CeComparisonOperator)selectOperatorList.SelectedIndex)
{
case CeComparisonOperator.EqualTo:
return "=";
case CeComparisonOperator.LessThan:
return "<";
case CeComparisonOperator.GreaterThan:
return ">";
case CeComparisonOperator.LessThan_or_EqualTo:
return "<=";
case CeComparisonOperator.GreaterThan_or_EqualTo:
return ">=";
case CeComparisonOperator.Not_EqualTo:
return "<>";
default:
return "=";
}
1.5.1.4.5.5 Pour modifier l'opérateur de comparaison du paramètre Nom du client affecté à la propriété
SelectionFormula
Contexte
Dans la méthode d'événement redisplay_Click(), un signe "supérieur à" (">") est actuellement utilisé pour la sélection du champ Nom du client. Vous allez ensuite apprendre à remplacer le signe par l'opérateur de comparaison que vous avez sélectionné à partir du contrôle DropDownList. Le signe sélectionné est renvoyé sous la forme d'une chaîne lorsque vous appelez la méthode d'assistance GetSelectedCompareOperator().
Procédure
1. Au début de la méthode d'événement redisplay_Click(), appelez la méthode d'assistance
GetSelectedCompareOperator(), puis affectez le résultat à une variable chaîne.
Dim mySelectedOperator As String = GetSelectedCompareOperator() string selectedOperator = GetSelectedCompareOperator();
2. Pour la variable chaîne de la formule de sélection, remplacez le signe "supérieur à" (">") par la chaîne de l'opérateur sélectionnée.
Dim mySelectFormula As String = "{Customer.Last Year's Sales} >
" & lastYearsSales.Text _
& " AND Mid({Customer.Customer Name}, 1, 1) " & mySelectedOperator & " """ & customerName.Text & """" string selectFormula = "{Customer.Last Year's Sales} > " + lastYearsSales.Text
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
293
+ " AND Mid({Customer.Customer Name}, 1, 1) " + selectedOperator + "
\"" + customerName.Text + "\"";
1.5.1.4.5.6 Pour vérifier la formule de sélection du rapport
CustomersBySalesName
Contexte
Vous avez créé une formule de sélection qui dépend des valeurs saisies dans le champ Ventes de l'année dernière et le champ Nom du client.
Vous pouvez à présent créer et vérifier la formule de sélection.
Procédure
1. Dans le menu
Générer
, cliquez sur
Générer la solution
.
2. Si vous rencontrez des erreurs lors de la génération, corrigez-les.
3. Dans le menu
Déboguer
, cliquez sur
Démarrer
.
a. Dans le contrôle TextBox lastYearsSales, saisissez
40000
.
b. Dans le contrôle TextBox customerName, saisissez
Athens Bicycle Co
.
c. Dans le contrôle DropDownList, sélectionnez
LessThan
.
d. Cliquez sur
Réafficher le rapport
.
Le rapport Crystal affiche deux enregistrements clients : Alley Cat Cycles et Ankara Bicycle Company.
4. Revenez dans Visual Studio, puis cliquez sur
Arrêter
pour quitter le mode débogage.
1.5.1.5 Tutoriel : Personnalisation du contrôle
CrystalReportViewer
Dans ce tutoriel, vous allez apprendre à personnaliser l'affichage du contrôle CrystalReportViewer.
Introduction
Dans ce tutoriel, vous allez apprendre à personnaliser l'apparence du contrôle CrystalReportViewer en utilisant les propriétés de sa classe sous-jacente.
Vous allez également apprendre à utiliser les méthodes de sélection de la page, de zoom, de recherche et d'impression.
294
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Pour commencer, vous allez apprendre à personnaliser la barre d'outils CrystalReportViewer. Vous avez besoin d'un contrôle ListBox qui stocke les propriétés disponibles dans la barre d'outils. Seules les propriétés sélectionnées dans le contrôle ListBox s'affichent dans la barre d'outils CrystalReportViewer.
Vous allez ensuite ajouter un second contrôle ListBox pour stocker les éléments du rapport. Pour un site Web, vous pouvez également choisir d'afficher toutes les pages du rapport sous forme d'une page unique ou de pages séparées.
Vous allez apprendre à personnaliser la couleur d'arrière-plan à l'aide d'un contrôle DropDownList.
Vous allez apprendre ensuite à sélectionner la page de rapport que vous souhaitez visualiser. Vous avez besoin d'un contrôle TextBox pour saisir le numéro de page et d'un contrôle Button pour recharger le rapport à la page sélectionnée. Vous avez également besoin d'un contrôle TextBox et d'un contrôle Button pour modifier le facteur de zoom et rechercher un texte dans votre rapport.
Pour un site Web, vous disposez de propriétés du contrôle CrystalReportViewer qui ne sont pas disponibles pour un projet Windows : une propriété permettant de choisir le mode d'impression et d'autres propriétés permettant de changer la largeur, le style e
Exemple de code
Ce tutoriel fournit des exemples de code Visual Basic et C# qui illustrent la version terminée du projet. Suivez les instructions de ce tutoriel pour créer un projet ou ouvrez le projet d'exemple de code pour travailler à partir d'une version terminée.
Les exemples de code sont stockés dans des dossiers classés par langue et par type de projet. Les noms des dossiers de chaque version d'exemple de code sont les suivants :
● Site Web C# : CS_Web_CRVObjMod_CustomizeViewer
● Projet Windows C# : CS_Win_CRVObjMod_CustomizeViewer
● Site Web Visual Basic : VB_Web_CRVObjMod_CustomizeViewer
● Projet Windows Visual Basic : VB_Win_CRVObjMod_CustomizeViewer
Informations associées
Répertoire d'exemples de rapports [page 15]
1.5.1.5.1 Création d'un tableau de paramètres personnalisés
Dans cette section, vous allez créer et configurer un tableau (dans un site Web) ou un contrôle TableLayoutPanel
(dans un projet Windows) contenant les différents contrôles qui constituent votre tableau de paramètres personnalisés.
Les sites Web et les projets Windows utilisant des types de tableau différents, choisissez la procédure correspondant à votre site Web ou votre projet Windows.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
295
1.5.1.5.1.1 Pour créer un tableau de paramètres personnalisés pour un site Web
Procédure
1. Ouvrez la page Default.aspx (le Web Form) en mode
Design
.
2. Cliquez sur le contrôle
CrystalReportViewer
pour le sélectionner.
3. Cliquez sur la flèche orientée vers la gauche pour déplacer le curseur à gauche du contrôle
CrystalReportViewer
, puis appuyez sur
Entrée
.
4. Cliquez sur la flèche orientée vers le haut pour déplacer le curseur vers la ligne vide au-dessus du contrôle
CrystalReportViewer
.
5. Dans le menu
Disposition
, cliquez sur
Insérer un tableau
.
6. Dans la boîte de dialogue
Insérer un tableau
, sélectionnez l'option
Personnalisé
.
7. Dans le panneau
Disposition
, cochez la case
Largeur
et conservez la valeur 100 %.
8. Configurez pour
Lignes
le nombre 6 et pour
Colonnes
le nombre 4.
9. Dans le panneau
Attributs
, cochez la case
Bordure
et attribuez-lui la valeur 1.
10. Cliquez sur le bouton
Propriétés de la cellule
.
11. Dans la boîte de dialogue
Propriétés de la cellule
du panneau
Disposition
, dans la liste déroulante
Alignement vertical
, sélectionnez
Top
.
12. Cochez la case
Pas de retour automatique à la ligne
, puis cliquez sur
OK
.
13. Cliquez à nouveau sur
OK
pour fermer la boîte de dialogue
Insérer un tableau
.
Résultats
Vous pouvez maintenant ajouter des contrôles personnalisés pour votre site Web dans ce tableau.
.
1.5.1.5.1.2 Pour créer un tableau de paramètres personnalisés pour un projet Windows
Contexte
Remarque
de code spécifique nécessaire à cette procédure. Il est impossible de suivre cette procédure sans cette configuration.
296
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Procédure
1. Ouvrez le Windows Form en mode
Design
.
2. Cliquez sur la barre de titre du Windows Form pour le sélectionner entièrement, puis faites glisser le coin inférieur droit du formulaire pour l'agrandir jusqu'à ce qu'il remplisse la zone principale.
3. Cliquez sur le contrôle
CrystalReportViewer
pour le sélectionner.
4. Dans la fenêtre
Propriétés
, attribuez à la propriété Dock la valeur "Bottom".
5. Dans la fenêtre
Propriétés
, attribuez à la propriété Anchor la valeur "Top, Bottom, Left, Right".
6. Dans la
Boîte à outils
, faites glisser un contrôle
TableLayoutPanel
en haut à gauche du Windows Form.
Un contrôle TableLayoutPanel apparaît affichant deux colonnes et deux lignes.
7. Si le panneau des tâches guidées n'est pas ouvert, cliquez sur le bouton triangulaire dans le coin supérieur droit du contrôle
TableLayoutPanel
.
Le panneau des tâches guidées "Tâches TableLayoutPanel" s'affiche.
8. Dans le panneau
Tâches TableLayoutPanel
, cliquez sur le lien
Modifier les lignes et les colonnes
.
9. Dans la boîte de dialogue
Styles de ligne et de colonne
, dans la liste déroulante
Type de membre
, sélectionnez
Colonnes
.
10. Cliquez sur
Ajouter
jusqu'à ce que vous atteigniez quatre colonnes.
11. Pour chaque colonne, procédez de la manière suivante : a. Sélectionnez la colonne.
b. Dans le panneau
Type de taille
, sélectionnez
Pourcentage
.
c. Définissez 25 % pour chaque valeur.
12. Dans la liste déroulante
Type de membre
, sélectionnez
Lignes
.
13. Cliquez sur
Ajouter
jusqu'à ce que vous atteigniez cinq lignes.
Remarque
Le tableau du projet Windows nécessite une ligne de moins que le tableau d'un site Web parce qu'il y a un peu moins d'options configurables sur le contrôle CrystalReportViewer d'un projet Windows.
14. Pour chaque ligne, procédez de la manière suivante : a. Sélectionnez la ligne.
b. Dans le panneau
Type de taille
, sélectionnez
Pourcentage
.
c. Définissez 40 % pour la valeur de la première ligne, puis 15 % pour chaque ligne suivante.
Remarque
(1 x 40 %) et (4 x 15 %) = 100 % de l'espace disponible.
15. Cliquez sur
OK
.
16. Fermez le panneau des tâches
TableLayoutPanel
.
17. Faites glisser le coin inférieur droit du contrôle
TableLayoutPanel
pour agrandir le tableau jusqu'à ce qu'il remplisse l'espace que vous avez créé au-dessus du contrôle
CrystalReportViewer
.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
297
Résultats
Vous pouvez maintenant ajouter des contrôles personnalisés pour votre projet Windows dans ce tableau.
1.5.1.5.2 Eléments du rapport et de la barre d'outils du contrôle CrystalReportViewer
Dans ce tutoriel, vous allez manipuler les différents éléments du rapport et de la barre d'outils du contrôle
CrystalReportViewer.
Eléments du visualiseur
Les éléments par défaut du contrôle CrystalReportViewer varient légèrement en fonction des sites Web et des projets Windows :
● Pour les sites Web et les projets Windows :
○ Barre d'outils : affiche une barre d'outils au-dessus de la zone principale du rapport. Chaque élément de la barre d'outils est contrôlé séparément.
Remarque
Pour en savoir plus, voir la section sur les éléments de la barre d'outils ci-dessous.
○ Arborescence des groupes : affiche les titres de chaque groupe du rapport, de la même façon qu'une arborescence de répertoires ; elle s'affiche dans le panneau de la colonne gauche du rapport.
● Pour les sites Web uniquement :
○ Page principale : affiche le rapport dans la zone principale de la page.
○ Activer les pages séparées : détermine si le rapport doit être affiché sur une seule page Web ou sous la forme de pages séparées mises en forme.
● Pour les projets Windows uniquement :
○ Barre d'état : affiche le numéro de page en cours et d'autres informations sur le rapport au bas de la zone du rapport.
Eléments de la barre d'outils
Les éléments par défaut de la barre d'outils varient légèrement en fonction des sites Web et des projets Windows :
● Pour les sites Web et les projets Windows :
○ Bouton d'arborescence des groupes : affiche ou masque la section Arborescence des groupes du rapport.
○ Exporter : enregistre le rapport Crystal sous un autre format de fichier tel que RPT, PDF, DOC, XLS ou
RTF.
298
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
○ Imprimer : imprime le rapport Crystal dans un fichier PDF ou appelle la boîte de dialogue d'impression.
○ Navigation : permet de sélectionner la page suivante, la page précédente, la dernière page ou la première page à afficher.
○ Aller à la page : permet de saisir le numéro de la page à afficher.
○ Rechercher : permet de saisir une chaîne à rechercher dans le rapport.
○ Facteur de zoom : permet de sélectionner le facteur de zoom du rapport.
● Pour les sites Web uniquement :
○ Vue Liste (uniquement pour un site Web) : permet de choisir la vue du rapport à afficher (par exemple sous-rapports, etc.).
○ Explorer en amont : ouvre une page fournissant des informations plus détaillées que la rubrique actuelle.
○ Logo Crystal : affiche le logo du produit SAP Crystal Reports.
● Pour les projets Windows uniquement :
○ Actualiser : réaffiche le rapport.
○ Fermer la vue : ferme la vue actuelle du rapport si plusieurs vues sont ouvertes.
1.5.1.5.3 Ajout d'un mécanisme d'affichage et de masquage des éléments du rapport et de la barre d'outils
Contexte
Dans cette section, vous allez apprendre à ajouter un mécanisme d'affichage/masquage pour déterminer quels
éléments doivent être affichés dans la barre d'outils CrystalReportViewer.
Vous allez commencer par ajouter les contrôles ListBox et Button dans le tableau sur le Web Form ou le Windows
Form.
Vous allez ensuite créer deux énumérations qui répertorient les éléments du rapport et les éléments de la barre d'outils, puis vous allez remplir chaque contrôle ListBox avec les valeurs de l'une des énumérations.
Vous allez ensuite coder la méthode d'événement de clic du contrôle Button pour mettre à jour les éléments du rapport et de la barre d'outils.
Au sein du gestionnaire d'événements, les propriétés de la classe CrystalReportViewer sont définies en fonction des sélections effectuées dans les deux contrôles ListBox. Si un élément du contrôle ListBox est sélectionné, la propriété de la barre d'outils a la valeur True.
Plus loin dans ce tutoriel, vous utiliserez le contrôle Button pour mettre à jour d'autres sélections.
Au moment de l'exécution, vous pourrez choisir quels éléments du rapport et de la barre d'outils vous souhaitez afficher.
Commencez par ajouter les contrôles dans le tableau au bas du Web Form ou du Windows Form.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
299
Procédure
1. Ouvrez le Web Form ou le Windows Form en mode
Design
.
2. Dans la
Boîte à outils
, faites glisser un contrôle
Label
vers la première ligne de la première colonne du tableau.
3. Sélectionnez le contrôle
Label
, puis dans la fenêtre
Propriétés
, attribuez à la propriété Text la valeur
Sélectionner les éléments du rapport à afficher
.
4. Dans la
Boîte à outils
, faites glisser un contrôle
ListBox
vers la première ligne de la deuxième colonne du tableau.
5. Sélectionnez le contrôle
ListBox
, puis effectuez les opérations suivantes dans la fenêtre
Propriétés
: a. Attribuez à
ID
la valeur
listCRVReport
.
b. Attribuez à
SelectionMode
la valeur
Multiple
(ou
MultiExtended
dans un projet Windows).
6. Dans la
Boîte à outils
, faites glisser un second contrôle
Label
vers la première ligne de la troisième colonne du tableau.
7. Sélectionnez le contrôle
Label
, puis dans la fenêtre
Propriétés
, attribuez à la propriété Text la valeur
Sélectionner les éléments de la barre d'outils à afficher
.
8. Dans la
Boîte à outils
, faites glisser un contrôle
Button
vers la troisième ligne de la première colonne du tableau.
9. Cliquez sur le contrôle
Button
pour le sélectionner.
10. Dans la fenêtre
Propriétés
: a. Attribuez à
ID
la valeur "redisplay".
b. Attribuez à
Text
la valeur "Réafficher le rapport".
11. Dans un projet Windows, redimensionnez le contrôle
Button
pour afficher la totalité du texte qu'il contient.
Résultats
La prochaine procédure varie selon que vous créez un site Web ou un projet Windows. Choisissez l'une des procédures suivantes :
●
Configuration des contrôles ListBox pour un site Web [page 300]
●
Configuration des contrôles ListBox pour un projet Windows [page 307]
1.5.1.5.4 Configuration des contrôles ListBox pour un site
Web
Cette section explique comment configurer les contrôles ListBox d'un site Web. Si vous créez un projet Windows,
voir Configuration des contrôles ListBox pour un projet Windows [page 307]
.
Vous allez maintenant pouvoir créer le gestionnaire d'événements de clic du contrôle Button, puis ajouter du code
à ce gestionnaire d'événements. Le gestionnaire d'événements définit différentes valeurs booléennes pour les propriétés de la barre d'outils de la classe CrystalReportViewer en fonction des sélections effectuées par l'utilisateur dans le contrôle ListBox.
300
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Avant de créer ce gestionnaire d'événements, vous devez créer deux énumérations : CeWebCRVReportOptions et CeWebCRVToolbarOptions.
Ces énumérations fournissent une liste d'éléments du rapport et d'éléments de la barre d'outils pouvant être sélectionnés.
1.5.1.5.4.1 Pour créer l'énumération
CeWebCRVReportOptions
Procédure
1. Dans l'
Explorateur de solutions
, cliquez avec le bouton droit de la souris sur le nom du site Web, pointez sur
Ajouter
, puis cliquez sur
Nouvel élément
.
2. Dans la boîte de dialogue
Ajouter un nouvel élément
, sélectionnez
Classe
dans la vue
Modèles
.
3. Dans le champ
Nom
, saisissez "CeWebCRVReportOptions", puis cliquez sur
Ajouter
.
Remarque
Vous pouvez être invité à placer cette classe dans un répertoire App_Code. Cliquez sur le bouton Oui.
4. Dans la signature de classe, remplacez le mot class par "enum" pour convertir la classe en énumération.
Remarque
Dans Visual Basic, n'oubliez pas de remplacer les signatures d'ouverture et de fermeture de la classe par enum.
5. Les énumérations ne comportant aucun constructeur, supprimez la méthode constructeur par défaut qui est fournie dans la version C# du code.
6. Dans l'énumération, saisissez les valeurs suivantes :
Toolbar
Group_Tree
Main_Page
Enable_Separate_Pages
Toolbar,
Group_Tree,
Main_Page,
Enable_Separate_Pages
7. Dans le menu
Fichier
, cliquez sur
Enregistrer tout
.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
301
1.5.1.5.4.2 Pour créer l'énumération
CeWebCRVToolbarOptions
Procédure
1. Dans l'
Explorateur de solutions
, cliquez avec le bouton droit de la souris sur le nom du site Web, pointez sur
Ajouter
, puis cliquez sur
Nouvel élément
.
2. Dans la boîte de dialogue
Ajouter un nouvel élément
, sélectionnez
Classe
dans la vue
Modèles
.
3. Dans le champ
Nom
, saisissez
CeWebCRVToolbarOptions
, puis cliquez sur
Ajouter
.
Remarque
Vous pouvez être invité à placer cette classe dans un répertoire App_Code. Cliquez sur le bouton Oui.
4. Dans la signature de classe, remplacez le mot class par "enum" pour convertir la classe en énumération.
Remarque
Dans Visual Basic, n'oubliez pas de remplacer les signatures d'ouverture et de fermeture de la classe par enum.
5. Les énumérations ne comportant aucun constructeur, supprimez la méthode constructeur par défaut qui est fournie dans la version C# du code.
6. Dans l'énumération, saisissez les valeurs suivantes :
Group_Tree_Button
Export_Button
Print_Button
View_List_Button
Drill_Up_Button
Page_Navigation_Button
Go_to_Page_Button
Search_Button
Zoom_Button
Crystal_Logo
Group_Tree_Button,
Export_Button,
Print_Button,
View_List_Button,
Drill_Up_Button,
Page_Navigation_Button,
Go_to_Page_Button,
Search_Button,
Zoom_Button,
Crystal_Logo
7. Dans le menu
Fichier
, cliquez sur
Enregistrer tout
.
302
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.5.1.5.4.3 Pour remplir les contrôles ListBox à partir des
énumérations
Contexte
Vous remplissez à présent les contrôles ListBox avec les valeurs d'énumération qui représentent les propriétés disponibles pour la barre d'outils CrystalReportViewer.
Procédure
1. Ouvrez le Web Form.
2. Dans le menu
Affichage
, cliquez sur
Code
.
3. Dans la méthode ConfigureCrystalReports(), ajoutez un bloc conditionnel Not IsPostBack.
Remarque
Vous avez créé la méthode ConfigureCrystalReports() dans la section
au début de ce tutoriel.
If Not IsPostBack Then
End If if (!IsPostBack)
{
}
4. Dans le bloc conditionnel, attribuez à la propriété DataSource du contrôle ListBox listCRVReport les valeurs de l'énumération CeWebCRVReportOptions.
listCRVReport.DataSource = System.Enum.GetValues(GetType(CeWebCRVReportOptions)) listCRVReport.DataSource = System.Enum.GetValues(typeof(CeWebCRVReportOptions));
5. Appelez la méthode DataBind() du contrôle ListBox listCRVReport pour lier les valeurs au contrôle.
listCRVReport.DataBind() listCRVReport.DataBind();
6. Attribuez ensuite à la propriété DataSource du contrôle ListBox listCRVToolbar les valeurs de l'énumération CeWebCRVToolbarOptions.
listCRVToolbar.DataSource =
System.Enum.GetValues(GetType(CeWebCRVToolbarOptions)) listCRVToolbar.DataSource =
System.Enum.GetValues(typeof(CeWebCRVToolbarOptions));
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
303
7. Appelez à présent la méthode DataBind() du contrôle ListBox listCRVToolbar pour lier les valeurs au contrôle.
listCRVToolbar.DataBind() listCRVToolbar.DataBind();
8. En dehors du bloc conditionnel Not IsPostBack, liez le fichier Chart.rpt à la propriété ReportSource du contrôle
CrystalReportViewer
.
Pour en savoir plus sur les exemples de rapports, voir
Répertoire d'exemples de rapports [page 15] .
myCrystalReportViewer.ReportSource = "C:\Program Files\Microsoft Visual Studio
9,0\Crystal Reports\Samples\fr\Reports\Feature Examples\Chart.rpt" crystalReportViewer.ReportSource = "C:\\Program Files\\Microsoft Visual Studio
9.0\\Crystal Reports\\Samples\\fr\\Reports\\Feature Examples\\Chart.rpt";
1.5.1.5.4.4 Pour coder le contrôle Button de réaffichage pour un site Web
Contexte
Vous pouvez à présent ajouter le code à l'événement de clic du contrôle Button. La méthode de clic doit définir des valeurs booléennes pour les éléments du rapport et de la barre d'outils de la classe CrystalReportViewer.
Si un élément est sélectionné, la valeur booléenne est True et l'élément du rapport ou de la barre d'outils s'affiche.
Si aucune propriété n'est sélectionnée, la valeur booléenne est False et l'élément du rapport ou de la barre d'outils ne s'affiche pas.
Procédure
1. Ouvrez le Web Form.
2. Dans le menu
Affichage
, cliquez sur
Concepteur
.
3. Cliquez deux fois sur le contrôle Button de
réaffichage
.
La classe code-behind du rapport s'affiche et indique qu'une méthode d'événement redisplay_Click() a
été automatiquement générée.
4. Dans la méthode d'événement redisplay_Click(), appelez la propriété Selected de chaque élément des contrôles
ListBox
listCRVReport et listCRVToolbar.
La propriété Selected renvoie une valeur booléenne afin de définir les propriétés de la barre d'outils
CrystalReportViewer
.
304
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Remarque
Les éléments du rapport et de la barre d'outils CrystalReportViewer sont définis sur leurs valeurs correspondantes dans les énumérations CeWebCRVReportOptions et CeWebCRVToolbarOptions. Les valeurs de la classe enum renvoient une chaîne que vous devez convertir en nombre entier.
myCrystalReportViewer.HasToggleGroupTreeButton = listCRVToolbar.Items(Convert.ToInt32(CeWebCRVToolbarOptions.Group_Tree_Button)).S
elected myCrystalReportViewer.HasExportButton = listCRVToolbar.Items(Convert.ToInt32(CeWebCRVToolbarOptions.Export_Button)).Selec
ted myCrystalReportViewer.HasPrintButton = listCRVToolbar.Items(Convert.ToInt32(CeWebCRVToolbarOptions.Print_Button)).Select
ed myCrystalReportViewer.HasViewList = listCRVToolbar.Items(Convert.ToInt32(CeWebCRVToolbarOptions.View_List_Button)).Se
lected myCrystalReportViewer.HasDrillUpButton = listCRVToolbar.Items(Convert.ToInt32(CeWebCRVToolbarOptions.Drill_Up_Button)).Sel
ected myCrystalReportViewer.HasPageNavigationButtons = listCRVToolbar.Items(Convert.ToInt32(CeWebCRVToolbarOptions.Page_Navigation_Butto
n)).Selected
myCrystalReportViewer.HasGotoPageButton = listCRVToolbar.Items(Convert.ToInt32(CeWebCRVToolbarOptions.Go_to_Page_Button)).S
elected myCrystalReportViewer.HasSearchButton = listCRVToolbar.Items(Convert.ToInt32(CeWebCRVToolbarOptions.Search_Button)).Selec
ted myCrystalReportViewer.HasZoomFactorList = listCRVToolbar.Items(Convert.ToInt32(CeWebCRVToolbarOptions.Zoom_Button)).Selecte
d myCrystalReportViewer.HasCrystalLogo = listCRVToolbar.Items(Convert.ToInt32(CeWebCRVToolbarOptions.Crystal_Logo)).Select
ed myCrystalReportViewer.DisplayToolbar = listCRVReport.Items(Convert.ToInt32(CeWebCRVReportOptions.Toolbar)).Selected
myCrystalReportViewer.DisplayGroupTree = listCRVReport.Items(Convert.ToInt32(CeWebCRVReportOptions.Group_Tree)).Selected
myCrystalReportViewer.DisplayPage = listCRVReport.Items(Convert.ToInt32(CeWebCRVReportOptions.Main_Page)).Selected
myCrystalReportViewer.SeparatePages = listCRVReport.Items(Convert.ToInt32(CeWebCRVReportOptions.Enable_Separate_Pages))
.Selected
crystalReportViewer.HasToggleGroupTreeButton = listCRVToolbar.Items[Convert.ToInt32(CeWebCRVToolbarOptions.Group_Tree_Button)].S
elected; crystalReportViewer.HasExportButton = listCRVToolbar.Items[Convert.ToInt32(CeWebCRVToolbarOptions.Export_Button)].Selec
ted; crystalReportViewer.HasPrintButton = listCRVToolbar.Items[Convert.ToInt32(CeWebCRVToolbarOptions.Print_Button)].Select
ed; crystalReportViewer.HasViewList = listCRVToolbar.Items[Convert.ToInt32(CeWebCRVToolbarOptions.View_List_Button)].Se
lected; crystalReportViewer.HasDrillUpButton = listCRVToolbar.Items[Convert.ToInt32(CeWebCRVToolbarOptions.Drill_Up_Button)].Sel
ected; crystalReportViewer.HasPageNavigationButtons = listCRVToolbar.Items[Convert.ToInt32(CeWebCRVToolbarOptions.Page_Navigation_Butto
n)].Selected;
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
305
crystalReportViewer.HasGotoPageButton = listCRVToolbar.Items[Convert.ToInt32(CeWebCRVToolbarOptions.Go_to_Page_Button)].S
elected; crystalReportViewer.HasSearchButton = listCRVToolbar.Items[Convert.ToInt32(CeWebCRVToolbarOptions.Search_Button)].Selec
ted; crystalReportViewer.HasZoomFactorList = listCRVToolbar.Items[Convert.ToInt32(CeWebCRVToolbarOptions.Zoom_Button)].Selecte
d; crystalReportViewer.HasCrystalLogo = listCRVToolbar.Items[Convert.ToInt32(CeWebCRVToolbarOptions.Crystal_Logo)].Select
ed; crystalReportViewer.DisplayToolbar = listCRVReport.Items[Convert.ToInt32(CeWebCRVReportOptions.Toolbar)].Selected; crystalReportViewer.DisplayGroupTree = listCRVReport.Items[Convert.ToInt32(CeWebCRVReportOptions.Group_Tree)].Selected; crystalReportViewer.DisplayPage = listCRVReport.Items[Convert.ToInt32(CeWebCRVReportOptions.Main_Page)].Selected; crystalReportViewer.SeparatePages = listCRVReport.Items[Convert.ToInt32(CeWebCRVReportOptions.Enable_Separate_Pages)]
.Selected;
1.5.1.5.4.5 Pour vérifier le contrôle Button de réaffichage
Contexte
Vous êtes maintenant prêt à générer et exécuter le projet afin de personnaliser la barre d'outils
CrystalReportViewer.
Procédure
1. Dans le menu
Générer
, cliquez sur
Générer la solution
.
2. Si vous rencontrez des erreurs lors de la génération, corrigez-les.
3. Dans le menu
Déboguer
, cliquez sur
Démarrer
.
Les contrôles ListBox listCRVReport et listCRVToolbar affichent une liste complète des options du rapport et de la barre d'outils CrystalReportViewer.
4. Dans la liste des options de la barre d'outils, sélectionnez "Page_Navigation_Button", "Print_Button" et
"Export_Button".
5. Dans la liste des options du rapport, sélectionnez "Toolbar", "Group_Tree" et "Main_Page".
6. Cliquez sur
Réafficher le rapport
.
La page se recharge et affiche un contrôle CrystalReportViewer avec une barre d'outils, une arborescence des groupes et une page principale visibles. Dans la barre d'outils, seuls les boutons Navigation, Imprimer et
Exporter sont visibles.
7. Revenez dans Visual Studio, puis cliquez sur
Arrêter
pour quitter le mode débogage.
306
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.5.1.5.5 Configuration des contrôles ListBox pour un projet
Windows
Cette section explique comment configurer les contrôles ListBox d'un projet Windows. Si vous créez un site Web, voir
Configuration des contrôles ListBox pour un site Web [page 300] .
Vous allez maintenant pouvoir créer le gestionnaire d'événements de clic du contrôle Button, puis ajouter du code
à ce gestionnaire d'événements. Le gestionnaire d'événements définit différentes valeurs booléennes pour les propriétés de la barre d'outils de la classe CrystalReportViewer en fonction des sélections effectuées par l'utilisateur dans le contrôle ListBox.
Avant de créer ce gestionnaire d'événements, vous devez créer deux énumérations : CeWinCRVReportOptions et CeWinCRVToolbarOptions.
Ces énumérations fournissent une liste d'éléments du rapport et d'éléments de la barre d'outils pouvant être sélectionnés.
1.5.1.5.5.1 Pour créer l'énumération
CeWinCRVReportOptions
Procédure
1. Dans l'
Explorateur de solutions
, cliquez avec le bouton droit de la souris sur le nom du projet affiché en gras, pointez sur
Ajouter
, puis cliquez sur
Classe
.
2. Dans le champ
Nom
de la boîte de dialogue
Ajouter un nouvel élément
, saisissez CeWinCRVReportOptions, puis cliquez sur
Ajouter
.
Remarque
Dans Visual Studio, vous pouvez être invité à placer cette classe dans un répertoire App_Code. Cliquez sur le bouton Oui.
3. Dans la signature de classe, remplacez le mot class par "enum" pour convertir la classe en énumération.
Remarque
Dans Visual Basic, n'oubliez pas de remplacer les signatures d'ouverture et de fermeture de la classe par enum.
4. Les énumérations ne comportant aucun constructeur, supprimez la méthode constructeur par défaut qui est fournie dans la version C# du code.
5. Dans l'énumération, saisissez les valeurs suivantes :
Toolbar
Group_Tree
Status_Bar
Toolbar,
Group_Tree,
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
307
Status_Bar
6. Dans le menu
Fichier
, cliquez sur
Enregistrer tout
.
1.5.1.5.5.2 Pour créer l'énumération
CeWinCRVToolbarOptions
Procédure
1. Dans l'
Explorateur de solutions
, cliquez avec le bouton droit de la souris sur le nom du projet affiché en gras, pointez sur
Ajouter
, puis cliquez sur
Classe
.
2. Dans le champ
Nom
de la boîte de dialogue
Ajouter un nouvel élément
, saisissez "CeWinCRVToolbarOptions", puis cliquez sur
Ajouter
.
Remarque
Vous pouvez être invité à placer cette classe dans un répertoire App_Code. Cliquez sur le bouton Oui.
3. Dans la signature de classe, remplacez le mot class par "enum" pour convertir la classe en énumération.
Remarque
Dans Visual Basic, n'oubliez pas de remplacer les signatures d'ouverture et de fermeture de la classe par enum.
4. Les énumérations ne comportant aucun constructeur, supprimez la méthode constructeur par défaut qui est fournie dans la version C# du code.
5. Dans l'énumération, saisissez les valeurs suivantes :
Page_Navigation_Button
Go_to_Page_Button
Close_View_Button
Print_Button
Refresh_Button
Export_Button
Group_Tree_Button
Zoom_Button
Search_Button
Page_Navigation_Button,
Go_to_Page_Button,
Close_View_Button,
Print_Button,
Refresh_Button,
Export_Button,
Group_Tree_Button,
Zoom_Button,
Search_Button
6. Dans le menu
Fichier
, cliquez sur
Enregistrer tout
.
308
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.5.1.5.5.3 Pour remplir les contrôles ListBox à partir des
énumérations
Contexte
Vous remplissez à présent les contrôles ListBox avec les valeurs d'énumération qui représentent les propriétés disponibles pour la barre d'outils CrystalReportViewer.
Procédure
1. Ouvrez le Windows Form.
2. Dans le menu
Affichage
, cliquez sur
Code
.
3. Dans la méthode ConfigureCrystalReports(), attribuez à la propriété DataSource du contrôle ListBox listCRVReport les valeurs de l'énumération CeWinCRVReportOptions.
Remarque
Vous avez créé la méthode ConfigureCrystalReports() dans la section
au début de ce tutoriel.
listCRVReport.DataSource =
System.Enum.GetValues(GetType(CeWinCRVReportOptions)) listCRVReport.DataSource =
System.Enum.GetValues(typeof(CeWinCRVReportOptions));
4. Attribuez à la propriété DataSource du contrôle ListBox listCRVToolbar les valeurs de l'énumération
CeWinCRVToolbarOptions.
listCRVToolbar.DataSource =
System.Enum.GetValues(GetType(CeWinCRVToolbarOptions)) listCRVToolbar.DataSource =
System.Enum.GetValues(typeof(CeWinCRVToolbarOptions));
5. Liez le fichier Chart.rpt à la propriété ReportSource du contrôle CrystalReportViewercontrol.
Pour en savoir plus sur les exemples de rapports, voir
Répertoire d'exemples de rapports [page 15] .
myCrystalReportViewer.ReportSource = "C:\Program Files\Microsoft Visual Studio
9,0\Crystal Reports\Samples\fr\Reports\Feature Examples\Chart.rpt" crystalReportViewer.ReportSource = "C:\\Program Files\\Microsoft Visual Studio
9.0\\Crystal Reports\\Samples\\fr\\Reports\\Feature Examples\\Chart.rpt";
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
309
1.5.1.5.5.4 Pour coder le contrôle Button de réaffichage pour un projet Windows
Contexte
Vous pouvez à présent ajouter le code à l'événement de clic du contrôle Button. La méthode de clic doit définir des valeurs booléennes pour les éléments du rapport et de la barre d'outils de la classe CrystalReportViewer.
Si un élément est sélectionné, la valeur booléenne est True et l'élément du rapport ou de la barre d'outils s'affiche.
Si aucune propriété n'est sélectionnée, la valeur booléenne est False et l'élément du rapport ou de la barre d'outils ne s'affiche pas.
Procédure
1. Ouvrez le Windows Form.
2. Dans le menu
Affichage
, cliquez sur
Concepteur
.
3. Cliquez deux fois sur le contrôle Button de
réaffichage
.
La classe code-behind du rapport s'affiche et indique qu'une méthode d'événement redisplay_Click() a
été automatiquement générée.
4. Dans la méthode d'événement redisplay_Click(), appelez la méthode GetSelected(), puis transmettez chaque élément du contrôle
ListBox
.
La méthode GetSelected() renvoie une valeur booléenne afin de définir les propriétés du rapport et de la barre d'outils
CrystalReportViewer
.
Remarque
Les éléments du rapport et de la barre d'outils CrystalReportViewer sont définis sur leurs valeurs correspondantes dans les énumérations CeWinCRVReportOptions et CeWinCRVToolbarOptions.
myCrystalReportViewer.ShowPageNavigateButtons = listCRVToolbar.GetSelected(CeWinCRVToolbarOptions.Page_Navigation_Button) myCrystalReportViewer.ShowGotoPageButton = listCRVToolbar.GetSelected(CeWinCRVToolbarOptions.Go_to_Page_Button) myCrystalReportViewer.ShowCloseButton = listCRVToolbar.
GetSelected(CeWinCRVToolbarOptions.Close_View_Button) myCrystalReportViewer.ShowPrintButton = listCRVToolbar.GetSelected(CeWinCRVToolbarOptions.Print_Button) myCrystalReportViewer.ShowRefreshButton = listCRVToolbar.GetSelected(CeWinCRVToolbarOptions.Refresh_Button) myCrystalReportViewer.ShowExportButton = listCRVToolbar.GetSelected(CeWinCRVToolbarOptions.Export_Button) myCrystalReportViewer.ShowGroupTreeButton = listCRVToolbar.GetSelected(CeWinCRVToolbarOptions.Group_Tree_Button) myCrystalReportViewer.ShowZoomButton = listCRVToolbar.GetSelected(CeWinCRVToolbarOptions.Zoom_Button) myCrystalReportViewer.ShowTextSearchButton = listCRVToolbar.GetSelected(CeWinCRVToolbarOptions.Search_Button) myCrystalReportViewer.DisplayToolbar = listCRVReport.GetSelected(CeWinCRVReportOptions.Toolbar) myCrystalReportViewer.DisplayGroupTree = listCRVReport.GetSelected(CeWinCRVReportOptions.Group_Tree)
310
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
myCrystalReportViewer.DisplayStatusBar = listCRVReport.GetSelected(CeWinCRVReportOptions.Status_Bar) crystalReportViewer.ShowPageNavigateButtons = listCRVToolbar.GetSelected(Convert.ToInt32(CeWinCRVToolbarOptions.Page_Navigation
_Button)); crystalReportViewer.ShowGotoPageButton = listCRVToolbar.GetSelected(Convert.ToInt32(CeWinCRVToolbarOptions.Go_to_Page_Butt
on)); crystalReportViewer.ShowCloseButton = listCRVToolbar.
GetSelected(Convert.ToInt32(CeWinCRVToolbarOptions.Close_View_Button)); crystalReportViewer.ShowPrintButton = listCRVToolbar.GetSelected(Convert.ToInt32(CeWinCRVToolbarOptions.Print_Button)); crystalReportViewer.ShowRefreshButton = listCRVToolbar.GetSelected(Convert.ToInt32(CeWinCRVToolbarOptions.Refresh_Button)
); crystalReportViewer.ShowExportButton = listCRVToolbar.GetSelected(Convert.ToInt32(CeWinCRVToolbarOptions.Export_Button))
; crystalReportViewer.ShowGroupTreeButton = listCRVToolbar.GetSelected(Convert.ToInt32(CeWinCRVToolbarOptions.Group_Tree_Butt
on)); crystalReportViewer.ShowZoomButton = listCRVToolbar.GetSelected(Convert.ToInt32(CeWinCRVToolbarOptions.Zoom_Button)); crystalReportViewer.ShowTextSearchButton = listCRVToolbar.GetSelected(Convert.ToInt32(CeWinCRVToolbarOptions.Search_Button))
; crystalReportViewer.DisplayToolbar = listCRVReport.GetSelected(Convert.ToInt32(CeWinCRVReportOptions.Toolbar)); crystalReportViewer.DisplayGroupTree = listCRVReport.GetSelected(Convert.ToInt32(CeWinCRVReportOptions.Group_Tree)); crystalReportViewer.DisplayStatusBar = listCRVReport.GetSelected(Convert.ToInt32(CeWinCRVReportOptions.Status_Bar));
1.5.1.5.5.5 Pour vérifier le contrôle Button de réaffichage
Contexte
Vous êtes maintenant prêt à générer et exécuter le projet afin de personnaliser la barre d'outils
CrystalReportViewer.
Procédure
1. Dans le menu
Générer
, cliquez sur
Générer la solution
.
2. Si vous rencontrez des erreurs lors de la génération, corrigez-les.
3. Dans le menu
Déboguer
, cliquez sur
Démarrer
.
Les contrôles ListBox listCRVReportet listCRVToolbar affichent une liste complète des options de
CrystalReportViewer rapport et barre d'outils.
4. Dans la liste des options de la barre d'outils, sélectionnez "Page_Navigation_Button", "Print_Button" et
"Export_Button".
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
311
5. Dans la liste des options du rapport, sélectionnez "Toolbar", "Group_Tree" et "Main_Page".
6. Cliquez sur
Réafficher le rapport
.
La page se recharge et affiche un contrôle CrystalReportViewer avec une barre d'outils, une arborescence des groupes et une page principale visibles. Dans la barre d'outils, seuls les boutons Navigation, Imprimer et
Exporter sont visibles.
7. Revenez dans Visual Studio, puis cliquez sur
Arrêter
pour quitter le mode débogage.
1.5.1.5.6 Modification de la couleur d'arrière-plan du rapport
Dans cette section, vous allez apprendre à modifier la couleur d'arrière-plan du rapport.
Vous allez commencer par ajouter un contrôle DropDownList pour sélectionner la couleur d'arrière-plan.
1.5.1.5.6.1 Pour ajouter des contrôles pour modifier la couleur d'arrière-plan
Procédure
1. Ouvrez le Web Form ou Windows Form.
2. Dans le menu
Affichage
, cliquez sur
Concepteur
.
3. Dans la
Boîte à outils
, faites glisser un contrôle
Label
vers la seconde ligne de la première colonne du tableau.
4. Sélectionnez le contrôle Label, puis dans la fenêtre
Propriétés
, attribuez à la propriété Text la valeur
Sélectionnez la couleur d'arrière-plan
.
5. Dans la
Boîte à outils
, faites glisser un contrôle
DropDownList
(pour les sites Web) ou
ComboBox
(pour les projets Windows) vers la seconde ligne de la deuxième colonne du tableau.
6. Sélectionnez le contrôle DropDownList/ComboBox, puis dans la fenêtre
Propriétés
, attribuez à ID/Name la valeur "selectBackColor".
1.5.1.5.6.2 Pour définir les valeurs par défaut des contrôles
Contexte
Vous devez à présent ajouter du code à la méthode ConfigureCrystalReports() afin de définir les valeurs par défaut de la liste des couleurs d'arrière-plan et des cases à cocher des composants du rapport.
312
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Procédure
1. Ouvrez le Web Form ou Windows Form.
2. Dans le menu
Affichage
, cliquez sur
Code
.
Dans la méthode ConfigureCrystalReports(), vous ajoutez ensuite du code pour définir les valeurs par défaut des contrôles.
Remarque
Si vous créez un site Web, placez ces lignes de code dans le bloc conditionnel Not IsPostBack. Si vous créez un projet Windows, placez ces lignes de code dans la zone principale de la méthode
ConfigureCrystalReports().
3. Affectez l'énumération KnownColor à la propriété DataSource du contrôle DropDownList selectBackColor.
selectBackColor.DataSource = System.Enum.GetValues(GetType(KnownColor)) selectBackColor.DataSource = System.Enum.GetValues(typeof(KnownColor));
4. Dans un site Web, liez la source de données au contrôle DropDownList selectBackColor.
selectBackColor.DataBind() selectBackColor.DataBind();
1.5.1.5.6.3 Pour affecter la sélection de couleur d'arrièreplan dans un site Web
Contexte
Ajoutez ensuite du code à l'événement de clic Button pour réafficher le rapport en fonction de la sélection
DropDownList selectBackColor.
Ce code est différent pour un site Web et un projet Windows. Sélectionnez la procédure appropriée à votre cas cidessous.
Procédure
1. Ouvrez le Web Form.
2. Dans le menu
Affichage
, cliquez sur
Code
.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
313
3. Au-dessus de la signature de classe, ajoutez une déclaration "Imports" [Visual Basic] ou "using"
[C#] au début de la classe pour l'espace de noms System.Drawing (si cet espace de noms n'a pas déjà été déclaré).
Imports System.Drawing
using System.Drawing;
4. Dans le gestionnaire d'événements redisplay_Click(), ajoutez le code suivant : dans le contrôle
DropDownList selectBackColor, extrayez l'élément sélectionné sous la forme d'une chaîne, puis transmettezle à la méthode FromName() de la classe Color. Affectez la valeur Color à la propriété BackColor du contrôle
CrystalReportViewer.
myCrystalReportViewer.BackColor =
Color.FromName(selectBackColor.SelectedItem.Text) crystalReportViewer.BackColor =
Color.FromName(selectBackColor.SelectedItem.Text);
1.5.1.5.6.4 Pour affecter la sélection de couleur d'arrièreplan dans un projet Windows
Contexte
Vous êtes maintenant prêt à tester le bouton Réafficher le rapport. Passez à la section en question, ci-dessous.
Procédure
1. Ouvrez le Windows Form.
2. Dans le menu
Affichage
, cliquez sur
Code
.
3. Au-dessus de la signature de classe, ajoutez une déclaration "Imports" [Visual Basic] ou "using"
[C#] au début de la classe pour l'espace de noms System.Drawing (si cet espace de noms n'a pas déjà été déclaré).
Imports System.Drawing
using System.Drawing;
4. Dans le gestionnaire d'événements redisplay_Click(), ajoutez du code pour extraire l'élément sélectionné du contrôle ComboBox selectBackColor et convertissez-le en une instance KnownColor.
Dim mySelectedKnownColor As KnownColor = CType(selectBackColor.SelectedItem,
KnownColor)
KnownColor selectedKnownColor = (KnownColor)selectBackColor.SelectedItem;
314
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
5. Créez un bloc conditionnel qui vérifie que la couleur d'arrière-plan sélectionnée n'est pas transparente.
If Not mySelectedKnownColor = KnownColor.Transparent Then
End If if (selectedKnownColor != KnownColor.Transparent)
{
}
6. Dans le bloc If, transmettez l'instance KnownColor à la méthode FromKnownName() de la classe
System.Drawing.Color. Affectez la valeur Color à la propriété BackColor du contrôle
CrystalReportViewer
.
myCrystalReportViewer.BackColor =
System.Drawing.Color.FromKnownColor(mySelectedKnownColor) crystalReportViewer.BackColor =
System.Drawing.Color.FromKnownColor(selectedKnownColor);
1.5.1.5.6.5 Pour vérifier le contrôle Button de réaffichage
Contexte
Vous êtes maintenant prêt à tester le bouton Réafficher le rapport.
Procédure
1. Dans le menu
Générer
, cliquez sur
Générer la solution
.
2. Si vous rencontrez des erreurs lors de la génération, corrigez-les.
3. Dans le menu
Déboguer
, cliquez sur
Démarrer
.
Le contrôle DropDownList/ComboBox s'affiche ainsi que les contrôles ListBox et Button que vous avez ajoutés à la procédure précédente.
4. Dans le contrôle
DropDownList selectBackColor
, sélectionnez la couleur bleue.
Remarque
N'oubliez pas de sélectionner les éléments de rapport, plus particulièrement Main_Page, pour qu'ils soient visibles.
5. Cliquez sur
Réafficher le rapport
.
La page se recharge pour afficher le rapport avec un arrière-plan bleu.
6. Revenez dans Visual Studio, puis cliquez sur
Arrêter
pour quitter le mode débogage.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
315
1.5.1.5.7 Ajout d'un code pour sélectionner une page de rapport
Dans cette section, vous allez apprendre à coder l'option "Aller à la page" de la barre d'outils
CrystalReportViewer.
La barre d'outils CrystalReportViewer comporte des boutons de navigation et une zone de texte permettant de sélectionner les pages du rapport. Vous pouvez utiliser les méthodes suivantes de la classe
CrystalReportViewer pour coder manuellement les sélections de page :
● ShowFirstPage()
● ShowLastPage()
● ShowNextPage()
● ShowNthPage(int PageNumber)
● ShowPreviousPage()
Lorsque vous appelez l'une de ces méthodes, la page sélectionnée s'affiche pour le rapport en cours.
1.5.1.5.7.1 Pour ajouter des contrôles TextBox et Button à l'option "Aller à la page"
Procédure
1. Ouvrez le Web Form ou le Windows Form en mode
Design
.
2. Dans la
Boîte à outils
, faites glisser un contrôle
TextBox
vers la quatrième ligne de la première colonne du tableau.
3. Sélectionnez le contrôle
TextBox
, puis effectuez les opérations suivantes dans la fenêtre
Propriétés
: a. Attribuez à
ID
(ou
Name
) la valeur "pageNumber".
b. Laissez la propriété
Text
vide.
4. Dans la
Boîte à outils
, faites glisser un contrôle
Button
vers la quatrième ligne de la deuxième colonne du tableau.
5. Sélectionnez le contrôle
Button
, puis effectuez les opérations suivantes dans la fenêtre
Propriétés
: a. Attribuez à
ID
(ou
Name
) la valeur "goToPage".
b. Attribuez à la propriété
Text
la valeur "Aller à la page".
316
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.5.1.5.7.2 Pour coder le gestionnaire d'événements Click() pour le contrôle Button
Procédure
1. Cliquez deux fois sur le contrôle Button
Aller à la page
.
La classe code-behind du rapport s'affiche et indique qu'un gestionnaire d'événements goToPage_Click() a
été automatiquement généré.
2. Convertissez le texte saisi dans le contrôle
TextBox
en un nombre entier, puis transmettez la valeur à la méthode ShowNthPage() du contrôle
CrystalReportViewer
.
Remarque
Vous n'avez pas validé l'entrée d'un nombre entier dans le contrôle TextBox. Dans des conditions réelles, vous ajouteriez un contrôle de validation configuré par rapport au contrôle TextBox.
myCrystalReportViewer.ShowNthPage(Convert.ToInt32(pageNumber.Text)) crystalReportViewer.ShowNthPage(Convert.ToInt32(pageNumber.Text));
1.5.1.5.7.3 Pour vérifier le contrôle Button goToPage
Procédure
1. Dans le menu
Générer
, sélectionnez
Générer la solution
.
2. Si vous rencontrez des erreurs lors de la génération, corrigez-les.
3. Dans le menu
Déboguer
, cliquez sur
Démarrer
.
Le rapport Chart et tous les contrôles que vous avez ajoutés s'affichent.
4. Saisissez
3
dans le contrôle
pageNumber TextBox
, puis cliquez sur
Aller à la page
.
La page se recharge et affiche la page 3 du rapport.
5. Revenez dans Visual Studio, puis cliquez sur
Arrêter
pour quitter le mode débogage.
1.5.1.5.8 Modification du facteur de zoom
Par défaut, la barre d'outils CrystalReportViewer permet de sélectionner un facteur de zoom compris entre
25 % et 400 % par incréments fixes de 25 %, 50 % ou 100 %. Dans cette section, vous allez ajouter un code permettant de sélectionner n'importe quel facteur de zoom.
Vous avez besoin d'un contrôle TextBox dans lequel vous saisissez le facteur de zoom souhaité et d'un contrôle
Button afin de recharger la page.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
317
1.5.1.5.8.1 Pour ajouter des contrôles TextBox et Button à l'option Zoom
Procédure
1. Ouvrez le Web Form ou le Windows Form en mode
Design
.
2. Dans la
Boîte à outils
, faites glisser un contrôle
TextBox
vers la quatrième ligne de la troisième colonne du tableau.
3. Sélectionnez le contrôle
TextBox
, puis effectuez les opérations suivantes dans la fenêtre
Propriétés
: a. Attribuez à
ID
(ou
Name
) la valeur "zoomFactor".
b. Laissez la propriété
Text
vide.
4. Dans la
Boîte à outils
, faites glisser un contrôle
Button
vers la quatrième ligne de la quatrième colonne du tableau.
5. Sélectionnez le contrôle
Button
, puis effectuez les opérations suivantes dans la fenêtre
Propriétés
: a. Attribuez à
ID
(ou
Name
) la valeur "updateZoomFactor".
b. Attribuez à
Text
la valeur "% Zoom".
1.5.1.5.8.2 Pour coder le gestionnaire d'événements Click() pour le contrôle Button
Procédure
1. Cliquez deux fois sur le contrôle Button
updateZoomFactor
.
La classe code-behind du rapport s'affiche et indique qu'un gestionnaire d'événements updateZoomFactor_Click() a été automatiquement généré.
2. Convertissez le texte saisi dans le contrôle
TextBox
en un nombre entier, puis transmettez la valeur à la méthode Zoom() du contrôle
CrystalReportViewer
.
Remarque
Vous n'avez pas validé l'entrée d'un nombre entier dans le contrôle TextBox. Dans des conditions réelles, vous ajouteriez un contrôle de validation configuré par rapport au contrôle TextBox.
myCrystalReportViewer.Zoom(Convert.ToInt32(zoomFactor.Text)) crystalReportViewer.Zoom(Convert.ToInt32(zoomFactor.Text));
318
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.5.1.5.8.3 Pour vérifier le contrôle Button updateZoomFactor
Procédure
1. Dans le menu
Générer
, cliquez sur
Générer la solution
.
2. Si vous rencontrez des erreurs lors de la génération, corrigez-les.
3. Dans le menu
Déboguer
, cliquez sur
Démarrer
.
Le rapport Chart et tous les contrôles que vous avez ajoutés s'affichent.
4. Saisissez "38" dans la zone de texte
zoomFactor
, puis cliquez sur
Zoom
.
La page se recharge et affiche la page en cours à une taille 38 % inférieure à sa taille d'origine.
5. Revenez dans Visual Studio, puis cliquez sur
Arrêter
pour quitter le mode débogage.
1.5.1.5.9 Recherche dans le rapport
Dans cette section, vous allez apprendre à rechercher un texte dans un rapport Crystal lié au contrôle
CrystalReportViewer.
Vous avez besoin d'un contrôle TextBox pour y saisir la chaîne recherchée, d'un contrôle Button pour lancer la recherche dans le rapport et d'un contrôle Label pour être informé de la réussite ou de l'échec de la recherche.
1.5.1.5.9.1 Pour ajouter des contrôles TextBox, Button et
Label à l'option Rechercher
Procédure
1. Ouvrez le Web Form ou le Windows Form en mode
Design
.
2. Dans la
Boîte à outils
, faites glisser un contrôle
TextBox
vers la cinquième ligne de la première colonne du tableau.
3. Sélectionnez le contrôle
TextBox
, puis effectuez les opérations suivantes dans la fenêtre
Propriétés
: a. Attribuez à
ID
(ou
Name
) la valeur "searchText".
b. Laissez la propriété
Text
vide.
4. Dans la
Boîte à outils
, faites glisser un contrôle
Button
vers la cinquième ligne de la deuxième colonne du tableau.
5. Sélectionnez le contrôle
Button
, puis effectuez les opérations suivantes dans la fenêtre
Propriétés
: a. Attribuez à
ID
(ou
Name
) la valeur "search".
b. Attribuez à
Text
la valeur "Rechercher le texte".
6. Dans la
Boîte à outils
, faites glisser un contrôle
Label
vers la cinquième ligne de la troisième colonne du tableau.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
319
a. Attribuez à
ID
(ou
Name
) la valeur "message".
b. Laissez la propriété
Text
vide.
c. Attribuez à
ForeColor
la valeur
Red
(couleur rouge).
7. Créez la classe MessageConstants pour stocker les réponses standard sous forme de constantes chaîne pour la recherche.
1.5.1.5.9.2 Pour coder le gestionnaire d'événements search_Click() d'un site Web
Contexte
Vous devez ensuite appeler la méthode SearchAndHighlightText() dans le contrôle Button de recherche.
Remarque
Le comportement de la méthode SearchAndHighlightText() est différent selon que vous créez un site
Web ou un projet Windows.
Etant donné que le comportement de la méthode est différent pour un site Web et pour un projet Windows, suivez la procédure adaptée à votre site Web ou votre projet Windows.
Procédure
1. Cliquez deux fois sur le contrôle Button de recherche
search
.
La classe code-behind du rapport s'affiche et indique qu'un gestionnaire d'événements search_Click() a
été automatiquement généré.
2. Extrayez le texte saisi dans le contrôle
TextBox
, puis transmettez la valeur à la méthode
SearchAndHighlightText() du contrôle
CrystalReportViewer
. Affectez l'appel de méthode à une variable booléenne.
Remarque
Pour que la classe SearchDirection soit accessible, vous devez inclure une instruction "Imports"
[Visual Basic] ou "using" [C#] au début de la classe code-behind pour l'espace de noms
.)
Dim mySearchResult As Boolean = myCrystalReportViewer.SearchAndHighlightText(searchText.Text,
SearchDirection.Forward) bool searchResult = crystalReportViewer.SearchAndHighlightText(searchText.Text,
SearchDirection.Forward);
320
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
3. Créez un bloc conditionnel qui vérifie si la recherche a été fructueuse.
If Not mySearchResult Then
Else
End If
{
} if(!searchResult)
{
} else
4. Dans le bloc If, affectez la constante MessageConstants.SUCCESS à la propriété Text du contrôle Label message.
message.Text = MessageConstants.SUCCESS
message.Text = MessageConstants.SUCCESS;
5. Dans le bloc Else, affectez la constante MessageConstants.FAILURE à la propriété Text du contrôle Label message.
message.Text = MessageConstants.FAILURE
message.Text = MessageConstants.FAILURE;
1.5.1.5.9.3 Pour coder le gestionnaire d'événements search_Click() d'un projet Windows
Contexte
Ignorez la procédure suivante pour les projets Windows et passez directement à la procédure de vérification qui suit.
Procédure
1. Cliquez deux fois sur le contrôle Button de recherche
search
.
La classe code-behind du rapport s'affiche et indique qu'un gestionnaire d'événements search_Click() a
été automatiquement généré.
2. Extrayez le texte saisi dans le contrôle
TextBox
, puis transmettez la valeur à la méthode
SearchAndHighlightText() du contrôle
CrystalReportViewer
. Affectez l'appel de méthode à une variable booléenne.
Dim mySearchResult As Boolean = myCrystalReportViewer.SearchAndHighlightText(searchText.Text)
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
321
bool searchResult = crystalReportViewer.SearchAndHighlightText(searchText.Text);
3. Créez un bloc conditionnel qui vérifie si la recherche a été fructueuse.
If mySearchResult Then
Else
End If
{
} if(searchResult)
{
} else
4. Dans le bloc If, affectez la constante MessageConstants.SUCCESS à la propriété Text du contrôle Label message.
message.Text = MessageConstants.SUCCESS
message.Text = MessageConstants.SUCCESS;
5. Dans le bloc Else, affectez la constante MessageConstants.FAILURE à la propriété Text du contrôle message Label.
message.Text = MessageConstants.FAILURE
message.Text = MessageConstants.FAILURE;
1.5.1.5.9.4 Pour vérifier le contrôle Button de recherche
Procédure
1. Dans le menu
Générer
, cliquez sur
Générer la solution
.
2. Si vous rencontrez des erreurs lors de la génération, corrigez-les.
3. Dans le menu
Déboguer
, cliquez sur
Démarrer
.
Le rapport Chart et tous les contrôles que vous avez ajoutés s'affichent.
4. Saisissez
China
dans la zone de texte
searchText
, puis cliquez sur
Rechercher
.
La page se recharge et affiche le résultat de la recherche ainsi qu'un message de réussite.
5. Saisissez
hello
dans la zone de texte
searchText
, puis cliquez sur
Rechercher
.
La page se recharge et affiche un message d'échec.
6. Revenez dans Visual Studio, puis cliquez sur
Arrêter
pour quitter le mode débogage.
322
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Résultats
Les autres options de personnalisation sont disponibles uniquement pour la version Web du contrôle
.
Si vous développez un projet Windows, vous avez maintenant terminé le tutoriel.
1.5.1.5.10 Ajout d'une bordure au rapport pour un site Web
Dans cette section, vous allez apprendre à ajouter une bordure personnalisée au rapport Crystal pour un site Web.
Pour un projet Windows, les propriétés de largeur, de style et de couleur de la bordure ne sont pas disponibles.
Les styles de bordure sont répertoriés dans l'énumération BorderStyle. Les couleurs sont répertoriées dans l'énumération KnownColor. Cependant, la propriété BorderColor du contrôle CrystalReportViewer extrait les valeurs de la classe Color. Vous devez par conséquent convertir la valeur KnownColor en valeur Color.
Pour commencer, vous ajoutez les contrôles nécessaires au Web Form. Vous avez besoin d'un contrôle TextBox, de deux contrôles DropDownList et d'un contrôle Button pour dessiner la bordure.
1.5.1.5.10.1 Pour ajouter les contrôles afin de définir la largeur, le style et la couleur de la bordure
Procédure
1. Ouvrez le Web Form.
2. Dans le menu
Affichage
, cliquez sur
Concepteur
.
3. Dans la
boîte à outils
, faites glisser un contrôle
Label
vers la sixième ligne de la première colonne du tableau.
4. Sélectionnez le contrôle
Label
, puis dans la fenêtre
Propriétés
, attribuez à la propriété
Text
la valeur "Largeur de la bordure".
5. Dans la
boîte à outils
, faites glisser un contrôle
TextBox
dans la même cellule du tableau que le contrôle
Label
.
6. Sélectionnez le contrôle
TextBox
, puis dans la fenêtre
Propriétés
, attribuez à
ID
(ou
Name
) la valeur
"borderWidth".
7. Dans la
boîte à outils
, faites glisser un second contrôle
Label
vers la sixième ligne de la deuxième colonne du tableau.
8. Sélectionnez le contrôle
Label
, puis dans la fenêtre
Propriétés
, attribuez à Text la valeur "Style de bordure".
9. Dans la
boîte à outils
, faites glisser un contrôle
DropDownList
dans la même cellule du tableau que le contrôle
Label
.
10. Sélectionnez le contrôle
DropDownList
, puis dans la fenêtre
Propriétés
, attribuez à
ID
(ou
Name
) la valeur
"selectBorderStyle".
11. Dans la
boîte à outils
, faites glisser un troisième contrôle
Label
vers la sixième ligne de la troisième colonne du tableau.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
323
12. Sélectionnez le contrôle
Label
, puis dans la fenêtre
Propriétés
, attribuez à Textla valeur "Couleur de la bordure".
13. Dans la
boîte à outils
, faites glisser un contrôle
DropDownList
dans la même cellule du tableau que le contrôle
Label
.
14. Sélectionnez le contrôle
DropDownList
, puis dans la fenêtre
Propriétés
, attribuez à
ID
(ou
Name
) la valeur
"selectBorderColor".
15. Dans la
boîte à outils
, faites glisser un contrôle
Button
vers la sixième ligne de la quatrième colonne du tableau.
16. Sélectionnez le contrôle
Button
, puis effectuez les opérations suivantes dans la fenêtre
Propriétés
: a. Attribuez à
ID
(ou
Name
) la valeur "drawBorder".
b. Attribuez à la propriété
Text
la valeur "Dessiner une bordure".
1.5.1.5.10.2 Pour remplir les contrôles DropDownList
Contexte
Vous devez à présent remplir les contrôles DropDownList avec les styles ou les couleurs de bordure disponibles pour le contrôle CrystalReportViewer. Les contrôles DropDownList sont remplis dans la méthode
ConfigureCrystalReports().
Pour un site Web, les styles de bordure sont stockés dans l'énumération
System.Web.UI.WebControls.BorderStyle. Les couleurs de bordure sont extraites à partir de l'énumération
System.Drawing.KnownColor.
Procédure
1. Au-dessus de la signature de classe, ajoutez une déclaration "Imports" [Visual Basic] ou "using"
[C#] au début de la classe de l'espace de noms System.Web.UI.WebControls et System.Drawing (si cet espace de noms n'a pas déjà été déclaré).
Imports System.Web.UI.WebControls
Imports System.Drawing
using System.Web.UI.WebControls; using System.Drawing;
2. Dans le bloc conditionnel Not IsPostBack de la méthode ConfigureCrystalReports(), affectez l'énumération BorderStyle à la propriété DataSource du contrôle
DropDownList selectBorderStyle
.
selectBorderStyle.DataSource = System.Enum.GetValues(GetType(BorderStyle)) selectBorderStyle.DataSource = System.Enum.GetValues(typeof(BorderStyle));
3. Liez la source de données au contrôle DropDownList selectBorderStyle.
324
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
selectBorderStyle.DataBind() selectBorderStyle.DataBind();
4. Toujours dans le bloc conditionnel Not IsPostBack, affectez l'énumération BorderStyle à la propriété
DataSource du contrôle
DropDownList selectBorderStyle
.
selectBorderColor.DataSource =
System.Enum.GetValues(GetType(KnownColor)) selectBorderColor.DataSource =
System.Enum.GetValues(typeof(KnownColor));
5. Liez la source de données au contrôle DropDownList selectBorderColor.
selectBorderColor.DataBind() selectBorderColor.DataBind();
1.5.1.5.10.3 Pour coder le contrôle Button Dessiner une bordure
Contexte
Ensuite, vous allez affecter les valeurs aux propriétés BorderWidth, BorderStyle et BorderColor du contrôle
CrystalReportViewer.
Procédure
1. Ouvrez le Web Form.
2. Dans le menu
Affichage
, cliquez sur
Concepteur
.
3. Cliquez deux fois sur le contrôle Button
Dessiner une bordure
.
La classe code-behind du rapport s'affiche et indique qu'un gestionnaire d'événements drawBorder_Click() a été automatiquement généré.
4. Dans le gestionnaire d'événements drawBorder_Click(), affectez le texte saisi dans le contrôle TextBox borderWidth à la propriété BorderWidth du contrôle CrystalReportViewer.
Remarque
Vous n'avez pas validé l'entrée d'un nombre entier dans le contrôle TextBox. Dans des conditions réelles, vous ajouteriez un contrôle de validation configuré par rapport au contrôle TextBox.
myCrystalReportViewer.BorderWidth =
Unit.Parse(borderWidth.Text.ToString())
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
325
crystalReportViewer.BorderWidth =
Convert.ToInt32(borderWidth.Text);
5. Dans le contrôle DropDownList selectBorderStyle, extrayez l'index sélectionné, puis convertissez-le en une valeur BorderStyle. Affectez la valeur BorderStyle à la propriété BorderStyle du contrôle
CrystalReportViewer.
myCrystalReportViewer.BorderStyle = CType(selectBorderStyle.SelectedIndex,
BorderStyle) crystalReportViewer.BorderStyle = (BorderStyle)selectBorderStyle.SelectedIndex;
6. Dans le contrôle
DropDownList selectBorderColor
, extrayez l'élément sélectionné sous la forme d'une chaîne, puis transmettez-le à la méthode FromName() de la classe Color. Affectez la valeur Color à la propriété
BorderColor du contrôle
CrystalReportViewer
.
myCrystalReportViewer.BorderColor =
Color.FromName(selectBorderColor.SelectedItem.Text) crystalReportViewer.BorderColor =
Color.FromName(selectBorderColor.SelectedItem.Text);
1.5.1.5.10.4 Pour dessiner une bordure autour du rapport
Crystal
Procédure
1. Dans le menu
Générer
, cliquez sur
Générer la solution
.
2. Si vous rencontrez des erreurs lors de la génération, corrigez-les.
3. Dans le menu
Déboguer
, cliquez sur
Démarrer
.
4. Pour la largeur de la bordure, saisissez
10
.
5. Pour le style de la bordure, sélectionnez
Double
.
6. Pour la couleur de la bordure, sélectionnez
SteelBlue
.
7. Cliquez sur le bouton
Dessiner une bordure
.
La page se recharge et affiche une bordure autour du rapport Crystal.
8. Revenez dans Visual Studio, puis cliquez sur
Arrêter
pour quitter le mode débogage.
1.5.1.5.11 Configuration de la persistance Session pour un site Web
Dans cette section, vous allez apprendre à configurer la persistance Session pour les événements de clic.
Lorsqu'une page Web est rechargée lors d'un événement de clic, les modifications apportées au modèle d'objet
CrystalReportViewer sont perdues.
326
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.5.1.5.11.1 Pour montrer le manque de persistance d'un site
Web
Procédure
1. Dans le menu
Générer
, sélectionnez
Générer la solution
.
2. Si vous rencontrez des erreurs lors de la génération, corrigez-les.
3. Dans le menu
Déboguer
, cliquez sur
Démarrer
.
4. Dans le contrôle DropDownList selectBackColor, sélectionnez la couleur bleue.
5. Cliquez sur
Réafficher le rapport
.
La page se recharge pour afficher le rapport sans aucune barre d'outils, avec un arrière-plan bleu.
6. Pour la largeur de la bordure, saisissez "10".
7. Pour le style de la bordure, sélectionnez "Double".
8. Pour la couleur de la bordure, sélectionnez "SteelBlue".
9. Cliquez sur
Dessiner Bordure
.
La page se recharge pour afficher une bordure autour du rapport Crystal et la couleur bleue de l'arrière-plan disparaît.
10. Saisissez "3" dans le contrôle
TextBox pageNumber
, puis cliquez sur
Aller à la page
.
La page se recharge pour afficher la page 3 et la bordure du rapport n'est plus visible.
11. Revenez dans Visual Studio, puis cliquez sur
Arrêter
pour quitter le mode débogage.
1.5.1.5.11.2 Pour ajouter un code d'affectation Session au gestionnaire d'événements drawBorder_Click()
Contexte
Vous devez ajouter un code de persistance à votre application afin que les modifications apportées au modèle d'objet CrystalReportViewer soient rendues persistantes lorsque les pages Web sont rechargées.
Pour commencer, vous ajoutez un code de persistance pour les valeurs de bordure au gestionnaire d'événements drawBorder_Click(), auquel ces valeurs sont affectées en premier. Puis, dans la méthode
ConfigureCrystalReports(), les valeurs stockées dans Session sont extraites et affectées aux propriétés respectives de la classe CrystalReportViewer.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
327
Procédure
Dans le gestionnaire d'événements drawBorder_Click(), à la suite du code existant, ajoutez les quatre affectations Session BackColor, BorderColor, BorderStyle et BorderWidth.
Session("myBorderColor") = myCrystalReportViewer.BorderColor.ToString()
Session("myBorderStyle") = myCrystalReportViewer.BorderStyle
Session("myBorderWidth") = myCrystalReportViewer.BorderWidth
Session["borderColor"] = crystalReportViewer.BorderColor.ToString();
Session["borderStyle"] = crystalReportViewer.BorderStyle;
Session["borderWidth"] = crystalReportViewer.BorderWidth;
1.5.1.5.11.3 Pour ajouter un code d'extraction Session à la méthode ConfigureCrystalReports()
Contexte
Vous pouvez maintenant extraire ces valeurs de Session dans la méthode ConfigureCrystalReports().
Procédure
1. A la fin de la méthode ConfigureCrystalReports(), créez un bloc If qui vérifie si la variable Session
BackColor est null.
Si elle n'est pas null, dans le bloc If, extrayez la propriété BackColor de Session et effectuez un cast de celle-ci en chaîne. Transmettez la chaîne à la méthode FromName() de la classe Color et affectez l'instance
Color à la propriété BackColor de l'instance CrystalReportViewer.
If Not IsNothing(Session("myBackColor")) Then
myCrystalReportViewer.BackColor =
Color.FromName(CType(Session("myBackColor"), String))
End If if (Session["backColor"] != null)
{
crystalReportViewer.BackColor = Color.FromName((string)Session["backColor"]);
}
2. Créez un second bloc If qui vérifie si la variable Session BorderColor est null. Si elle n'est pas null, dans le bloc If, extrayez la propriété BorderColor de Session et effectuez un cast de celle-ci en chaîne.
Transmettez la chaîne à la méthode FromName() de la classe Color et affectez l'instance Color à la propriété BorderColor de l'instance CrystalReportViewer.
If Not IsNothing(Session("myBorderColor")) Then
328
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
myCrystalReportViewer.BorderColor =
Color.FromName(CType(Session("myBorderColor"), String))
End If if (Session["borderColor"] != null)
{
crystalReportViewer.BorderColor =
Color.FromName((string)Session["borderColor"]);
}
3. Créez un troisième bloc If qui vérifie si la variable Session BorderStyle est null. Si elle n'est pas null, dans le bloc If, extrayez la propriété BorderStyle de Session et effectuez un cast de celle-ci en BorderStyle.
myCrystalReportViewer.BorderStyle = CType(Session("myBorderStyle"), BorderStyle) if (Session["borderStyle"] != null)
{
crystalReportViewer.BorderStyle = (BorderStyle)Session["borderStyle"];
}
4. Créez un quatrième bloc If qui vérifie si la variable Session BorderWidth est null. Si elle n'est pas null, dans le bloc If, extrayez la propriété BorderWidth de Session et convertissez-la en entier.
myCrystalReportViewer.BorderWidth = Convert.ToInt32(Session("myBorderWidth")) if (Session["borderStyle"] != null)
{
crystalReportViewer.BorderWidth = Convert.ToInt32(Session["borderStyle"]);
}
1.5.1.5.11.4 Pour coder le contrôle Button drawBorder
Contexte
Dans la procédure suivante, vous ajoutez une persistance Session au gestionnaire d'événements de clic du contrôle Button de réaffichage.
Procédure
1. Dans le gestionnaire d'événements redisplay_Click(), affectez l'élément sélectionné du contrôle
DropDownList selectBackColor
à Session.
Session("myBackColor") = selectBackColor.SelectedItem.Text
Session["backColor"] = selectBackColor.SelectedItem.Text;
2. Dans le gestionnaire d'événements drawBorder_Click(), affectez la propriété Text du contrôle
TextBox borderWidth
à Session.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
329
Session("myBorderWidth") = borderWidth.Text
Session["borderWidth"] = borderWidth.Text;
3. Affectez l'index sélectionné dans DropDownList selectBorderStyle à Session.
Session("myBorderStyle") = selectBorderStyle.SelectedIndex
Session["borderStyle"] = selectBorderStyle.SelectedIndex;
4. Affectez l'élément sélectionné dans DropDownList selectBorderColor à Session.
Session("myBorderColor") = selectBorderColor.SelectedItem.Text
Session["borderColor"] = selectBorderColor.SelectedItem.Text;
Résultats
Vous pouvez maintenant générer et exécuter le projet, afin de vérifier que les changements apportés au rapport sont persistants entre les événements de clic.
1.5.2 Tutoriels du modèle d'objet ReportDocument
Cette section présente divers tutoriels basés sur le modèle d'objet ReportDocument.
Cette section présente divers tutoriels basés sur le modèle d'objet ReportDocument.
1.5.2.1 Tutoriel : Persistance du modèle d'objet
ReportDocument à l'aide de Session
Dans ce tutoriel, vous allez utiliser le modèle d'objet ReportDocument et effectuer des modifications par programmation sur un rapport au moment de l'exécution.
Dans ce tutoriel, vous allez utiliser le modèle d'objet ReportDocument et effectuer des modifications par programmation sur un rapport au moment de l'exécution. Vous apprendrez également à utiliser Session pour garantir la persistance de ces modifications au fur et à mesure du rechargement des pages Web.
Seules les applications Web nécessitant une persistance Session, ce tutoriel ne s'applique pas aux projets
Windows.
330
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Introduction
Le projet que vous allez créer dans ce tutoriel utilise un Web Form contenant un contrôle CrystalReportViewer et deux boutons qui modifient l'ordre de tri du rapport dans le modèle d'objet ReportDocument.
Vous allez tout d'abord créer le projet sans la méthode de persistance Session. Sans la persistance, vous pouvez constater que la modification de l'ordre de tri ne dure que le temps d'un événement de clic.
Vous ajouterez ensuite la méthode de persistance Session au projet. L'instance ReportDocument est placée dans Session au moment de la création, ainsi qu'à chaque modification de l'état de cette instance
ReportDocument.
Chaque fois que le rapport doit être réaffiché, l'instance ReportDocument est extraite de Session et liée au contrôle CrystalReportViewer. Ceci permet de garantir que chaque fois que le rapport est affiché, l'utilisateur visualise la version la plus récente de l'instance ReportDocument.
Remarque
Ce tutoriel utilise la méthode Session, car vous allez rendre persistantes les modifications apportées au modèle d'objet ReportDocument. Si vous envisagez d'utiliser uniquement le modèle d'objet limité contenu dans le contrôle CrystalReportViewer, utilisez exclusivement ViewState.
Lors de l'utilisation de Session pour rendre persistant un objet
ReportDocument, d'autres modèles de persistance sont-ils utilisés ?
Lors de l'utilisation de Session pour rendre persistant un objet ReportDocument, d'autres modèles de persistance sont-ils utilisés ?
Oui. Dans une application Web ASP.NET, les objets utilisent généralement Session pour la persistance, tandis que les contrôles serveur Web utilisent ViewState. Du fait qu'une application SAP Crystal Reports, version développeur pour Microsoft Visual Studio utilise des objets et des contrôles serveur Web pour interagir avec les rapports, la persistance est partagée par Session et ViewState :
● Session rend persistant le modèle d'objet ReportDocument, qui interagit par programmation avec le rapport au moment de l'exécution.
● ViewState rend persistant le contrôle CrystalReportViewer, qui affiche le rapport. Plus particulièrement,
ViewState rend persistantes les propriétés affichées, définies dans la barre d'outils de CrystalReportViewer.
ViewState rend également persistants les événements (tels que zoom et NextPage) déclenchés à partir des boutons de la barre d'outils.
La persistance de ViewState est gérée automatiquement. Vous ne codez donc que la persistance de Session dans ce tutoriel.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
331
Exemple de code
Ce tutoriel fournit des exemples de code Visual Basic et C# qui illustrent la version terminée du projet. Suivez les instructions de ce tutoriel pour créer un projet ou ouvrez le projet d'exemple de code pour travailler à partir d'une version terminée.
Les exemples de code sont stockés dans des dossiers classés par langue et par type de projet. Les noms des dossiers de chaque version d'exemple de code sont les suivants :
● Site Web C# : CS_Web_RDObjMod_Session
● Site Web Visual Basic : VB_Web_RDObjMod_Session
Informations associées
Quelle méthode de persistance utiliser avec SAP Crystal Reports ? [page 53]
Répertoire d'exemples de rapports [page 15]
1.5.2.1.1 Configuration des boutons sur le Web Form
Vous allez tout d'abord ajouter deux boutons au Web Form, leur donner un nom, puis créer des événements de clic pour chacun d'eux.
1.5.2.1.1.1 Pour ajouter des boutons au Web Form
Procédure
1. Ouvrez la page
Default.aspx
.
2. Dans le menu
Affichage
, cliquez sur
Concepteur
.
3. Cliquez sur le contrôle
CrystalReportViewer
et appuyez sur la FLECHE GAUCHE du clavier afin de faire apparaître un curseur clignotant, puis appuyez sur la touche ENTREE.
Le contrôle CrystalReportViewer descend d'une ligne.
4. Dans la
boîte à outils
, faites glisser un contrôle serveur Web
Button
au-dessus du contrôle
CrystalReportViewer
.
5. Cliquez à droite du contrôle
Button
afin de faire apparaître un curseur clignotant, puis appuyez deux fois sur la barre espace.
6. Dans la
boîte à outils
, faites glisser un second contrôle serveur Web
Button
à droite du premier contrôle
Button
.
332
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.5.2.1.1.2 Pour définir les propriétés Text et ID de chaque contrôle Button
Procédure
1. Cliquez sur le premier contrôle serveur Web Button pour le sélectionner.
2. Dans la fenêtre
Propriétés
:
○ Attribuez à
ID
la valeur "sortOrderDescending".
○ Attribuez à
Text
la valeur "Trier par ordre décroissant".
3. Cliquez sur le second contrôle serveur Web Button pour le sélectionner.
4. Dans la fenêtre
Propriétés
:
○ Attribuez à
ID
la valeur "sortOrderAscending".
○ Attribuez à
Text
la valeur "Trier par ordre croissant".
1.5.2.1.1.3 Création d'événements de clic pour chaque contrôle Button
Procédure
1. Cliquez deux fois sur le premier contrôle serveur Web Button.
La classe code-behind s'ouvre et une méthode d'événement sortOrderDescending_Click() est créée dans la partie inférieure de la classe.
2. Revenez au mode Design de la page
Default.aspx
.
3. Cliquez deux fois sur le second contrôle serveur Web Button.
La classe code-behind s'ouvre et une méthode d'événement sortOrderAscending_Click() est créée dans la partie inférieure de la classe.
1.5.2.1.2 Programmation des événements Button avec un ordre de tri
Dans cette procédure, vous allez programmer le modèle d'objet ReportDocument du rapport dans la méthode d'événement et définir un ordre de tri croissant dans une méthode d'événement et un ordre de tri décroissant dans l'autre méthode d'événement.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
333
1.5.2.1.2.1 Pour programmer le modèle d'objet
ReportDocument du rapport dans la méthode d'événement sortOrderDescending_Click
Procédure
1. Ouvrez la classe code-behind et recherchez la méthode d'événement sortOrderDescending_Click().
2. Dans la méthode d'événement, extrayez la propriété SortFields de la propriété DataDefinition de l'instance de rapport et affectez-la à une instance de la classe indexée SortFields.
Dim mySortFields As SortFields = hierarchicalGroupingReport.DataDefinition.SortFields
SortFields sortFields = hierarchicalGroupingReport.DataDefinition.SortFields;
3. Extrayez la première instance SortField de la classe indexée SortFields et affectez-la à une variable appelée firstSortField.
Remarque
La classe indexée SortFields est basée sur 0.
Dim firstSortField As SortField = mySortFields(0)
SortField firstSortField = sortFields[0];
4. Affectez à la propriété SortDirection de firstSortField un ordre décroissant, en utilisant la sélection
DescendingOrder de l'énumération SortDirection.
firstSortField.SortDirection = SortDirection.DescendingOrder
firstSortField.SortDirection = SortDirection.DescendingOrder;
5. Réaffectez maintenant ce rapport (avec l'ordre de tri modifié dans le modèle d'objet ReportDocument) à la propriété ReportSource du contrôle CrystalReportViewer.
myCrystalReportViewer.ReportSource = hierarchicalGroupingReport crystalReportViewer.ReportSource = hierarchicalGroupingReport;
Résultats
Dans la procédure suivante, vous allez saisir le code de la méthode d'événement sortOrderAscending_Click(). Le code est identique, à l'exception du paramètre de propriété
SortDirection.
334
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.5.2.1.2.2 Pour programmer le modèle d'objet
ReportDocument du rapport dans la méthode d'événement sortOrderAscending_Click
Procédure
1. Ouvrez la classe code-behind et recherchez la méthode d'événement sortOrderAscending_Click().
2. Dans la méthode d'événement, extrayez la propriété SortFields de la propriété DataDefinition de l'instance de rapport et affectez-la à une instance de la classe indexée SortFields.
Dim mySortFields As SortFields = hierarchicalGroupingReport.DataDefinition.SortFields
SortFields sortFields = hierarchicalGroupingReport.DataDefinition.SortFields;
3. Extrayez la première instance SortField de la classe indexée SortFields et affectez-la à une variable appelée firstSortField.
Remarque
La classe indexée SortFields est basée sur 0.
Dim firstSortField As SortField = mySortFields(0)
SortField firstSortField = sortFields[0];
4. Attribuez à la propriété SortDirection de l'instance firstSortField un ordre croissant, en utilisant la sélection AscendingOrder de l'énumération SortDirection.
firstSortField.SortDirection = SortDirection.AscendingOrder
firstSortField.SortDirection = SortDirection.AscendingOrder;
5. Réaffectez maintenant ce rapport (avec l'ordre de tri modifié dans le modèle d'objet ReportDocument) à la propriété ReportSource du contrôle CrystalReportViewer.
myCrystalReportViewer.ReportSource = hierarchicalGroupingReport crystalReportViewer.ReportSource = hierarchicalGroupingReport;
Résultats
La programmation du modèle d'objet ReportDocument du rapport dans chaque méthode d'événement est terminée. La section suivante va permettre de vérifier le bon fonctionnement de ces modifications d'ordre de tri et leur persistance lorsque la méthode Session n'est pas appliquée.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
335
1.5.2.1.3 Vérification et détermination des erreurs de persistance
Dans cette section, vous verrez que, sans l'utilisation de la méthode de persistance Session, les modifications de tri ne sont pas conservées lorsque la page est rechargée afin de refléter les changements apportés aux paramètres d'affichage.
1.5.2.1.3.1 Pour vérifier les modifications par programmation apportées à l'ordre de tri codé dans le projet
Procédure
1. Dans le menu
Générer
, cliquez sur
Générer la solution
.
2. Si vous rencontrez des erreurs lors de la génération, corrigez-les.
3. Dans le menu
Déboguer
, cliquez sur
Démarrer
.
Si vous ne rencontrez aucune erreur lors de la génération, la page Default.aspx est chargée dans le navigateur, avec le rapport Hierarchical Grouping généré dans le formulaire.
4. Observez attentivement l'ordre de tri. Vous pouvez imprimer la page pour comparer les modifications dans l'ordre de tri.
5. Cliquez sur le bouton
Trier par ordre décroissant
.
L'ordre de tri s'inverse.
6. Cliquez sur le bouton
Trier par ordre croissant
.
L'ordre de tri reprend sa valeur d'origine (croissant).
1.5.2.1.3.2 Pour vérifier si les modifications de tri sont conservées lorsque les paramètres d'affichage sont modifiés
Contexte
Dans la procédure suivante, vous allez vérifier si l'ordre de tri est conservé lorsque d'autres modifications (de paramètres d'affichage, par exemple) sont apportées à la page.
Procédure
1. Cliquez sur le bouton
Trier par ordre décroissant
.
336
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
L'ordre de tri s'inverse.
2. Dans la barre d'outils du rapport, ajustez le zoom de 100 % à 125 %.
La page recharge le rapport avec un facteur de zoom égal à 125 %, mais l'inversion du tri n'a pas été conservée.
3. Cliquez à nouveau sur le bouton
Trier par ordre décroissant
.
L'ordre de tri s'inverse.
4. Dans la barre d'outils du rapport, ajustez le zoom de 125 % à 100 %.
5. La page recharge le rapport avec un facteur de zoom égal à 100 %, mais l'inversion du tri n'a pas été conservée.
6. Revenez dans Visual Studio, puis cliquez sur
Arrêter
pour quitter le mode débogage.
Résultats
Ce test permet de constater qu'à ce stade du tutoriel la persistance échoue. L'ordre de tri n'est appliqué que lorsque l'utilisateur clique sur l'un des boutons de tri. L'ordre de tri est annulé lorsque l'utilisateur interagit avec la page pour régler le zoom ou ouvrir une autre page dans un rapport comprenant plusieurs pages. Par conséquent, vous devez ajouter du code pour rendre persistant le changement d'ordre de tri effectué avec Session dans le modèle d'objet ReportDocument.
1.5.2.1.4 Ajout de code Session
Dans cette section, vous allez apprendre à utiliser Session pour rendre persistant le changement d'ordre de tri du rapport. Vous allez ajouter, à la méthode ConfigureCrystalReports() créée lors de la configuration de votre projet (voir
Configuration d'un projet [page 15] ), du code permettant de rechercher Session et de recharger
immédiatement l'instance du rapport dans Session lorsqu'un utilisateur modifie l'ordre de tri.
1.5.2.1.4.1 Pour ajouter à la méthode
ConfigureCrystalReports() du code permettant de rechercher Session
Procédure
1. Dans la méthode ConfigureCrystalReports(), avant le code existant, créez un bloc conditionnel if/else vérifiant si un objet Session nommé hierarchicalGroupingReport existe.
Vous pouvez utiliser le nom d'identificateur de votre choix pour cet objet Session. Choisissez un identificateur unique tel que le nom de l'instance de rapport.
If (Session("hierarchicalGroupingReport") Is Nothing) Then
Else
End If
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
337
{
} if(Session["hierarchicalGroupingReport"] == null)
{
} else
2. Si vous utilisez un rapport incorporé, déplacez la ligne de code qui déclare et instancie le rapport de son emplacement actuel vers le bloc If.
If (Session("hierarchicalGroupingReport") Is Nothing) Then
hierarchicalGroupingReport = New Hierarchical_Grouping()
Else
End If if (Session["hierarchicalGroupingReport"] == null)
{
hierarchicalGroupingReport = new Hierarchical_Grouping();
} else
{
}
3. Si vous utilisez un rapport non incorporé, déplacez les deux lignes de code qui déclarent et instancient le rapport, puis le chargent de son emplacement actuel dans le répertoire vers le bloc If.
Remarque
Consultez le lien Répertoire d'exemples de rapports [page 15] pour déterminer le chemin correct des
exemples de rapports.
If (Session("hierarchicalGroupingReport") Is Nothing) Then
hierarchicalGroupingReport = New ReportDocument()
hierarchicalGroupingReport.Load("C:\Program Files\Microsoft Visual Studio
9.0\Crystal Reports\Samples\fr\Reports\Feature Examples\Hierarchical
Grouping.rpt")
Else
End If
{
} if(Session["hierarchicalGroupingReport"] == null)
{
hierarchicalGroupingReport = new ReportDocument();
hierarchicalGroupingReport.Load("C:\Program Files\Microsoft Visual Studio
9.0\Crystal Reports\Samples\fr\Reports\Feature Examples\Hierarchical
Grouping.rpt");
} else
4. Dans le bloc If, affectez le rapport dans Session, en utilisant le nom de la variable du rapport comme identificateur Session.
Session("hierarchicalGroupingReport") = hierarchicalGroupingReport
Session["hierarchicalGroupingReport"] = hierarchicalGroupingReport;
Ce bloc est maintenant finalisé. Le bloc If est appliqué si le rapport ne se trouve pas dans Session. Le bloc Else est appliqué si le rapport se trouve dans Session ; par conséquent, le but du bloc Else est d'extraire le rapport de Session vers une instance du rapport.
338
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
5. Dans le bloc Else, affectez le rapport stocké dans Session à l'instance du rapport.
hierarchicalGroupingReport = CType(Session("hierarchicalGroupingReport"),
ReportDocument) hierarchicalGroupingReport =
(ReportDocument)Session["hierarchicalGroupingReport"];
Remarque
Session ne renvoyant que des objets génériques, vous devez effectuer un transtypage du rapport en type de rapport. Que vous utilisiez des rapports incorporés ou non incorporés, effectuez un transtypage de l'objet extrait en objet de type ReportDocument.
En dehors et en dessous du bloc conditionnel, le code restant lie l'instance du rapport à la propriété
ReportSource du contrôle CrystalReportViewer.
Résultats
), la méthode ConfigureCrystalReports() est appelée à chaque rechargement de page. La modification de cette méthode garantit par conséquent l'extraction et le chargement du rapport le plus récent (qu'il soit nouveau ou stocké dans Session). Toutefois, rien n'a encore été écrit pour mettre réellement à jour l'instance du rapport.
Dans la section suivante, vous allez mettre à jour l'instance de rapport dans Session à chaque modification de l'ordre de tri.
1.5.2.1.4.2 Pour mettre à jour l'instance de rapport dans
Session pour la méthode d'événement sortOrderDescending_Click
Procédure
1. Dans la méthode d'événement sortOrderDescending_Click(), supprimez la dernière ligne de code qui lie le contrôle CrystalReportViewer au rapport.
Vous devez donc obtenir les trois lignes de code permettant de modifier le sens du tri.
2. Sous ces trois lignes de code, affectez l'instance hierarchicalGroupingReport (mise à jour avec un nouvel ordre de tri) dans Session à l'aide du même identificateur que celui utilisé dans la méthode
ConfigureCrystalReports().
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
339
Remarque
Pour simplifier l'opération, copiez et collez cette ligne de code depuis la méthode
ConfigureCrystalReports().
Session("hierarchicalGroupingReport") = hierarchicalGroupingReport
Session["hierarchicalGroupingReport"] = hierarchicalGroupingReport;
3. Enfin, ajoutez un appel à la méthode ConfigureCrystalReports() afin d'obtenir la dernière instance hierarchicalGroupingReport de Session (celle que vous venez de mettre jour) et liez-la au contrôle
CrystalReportViewer.
ConfigureCrystalReports()
ConfigureCrystalReports();
Résultats
Répétez maintenant les mêmes étapes pour la seconde méthode d'événement.
1.5.2.1.4.3 Pour mettre à jour l'instance de rapport dans
Session pour la méthode d'événement sortOrderAscending_Click
Procédure
1. Dans la méthode d'événement sortOrderAscending_Click(), supprimez la dernière ligne de code qui lie le contrôle CrystalReportViewer au rapport.
Vous devez donc obtenir les trois lignes de code permettant de modifier le sens du tri.
2. Sous ces trois lignes de code, affectez l'instance hierarchicalGroupingReport (mise à jour avec un nouvel ordre de tri) dans Session à l'aide du même identificateur que celui utilisé dans la méthode
ConfigureCrystalReports().
Pour simplifier l'opération, copiez et collez cette ligne de code depuis la méthode
ConfigureCrystalReports().
Session("hierarchicalGroupingReport") = hierarchicalGroupingReport
Session["hierarchicalGroupingReport"] = hierarchicalGroupingReport;
340
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
3. Enfin, ajoutez un appel à la méthode ConfigureCrystalReports() afin d'obtenir la dernière instance hierarchicalGroupingReport de Session (celle que vous venez de mettre jour) et liez-la au contrôle
CrystalReportViewer.
ConfigureCrystalReports()
ConfigureCrystalReports();
Résultats
Vous pouvez à présent vérifier si les modifications de tri ont bien été rendues persistantes.
1.5.2.1.5 Vérification et détermination du caractère correct de la persistance
Dans cette section, vous allez vérifier si les modifications de tri ont bien été rendues persistantes à présent que
Session est utilisée.
1.5.2.1.5.1 Pour vérifier si les modifications de tri ont bien
été rendues persistantes
Procédure
1. Dans le menu
Générer
, cliquez sur
Générer la solution
.
Si vous rencontrez des erreurs lors de la génération, corrigez-les.
2. Dans le menu
Déboguer
, cliquez sur
Démarrer
.
Si vous ne rencontrez aucune erreur lors de la génération, la page Default.aspx est chargée dans le navigateur, avec le rapport Hierarchical Grouping généré dans le formulaire.
3. Observez attentivement l'ordre de tri. Vous pouvez imprimer la page pour comparer les modifications dans l'ordre de tri.
4. Cliquez sur le bouton
Trier par ordre décroissant
.
L'ordre de tri s'inverse.
5. Dans la barre d'outils du rapport, ajustez le zoom de 100 % à 125 %.
La page recharge le rapport avec un facteur de zoom égal à 125 %. L'inversion de l'ordre de tri a bien été conservée.
6. Cliquez sur le bouton
Trier par ordre croissant
.
L'ordre de tri est rétabli.
7. Dans la barre d'outils du rapport, ajustez le zoom de 125 % à 100 %.
La page recharge le rapport avec un facteur de zoom égal à 100 %. L'ordre de tri a conservé le paramétrage de l'étape précédente.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
341
Résultats
Ce test permet de constater que la persistance fonctionne maintenant correctement.
1.5.2.2 Tutoriel : Connexion à une base de données SQL
Server sécurisée à l'aide de l'authentification SQL
Dans ce tutoriel, vous allez apprendre à ajouter un code de connexion afin d'afficher un rapport contenant des informations provenant d'une base de données SQL Server sécurisée.
Introduction
Pour vous connecter à une base de données SQL Server sécurisée, vous utilisez des classes du modèle d'objet
ReportDocument.
L'objet ReportDocument comporte une propriété Database qui renvoie une instance Database. Cette instance
Database contient les informations de base de données pour le rapport, notamment une propriété Tables qui renvoie une instance de classe indexée Tables. Chaque instance Table peut être extraite de la classe indexée
Tables.
La connexion se produit au niveau granulaire de chaque instance Table, qui doit obtenir une autorisation d'accès individuel à la base de données SQL Server sécurisée. Ceci s'effectue en plaçant les informations de connexion dans une instance ConnectionInfo puis, à l'intérieur d'une boucle for, en appliquant cette instance
ConnectionInfo à la propriété ConnectionInfo de chaque instance Table.
Les propriétés de la classe ConnectionInfo sont les suivantes :
● ServerName
● DatabaseName
● UserID
● Password
● IntegratedSecurity (non utilisée dans ce tutoriel)
Remarque
Si vous souhaitez suivre un tutoriel qui utilise l'authentification Windows (et utilise donc la propriété
SQL Server sécurisée à l'aide de la sécurité intégrée [page 359]
.
Si vous définissez uniquement les propriétés DatabaseName, UserID et Password, vous serez connecté au serveur et à la base de données par défaut spécifiés dans le rapport. Toutefois, si vous affectez une autre propriété ServerName, vous pouvez rediriger le rapport vers un serveur différent au moment de l'exécution.
Vous allez tout d'abord créer un rapport contenant des données d'une base de données SQL Server sécurisée.
Vous pouvez effectuer ce tutoriel en utilisant les classes du modèle d'objet CrystalReportViewer ; cependant, il est recommandé d'utiliser le modèle d'objet ReportDocument.
342
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Exemple de code
Ce tutoriel fournit des exemples de code Visual Basic et C# qui illustrent la version terminée du projet. Suivez les instructions de ce tutoriel pour créer un projet ou ouvrez le projet d'exemple de code pour travailler à partir d'une version terminée.
Les exemples de code sont stockés dans des dossiers classés par langue et par type de projet. Les noms des dossiers de chaque version d'exemple de code sont les suivants :
● Site Web C# : CS_Web_RDObjMod_DBLogon
● Projet Windows C# : CS_Win_RDObjMod_DBLogon
● Site Web Visual Basic : VB_Web_RDObjMod_DBLogon
● Projet Windows Visual Basic : VB_Win_RDObjMod_DBLogon
Informations associées
Choisir le modèle d'objet correct pour votre projet [page 32]
Tutoriel : Connexion à une base de données SQL Server sécurisée [page 238]
Répertoire d'exemples de rapports [page 15]
1.5.2.2.1 Création d'un rapport connecté à une base de données SQL Server sécurisée
Créez tout d'abord un rapport dont les informations proviennent de la base de données Northwind.
Remarque
Northwind est un exemple de base de données fourni avec SQL Server.
Une configuration préalable est requise avant de commencer ce tutoriel.
Informations associées
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
343
1.5.2.2.1.1 Configuration préalable requise de la base de données
Procédure
1. Configuration de SQL Server :
○ Si vous disposez de SQL Server (ou de la version OEM, MSDE), il doit être configuré de manière à exiger une authentification SQL Server pour l'utiliser dans ce tutoriel.
○ Si vous ne disposez pas de SQL Server (ou de la version OEM, MSDE), vous devez installer MSDE en attribuant à l'authentification SQL Server la valeur True pour l'utiliser dans ce tutoriel.
2. La base de données Northwind fournie avec SQL Server doit être installée et vous devez vérifier que l'authentification SQL Server est bien acceptée.
3. Vous devez créer un compte à accès limité qui sera utilisé au sein du site Web.
1.5.2.2.1.2 Pour créer un rapport avec des données sécurisées à partir de la base de données
Northwind
Contexte
Remarque
de code spécifique nécessaire à cette procédure. Il est impossible de suivre cette procédure sans cette configuration.
Procédure
1. Dans l'
Explorateur de solutions
, cliquez avec le bouton droit de la souris sur le nom du projet affiché en gras, pointez sur
Ajouter
, puis cliquez sur
Nouvel élément
.
2. Dans la boîte de dialogue
Ajouter un nouvel élément
, dans la vue
Modèles
, sélectionnez le modèle
Rapport
Crystal
.
3. Dans le champ
Nom
, saisissez le nom "NorthwindCustomers.rpt", puis cliquez sur
Ouvrir
.
4. Dans le panneau
Créer un document de rapport Crystal
de la boîte de dialogue
Galerie de rapports Crystal
, sélectionnez
en utilisant l' Assistant de création de rapports
.
5. Dans le panneau
Choisir un expert
, sélectionnez
Standard
, puis cliquez sur
OK
.
La fenêtre Assistant de création de rapports standard s'affiche.
344
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
6. Dans le panneau
Sources de données disponibles
, développez le dossier
Créer une nouvelle connexion
.
7. Dans le sous-dossier qui s'ouvre, développez le dossier
OLE DB (ADO)
.
La fenêtre OLE DB (ADO) s'affiche.
8. Sélectionnez
Microsoft OLE DB Provider for SQL Server
, puis cliquez sur
Suivant
.
9. Saisissez les valeurs correspondant à votre serveur de base de données, l'ID utilisateur et le mot de passe dans les champs
Serveur
,
ID utilisateur
et
Mot de passe
.
10. Dans la liste déroulante
Base de données
, sélectionnez "Northwind".
Laissez la case à cocher Sécurité intégrée désactivée, car vous utilisez l'authentification SQL Server au lieu de l'authentification NT.
11. Cliquez sur
Terminer
.
Le dossier OLE DB est maintenant développé, affichant votre serveur de base de données et, à l'intérieur de celui-ci, la base de données Northwind.
12. Développez les nœuds
Northwind
,
dbo
et
Tables
, puis sélectionnez la table
Customers
.
13. Cliquez sur le bouton
>
pour déplacer la table dans le panneau
Tables sélectionnées
, puis cliquez sur
Suivant
.
14. Maintenez la touche CTRL enfoncée et cliquez sur
CompanyName
,
ContactName
et
City
.
15. Cliquez sur le bouton
>
pour déplacer ces champs dans le panneau
Champs à afficher
, puis cliquez sur
Suivant
.
16. Dans le panneau
Champs disponibles
, sous
Champs du rapport
, sélectionnez
Customer.City
, cliquez sur le bouton
>
pour déplacer le champ dans le panneau
Regrouper par
, puis cliquez sur
Terminer
.
Le rapport NorthwindCustomers est créé et chargé dans la fenêtre principale de Visual Studio.
Résultats
Vous êtes maintenant prêt à lier le rapport au contrôle CrystalReportViewer et à configurer par programmation la connexion à la base de données.
1.5.2.2.2 Liaison du rapport
Durant la procédure Configuration d'un projet [page 15]
, vous avez placé un contrôle CrystalReportViewer dans un Web Form ou Windows Form. Lors de l'étape précédente, vous avez ajouté un rapport NorthwindCustomers au projet.
Dans cette section, vous allez instancier le rapport NorthwindCustomers et le lier au contrôle
CrystalReportViewer. Vous allez ensuite vérifier si le rapport s'affiche correctement lorsque les valeurs actuelles n'ont pas été définies pour ce paramètre.
Vous pouvez instancier et lier le rapport de deux façons :
● En tant que rapport incorporé.
● En tant que rapport non incorporé.
Choisissez l'une des deux (mais pas les deux) procédures ci-dessous.
● Si vous utilisez des rapports incorporés, effectuez la procédure suivante afin d'instancier le rapport sous forme de rapport incorporé.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
345
● Si vous utilisez des rapports non incorporés, effectuez la seconde procédure afin d'instancier le rapport sous forme de rapport non incorporé.
1.5.2.2.2.1 Pour instancier le rapport NorthwindCustomers sous forme de rapport incorporé et le lier au contrôle CrystalReportViewer
Procédure
1. Ouvrez le Web Form ou Windows Form.
2. Dans le menu
Affichage
, cliquez sur
Code
.
3. Ajoutez une nouvelle déclaration de niveau classe pour la classe wrapper du rapport NorthwindCustomers, en utilisant la variable northwindCustomersReport. Définissez le modificateur d'accès à private.
Private northwindCustomersReport As NorthwindCustomers private NorthwindCustomers northwindCustomersReport;
4. Dans la méthode ConfigureCrystalReports(), instanciez la classe wrapper du rapport.
Remarque
Vous avez créé la méthode ConfigureCrystalReports() dans Configuration d'un projet [page 15]
.
northwindCustomersReport = New NorthwindCustomers() northwindCustomersReport = new NorthwindCustomers();
5. Sur la ligne suivante, au-dessous de l'instanciation du rapport, liez la propriété ReportSource du contrôle
CrystalReportViewer à la classe de rapport instanciée (nom de la variable : northwindCustomersReport).
myCrystalReportViewer.ReportSource = northwindCustomersReport crystalReportViewer.ReportSource = northwindCustomersReport;
Résultats
Vous êtes maintenant prêt à générer et exécuter votre projet. Dans la mesure où le code permettant de se connecter à la base de données n'a pas encore été écrit, le chargement du rapport doit échouer.
346
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.5.2.2.2.2 Pour instancier le rapport NorthwindCustomers sous forme de rapport non incorporé et le lier au contrôle CrystalReportViewer
Procédure
1. Ouvrez le Web Form ou Windows Form.
2. Dans le menu
Affichage
, cliquez sur
Code
.
3. Ajoutez une nouvelle déclaration de niveau classe pour la classe wrapper du rapport ReportDocument, en utilisant la variable northwindCustomersReport. Définissez le modificateur d'accès à private.
Private northwindCustomersReport As ReportDocument private ReportDocument northwindCustomersReport;
Remarque
La classe ReportDocument est un membre de l'espace de noms CrystalDecisions.CrystalReports.Engine.
Vous avez ajouté une déclaration "Imports" [Visual Basic] ou "using" [C#] pour cet espace de
noms dans la section Configuration d'un projet [page 15]
. Lorsque vous instanciez ReportDocument et chargez un rapport dans l'espace de noms, vous accédez au rapport via le SDK sans l'incorporer.
4. Dans la méthode ConfigureCrystalReports() (que vous avez créée dans la section
Configuration d'un projet [page 15]
), instanciez la classe ReportDocument.
northwindCustomersReport = New ReportDocument() northwindCustomersReport = new ReportDocument();
5. Déclarez une variable chaîne, nommez-la reportPath et affectez-lui un chemin d'accès au rapport local au moment de l'exécution. Ce chemin est déterminé différemment selon qu'il s'agit d'un site Web ou d'un projet
Windows :
○ Pour un site Web, transmettez le nom du fichier de rapport local sous forme de paramètre de type chaîne dans la méthode Server.MapPath(). Ceci permet d'associer le rapport local au chemin d'accès du répertoire de fichiers du disque dur au moment de l'exécution.
Dim reportPath As String = Server.MapPath("NorthwindCustomers.rpt") string reportPath = Server.MapPath("NorthwindCustomers.rpt");
○ Pour un projet Windows, concaténez la propriété Application.StartupPath avec une barre oblique inverse et le nom du fichier de rapport local. Ceci permet d'associer le rapport au même répertoire que celui du fichier exécutable Windows.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
347
Remarque
Au moment de la compilation, vous copierez le rapport dans le répertoire contenant le fichier exécutable.
Dim reportPath As String = Application.StartupPath & "\" &
"NorthwindCustomers.rpt" string reportPath = Application.StartupPath + "\\" + "NorthwindCustomers.rpt";
6. Appelez la méthode Load() de l'instance ReportDocument et transmettez-lui la variable chaîne reportPath.
northwindCustomersReport.Load(reportPath) northwindCustomersReport.Load(reportPath);
7. Liez la propriété ReportSource du contrôle CrystalReportViewer à l'instance ReportDocument.
myCrystalReportViewer.ReportSource = northwindCustomersReport crystalReportViewer.ReportSource = northwindCustomersReport;
1.5.2.2.2.3 Pour tester le chargement du rapport
NorthwindCustomers
Contexte
Que vous ayez choisi d'instancier une classe de rapport incorporé ou une classe de rapport non incorporé via la classe ReportDocument, le nom de la variable utilisée est identique : northwindCustomersReport. Vous pouvez ainsi utiliser un bloc de code commun dans les procédures suivantes.
Vous êtes maintenant prêt à générer et exécuter votre projet. Dans la mesure où le code permettant de se connecter à la base de données n'a pas encore été écrit, le chargement du rapport doit échouer.
Procédure
1. Dans le menu
Générer
, sélectionnez
Générer la solution
.
2. Si vous rencontrez des erreurs lors de la génération, corrigez-les.
3. Si vous utilisez un rapport non incorporé dans un projet Windows, recherchez l'exécutable Windows compilé dans le sous-répertoire \bin\ [Visual Basic] ou \bin\debug\ [C#], puis copiez le rapport dans ce sous-répertoire.
348
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Remarque
Pour que le rapport non incorporé soit chargé par l'exécutable Windows au moment de l'exécution, le rapport doit être stocké dans le même répertoire que l'exécutable Windows.
4. Dans le menu
Déboguer
, cliquez sur
Démarrer
.
Le rapport NorthwindCustomers ne s'affiche pas, car le code de connexion à la base de données n'a pas été ajouté.
Remarque
Les résultats peuvent varier selon la version de SAP Crystal Reports utilisée. Par exemple, si vous avez installé SAP Crystal Reports 10 ou une version ultérieure, un formulaire apparaît et vous demande de fournir les informations de connexion à la base de données pour ce rapport. Il s'agit d'une nouvelle fonctionnalité de SAP Crystal Reports Developer. Si vous exécutez une version antérieure de
SAP Crystal Reports, une exception est renvoyée. Dans les deux cas, vous devez effectuer la procédure suivante pour créer une application entièrement fonctionnelle.
5. Revenez dans Visual Studio, puis cliquez sur
Arrêter
pour quitter le mode débogage.
1.5.2.2.3 Ajout du code de connexion au rapport
Vous êtes maintenant prêt à ajouter le code de connexion à la classe code-behind. Vous commencez par créer une méthode d'assistance privée nommée SetDBLogonForReport().
1.5.2.2.3.1 Pour créer et coder la méthode
SetDBLogonForReport()
Procédure
1. Revenez à la classe code-behind de ce Web Form ou Windows Form.
2. A la fin de la classe, créez une méthode privée nommée SetDBLogonForReport() avec deux paramètres :
ConnectionInfo et ReportDocument.
Private Sub SetDBLogonForReport(ByVal myConnectionInfo As ConnectionInfo, ByVal myReportDocument As ReportDocument)
End Sub
{
} private void SetDBLogonForReport(ConnectionInfo connectionInfo, ReportDocument reportDocument)
3. Dans cette méthode, extrayez l'instance Tables de la propriété Tables de la propriété Database du paramètre ReportDocument.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
349
Remarque
Tables est une classe indexée contenant des instances de la classe Table.
Dim myTables As Tables = myReportDocument.Database.Tables
Tables tables = reportDocument.Database.Tables;
4. Créez une boucle foreach qui effectue une boucle sur chaque instance Table de l'instance de classe indexée
Tables.
Remarque
Vous devez inclure le chemin d'accès de l'espace de noms à la classe Table afin de la distinguer de la classe Table de l'espace de noms System.Web.UI.WebControls.
For Each myTable As CrystalDecisions.CrystalReports.Engine.Table In myTables
Next foreach(CrystalDecisions.CrystalReports.Engine.Table table in tables)
{
}
5. Dans la boucle foreach, extrayez l'instance TableLogonInfo de la propriété LogOnInfo de l'instance Table.
Dim myTableLogonInfo As TableLogOnInfo = myTable.LogOnInfo
TableLogOnInfo tableLogonInfo = table.LogOnInfo;
6. Dans la boucle foreach, attribuez à la propriété ConnectionInfo de TableLogonInfo le paramètre
ConnectionInfo.
myTableLogonInfo.ConnectionInfo = myConnectionInfo tableLogonInfo.ConnectionInfo = connectionInfo;
7. Dans la boucle foreach, transmettez maintenant l'instance TableLogonInfo comme paramètre à la méthode ApplyLogonInfo de l'instance Table.
myTable.ApplyLogOnInfo(myTableLogonInfo) table.ApplyLogOnInfo(tableLogonInfo);
Résultats
Cette procédure a créé une méthode permettant de définir les informations de connexion à la base de données.
Toutefois, vous devez modifier la méthode ConfigureCrystalReports() pour désigner cette méthode afin que le rapport sache qu'il dispose des informations de connexion à la base de données.
La modification de la méthode ConfigureCrystalReports() se déroule en deux étapes :
350
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
● Configurer l'instance ConnectionInfo.
● Appeler la méthode SetDBLogonForReport().
1.5.2.2.3.2 Pour modifier la méthode
ConfigureCrystalReports() selon le code de connexion à la base de données
Procédure
1. Dans la méthode ConfigureCrystalReports(), créez plusieurs sauts de ligne dans le code au-dessus de la ligne qui lie le rapport au contrôle CrystalReportViewer.
2. Dans les sauts de ligne, déclarez et instanciez la classe ConnectionInfo.
Remarque
Pour que la classe ConnectionInfo soit accessible, incluez une instruction "Imports" [Visual Basic] ou "using" [C#] au début de la classe code-behind pour l'espace de noms CrystalDecisions.Shared.
(Vous avez ajouté cette déclaration dans la procédure Configuration d'un projet [page 15]
.)
Dim myConnectionInfo As ConnectionInfo = New ConnectionInfo()
ConnectionInfo connectionInfo = new ConnectionInfo();
3. Définissez les propriétés DatabaseName, UserID et Password de l'instance ConnectionInfo.
Remarque
Pour des raisons de sécurité, il est important que vous utilisiez un compte de base de données à accès limité.
Dans votre propre code, remplacez l'exemple de mot de passe 1234 (indiqué ci-dessous) par votre propre mot de passe.
myConnectionInfo.DatabaseName = "Northwind" myConnectionInfo.UserID = "limitedPermissionAccount" myConnectionInfo.Password = "
1234" connectionInfo.DatabaseName = "Northwind"; connectionInfo.UserID = "limitedPermissionAccount"; connectionInfo.Password = "
1234";
4. Saisissez un appel à la méthode SetDBLogonForReport() en transmettant l'instance ConnectionInfo et le rapport NorthwindCustomers.
SetDBLogonForReport(myConnectionInfo, northwindCustomersReport)
SetDBLogonForReport(connectionInfo, northwindCustomersReport);
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
351
Résultats
Cette procédure est suivie du code d'origine qui lie le rapport au contrôle CrystalReportViewer.
Vous êtes maintenant prêt à générer et exécuter votre projet. Le rapport doit se charger correctement, car vous avez ajouté le code de connexion à la base de données.
1.5.2.2.3.3 Pour tester le chargement du rapport
NorthwindCustomers
Procédure
1. Dans le menu
Générer
, sélectionnez
Générer la solution
.
2. Si vous rencontrez des erreurs lors de la génération, corrigez-les.
3. Dans le menu
Déboguer
, cliquez sur
Démarrer
.
Le rapport NorthwindCustomers s'affiche correctement.
4. Revenez dans Visual Studio, puis cliquez sur
Arrêter
pour quitter le mode débogage.
Résultats
Le rapport NorthwindCustomers s'affiche correctement.
1.5.2.2.4 Ajout de la possibilité de modifier l'emplacement de la base de données au moment de l'exécution
Dans cette section, vous allez apprendre à modifier l'emplacement de la base de données au moment de l'exécution. Cette opération nécessite simplement une légère modification de l'instance ConnectionInfo.
352
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.5.2.2.4.1 Pour modifier l'emplacement de la base de données au moment de l'exécution
Procédure
1. Dans la méthode ConfigureCrystalReports(), créez plusieurs sauts de ligne dans le code après la ligne qui déclare et instancie la classe ConnectionInfo.
2. Dans les sauts de ligne, définissez la propriété ServerName de l'instance ConnectionInfo.
Remarque
Dans votre propre code, remplacez l'exemple de nom de serveur DevDatabase (indiqué ci-dessous) par votre propre nom de serveur.
myConnectionInfo.ServerName = "DevDatabase" connectionInfo.ServerName = "DevDatabase";
1.5.2.2.4.2 Pour vérifier si un autre serveur de base de données peut être redéfini pour le rapport au moment de l'exécution
Contexte
Vous êtes maintenant prêt à générer et exécuter votre projet. Le rapport devrait se rediriger vers l'autre serveur de base de données au moment de l'exécution.
Procédure
1. Dans le menu Générer, sélectionnez
Générer la solution
.
2. Si vous rencontrez des erreurs lors de la génération, corrigez-les.
3. Dans le menu
Déboguer
, cliquez sur
Démarrer
.
Le rapport NorthwindCustomers s'affiche correctement.
4. Revenez dans Visual Studio, puis cliquez sur
Arrêter
pour quitter le mode débogage.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
353
1.5.2.2.5 Addenda : Améliorations du code de connexion à la base de données
Vous avez correctement défini votre code pour modifier l'emplacement de la base de données au moment de l'exécution. Dans cet exemple, le serveur de base de données est identique, la seule différence est que vous l'avez appelé explicitement par son nom.
Toutefois, vous pouvez maintenant modifier le nom de ce serveur de base de données avec n'importe quel autre serveur de base de données contenant la base de données Northwind. Si vous utilisez SAP Crystal Reports avec
Visual Studio 2005 ou 2008, vous avez accès aux fonctionnalités API améliorées pour la connexion à une base de données SQL Server sécurisée. La fonctionnalité API de SAP Crystal Reports permet de réduire la quantité de code nécessaire à la connexion à la base de données.
Dans les procédures précédentes, vous avez appris à créer la méthode d'assistance SetDBLogonForReport(), qui utilise une boucle foreach pour définir la propriété ConnectionInfo de chaque table du rapport Crystal.
Dans ce tutoriel, vous allez apprendre à supprimer la méthode d'assistance et à ajouter un code afin d'utiliser la classe DataSourceConnections provenant de l'espace de noms CrystalDecisions.Shared ou la méthode
SetDatabaseLogon() provenant de la classe ReportDocument.
La classe DataSourceConnections est une ArrayList qui contient les instances ConnectionInfo pour chaque connexion utilisée par le rapport Crystal. Vous pouvez extraire les instances ConnectionInfo au niveau d'un index donné, puis appeler les méthodes SetLogon() ou SetConnection() pour transmettre les informations de connexion au rapport.
La méthode SetLogon() permet de définir le nom d'utilisateur et le mot de passe. Cette méthode utilise le serveur et la base de données par défaut que vous avez spécifiés dans le rapport. La méthode SetConnection() permet de définir le nom du serveur, le nom de la base de données, le nom d'utilisateur et le mot de passe.
Pour utiliser le nouveau code API, vous devez suivre les instructions des sections
Création d'un rapport connecté
à une base de données SQL Server sécurisée [page 343]
et
Liaison du rapport [page 345] sans code de
connexion.
Vous pouvez ensuite utiliser l'une des méthodes API améliorées suivantes :
●
Utilisation de la classe DataSourceConnections pour la connexion à la base de données [page 355]
●
Utilisation de la méthode SetDatabaseLogon() de la classe ReportDocument [page 358]
indiquées dans la section
Modification du projet pour la connexion à la base de données [page 354] avant de
pouvoir utiliser l'une des méthodes API améliorées.
1.5.2.2.5.1 Modification du projet pour la connexion à la base de données
indiquées dans la procédure suivante.
354
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.5.2.2.5.1.1 Pour modifier le projet afin d'utiliser les fonctionnalités API améliorées de
SAP Crystal Reports
Procédure
1. Ouvrez le projet terminé de ce tutoriel.
2. Ouvrez le Web Form ou Windows Form.
3. Dans le menu
Affichage
, cliquez sur
Code
.
4. Supprimez la méthode d'assistance SetDBLogonForReport().
5. Dans la méthode ConfigureCrystalReports(), supprimez les lignes de code suivantes : a. Supprimez le code qui déclare une instance de la classe ConnectionInfo.
b. Supprimez le code qui utilise les propriétés ServerName, DatabaseName, UserID et Password provenant de la classe ConnectionInfo.
c. Supprimez l'appel à la méthode SetDBLogonForReport().
Résultats
La méthode ConfigureCrystalReports() comporte à présent deux lignes de code.
Private Sub ConfigureCrystalReports()
northwindCustomersReport = new NorthwindCustomers()
myCrystalReportViewer.ReportSource = northwindCustomersReport
End Sub private void ConfigureCrystalReports()
{
northwindCustomersReport = new NorthwindCustomers();
crystalReportViewer.ReportSource = northwindCustomersReport;
}
Vous pouvez à présent choisir d'utiliser l'une des méthodes API améliorées suivantes :
●
Utilisation de la classe DataSourceConnections pour la connexion à la base de données [page 355]
●
Utilisation de la méthode SetDatabaseLogon() de la classe ReportDocument [page 358]
1.5.2.2.5.2 Utilisation de la classe DataSourceConnections pour la connexion à la base de données
Dans cette section, vous allez apprendre à ajouter deux lignes de code pour vous connecter à une base de données SQL Server. Vous devez extraire l'instance DataSourceConnections, puis définir les informations de connexion à la base de données à l'aide des méthodes SetLogon() ou SetConnection().
● Vous devez créer un projet basé sur les instructions des sections
Création d'un rapport connecté à une base de données SQL Server sécurisée [page 343] et
Liaison du rapport [page 345] sans code de connexion.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
355
● Ou vous devez créer un projet en suivant les instructions de la section
Modification du projet pour la connexion à la base de données [page 354]
.
Si vous souhaitez utiliser le serveur et la base de données par défaut, appelez la méthode SetLogon() à l'aide de votre nom d'utilisateur et de votre mot de passe.
En revanche, si vous souhaitez modifier le serveur ou la base de données, appelez la méthode SetConnection()
à l'aide de vos nom de serveur, nom de base de données, nom d'utilisateur et mot de passe.
1.5.2.2.5.2.1 Pour utiliser la méthode SetLogon() de la classe
DataSourceConnections
Procédure
1. Entre les deux lignes de code de la méthode ConfigureCrystalReports(), extrayez l'instance
DataSourceConnections à partir de la propriété DataSourceConnections de l'instance
NorthwindCustomers.
Dim myDataSourceConnections As DataSourceConnections = northwindCustomersReport.DataSourceConnections
DataSourceConnections dataSourceConnections = northwindCustomersReport.DataSourceConnections;
2. Extrayez l'élément IConnectionInfo au niveau de l'index 0 de l'instance DataSourceConnections.
Dim myConnectInfo As IConnectionInfo = myDataSourceConnections(0)
IConnectionInfo connectInfo = dataSourceConnections[0];
3. Appelez la méthode SetLogon() à l'aide de votre nom d'utilisateur et votre mot de passe.
Remarque
Pour des raisons de sécurité, il est important que vous utilisiez un compte de base de données à accès limité.
Dans votre propre code, remplacez l'exemple de mot de passe 1234 (indiqué ci-dessous) par votre propre mot de passe.
myConnectInfo.SetLogon("limitedPermissionAccount", "1234") connectInfo.SetLogon("limitedPermissionAccount", "1234");
356
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.5.2.2.5.2.2 Pour utiliser la méthode SetConnection() de la classe DataSourceConnections
Procédure
1. Entre les deux lignes de code de la méthode ConfigureCrystalReports(), extrayez l'instance
DataSourceConnections à partir de la propriété DataSourceConnections de l'instance NorthwindCustomers.
Dim myDataSourceConnections As DataSourceConnections = northwindCustomersReport.DataSourceConnections
DataSourceConnections dataSourceConnections = northwindCustomersReport.DataSourceConnections;
2. Extrayez l'élément IConnectionInfo au niveau de l'index 0 de l'instance DataSourceConnections.
Dim myConnectInfo As IConnectionInfo = myDataSourceConnections(0)
IConnectionInfo connectInfo = dataSourceConnections[0];
3. Appelez la méthode SetConnection() à l'aide de vos nom de serveur, nom de base de données, nom d'utilisateur et mot de passe.
Remarque
Pour des raisons de sécurité, il est important que vous utilisiez un compte de base de données à accès limité.
Dans votre propre code, remplacez l'exemple de mot de passe 1234 (indiqué ci-dessous) par votre propre mot de passe.
myConnectInfo.SetConnection("ServerName", "Northwind",
"limitedPermissionAccount", "1234") connectInfo.SetConnection("ServerName", "Northwind", "limitedPermissionAccount",
"1234");
Résultats
Vous êtes maintenant prêt à générer et exécuter le projet afin de vous connecter à la base de données SQL Server sécurisée.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
357
1.5.2.2.5.3 Utilisation de la méthode SetDatabaseLogon() de la classe ReportDocument
Contexte
Entre les deux lignes de code dans la méthode ConfigureCrystalReports(), appelez la méthode
SetDatabaseLogon() de l'instance NorthwindCustomers, puis transmettez l'un des ensembles de paramètres suivants :
Procédure
1. Appelez la méthode SetDatabaseLogon() à l'aide de votre nom d'utilisateur et votre mot de passe.
Remarque
Pour des raisons de sécurité, il est important que vous utilisiez un compte de base de données à accès limité.
Dans votre propre code, remplacez l'exemple de mot de passe 1234 (indiqué ci-dessous) par votre propre mot de passe.
northwindCustomersReport.SetDatabaseLogon("limitedPermissionAccount","1234") northwindCustomersReport.SetDatabaseLogon("limitedPermissionAccount","1234");
2. Ou appelez la méthode SetDatabaseLogon() à l'aide de vos nom de serveur, nom de base de données, nom d'utilisateur et mot de passe.
Remarque
Cette méthode ne modifie pas le serveur ni la base de données. Vous êtes limité au serveur et à la base de données par défaut spécifiés dans le rapport.
Dans votre propre code, remplacez l'exemple de mot de passe 1234 (indiqué ci-dessous) par votre propre mot de passe.
northwindCustomersReport.SetDatabaseLogon("limitedPermissionAccount","1234",
"ServerName", "Northwind") northwindCustomersReport.SetDatabaseLogon("limitedPermissionAccount","1234",
"ServerName", "Northwind");
358
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.5.2.3 Tutoriel : Connexion à une base de données SQL
Server sécurisée à l'aide de la sécurité intégrée
Dans ce tutoriel, vous allez apprendre à ajouter un code de connexion afin d'afficher un rapport contenant des informations provenant d'une base de données SQL Server sécurisée.
Introduction
Pour vous connecter à une base de données SQL Server sécurisée, vous utilisez des classes du modèle d'objet
ReportDocument.
L'objet ReportDocument comporte une propriété Database qui renvoie une instance Database. Cette instance
Database contient les informations de base de données pour le rapport, notamment une propriété Tables qui renvoie une instance de classe indexée Tables. Chaque instance Table peut être extraite de la classe indexée
Tables.
La connexion se produit au niveau granulaire de chaque instance Table, qui doit obtenir une autorisation d'accès individuel à la base de données SQL Server sécurisée. Ceci s'effectue en plaçant les informations de connexion dans une instance ConnectionInfo puis, à l'intérieur d'une boucle for, en appliquant cette instance
ConnectionInfo à la propriété ConnectionInfo de chaque instance Table.
Les propriétés de la classe ConnectionInfo sont les suivantes :
● ServerName
● DatabaseName
● UserID (non utilisée dans ce tutoriel)
● Password (non utilisée dans ce tutoriel)
● IntegratedSecurity
Remarque
Si vous souhaitez suivre un tutoriel qui utilise l'authentification Windows (et utilise donc les propriétés UserID et Password au lieu de la propriété IntegratedSecurity), voir
Tutoriel : Connexion à une base de données SQL
Server sécurisée à l'aide de l'authentification SQL [page 342]
.
Si vous définissez uniquement les propriétés DatabaseName et IntegratedSecurity, vous serez connecté au serveur et à la base de données par défaut spécifiés dans le rapport. Toutefois, si vous affectez une autre propriété ServerName, vous pouvez rediriger le rapport vers un serveur différent au moment de l'exécution.
Vous allez tout d'abord créer un rapport contenant des données d'une base de données SQL Server sécurisée.
Vous pouvez effectuer ce tutoriel en utilisant les classes du modèle d'objet CrystalReportViewer ; cependant, il est recommandé d'utiliser le modèle d'objet ReportDocument.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
359
Exemple de code
Ce tutoriel fournit des exemples de code Visual Basic et C# qui illustrent la version terminée du projet. Suivez les instructions de ce tutoriel pour créer un projet ou ouvrez le projet d'exemple de code pour travailler à partir d'une version terminée.
Les exemples de code sont stockés dans des dossiers classés par langue et par type de projet. Les noms des dossiers de chaque version d'exemple de code sont les suivants :
● Site Web C# : CS_Web_RDObjMod_DBLogonIntegratedSecurity
● Projet Windows C# : CS_Win_RDObjMod_DBLogonIntegratedSecurity
● Site Web Visual Basic : VB_Web_RDObjMod_DBLogonIntegratedSecurity
● Projet Windows Visual Basic : VB_Win_RDObjMod_DBLogonIntegratedSecurity
Informations associées
Choisir le modèle d'objet correct pour votre projet [page 32]
Répertoire d'exemples de rapports [page 15]
1.5.2.3.1 Création d'un rapport connecté à une base de données SQL Server sécurisée à l'aide de la sécurité intégrée
Créez tout d'abord un rapport dont les informations proviennent de la base de données Northwind.
Remarque
Northwind est un exemple de base de données fourni avec SQL Server.
Une configuration préalable est requise avant de commencer ce tutoriel.
1.5.2.3.1.1 Configuration préalable requise de la base de données
Procédure
1. Configuration de SQL Server :
○ Si vous disposez de SQL Server (ou de la version OEM, MSDE), il doit être configuré pour accepter l'authentification Windows dans ce tutoriel.
○ Si vous ne disposez pas de SQL Server (ou de la version OEM, MSDE), vous devez installer MSDE avec l'authentification Windows (par défaut) pour l'utiliser dans ce tutoriel.
360
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
2. La base de données Northwind fournie avec SQL Server doit être installée et vous devez vérifier que l'authentification Windows est bien acceptée.
Après avoir configuré SQL Server et la base de données Northwind conformément aux instructions des sections ci-dessus, vous êtes prêt à créer un rapport dont les informations proviennent, de façon sécurisée, de la base de données Northwind.
Remarque
Cette procédure fonctionne uniquement avec un projet créé à partir de la procédure
de noms et de code spécifique nécessaire à cette procédure. Il est impossible de suivre cette procédure sans cette configuration.
1.5.2.3.1.2 Pour créer un rapport avec des données sécurisées à partir de la base de données
Northwind
Procédure
1. Dans l'
Explorateur de solutions
, cliquez avec le bouton droit de la souris sur le nom du projet affiché en gras, pointez sur
Ajouter
, puis cliquez sur
Nouvel élément
.
2. Dans la boîte de dialogue
Ajouter un nouvel élément
, dans la vue
Modèles
, sélectionnez le modèle
Rapport
Crystal
.
3. Dans le champ
Nom
, saisissez le nom "NorthwindCustomers.rpt", puis cliquez sur
Ouvrir
.
4. Dans le panneau
Créer un document de rapport Crystal
de la boîte de dialogue
Galerie de rapports Crystal
, sélectionnez
en utilisant l' Assistant de création de rapports
.
5. Dans le panneau
Choisir un expert
, sélectionnez
Standard
, puis cliquez sur
OK
.
La fenêtre Assistant de création de rapports standard s'affiche.
6. Dans le panneau
Sources de données disponibles
, développez le dossier
Créer une nouvelle connexion
.
7. Dans le sous-dossier qui s'ouvre, développez le dossier
OLE DB (ADO)
.
La fenêtre OLE DB (ADO) s'affiche.
8. Sélectionnez
Microsoft OLE DB Provider for SQL Server
, puis cliquez sur
Suivant
.
9. Saisissez le nom de votre serveur de base de données dans le champ
Serveur
.
10. Activez la case à cocher
Sécurité intégrée
.
11. Dans la liste déroulante
Base de données
, sélectionnez "Northwind".
12. Cliquez sur
Terminer
.
Le dossier OLE DB est maintenant développé, affichant votre serveur de base de données et, à l'intérieur de celui-ci, la base de données Northwind.
13. Développez les nœuds
Northwind
,
dbo
et
Tables
, puis sélectionnez la table
Customers
.
14. Cliquez sur le bouton
>
pour déplacer la table dans le panneau
Tables sélectionnées
, puis cliquez sur
Suivant
.
15. Maintenez la touche CTRL enfoncée et cliquez sur
CompanyName
,
ContactName
et
City
.
16. Cliquez sur le bouton
>
pour déplacer ces champs dans le panneau
Champs à afficher
, puis cliquez sur
Suivant
.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
361
17. Dans le panneau
Champs disponibles
, sous
Champs du rapport
, sélectionnez
Customer.City
, cliquez sur le bouton
>
pour déplacer le champ dans le panneau
Regrouper par
, puis cliquez sur
Terminer
.
Le rapport NorthwindCustomers est créé et chargé dans la fenêtre principale de Visual Studio.
Résultats
Vous êtes maintenant prêt à lier le rapport au contrôle CrystalReportViewer et à configurer par programmation la connexion à la base de données.
1.5.2.3.2 Liaison du rapport
Durant la procédure
Configuration d'un projet [page 15] , vous avez placé un contrôle CrystalReportViewer
dans un Web Form ou un Windows Form. Lors de l'étape précédente, vous avez ajouté un rapport
NorthwindCustomers au projet.
Dans cette section, vous allez instancier le rapport NorthwindCustomers et le lier au contrôle
CrystalReportViewer. Vous allez ensuite vérifier si le rapport s'affiche correctement lorsque les valeurs actuelles n'ont pas été définies pour ce paramètre.
Vous pouvez instancier et lier le rapport de deux façons :
● En tant que rapport incorporé.
● En tant que rapport non incorporé.
Choisissez l'une des deux (mais pas les deux) procédures ci-dessous.
● Si vous utilisez des rapports incorporés, effectuez la procédure suivante afin d'instancier le rapport sous forme de rapport incorporé.
● Si vous utilisez des rapports non incorporés, effectuez la seconde procédure afin d'instancier le rapport sous forme de rapport non incorporé.
1.5.2.3.2.1 Pour instancier le rapport NorthwindCustomers sous forme de rapport incorporé et le lier au contrôle CrystalReportViewer
Procédure
1. Ouvrez le Web Form ou Windows Form.
2. Dans le menu
Affichage
, cliquez sur
Code
.
3. Ajoutez une nouvelle déclaration de niveau classe pour la classe wrapper du rapport NorthwindCustomers, en utilisant la variable northwindCustomersReport. Définissez le modificateur d'accès à private.
Private northwindCustomersReport As NorthwindCustomers
362
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
private NorthwindCustomers northwindCustomersReport;
4. Dans la méthode ConfigureCrystalReports(), instanciez la classe wrapper du rapport.
Remarque
Vous avez créé la méthode ConfigureCrystalReports() dans
Configuration d'un projet [page 15] .
northwindCustomersReport = New NorthwindCustomers() northwindCustomersReport = new NorthwindCustomers();
5. Sur la ligne suivante, au-dessous de l'instanciation du rapport, liez la propriété ReportSource du contrôle
CrystalReportViewer à la classe de rapport instanciée (nom de la variable : northwindCustomersReport).
myCrystalReportViewer.ReportSource = northwindCustomersReport crystalReportViewer.ReportSource = northwindCustomersReport;
Résultats
Vous êtes maintenant prêt à générer et exécuter votre projet. Dans la mesure où le code permettant de se connecter à la base de données n'a pas encore été écrit, le chargement du rapport doit échouer.
1.5.2.3.2.2 Pour instancier le rapport NorthwindCustomers sous forme de rapport non incorporé et le lier au contrôle CrystalReportViewer
Procédure
1. Ouvrez le Web Form ou Windows Form.
2. Dans le menu
Affichage
, cliquez sur
Code
.
3. Ajoutez une nouvelle déclaration de niveau classe pour la classe wrapper du rapport ReportDocument, en utilisant la variable northwindCustomersReport. Définissez le modificateur d'accès à private.
Private northwindCustomersReport As ReportDocument private ReportDocument northwindCustomersReport;
Remarque
La classe ReportDocument est un membre de l'espace de noms CrystalDecisions.CrystalReports.Engine.
Vous avez ajouté une déclaration "Imports" [Visual Basic] ou "using" [C#] pour cet espace de
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
363
noms dans la section
Configuration d'un projet [page 15] . Lorsque vous instanciez ReportDocument et
chargez un rapport dans l'espace de noms, vous accédez au rapport via le SDK sans l'incorporer.
northwindCustomersReport = New ReportDocument() northwindCustomersReport = new ReportDocument();
5. Déclarez une variable chaîne, nommez-la reportPath et affectez-lui un chemin d'accès au rapport local au moment de l'exécution. Ce chemin est déterminé différemment selon qu'il s'agit d'un site Web ou d'un projet
Windows :
○ Pour un site Web, transmettez le nom du fichier de rapport local sous forme de paramètre de type chaîne dans la méthode Server.MapPath(). Ceci permet d'associer le rapport local au chemin d'accès du répertoire de fichiers du disque dur au moment de l'exécution.
Dim reportPath As String = Server.MapPath("NorthwindCustomers.rpt") string reportPath = Server.MapPath("NorthwindCustomers.rpt");
○ Pour un projet Windows, concaténez la propriété Application.StartupPath avec une barre oblique inverse et le nom du fichier de rapport local. Ceci permet d'associer le rapport au même répertoire que celui du fichier exécutable Windows.
Remarque
Au moment de la compilation, vous copierez le rapport dans le répertoire contenant le fichier exécutable.
Dim reportPath As String = Application.StartupPath & "\" &
"NorthwindCustomers.rpt" string reportPath = Application.StartupPath + "\\" + "NorthwindCustomers.rpt";
6. Appelez la méthode Load() de l'instance ReportDocument et transmettez-lui la variable chaîne reportPath.
northwindCustomersReport.Load(reportPath) northwindCustomersReport.Load(reportPath);
7. Liez la propriété ReportSource du contrôle CrystalReportViewer à l'instance ReportDocument.
myCrystalReportViewer.ReportSource = northwindCustomersReport crystalReportViewer.ReportSource = northwindCustomersReport;
364
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Résultats
Que vous ayez choisi d'instancier une classe de rapport incorporé ou une classe de rapport non incorporé via la classe ReportDocument, le nom de la variable utilisée est identique : northwindCustomersReport. Vous pouvez ainsi utiliser un bloc de code commun dans les procédures suivantes.
Vous êtes maintenant prêt à générer et exécuter votre projet. Dans la mesure où le code permettant de se connecter à la base de données n'a pas encore été écrit, le chargement du rapport doit échouer.
1.5.2.3.2.3 Pour tester le chargement du rapport
NorthwindCustomers
Procédure
1. Dans le menu
Générer
, sélectionnez
Générer la solution
.
2. Si vous rencontrez des erreurs lors de la génération, corrigez-les.
3. Si vous utilisez un rapport non incorporé dans un projet Windows, recherchez l'exécutable Windows compilé dans le sous-répertoire \bin\ [Visual Basic] ou \bin\debug\ [C#], puis copiez le rapport dans ce sous-répertoire.
Remarque
Pour que le rapport non incorporé soit chargé par l'exécutable Windows au moment de l'exécution, le rapport doit être stocké dans le même répertoire que l'exécutable Windows.
4. Dans le menu
Déboguer
, cliquez sur
Démarrer
.
Le rapport NorthwindCustomers ne s'affiche pas, car le code de connexion à la base de données n'a pas été ajouté.
Remarque
Les résultats peuvent varier selon la version de SAP Crystal Reports utilisée. Par exemple, si vous avez installé SAP Crystal Reports Developer, un formulaire apparaît et vous demande de fournir les informations de connexion à la base de données pour ce rapport. Il s'agit d'une nouvelle fonctionnalité de
SAP Crystal Reports Developer. Si vous exécutez une version antérieure de SAP Crystal Reports, une exception est renvoyée. Dans les deux cas, vous devez effectuer la procédure suivante pour créer une application entièrement fonctionnelle.
5. Revenez dans Visual Studio, puis cliquez sur
Arrêter
pour quitter le mode débogage.
1.5.2.3.3 Ajout du code de connexion au rapport
Vous êtes maintenant prêt à ajouter le code de connexion à la classe code-behind. Vous commencez par créer une méthode d'assistance privée nommée SetDBLogonForReport().
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
365
1.5.2.3.3.1 Pour créer et coder la méthode
SetDBLogonForReport()
Procédure
1. Revenez à la classe code-behind de ce Web Form ou Windows Form.
2. A la fin de la classe, créez une méthode privée nommée SetDBLogonForReport() avec deux paramètres :
ConnectionInfo et ReportDocument.
Private Sub SetDBLogonForReport(ByVal myConnectionInfo As ConnectionInfo, ByVal myReportDocument As ReportDocument)
End Sub
{
} private void SetDBLogonForReport(ConnectionInfo connectionInfo, ReportDocument reportDocument)
3. Dans cette méthode, extrayez l'instance Tables de la propriété Tables de la propriété Database du paramètre
ReportDocument.
Remarque
Tables est une classe indexée contenant des instances de la classe Table.
Dim myTables As Tables = myReportDocument.Database.Tables
Tables tables = reportDocument.Database.Tables;
4. Créez une boucle foreach qui effectue une boucle sur chaque instance Table de l'instance de classe indexée
Tables.
Remarque
Vous devez inclure le chemin d'accès de l'espace de noms à la classe Table afin de la distinguer de la classe
Table de l'espace de noms System.Web.UI.WebControls.
For Each myTable As CrystalDecisions.CrystalReports.Engine.Table In myTables
Next foreach(CrystalDecisions.CrystalReports.Engine.Table table in tables)
{
}
5. Dans la boucle foreach, extrayez l'instance TableLogonInfo de la propriété LogOnInfo de l'instance Table.
Dim myTableLogonInfo As TableLogOnInfo = myTable.LogOnInfo
TableLogOnInfo tableLogonInfo = table.LogOnInfo;
366
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
6. Dans la boucle foreach, attribuez à la propriété ConnectionInfo de TableLogonInfo le paramètre
ConnectionInfo.
myTableLogonInfo.ConnectionInfo = myConnectionInfo tableLogonInfo.ConnectionInfo = connectionInfo;
7. Dans la boucle foreach, transmettez maintenant l'instance TableLogonInfo comme paramètre à la méthode
ApplyLogonInfo de l'instance Table.
myTable.ApplyLogOnInfo(myTableLogonInfo) table.ApplyLogOnInfo(tableLogonInfo);
Résultats
Cette procédure a créé une méthode permettant de définir les informations de connexion à la base de données.
Toutefois, vous devez modifier la méthode ConfigureCrystalReports() pour désigner cette méthode afin que le rapport sache qu'il dispose des informations de connexion à la base de données.
La modification de la méthode ConfigureCrystalReports() se déroule en deux étapes :
● Configurer l'instance ConnectionInfo.
● Appeler la méthode SetDBLogonForReport().
1.5.2.3.3.2 Pour modifier la méthode
ConfigureCrystalReports() selon le code de connexion à la base de données
Procédure
1. Dans la méthode ConfigureCrystalReports(), créez plusieurs sauts de ligne dans le code au-dessus de la ligne qui lie le rapport au contrôle CrystalReportViewer.
2. Dans les sauts de ligne, déclarez et instanciez la classe ConnectionInfo.
Remarque
Pour que la classe ConnectionInfo soit accessible, incluez une instruction "Imports" [Visual Basic] ou "using" [C#] au début de la classe code-behind pour l'espace de noms CrystalDecisions.Shared.
(Vous avez ajouté cette déclaration dans la procédure Configuration d'un projet [page 15]
.)
Dim myConnectionInfo As ConnectionInfo = New ConnectionInfo()
ConnectionInfo connectionInfo = new ConnectionInfo();
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
367
3. Définissez les propriétés DatabaseName et IntegratedSecurity de l'instance ConnectionInfo.
myConnectionInfo.DatabaseName = "Northwind" myConnectionInfo.IntegratedSecurity = True connectionInfo.DatabaseName = "Northwind"; connectionInfo.IntegratedSecurity = true;
4. Saisissez un appel à la méthode SetDBLogonForReport() en transmettant l'instance ConnectionInfo et le rapport NorthwindCustomers.
SetDBLogonForReport(myConnectionInfo, northwindCustomersReport)
SetDBLogonForReport(connectionInfo, northwindCustomersReport);
Résultats
Cette procédure est suivie du code d'origine qui lie le rapport au contrôle CrystalReportViewer.
Vous êtes maintenant prêt à générer et exécuter votre projet. Le rapport doit se charger correctement, car vous avez ajouté le code de connexion à la base de données.
1.5.2.3.3.3 Pour tester le chargement du rapport
NorthwindCustomers
Procédure
1. Dans le menu
Générer
, sélectionnez
Générer la solution
.
2. Si vous rencontrez des erreurs lors de la génération, corrigez-les.
3. Dans le menu
Déboguer
, cliquez sur
Démarrer
.
Le rapport NorthwindCustomers s'affiche correctement.
4. Revenez dans Visual Studio, puis cliquez sur
Arrêter
pour quitter le mode débogage.
Résultats
Dans la section suivante, vous allez apprendre à modifier l'emplacement de la base de données au moment de l'exécution.
368
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.5.2.3.4 Ajout de la possibilité de modifier l'emplacement de la base de données au moment de l'exécution
Dans cette section, vous allez apprendre à modifier l'emplacement de la base de données au moment de l'exécution. Cette opération nécessite simplement une légère modification de l'instance ConnectionInfo.
1.5.2.3.4.1 Pour modifier l'emplacement de la base de données au moment de l'exécution
Procédure
1. Dans la méthode ConfigureCrystalReports(), créez plusieurs sauts de ligne dans le code après la ligne qui déclare et instancie la classe ConnectionInfo.
2. Dans les sauts de ligne, définissez la propriété ServerName de l'instance ConnectionInfo.
Remarque
Dans votre propre code, remplacez l'exemple de nom de serveur DevDatabase (indiqué ci-dessous) par votre propre nom de serveur.
myConnectionInfo.ServerName = "DevDatabase" connectionInfo.ServerName = "DevDatabase";
Résultats
Vous êtes maintenant prêt à générer et exécuter votre projet. Le rapport devrait se rediriger vers l'autre serveur de base de données au moment de l'exécution.
1.5.2.3.4.2 Pour vérifier si un autre serveur de base de données peut être redéfini pour le rapport au moment de l'exécution
Procédure
1. Dans le menu Générer, sélectionnez
Générer la solution
.
2. Si vous rencontrez des erreurs lors de la génération, corrigez-les.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
369
3. Dans le menu
Déboguer
, cliquez sur
Démarrer
.
Le rapport NorthwindCustomers s'affiche correctement.
4. Revenez dans Visual Studio, puis cliquez sur
Arrêter
pour quitter le mode débogage.
1.5.2.3.5 Configuration avec la méthode SetConnection
Contexte
Dans cette section, vous allez apprendre à appliquer trois modifications (modification du nom du serveur, du nom de la base de données et du paramètre de sécurité intégrée) à l'aide de la méthode SetConnection(). Cette opération nécessite simplement une légère modification de l'instance ConnectionInfo.
Procédure
1. Dans la méthode ConfigureCrystalReports(), après la ligne qui déclare et instancie la classe
ConnectionInfo, supprimez les lignes de code qui affectent les propriétés et ServerName, DatabaseName et IntegratedSecurity.
2. Saisissez une nouvelle ligne de code contenant un appel à la méthode SetConnection() de l'instance
ConnectionInfo, en transmettant le nom du serveur, le nom de la base de données et le paramètre de sécurité intégrée à cette méthode.
myConnectionInfo.SetConnection("DevDatabase", "Northwind", True) connectionInfo.SetConnection("DevDatabase", "Northwind", true);
Résultats
Vous êtes maintenant prêt à générer et exécuter votre projet.
370
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.5.2.4 Tutoriel : Connexion à une base de données SQL
Server sécurisée avec un sous-rapport
Dans ce tutoriel, vous allez traiter un problème supplémentaire concernant la connexion à une base de données
SQL Server sécurisée : que faire si le rapport qui nécessite une connexion à une base de données SQL Server sécurisée contient un sous-rapport ?
Introduction
Dans ce tutoriel, vous allez apprendre à remplir les conditions requises pour la connexion d'un sous-rapport.
Vous devez apporter deux modifications au projet créé dans le précédent tutoriel :
● Vous ajoutez un sous-rapport au rapport d'origine.
Ce sous-rapport désigne la table Orders de la base de données Northwind. La table Orders est liée à la table
Customers utilisée par la clé externe CustomerID dans le tutoriel précédent.
● Vous ajoutez une nouvelle méthode.
La méthode extrait les sous-rapports du rapport principal, puis transmet chaque sous-rapport à la méthode d'assistance SetDBLogonForReport().
Vous pouvez également effectuer ce tutoriel en utilisant les classes du modèle d'objet CrystalReportViewer, bien qu'il soit recommandé d'utiliser le modèle d'objet ReportDocument.
Pour créer ce tutoriel à l'aide du modèle d'objet CrystalReportViewer, voir
Exemple de code
Ce tutoriel fournit des exemples de code Visual Basic et C# qui illustrent la version terminée du projet. Suivez les instructions de ce tutoriel pour créer un projet ou ouvrez le projet d'exemple de code pour travailler à partir d'une version terminée.
Les exemples de code sont stockés dans des dossiers classés par langue et par type de projet. Les noms des dossiers de chaque version d'exemple de code sont les suivants :
● Site Web C# : CS_Web_RDObjMod_DBLogonSubrpt
● Projet Windows C# : CS_Win_RDObjMod_DBLogonSubrpt
● Site Web Visual Basic : VB_Web_RDObjMod_DBLogonSubrpt
● Projet Windows Visual Basic : VB_Win_RDObjMod_DBLogonSubrpt
Informations associées
Répertoire d'exemples de rapports [page 15]
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
371
1.5.2.4.1 Ajout d'un sous-rapport au rapport d'origine
Pour commencer, vous ajoutez un sous-rapport au rapport d'origine.
1.5.2.4.1.1 Pour ajouter un sous-rapport
Procédure
SQL Server sécurisée à l'aide de la sécurité intégrée [page 359]
.
2. Dans l'
Explorateur de solutions
, cliquez deux fois sur le rapport
NorthwindCustomers
pour l'ouvrir.
3. Cliquez avec le bouton droit de la souris sur la barre grise
Détails
et sélectionnez
Insérer une section en dessous
.
4. Cliquez avec le bouton droit de la souris sur la nouvelle section
Détails b
que vous avez créée, sélectionnez
Insérer
, puis cliquez sur
Sous-rapport
.
Un carré gris encadre le curseur de la souris.
5. Faites glisser le rectangle gris sur la nouvelle section
Détails b
, puis relâchez le bouton de la souris.
6. Dans l'onglet
Sous-rapport
de la boîte de dialogue
Insérer un sous-rapport
, sélectionnez
Créer un sous-rapport
à l'aide de l'Assistant de création de rapports
.
Remarque
La boîte de dialogue Insérer un sous-rapport inclut d'autres options permettant de sélectionner un rapport existant et des sous-rapports à la demande. Pour en savoir plus sur ces fonctionnalités, voir
Onglet Sousrapport (boîte de dialogue Insérer un sous-rapport) [page 911]
.
7. Dans le champ
Nom du nouveau rapport
, saisissez "CustomerOrders".
8. Cliquez sur
Assistant de création de rapports...
9. Dans le panneau
Sources de données disponibles
de la boîte de dialogue
Assistant de création de rapports standard
, développez le dossier
Créer une nouvelle connexion
.
10. Développez le dossier
OLE DB (ADO)
.
Le dossier contient le serveur de base de données qui a été configuré pour le rapport lorsque ce dernier a été créé.
Remarque
Si le serveur ne s'affiche pas, suivez les instructions du tutoriel précédent pour vous connecter à la base de données SQL Server.
11. Développez les nœuds
Northwind
,
dbo
et
Tables
.
12. Sélectionnez la table
Commandes
et cliquez sur le bouton
>
pour la déplacer dans le panneau
Tables sélectionnées
, puis cliquez sur
Suivant
.
13. Dans le panneau
Champs disponibles
, sélectionnez
Order ID
,
Order Date
,
Shipped Date
et
Ship Name
.
14. Cliquez sur le bouton
>
pour déplacer ces champs dans le panneau
Champs à afficher
, puis cliquez sur
Terminer
.
372
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
15. Dans la boîte de dialogue
Insérer un sous-rapport
, sélectionnez l'onglet
Mise en relation
.
16. Dans la liste
Champs disponibles
du panneau
Champs du rapport principal à mettre en relation
, développez la table
Customers
, sélectionnez
CustomerID
, puis cliquez sur le bouton
>
.
17. Dans le panneau
Mise en relation du champ Customers.CustomerID
qui s'affiche, laissez les sélections par défaut.
Ces sélections de paramètres et de données génèrent automatiquement une relation entre le rapport principal et le sous-rapport.
18. Cliquez sur
OK
.
Le nouveau sous-rapport, CustomerOrders, s'affiche dans la section Détails b du rapport principal.
Remarque
Lorsque vous ajoutez un sous-rapport à la section Détails, le sous-rapport s'affiche pour chaque ligne, ce qui influe sur les performances du rapport. Si vous ne souhaitez pas obtenir des informations aussi détaillées, placez le sous-rapport dans une section Groupe plutôt qu'une section Détails.
Résultats
Vous pouvez à présent vérifier les paramètres du sous-rapport.
1.5.2.4.1.2 Pour vérifier les paramètres du sous-rapport
Procédure
1. Dans la section Détails du rapport, cliquez deux fois sur le sous-rapport
CustomerOrders
pour l'afficher.
Des boutons de navigation apparaissent au bas de la fenêtre du concepteur à la fois pour le rapport principal et le sous-rapport CustomerOrders.
2. Si l'
Explorateur de champs
n'est pas visible, cliquez sur
Activer/Désactiver l'affichage du champ
dans la barre d'outils Crystal Reports.
Remarque
Vous pouvez également afficher l'
Explorateur de champs
en ouvrant le menu
Crystal Reports
, puis en cliquant sur
Explorateur de champs
.
3. Dans l'
Explorateur de champs
, développez
Champs de paramètre
.
4. Vérifiez que le champ de paramètre
Pm-Customers.CustomerID
a été automatiquement généré lorsque le sous-rapport a été relié.
5. Dans la barre d'outils, cliquez sur
Expert Sélection
.
6. Dans la boîte de dialogue
Expert Sélection
, vérifiez que le critère
Orders.CustomerID est égal à {?Pm-
Customers.CustomerID}
est défini, puis cliquez sur
OK
.
7. Dans le menu
Fichier
, sélectionnez
Enregistrer tout
.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
373
Résultats
Vous avez réussi à ajouter un sous-rapport CustomerOrders au rapport NorthwindCustomers. Dans la section suivante, vous allez ajouter un code permettant de définir les informations de connexion à la base de données SQL
Server sécurisée pour tous les sous-rapports présents dans le rapport principal.
1.5.2.4.2 Ajout du code de connexion au sous-rapport
Vous allez à présent ajouter le code de connexion du sous-rapport à la classe code-behind. Vous commencez par créer une méthode d'assistance privée nommée SetDBLogonForSubreports().
1.5.2.4.2.1 Pour créer et coder la méthode
SetDBLogonForSubreports()
Procédure
1. Ouvrez le Web Form ou Windows Form.
2. Dans le menu
Affichage
, cliquez sur
Code
.
3. A la fin de la classe, créez une méthode privée nommée SetDBLogonForSubreports() avec deux paramètres : ConnectionInfo et ReportDocument.
Private Sub SetDBLogonForSubreports(ByVal myConnectionInfo As ConnectionInfo,
ByVal myReportDocument As ReportDocument)
End Sub
{
} private void SetDBLogonForSubreports(ConnectionInfo connectionInfo,
ReportDocument reportDocument)
4. Dans cette méthode, extrayez l'instance Section de la propriété Sections de la propriété ReportDefinition du paramètre ReportDocument.
Remarque
Sections est une classe indexée contenant des instances de la classeSection.
Dim mySections As Sections = myReportDocument.ReportDefinition.Sections
Sections sections = reportDocument.ReportDefinition.Sections;
5. Créez une boucle foreach qui effectue une boucle sur chaque instance Section de l'instance de classe indexée Sections.
For Each mySection As Section In mySections
374
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Next foreach(Section section in sections)
{
}
6. Dans la boucle foreach, extrayez l'instance ReportObjects de la propriété ReportObjects de l'instance
Section.
Dim myReportObjects As ReportObjects = mySection.ReportObjects
ReportObjects reportObjects = section.ReportObjects;
7. Dans chaque boucle foreach, créez une boucle foreach imbriquée qui effectue une boucle sur chaque instance ReportObject de l'instance de classe indexée ReportObjects.
For Each myReportObject As ReportObject In myReportObjects
Next foreach(ReportObject reportObject in reportObjects)
{
}
8. Dans la boucle foreach imbriquée, créez un bloc conditionnel qui vérifie si la propriété Kind de l'instance
ReportObject équivaut à la sélection SubreportObject de l'énumération ReportObjectKind.
If myReportObject.Kind = ReportObjectKind.SubreportObject Then
End If if(reportObject.Kind == ReportObjectKind.SubreportObject)
{
}
9. Dans le bloc conditionnel, effectuez un cast de l'instance ReportObject en instance SubreportObject.
Dim mySubreportObject As SubreportObject = CType(myReportObject, SubreportObject)
SubreportObject subreportObject = (SubreportObject)reportObject;
10. Toujours dans le bloc conditionnel, déclarez une nouvelle instance de ReportDocument sous la forme d'une variable subReportDocument et remplissez-la en appelant la méthode OpenSubreport() de l'instance
SubreportObject.
Dim subReportDocument As ReportDocument = mySubreportObject.OpenSubreport(mySubreportObject.SubreportName)
ReportDocument subReportDocument = subreportObject.OpenSubreport(subreportObject.SubreportName);
11. Dans le bloc conditionnel, appelez la méthode SetDBLogonForReport() d'origine et transmettez-lui le paramètre ConnectionInfo et la nouvelle variable subReportDocument.
SetDBLogonForReport(myConnectionInfo, subReportDocument)
SetDBLogonForReport(connectionInfo, subReportDocument);
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
375
1.5.2.4.2.2 Pour modifier la méthode
ConfigureCrystalReports() selon le code de connexion à la base de données des sousrapports
Contexte
Cette procédure a créé une méthode permettant d'extraire tous les sous-rapports possibles sous forme d'instances ReportDocument. Chaque instance ReportDocument de sous-rapport est ensuite transmise à la méthode d'origine afin de définir la connexion à une base de données SQL Server sécurisée.
Cependant, vous devez maintenant modifier la méthode ConfigureCrystalReports() pour désigner cette méthode et permettre le traitement des informations de connexion à la base de données des sous-rapports.
Procédure
1. Dans la méthode ConfigureCrystalReports(), créez plusieurs sauts de ligne dans le code au-dessus de la ligne qui lie le rapport au contrôle CrystalReportViewer.
2. Dans les sauts de ligne, saisissez un appel à la méthode SetDBLogonForSubreports() en transmettant l'instance ConnectionInfo et le rapport NorthwindCustomers.
SetDBLogonForSubreports(myConnectionInfo, northwindCustomersReport)
SetDBLogonForSubreports(connectionInfo, northwindCustomersReport);
1.5.2.4.2.3 Pour tester le chargement du rapport
NorthwindCustomers
Contexte
Cette procédure est suivie du code d'origine qui lie le rapport au contrôle CrystalReportViewer.
Vous êtes maintenant prêt à générer et exécuter votre projet. Le chargement du rapport et de son sous-rapport ne devrait poser aucun problème, car le code permettant de connecter n'importe quel sous-rapport à la base de données est maintenant écrit.
Procédure
1. Dans le menu
Générer
, sélectionnez
Générer la solution
.
376
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
2. Si vous rencontrez des erreurs lors de la génération, corrigez-les.
3. Dans le menu
Déboguer
, cliquez sur
Démarrer
.
Le rapport NorthwindCustomers et son nouveau sous-rapport CustomerOrders s'affichent correctement.
4. Revenez dans Visual Studio, puis cliquez sur
Arrêter
pour quitter le mode débogage.
1.5.2.5 Tutoriel : Lecture et définition des paramètres discrets
Dans ce tutoriel, vous allez apprendre à créer un rapport dont les données peuvent être filtrées en fonction d'un paramètre discret.
Introduction
Un paramètre discret est une valeur unique alors qu'un paramètre de plage fait référence à une plage de valeurs.
Les éléments textuels (tels que les villes) sont généralement accessibles via des paramètres discrets. Les
éléments numériques (tels que les salaires des employés) sont généralement accessibles via des paramètres de plage.
Dans ce tutoriel, vous allez définir une valeur de paramètre discret afin d'afficher un rapport sur les clients basé sur un champ. Ce rapport affiche uniquement les clients vivant dans les villes sélectionnées dans une liste de villes. Cette liste provient des valeurs par défaut du paramètre Ville. Les valeurs par défaut du paramètre Ville sont encapsulées dans le rapport.
Créez tout d'abord un rapport sur les clients avec un paramètre de ville. Les données du rapport proviennent de l'exemple de base de données fourni avec SAP Crystal Reports, version développeur pour Microsoft Visual Studio.
Lorsque vous instanciez le rapport dans le code, vous créez une instance ArrayList contenant des noms de ville
(Paris, Tokyo), puis transmettez cette instance à une méthode d'assistance qui définit ces noms de ville comme les valeurs actuelles du paramètre Ville. Vous liez ensuite le rapport au contrôle CrystalReportViewer et seuls les clients vivant à Paris ou à Tokyo sont affichés dans ce rapport.
Dans la partie suivante du tutoriel, vous allez effectuer les opérations suivantes :
● Créer une méthode qui extrait toutes les valeurs par défaut et les renvoie dans une instance ArrayList.
● Ajouter un contrôle ListBox au formulaire et le remplir avec les valeurs provenant de l'ArrayList.
● Ajouter un contrôle Button pour réafficher le rapport en fonction des sélections ListBox.
Dans la dernière partie du tutoriel, vous coderez l'événement de clic pour extraire les éléments sélectionnés à partir du contrôle ListBox et définir les valeurs actuelles du paramètre Ville. Le rapport est réaffiché, indiquant uniquement les clients qui vivent dans les villes sélectionnées dans le contrôle ListBox.
Ce tutoriel peut également être effectué avec des classes du modèle d'objet CrystalReportViewer, bien qu'il soit recommandé d'utiliser le modèle d'objet ReportDocument.
Pour créer ce tutoriel à l'aide du modèle d'objet CrystalReportViewer, voir
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
377
Exemple de code
Ce tutoriel fournit des exemples de code Visual Basic et C# qui illustrent la version terminée du projet. Suivez les instructions de ce tutoriel pour créer un projet ou ouvrez le projet d'exemple de code pour travailler à partir d'une version terminée.
Les exemples de code sont stockés dans des dossiers classés par langue et par type de projet. Les noms des dossiers de chaque version d'exemple de code sont les suivants :
● Site Web C# : CS_Web_RDObjMod_Parameters
● Projet Windows C# : CS_Win_RDObjMod_Parameters
● Site Web Visual Basic : VB_Web_RDObjMod_Parameters
● Projet Windows Visual Basic : VB_Win_RDObjMod_Parameters
Base de données Xtreme
Ce tutoriel utilise un exemple de base de données appelée Xtreme. Le fichier de base de données xtreme.mdb est fourni dans le package d'exemples de code du SDK de SAP Crystal Reports .NET. Pour utiliser la base de données
Xtreme, vous devez créer manuellement une connexion ODBC à cette base de données.
Informations associées
Choisir le modèle d'objet correct pour votre projet [page 32]
Répertoire d'exemples de rapports [page 15]
1.5.2.5.1 Création d'un rapport avec des paramètres
Commencez par créer un rapport à partir des informations de la base de données Xtreme.
1.5.2.5.1.1 Pour créer un rapport avec des paramètres
Procédure
1. Dans l'
Explorateur de solutions
, cliquez avec le bouton droit de la souris sur le nom du projet affiché en gras, pointez sur
Ajouter
, puis cliquez sur
Nouvel élément
.
2. Dans la boîte de dialogue
Ajouter un nouvel élément
, dans la vue
Modèles
, sélectionnez le modèle
Rapport
Crystal
.
3. Dans le champ
Nom
, saisissez le nom
CustomersByCity.rpt
, puis cliquez sur
Ajouter
.
378
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
4. Dans le panneau
Créer un document de rapport Crystal
de la boîte de dialogue
Galerie de rapports Crystal
, sélectionnez
en utilisant l' Assistant de création de rapports
.
5. Dans le panneau
Choisir un expert
, sélectionnez
Standard
, puis cliquez sur
OK
.
6. Dans le panneau
Sources de données disponibles
de la fenêtre Assistant de création de rapports standard, développez le dossier
Créer une nouvelle connexion
.
Remarque
Dans SAP Visual Studio .NET 2003, l'application SAP Crystal Reports n'a pas été mise à niveau vers la version complète et le dossier Créer une nouvelle connexion n'existe pas ; le contenu est indiqué au niveau supérieur.
7. Dans le sous-dossier qui s'ouvre, développez le dossier
ODBC (RDO)
.
8. Dans la fenêtre ODBC (RDO), sélectionnez l'entrée DSN ODBC correspondant à la base de données Xtreme, puis cliquez sur
Terminer
.
Le dossier ODBC (RDO) se développe pour afficher la base de données Xtreme.
9. Développez le nœud
Tables
et sélectionnez la table
Clients
.
10. Cliquez deux fois sur la table
Clients
pour l'ajouter au panneau
Tables sélectionnées
, puis cliquez sur
Suivant
.
11. Développez la table
Clients
, puis utilisez la combinaison de touches CTRL-clic pour sélectionner les champs
Nom du client
,
Titre
,
Adresse 1
,
Nom du contact
et
Ville
.
12. Cliquez sur le bouton
>
pour déplacer ces champs dans le panneau
Champs à afficher
, puis cliquez sur le bouton
Suivant
.
13. Dans le panneau
Champs disponibles
, sous
Champs du rapport
, sélectionnez
Clients.Ville
, cliquez sur le bouton
>
pour déplacer le champ dans le panneau
Regrouper par
, puis cliquez sur
Terminer
.
Le rapport CustomersByCity est créé et chargé dans la fenêtre principale de Visual Studio.
Résultats
Vous êtes maintenant prêt à ajouter un paramètre appelé Ville et à le remplir avec des valeurs par défaut.
1.5.2.5.1.2 Pour ajouter un paramètre Ville
Contexte
L'Explorateur de champs doit être visible, car il permet d'accéder à plusieurs fonctions du rapport, notamment aux paramètres.
Procédure
1. Si l'
Explorateur de champs
n'est pas visible, cliquez sur
Activer/Désactiver l'affichage du champ
dans la barre d'outils Crystal Reports.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
379
Remarque
Vous pouvez également afficher l'
Explorateur de champs
en ouvrant le menu
Crystal Reports
, puis en cliquant sur
Explorateur de champs
.
2. Dans l'
Explorateur de champs
, cliquez avec le bouton droit de la souris sur
Champs de paramètre
, puis sélectionnez
Nouveau
.
3. Dans la boîte de dialogue
Créer un champ de paramètre
: a. Attribuez à
Nom
la valeur
Ville
.
b. Attribuez à
Type
la valeur
Chaîne
. Attribuez à
Texte de l'invite
la valeur
Sélectionnez une ou plusieurs villes
.
c. Attribuez à
Champ de valeur
la valeur
Ville
.
d. Cliquez sur
Actions
, puis sélectionnez
Ajouter toutes les valeurs de la base de données
. La liste complète des villes apparaît dans le volet du milieu.
e. Dans le volet
Options de valeur
, attribuez à
Texte de l'invite
la valeur
Sélectionnez une ou plusieurs villes
.
f.
Dans ce même volet, attribuez à
Autoriser plusieurs valeurs
la valeur
True
.
g. Attribuez à
Autoriser les valeurs discrètes
la valeur
True
.
4. Cliquez sur
OK
pour fermer la boîte de dialogue
Créer un champ de paramètre
.
Résultats
Vous venez de définir les valeurs par défaut de sorte qu'elles contiennent une liste importante de villes. Plus loin dans ce tutoriel, vous accéderez par programmation à cette même liste de valeurs par défaut, via la propriété
DefaultValues de la classe ParameterFieldDefinition.
Vous devez maintenant utiliser l'Expert Sélection pour définir une formule permettant de connecter la colonne
Ville de la base de données au champ de paramètre Ville que vous venez de créer.
1.5.2.5.1.3 Pour connecter le paramètre Ville à la colonne
Ville de la base de données
Procédure
1. Dans la barre d'outils Crystal Reports, cliquez sur
Expert Sélection
.
2. Dans la boîte de dialogue
Choisir un champ
, sous
Champs du rapport
, sélectionnez
Clients.Ville
, puis cliquez sur
OK
.
3. Dans la boîte de dialogue
Expert Sélection
, dans l'onglet
Clients.Ville
, choisissez
est égal à
dans la liste déroulante.
4. Dans la nouvelle liste déroulante qui s'affiche à droite, sélectionnez le premier élément de la liste,
{?Ville}
, puis cliquez sur
OK
.
380
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Remarque
Cette sélection, {?Ville}, correspond au paramètre Ville que vous avez créé précédemment.
5. Dans le menu
Fichier
, sélectionnez
Enregistrer tout
.
Résultats
Vous êtes maintenant prêt à lier le rapport au contrôle
CrystalReportViewer
et à définir le paramètre Ville avec deux valeurs d'origine, Paris et Tokyo.
1.5.2.5.2 Liaison du rapport
Lorsque vous avez suivi les instructions de la procédure Configuration d'un projet [page 15]
en préparation de ce tutoriel, vous avez placé un contrôle CrystalReportViewer sur le Web Form ou le Windows Form. Aux étapes précédentes, vous avez ajouté un rapport CustomerByCity au projet.
Dans cette section, vous allez instancier le rapport CustomersByCity et le lier au contrôle CrystalReportViewer.
Vous allez ensuite vérifier si le rapport s'affiche correctement lorsque les valeurs actuelles n'ont pas été définies pour ce paramètre.
Vous pouvez instancier et lier le rapport de deux façons :
● En tant que rapport incorporé.
● En tant que rapport non incorporé.
Choisissez l'une des deux (mais pas les deux) procédures ci-dessous.
● Si vous utilisez des rapports incorporés, effectuez la procédure suivante afin d'instancier le rapport sous forme de rapport incorporé.
● Si vous utilisez des rapports non incorporés, effectuez la seconde procédure afin d'instancier le rapport sous forme de rapport non incorporé.
1.5.2.5.2.1 Pour instancier le rapport CustomersByCity sous forme de rapport incorporé et le lier au contrôle
CrystalReportViewer
Procédure
1. Ouvrez le Web Form ou Windows Form.
2. Dans le menu
Affichage
, cliquez sur
Code
pour afficher la classe code-behind du Web Form ou du Windows
Form.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
381
3. Ajoutez une nouvelle déclaration de niveau classe pour la classe wrapper du rapport CustomersByCity, avec la variable customersByCityReport. Définissez le modificateur d'accès à private.
Private customersByCityReport As CustomersByCity private CustomersByCity customersByCityReport;
4. Dans la méthode ConfigureCrystalReports(), instanciez la classe wrapper du rapport.
Remarque
Vous avez créé la méthode ConfigureCrystalReports() dans Configuration d'un projet [page 15]
.
customersByCityReport = New CustomersByCity() customersByCityReport = new CustomersByCity();
5. Sur la ligne suivante, au-dessous de l'instanciation du rapport, liez la propriété ReportSource du contrôle
CrystalReportViewer à la classe de rapport instanciée (nom de la variable : customersByCityReport).
myCrystalReportViewer.ReportSource = customersByCityReport crystalReportViewer.ReportSource = customersByCityReport;
Remarque
L'instance du contrôle CrystalReportViewer est accessible dans le code, car vous avez ajouté le contrôle à votre Web Form ou Windows Form. Si IntelliSense ne reconnaît pas l'instance du contrôle
CrystalReportViewer, vérifiez que le contrôle CrystalReportViewer a été ajouté sous la forme d'une déclaration de niveau classe à cette classe code-behind.
1.5.2.5.2.2 Pour instancier le rapport CustomersByCity sous forme de rapport non incorporé et le lier au contrôle CrystalReportViewer
Contexte
Vous êtes maintenant prêt à générer et exécuter votre projet. Le chargement du rapport doit échouer, car le code permettant de définir une valeur pour le champ de paramètre Ville n'a pas encore été écrit.
Procédure
1. Ouvrez le Web Form ou Windows Form.
2. Dans le menu
Affichage
, cliquez sur
Code
.
382
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
3. Ajoutez une nouvelle déclaration de niveau classe pour la classe wrapper du rapport ReportDocument, avec la variable customersByCityReport. Définissez le modificateur d'accès à private.
Private customersByCityReport As ReportDocument private ReportDocument customersByCityReport;
Remarque
La classe ReportDocument est un membre de l'espace de noms CrystalDecisions.CrystalReports.Engine.
Vous avez ajouté une déclaration "Imports" [Visual Basic] ou "using" [C#] pour cet espace de
noms dans la section Configuration d'un projet [page 15]
. Lorsque vous instanciez ReportDocument et chargez un rapport dans l'espace de noms, vous accédez au rapport via le SDK sans l'incorporer.
4. Dans la méthode ConfigureCrystalReports() (que vous avez créée dans l'une des procédures de la
section Configuration d'un projet [page 15]
), instanciez la classe ReportDocument.
customersByCityReport = New ReportDocument() customersByCityReport = new ReportDocument();
5. Déclarez une variable chaîne, nommez-la reportPath et affectez-lui un chemin d'accès au rapport local au moment de l'exécution. Ce chemin est déterminé différemment selon qu'il s'agit d'un site Web ou d'un projet
Windows :
○ Pour un site Web, transmettez le nom du fichier de rapport local sous forme de paramètre de type chaîne dans la méthode Server.MapPath(). Ceci permet d'associer le rapport local au chemin d'accès du répertoire de fichiers du disque dur au moment de l'exécution.
Dim reportPath As String = Server.MapPath("CustomersByCity.rpt") string reportPath = Server.MapPath("CustomersByCity.rpt");
○ Pour un projet Windows, concaténez la propriété Application.StartupPath avec une barre oblique inverse et le nom du fichier de rapport local. Ceci permet d'associer le rapport au même répertoire que celui du fichier exécutable Windows.
Remarque
Au moment de la compilation, vous copierez le rapport dans le répertoire contenant le fichier exécutable.
Dim reportPath As String = Application.StartupPath & "\" &
"CustomersByCity.rpt" string reportPath = Application.StartupPath + "\\" + "CustomersByCity.rpt";
6. Appelez la méthode Load() de l'instance ReportDocument et transmettez-lui la variable chaîne reportPath.
customersByCityReport.Load(reportPath) customersByCityReport.Load(reportPath);
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
383
7. Sur la ligne suivante, sous le chargement du rapport, liez la propriété ReportSource du contrôle
CrystalReportViewer à l'instance ReportDocument.
myCrystalReportViewer.ReportSource = customersByCityReport crystalReportViewer.ReportSource = customersByCityReport;
Résultats
Que vous ayez choisi d'instancier une classe de rapport incorporé ou une classe de rapport non incorporé via la classe ReportDocument, le nom de la variable utilisée est identique : customersByCityReport. Vous pouvez ainsi utiliser un bloc de code commun dans les procédures suivantes.
Vous êtes maintenant prêt à générer et exécuter votre projet. Le chargement du rapport doit échouer, car le code permettant de définir une valeur pour le champ de paramètre Ville n'a pas encore été écrit. Vous ajouterez une valeur au paramètre Ville plus loin dans ce tutoriel.
1.5.2.5.2.3 Pour tester le chargement du rapport
CustomersByCity
Procédure
1. Dans le menu
Générer
, sélectionnez
Générer la solution
.
2. Si vous rencontrez des erreurs lors de la génération, corrigez-les.
3. Si vous utilisez un rapport non incorporé dans un projet Windows, recherchez l'exécutable Windows compilé dans le sous-répertoire \bin\ [Visual Basic] ou \bin\debug\ [C#], puis copiez le rapport dans ce sous-répertoire.
Remarque
Pour que le rapport non incorporé soit chargé par l'exécutable Windows au moment de l'exécution, le rapport doit être stocké dans le même répertoire que l'exécutable Windows.
4. Dans le menu
Déboguer
, cliquez sur
Démarrer
.
Le rapport CustomersByCity ne s'affiche pas. Il s'affiche après que vous avez ajouté une valeur au paramètre
Ville plus loin dans ce tutoriel.
Remarque
Les résultats peuvent varier selon la version de SAP Crystal Reports utilisée. Dans les versions plus récentes, un formulaire s'affiche vous demandant de fournir des valeurs de paramètre pour ce rapport.
Dans les versions antérieures, une exception "Valeur actuelle du champ de paramètre introuvable" est renvoyée. Dans les deux cas, vous devez ajouter du code supplémentaire pour créer une application entièrement fonctionnelle.
384
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
5. Revenez dans Visual Studio, puis cliquez sur
Arrêter
pour quitter le mode débogage.
1.5.2.5.3 Définition manuelle des paramètres dans le code
Vous êtes maintenant prêt à créer deux valeurs ("Paris" et "Tokyo") dans le champ de paramètre Ville du rapport
CustomersByCity.
Cette opération nécessite un code qui peut être décomposé selon les processus suivants :
● Une constante PARAMETER_FIELD_NAME est nécessaire pour contenir le champ de paramètre "Ville", qui est utilisé plusieurs fois dans l'ensemble du code.
● Le code permettant d'ajouter les valeurs actuelles au paramètre étant généralement utilisé dans deux emplacements différents dans ce tutoriel, il est préférable de créer ce code en tant que méthode d'assistance distincte.
● Dans la méthode ConfigureCrystalReports(), vous devez ajouter les paramètres "Paris" et "Tokyo" à une instance ArrayList, puis transmettre le rapport et l'instance à la méthode d'assistance pour le traitement.
Dans la section suivante, vous allez apprendre à extraire les valeurs par défaut du champ de paramètre et à définir ces valeurs dans un contrôle ListBox. Ces valeurs seront utilisées à la fin du tutoriel pour sélectionner de façon dynamique de nouvelles villes et filtrer le rapport en fonction des nouvelles villes sélectionnées.
.
1.5.2.5.3.1 Pour créer une constante
PARAMETER_FIELD_NAME
Procédure
1. Revenez à la classe code-behind de ce Web Form ou Windows Form.
2. Au niveau de la classe, créez une constante chaîne, PARAMETER_FIELD_NAME, et attribuez-lui la valeur
"Ville".
Private Const PARAMETER_FIELD_NAME As String = "City" private const string PARAMETER_FIELD_NAME = "City";
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
385
1.5.2.5.3.2 Pour créer une méthode d'assistance permettant d'ajouter les valeurs actuelles au paramètre dans le rapport
Contexte
Vous êtes maintenant prêt à créer la méthode d'assistance qui permet d'ajouter les valeurs actuelles au paramètre dans le rapport.
Procédure
1. Revenez à la classe code-behind de ce Web Form ou Windows Form.
2. Au-dessus de la signature de classe, ajoutez une déclaration "Imports" [Visual Basic] ou "using"
[C#] au début de la classe de l'espace de noms System.Collections (si cet espace de noms n'a pas déjà été déclaré).
Imports System.Collections
using System.Collections;
Remarque
Cette déclaration est nécessaire pour accéder à la classe ArrayList.
3. Dans la partie inférieure de la classe, créez une méthode privée nommée
SetCurrentValuesForParameterField() avec deux variables dans la signature de la méthode.
Remarque
Plus loin dans ce tutoriel, si vous avez utilisé un rapport incorporé, vous transmettez votre classe de rapport incorporé au paramètre de la méthode ReportDocument. Cette possibilité s'explique par le fait que
Toutes les classes de rapport incorporé présentes dans SAP Crystal Reports héritent de la classe de base
ReportDocument.
Private Sub SetCurrentValuesForParameterField(ByVal myReportDocument As
ReportDocument, ByVal myArrayList As ArrayList)
End Sub
{
} private void SetCurrentValuesForParameterField(ReportDocument reportDocument,
ArrayList arrayList)
4. Dans cette méthode, déclarez et instanciez la classe indexée ParameterValues en tant que variable currentParameterValues.
386
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Remarque
Pour que la classe ParameterValues soit accessible, vous devez avoir inclus une déclaration "Imports"
[Visual Basic] ou "using" [C#] dans la partie supérieure de la classe code-behind pour l'espace de
Dim currentParameterValues As ParameterValues = New ParameterValues()
ParameterValues currentParameterValues = new ParameterValues();
5. Créez une boucle foreach pour extraire toutes les valeurs envoyées (comme type Objet) de l'instance
ArrayList.
Remarque
Dans cette méthode, vous extrayez les valeurs d'ArrayList. Par la suite, vous écrirez du code permettant d'ajouter des valeurs à l'ArrayList.
For Each submittedValue As Object In myArrayList
Next foreach(object submittedValue in arrayList)
{
}
6. Dans la boucle foreach, déclarez et instanciez la classe ParameterDiscreteValue.
Dim myParameterDiscreteValue As ParameterDiscreteValue = New
ParameterDiscreteValue()
ParameterDiscreteValue parameterDiscreteValue = new ParameterDiscreteValue();
7. Dans la boucle foreach, convertissez la valeur envoyée en chaîne et transmettez-la à la propriété Value de l'instance ParameterDiscreteValue.
myParameterDiscreteValue.Value = submittedValue.ToString() parameterDiscreteValue.Value = submittedValue.ToString();
8. Dans la boucle foreach, ajoutez l'instance ParameterDiscreteValue dans la classe indexée currentParameterValues.
currentParameterValues.Add(myParameterDiscreteValue) currentParameterValues.Add(parameterDiscreteValue);
L'écriture de code dans la boucle foreach est à présent terminée. Vous placez le code restant (à l'aide des
étapes suivantes) après la boucle foreach.
9. En dehors de la boucle foreach, extrayez la classe indexée ParameterFieldDefinitions provenant de la propriété DataDefinition de l'instance ReportDocument.
Dim myParameterFieldDefinitions As ParameterFieldDefinitions = myReportDocument.DataDefinition.ParameterFields
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
387
ParameterFieldDefinitions parameterFieldDefinitions = reportDocument.DataDefinition.ParameterFields;
10. Extrayez l'instance ParameterFieldDefinition de la classe indexée ParameterFieldDefinitions qui se base sur l'entrée d'index de la constante PARAMETER_FIELD_NAME.
Dim myParameterFieldDefinition As ParameterFieldDefinition = myParameterFieldDefinitions(PARAMETER_FIELD_NAME)
ParameterFieldDefinition parameterFieldDefinition = parameterFieldDefinitions[PARAMETER_FIELD_NAME];
11. Transmettez l'instance currentParameterValues à la méthode ApplyCurrentValues de l'instance
ParameterFieldDefinition.
myParameterFieldDefinition.ApplyCurrentValues(currentParameterValues) parameterFieldDefinition.ApplyCurrentValues(currentParameterValues);
1.5.2.5.3.3 Pour appeler la méthode
SetCurrentValuesForParameterField () avant la liaison du rapport au contrôle
CrystalReportViewer
Contexte
Cette procédure a permis de créer une méthode qui extrait les valeurs envoyées d'une instance ArrayList et les place comme valeurs actuelles dans une instance ParameterFieldDefinition. Vous devez maintenant appeler cette méthode avant que votre rapport ne soit lié au contrôle CrystalReportViewer afin que le rapport sache qu'il dispose de paramètres.
Procédure
1. Dans la méthode ConfigureCrystalReports(), créez plusieurs sauts de ligne dans le code au-dessus de la ligne qui lie le rapport au contrôle CrystalReportViewer.
Dans ces sauts de ligne, vous pouvez saisir du code supplémentaire qui modifie le rapport avant qu'il ne soit lié au visualiseur.
2. Dans les sauts de lignes, déclarez et instanciez une ArrayList.
Dim myArrayList As ArrayList = New ArrayList()
ArrayList arrayList = new ArrayList();
388
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
3. Ajoutez les noms de ville "Paris" et "Tokyo" comme chaînes à l'instance ArrayList.
myArrayList.Add("Paris") myArrayList.Add("Tokyo") arrayList.Add("Paris"); arrayList.Add("Tokyo");
4. Appelez la méthode SetCurrentValuesForParameterField(), puis transmettez l'instance
CustomersByCityReport et l'instance ArrayList.
SetCurrentValuesForParameterField(customersByCityReport, myArrayList)
SetCurrentValuesForParameterField(customersByCityReport, arrayList);
1.5.2.5.3.4 Pour tester le chargement du rapport
CustomersByCity
Contexte
La dernière ligne de code de la méthode lie le rapport au contrôle CrystalReportViewer.
Vous êtes maintenant prêt à générer et exécuter votre projet. Le rapport doit s'afficher correctement, car le code définissant les valeurs actuelles dans le champ de paramètre est désormais écrit.
Procédure
1. Dans le menu
Générer
, sélectionnez
Générer la solution
.
2. Si vous rencontrez des erreurs lors de la génération, corrigez-les.
3. Dans le menu
Déboguer
, cliquez sur
Démarrer
.
Le rapport CustomersByCity s'affiche correctement, indiquant des listes de clients à Paris et à Tokyo.
4. Revenez dans Visual Studio, puis cliquez sur
Arrêter
pour quitter le mode débogage.
1.5.2.5.4 Création d'un contrôle ListBox qui affiche les paramètres par défaut
Le reste du tutoriel concerne l'affichage de la liste complète des valeurs par défaut du champ de paramètre dans un contrôle ListBox et le refiltrage du contenu du rapport en fonction des sélections effectuées à partir du contrôle ListBox.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
389
Dans cette section, vous allez apprendre à remplir le contrôle ListBox à partir des valeurs par défaut du champ de paramètre.
Remarque
N'oubliez pas que vous avez défini les valeurs par défaut, une liste importante de villes, lors de la création du rapport au début de ce tutoriel.
Pour ce faire, vous devez ajouter et configurer un contrôle ListBox, puis créer une méthode d'assistance pour remplir ce contrôle.
1.5.2.5.4.1 Pour créer et configurer un contrôle ListBox sur le formulaire
Procédure
1. Ouvrez le Web Form ou Windows Form.
2. Dans le menu
Affichage
, cliquez sur
Concepteur
.
3. Si vous développez un site Web, procédez comme suit :
○ Cliquez sur le contrôle
CrystalReportViewer
pour le sélectionner.
○ Appuyez sur la FLECHE GAUCHE du clavier afin de faire apparaître un curseur clignotant, puis appuyez sur ENTREE.
Le contrôle CrystalReportViewer descend d'une ligne.
4. Si vous développez un projet Windows, procédez comme suit :
○ Cliquez sur le contrôle
CrystalReportViewer
pour le sélectionner.
○ Dans la fenêtre
Propriétés
, attribuez à la propriété
Dock
la valeur "Bottom".
Remarque
Dans Visual Studio, lorsque vous sélectionnez la propriété
Dock
, un cadre apparaît à la place d'une liste d'options. Sélectionnez la partie du cadre correspondant à "Bottom".
○ Redimensionnez le Windows Form et le contrôle
CrystalReportViewer
de manière à ce que ce dernier soit suffisamment grand pour afficher le rapport. Laissez de l'espace au-dessus du contrôle
CrystalReportViewer
pour ajouter un contrôle
ListBox
.
○ Dans la fenêtre
Propriétés
, attribuez à la propriété
Anchor
la valeur "Top, Bottom, Left, Right".
○ Redimensionnez le Windows Form et le contrôle
CrystalReportViewer
de manière à ce que ce dernier soit suffisamment grand pour afficher le rapport. Laissez de l'espace au-dessus du contrôle
CrystalReportViewer
pour ajouter un contrôle
ListBox
.
5. Dans la
boîte à outils
, faites glisser un contrôle
ListBox
au-dessus du contrôle
CrystalReportViewer
.
Remarque
Si une tâche guidée apparaît dans le contrôle ListBox (dans Visual Studio), appuyez sur Echap pour la fermer.
390
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
6. Cliquez sur le contrôle
ListBox
pour le sélectionner.
7. Dans la fenêtre
Propriétés
:
○ Attribuez à
ID
ou
Name
la valeur "defaultParameterValuesList".
○ Attribuez à
SelectionMode
la valeur "Multiple" (ou "MultiExtended" dans un projet Windows).
8. Dans le menu
Fichier
, sélectionnez
Enregistrer tout
.
Résultats
Vous êtes maintenant prêt à créer une méthode d'assistance qui extrait les valeurs par défaut du champ de paramètre.
1.5.2.5.4.2 Pour créer une méthode d'assistance qui extrait les valeurs par défaut du champ de paramètre
Procédure
1. Ouvrez le Web Form ou Windows Form.
2. Dans le menu
Affichage
, cliquez sur
Code
.
3. Dans la partie inférieure de la classe, créez une méthode privée nommée
GetDefaultValuesFromParameterField() qui renvoie une instance ArrayList, en transmettant
ReportDocument dans la signature de la méthode.
Private Function GetDefaultValuesFromParameterField(ByVal myReportDocument As
ReportDocument) As ArrayList
End Function
{
} private ArrayList GetDefaultValuesFromParameterField(ReportDocument reportDocument)
4. Dans la méthode GetDefaultValuesFromParameterField(), extrayez la classe indexée
ParameterFieldDefinitions provenant de la propriété DataDefinition de l'instance ReportDocument.
Dim myParameterFieldDefinitions As ParameterFieldDefinitions = myReportDocument.DataDefinition.ParameterFields
ParameterFieldDefinitions parameterFieldDefinitions = reportDocument.DataDefinition.ParameterFields;
5. Extrayez l'instance ParameterFieldDefinition de la classe indexée ParameterFieldDefinitions, basée sur l'entrée d'index de la constante PARAMETER_FIELD_NAME.
Dim myParameterFieldDefinition As ParameterFieldDefinition = myParameterFieldDefinitions(PARAMETER_FIELD_NAME)
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
391
ParameterFieldDefinition parameterFieldDefinition = parameterFieldDefinitions[PARAMETER_FIELD_NAME];
6. Extrayez une classe indexée ParameterValues (en tant que variable defaultParameterValues) de la propriété
DefaultValues de l'instance ParameterFieldDefinition.
Dim defaultParameterValues As ParameterValues = myParameterFieldDefinition.DefaultValues
ParameterValues defaultParameterValues = parameterFieldDefinition.DefaultValues;
7. Déclarez et instanciez une ArrayList.
Dim myArrayList As ArrayList = New ArrayList()
ArrayList arrayList = new ArrayList();
8. Créez une boucle foreach pour extraire chaque instance ParameterValue de la variable defaultParameterValues.
For Each myParameterValue As ParameterValue In defaultParameterValues
Next foreach(ParameterValue parameterValue in defaultParameterValues)
{
}
Dans la boucle foreach, créez maintenant un bloc conditionnel imbriqué qui recherche des valeurs de paramètre discret (par opposition aux valeurs de paramètre de plage). Il existe deux versions de ce bloc conditionnel, car l'API a subi de légères modifications au cours de l'évolution des versions de
SAP Crystal Reports, version développeur pour Microsoft Visual Studio. Vérifiez votre API (à l'aide d'IntelliSense) pour connaître la propriété disponible sous ParameterValue :
9. Si la propriété disponible est IsRange, saisissez le code suivant dans la boucle foreach :
If (Not myParameterValue.IsRange) Then
End If if(!parameterValue.IsRange)
{
}
10. Ou, si la propriété disponible est Kind (DiscreteOrRangeKind, une énumération comportant trois valeurs :
DiscreteValue, RangeValue, DiscreteAndRangeValue) saisissez le code suivant dans la boucle foreach :
If (myParameterValue.Kind = DiscreteOrRangeKind.DiscreteValue) Then
End If if(parameterValue.Kind == DiscreteOrRangeKind.DiscreteValue)
{
}
11. Dans le bloc conditionnel imbriqué, effectuez un cast de l'instance ParameterValue en sa classe étendue,
DiscreteParameterValue.
Dim myParameterDiscreteValue As ParameterDiscreteValue = CType(myParameterValue,
ParameterDiscreteValue)
392
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
ParameterDiscreteValue parameterDiscreteValue =
(ParameterDiscreteValue)parameterValue;
12. Dans le bloc conditionnel imbriqué, ajoutez la propriété Value de l'instance ParameterDiscreteValue
(convertie en chaîne) dans l'instance ArrayList.
myArrayList.Add(myParameterDiscreteValue.Value.ToString()) arrayList.Add(parameterDiscreteValue.Value.ToString());
13. En dehors du bloc conditionnel et de la boucle foreach, en fin de méthode, renvoyez l'instance ArrayList depuis la méthode.
Return myArrayList return arrayList;
1.5.2.5.4.3 Pour lier l'ArrayList renvoyée de la méthode au contrôle ListBox dans un projet Web
Contexte
Vous avez extrait les valeurs par défaut du champ de paramètre et les avez renvoyées de la méthode sous la forme d'une ArrayList. Vous allez maintenant lier cette ArrayList au contrôle ListBox defaultParameterValuesList.
Le code varie légèrement selon que vous utilisez un projet Web ou un projet Windows ; en conséquence, vous ne devez effectuer que l'une des procédures Web ou Windows ci-après.
Procédure
1. Dans la méthode ConfigureCrystalReports(), créez plusieurs sauts de ligne dans le code immédiatement après la ligne de code qui ajoute la valeur de chaîne Tokyo à l'instance ArrayList.
Dans ces sauts de ligne, vous pouvez à présent saisir un code supplémentaire définissant la source de données du contrôle ListBox defaultParameterValuesList lors du premier chargement de la page.
2. Dans les sauts de ligne, créez un bloc conditionnel Not IsPostBack.
If Not IsPostBack Then
End If if(!IsPostBack)
{
}
Remarque
Le bloc conditionnel Not IsPostBack est utilisé pour encapsuler du code devant être exécuté uniquement lors du premier chargement de la page. Les contrôles sont généralement liés aux valeurs de
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
393
données dans des blocs conditionnels Not IsPostBack afin que leurs valeurs de données (et tout
événement de contrôle suivant) ne soient pas redéfinies lorsque les pages sont rechargées.
3. Dans le bloc conditionnel Not IsPostBack, attribuez à la propriété DataSource du contrôle ListBox defaultParameterValuesList la méthode d'assistance GetDefaultValuesFromParameterField() en transmettant l'instance de rapport CustomersByCity en tant que paramètre de méthode.
defaultParameterValuesList.DataSource =
GetDefaultValuesFromParameterField(customersByCityReport) defaultParameterValuesList.DataSource =
GetDefaultValuesFromParameterField(customersByCityReport);
4. Toujours dans le bloc conditionnel Not IsPostBack, appelez la méthode DataBind() du contrôle ListBox defaultParameterValuesList.
defaultParameterValuesList.DataBind() defaultParameterValuesList.DataBind();
1.5.2.5.4.4 Pour lier l'ArrayList renvoyée de la méthode au contrôle ListBox dans un projet Windows
Procédure
1. Dans la méthode ConfigureCrystalReports(), créez plusieurs sauts de ligne dans le code immédiatement après la ligne de code qui ajoute la valeur de chaîne Tokyo à l'instance ArrayList.
Dans ces sauts de ligne, vous pouvez à présent saisir un code supplémentaire définissant la source de données du contrôle ListBox defaultParameterValuesList lors du premier chargement de la page.
2. Dans les sauts de lignes, attribuez à la propriété DataSource du contrôle ListBox defaultParameterValuesList la méthode d'assistance GetDefaultValuesFromParameterField() en transmettant l'instance du rapport CustomersByCity en tant que paramètre de méthode.
defaultParameterValuesList.DataSource =
GetDefaultValuesFromParameterField(customersByCityReport) defaultParameterValuesList.DataSource =
GetDefaultValuesFromParameterField(customersByCityReport);
394
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.5.2.5.4.5 Pour vérifier si le contrôle ListBox defaultParameterValuesList est rempli
Contexte
Vous êtes maintenant prêt à générer et exécuter le projet pour vérifier si le contrôle ListBox defaultParameterValuesList est rempli.
Procédure
1. Dans le menu
Générer
, sélectionnez
Générer la solution
.
2. Si vous rencontrez des erreurs lors de la génération, corrigez-les.
3. Dans le menu
Déboguer
, cliquez sur
Démarrer
.
Le contrôle ListBox defaultParameterValuesList affiche la liste complète des valeurs par défaut (dans ce tutoriel, il s'agit de villes).
4. Revenez dans Visual Studio, puis cliquez sur
Arrêter
pour quitter le mode débogage.
Résultats
Dans la section suivante, vous allez ajouter un bouton pour réafficher le rapport en fonction des sélections du contrôle ListBox defaultParameterValuesList.
1.5.2.5.5 Définition des paramètres à partir des sélections
ListBox
Dans cette section, vous allez ajouter un bouton pour réafficher le rapport en fonction des sélections du contrôle
ListBox defaultParameterValuesList.
Dans la méthode d'événement de ce bouton, vous appellerez la même méthode que celle appelée lors du premier chargement de la page : SetCurrentValuesForParameterField(). Mais cette fois, au lieu de transmettre des valeurs arbitraires (Paris et Tokyo), vous transmettrez les valeurs sélectionnées depuis le contrôle ListBox defaultParameterValuesList.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
395
1.5.2.5.5.1 Pour créer et configurer un contrôle Button de réaffichage sur le formulaire
Procédure
1. Ouvrez le Web Form ou Windows Form.
2. Dans le menu
Affichage
, cliquez sur
Concepteur
.
3. Dans la
boîte à outils
, faites glisser un contrôle
Button
à droite du contrôle
ListBox
.
4. Cliquez sur le contrôle
Button
pour le sélectionner.
5. Dans la fenêtre
Propriétés
:
○ Attribuez à
ID
ou
Name
la valeur "redisplay".
○ Attribuez à
Text
la valeur "Réafficher le rapport".
Résultats
Vous êtes maintenant prêt à créer une méthode d'événement de clic qui recherche des éléments sélectionnés dans le contrôle ListBox et les transmet à la méthode SetCurrentValuesForParameterField().
Le code varie légèrement pour un projet Web ou un projet Windows ; en conséquence, vous ne devez effectuer que l'une des procédures Web ou Windows ci-après.
1.5.2.5.5.2 Pour créer la méthode d'événement de clic du contrôle Button de réaffichage dans un projet
Web
Procédure
1. Cliquez deux fois sur le contrôle Button de réaffichage.
Cette opération affiche la classe code-behind dans laquelle une méthode d'événement redisplay_Click() a été générée automatiquement.
2. Au-dessus de la signature de classe, ajoutez une déclaration "Imports" [Visual Basic] ou "using"
[C#] au début de la classe de l'espace de noms System.Web.UI.WebControls (si cet espace de noms n'a pas déjà été déclaré).
Imports System.Web.UI.WebControls
using System.Web.UI.WebControls;
Remarque
Cette déclaration est nécessaire pour accéder à la classe ListItem.
396
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
3. Dans la méthode d'événement redisplay_Click() qui vient d'être automatiquement générée, déclarez et instanciez une ArrayList.
Dim myArrayList As ArrayList = New ArrayList()
ArrayList arrayList = new ArrayList();
4. Créez une boucle foreach pour extraire chaque instance ListItem de la propriété Items de defaultParameterValuesList.
For Each item As ListItem In defaultParameterValuesList.Items
Next foreach(ListItem item in defaultParameterValuesList.Items)
{
}
5. Dans la boucle foreach, créez un bloc conditionnel imbriqué qui ajoute l'instance Item à l'instance Arraylist si la propriété Selected de l'instance actuelle Item a pour valeur True.
If item.Selected Then
myArrayList.Add(item.Value)
End If if(item.Selected)
{
arrayList.Add(item.Value);
}
6. En dehors du bloc conditionnel et de la boucle foreach, appelez la méthode
SetCurrentValuesForParameterField() et transmettez l'instance de rapport CustomersByCity et l'instance ArrayList.
SetCurrentValuesForParameterField(customersByCityReport, myArrayList)
SetCurrentValuesForParameterField(customersByCityReport, arrayList);
Les valeurs sélectionnées du contrôle ListBox ayant été appliquées comme valeurs actuelles du champ de paramètre, vous êtes maintenant prêt à réafficher le rapport.
7. Liez à nouveau l'instance de rapport CustomersByCity à la propriété ReportSource du contrôle
CrystalReportViewer.
myCrystalReportViewer.ReportSource = customersByCityReport crystalReportViewer.ReportSource = customersByCityReport;
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
397
1.5.2.5.5.3 Pour créer la méthode d'événement de clic du contrôle Button de réaffichage dans un projet
Windows
Procédure
1. Cliquez deux fois sur le contrôle Button de réaffichage.
Cette opération affiche la classe code-behind dans laquelle une méthode d'événement redisplay_Click() a été générée automatiquement.
2. Dans la méthode d'événement redisplay_Click() qui vient d'être automatiquement générée, déclarez et instanciez une ArrayList.
Dim myArrayList As ArrayList = New ArrayList()
ArrayList arrayList = new ArrayList();
3. Créez une boucle foreach pour extraire chaque élément (sous forme de chaîne) de la propriété SelectedItems de defaultParameterValuesList.
For Each item As String In defaultParameterValuesList.SelectedItems
Next foreach(string item in defaultParameterValuesList.SelectedItems)
{
}
4. Dans le bloc conditionnel, ajoutez l'instance chaîne Item à l'instance ArrayList.
myArrayList.Add(item) arrayList.Add(item);
5. En dehors du bloc conditionnel et de la boucle foreach, appelez la méthode
SetCurrentValuesForParameterField() et transmettez l'instance de rapport CustomersByCity et l'instance ArrayList.
SetCurrentValuesForParameterField(customersByCityReport, myArrayList)
SetCurrentValuesForParameterField(customersByCityReport, arrayList);
Les valeurs sélectionnées du contrôle ListBox ayant été appliquées comme valeurs actuelles du champ de paramètre, vous êtes maintenant prêt à réafficher le rapport.
6. Liez à nouveau l'instance de rapport CustomersByCity à la propriété ReportSource du contrôle
CrystalReportViewer.
myCrystalReportViewer.ReportSource = customersByCityReport crystalReportViewer.ReportSource = customersByCityReport;
398
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.5.2.5.5.4 Pour vérifier si le contrôle ListBox defaultParameterValuesList est rempli
Contexte
Vous êtes maintenant prêt à générer et exécuter le projet pour vérifier si le champ de paramètre a bien été correctement redéfini.
Procédure
1. Dans le menu
Générer
, sélectionnez
Générer la solution
.
2. Si vous rencontrez des erreurs lors de la génération, corrigez-les.
3. Dans le menu
Déboguer
, cliquez sur
Démarrer
.
4. Dans le contrôle
ListBox
, cliquez sur au moins quatre villes différentes dans la liste en maintenant la touche
Ctrl enfoncée.
5. Cliquez sur
Réafficher le rapport
.
La page est rechargée, affichant les enregistrements des clients qui vivent dans les villes sélectionnées dans la liste.
6. Revenez dans Visual Studio, puis cliquez sur
Arrêter
pour quitter le mode débogage.
Résultats
Si vous développez une application Windows, vous avez à présent terminé. Si vous développez un site Web,
effectuez maintenant la procédure Configuration de la persistance des paramètres [page 399] .
1.5.2.5.6 Configuration de la persistance des paramètres
Dans cette section, vous allez configurer la persistance (dans un tutoriel via le Web) des sélections des champs de paramètre effectuées à partir du contrôle ListBox.
Comme le montre le tutoriel
Tutoriel : Persistance du modèle d'objet ReportDocument à l'aide de Session [page
330] , les modifications apportées au modèle d'objet ReportDocument sont perdues lorsque la page est
rechargée, chaque fois que des utilisateurs cliquent sur des boutons de la barre d'outils CrystalReportViewer
(Page suivante et Zoom par exemple).
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
399
1.5.2.5.6.1 Pour montrer le manque de persistance des sélections de paramètre
Procédure
1. Dans le menu
Générer
, sélectionnez
Générer la solution
.
2. Si vous rencontrez des erreurs lors de la génération, corrigez-les.
3. Dans le menu
Déboguer
, cliquez sur
Démarrer
.
4. Dans le contrôle
ListBox
, utilisez la combinaison de touches MAJ-clic pour sélectionner toutes les villes dans la liste.
5. Cliquez sur
Réafficher le rapport
.
La page se recharge, puis affiche les enregistrements clients de tous les clients dans toutes les villes. Il s'agit d'un rapport volumineux contenant de nombreuses pages.
6. Dans la barre d'outils CrystalReportViewer, cliquez sur
Page suivante
.
La liste des villes sélectionnées n'est pas rendue persistante. La page 2 du rapport ne s'affiche pas. A la place, les paramètres de lancement apparaissent de nouveau (Paris et Tokyo).
7. Revenez dans Visual Studio, puis cliquez sur
Arrêter
pour quitter le mode débogage.
Résultats
Vous devez ajouter un code de persistance à votre application afin que les modifications apportées au modèle d'objet ReportDocument soient rendues persistantes lorsque les pages Web sont rechargées.
Pour commencer, vous allez ajouter un code de persistance à la méthode ConfigureCrystalReports() en ajoutant un bloc Else au bloc conditionnel Not IsPostBack. Vous allez ensuite définir des valeurs uniques pour l'instance ArrayList pour l'une des deux conditions du bloc conditionnel. A l'ouverture de la page, vous allez définir les valeurs par défaut ("Paris" et "Tokyo") dans l'instance ArrayList. Au rechargement de la page, vous allez extraire l'instance ArrayList stockée dans Session.
1.5.2.5.6.2 Pour ajouter un code de persistance à la méthode
ConfigureCrystalReports()
Procédure
1. Dans la méthode ConfigureCrystalReports(), coupez et collez au bas du bloc conditionnel If Not
IsPostBack les deux lignes de code permettant d'ajouter Paris et Tokyo à l'instance ArrayList.
Lorsque vous avez terminé, le bloc conditionnel doit ressembler à ceci :
If Not IsPostBack Then
defaultParameterValuesList.DataSource =
GetDefaultValuesFromParameterField(customersByCityReport)
400
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
defaultParameterValuesList.DataBind()
myArrayList.Add("Paris")
myArrayList.Add("Tokyo")
End If if (!IsPostBack)
{
defaultParameterValuesList.DataSource =
GetDefaultValuesFromParameterField(customersByCityReport);
defaultParameterValuesList.DataBind();
arrayList.Add("Paris");
arrayList.Add("Tokyo");
}
2. Ajoutez une ligne de code finale au bloc conditionnel qui affecte l'instance ArrayList à Session.
Remarque
Vous pouvez utiliser le nom de variable comme identificateur de chaîne pour la Session ajoutée.
Session("myArrayList") = myArrayList
Session["arrayList"] = arrayList;
3. Ajoutez une condition Else au bloc conditionnel Not IsPostBack.
4. Dans le bloc Else, extrayez l'instance ArrayList de Session, puis effectuez un cast de celle-ci en objet
ArrayList.
myArrayList = Ctype(Session("myArrayList"), ArrayList) arrayList = (ArrayList)Session["arrayList"];
Résultats
Lorsque vous avez terminé, le bloc conditionnel doit ressembler à ceci :
Ces modifications apportées à la méthode ConfigureCrystalReports() permettent de garantir que l'instance actuelle ArrayList est toujours disponible pour être transmise à la méthode
SetCurrentValuesForParameterField().
Dans la section suivante, vous allez apporter deux modifications au code dans l'événement de clic :
● Sélectionner l'instance ArrayList créée et l'affecter à Session.
● Remplacer les deux dernières lignes de code (qui configurent et affichent le rapport) par un appel à la méthode ConfigureCrystalReports() afin d'exécuter cette fonctionnalité sur un bloc de code commun.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
401
1.5.2.5.6.3 Pour modifier le code de la méthode d'événement de clic selon la persistance Session
Procédure
1. Supprimez les deux dernières lignes de code suivantes dans la méthode d'événement de clic.
La première ligne de code à supprimer représente l'appel à la méthode
SetCurrentValuesForParameterField(). La deuxième ligne de code à supprimer représente le code qui lie l'instance customersByCityReport à la propriété ReportSource du contrôle CrystalReportViewer.
Dans l'étape suivante, vous allez ajouter deux nouvelles lignes de code pour remplacer le code supprimé.
2. Dans la méthode d'événement de clic, immédiatement en dehors de la boucle foreach, ajoutez une ligne de code qui affecte l'instance ArrayList à Session.
Remarque
Vous pouvez utiliser le nom de variable comme identificateur de chaîne pour la Session ajoutée.
Session("myArrayList") = myArrayList
Session["arrayList"] = arrayList;
3. Appeler la méthode ConfigureCrystalReports().
Cette méthode extrait l'instance ArrayList, l'applique au rapport, puis lie le rapport au contrôle
CrystalReportViewer.
ConfigureCrystalReports()
ConfigureCrystalReports();
Résultats
Vous êtes maintenant prêt à générer et exécuter le projet pour vérifier si le champ de paramètre a bien été correctement redéfini.
Remarque
Une autre méthode consiste à rendre persistante l'instance ReportDocument. Pour apprendre à rendre persistante l'instance ReportDocument avec Session, voir le tutoriel
Tutoriel : Persistance du modèle d'objet
ReportDocument à l'aide de Session [page 330]
.
402
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.5.2.5.6.4 Pour vérifier si le contrôle ListBox defaultParameterValuesList est rempli
Procédure
1. Dans le menu
Générer
, sélectionnez
Générer la solution
.
2. Si vous rencontrez des erreurs lors de la génération, corrigez-les.
3. Dans le menu
Déboguer
, cliquez sur
Démarrer
.
4. Dans le contrôle
ListBox
, utilisez la combinaison de touches MAJ-clic pour sélectionner toutes les villes dans la liste.
5. Cliquez sur
Réafficher le rapport
.
La page se recharge et affiche les enregistrements clients de tous les clients dans toutes les villes. Il s'agit d'un rapport volumineux contenant de nombreuses pages.
6. Dans la barre d'outils CrystalReportViewer, cliquez sur
Page suivante
.
7. La liste des villes sélectionnées est désormais rendue persistante. La page 2 du rapport s'affiche.
8. Revenez dans Visual Studio, puis cliquez sur
Arrêter
pour quitter le mode débogage.
1.5.2.5.7 Addenda : Améliorations du code des paramètres discrets
Vous avez réussi à créer un rapport avec une valeur de paramètre discret et une méthode d'assistance pouvant accepter n'importe quel ensemble de valeurs dans un format commun (ArrayList). Vous avez aussi réussi à appliquer ces valeurs à un rapport en fonction d'un nom de champ de paramètre spécifique (constante
PARAMETER_FIELD_NAME).
Si vous avez installé Visual Studio 2005 ou version ultérieure, ou SAP Crystal Reports Developer, vous avez accès
à la fonctionnalité API améliorée définissant les paramètres discrets dans le rapport Crystal. L'API de
SAP Crystal Reports Developer permet de réduire la quantité de code nécessaire à la définition des paramètres discrets.
Dans les procédures précédentes, vous avez appris à créer la méthode d'assistance
SetCurrentValuesForParameterField().
Dans ce tutoriel, vous pouvez supprimer la méthode d'assistance et appeler à la place la méthode
SetParameterValue() de la classe ReportDocument.
La méthode SetParameterValue() propose les méthodes surchargées suivantes :
● SetParameterValue(int index, object value)
● SetParameterValue(string parameterFieldName, object value)
● SetParameterValue(string parameterFieldName, object value, string subreport)
Vous pouvez transmettre n'importe quel type d'objet dont la valeur correspond aux valeurs par défaut du champ du paramètre. L'objet peut être une instance Array qui stocke une liste de valeurs de paramètre.
Conditions prérequises :
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
403
● Vous devez créer un projet en suivant les instructions de la section
Tutoriel : Lecture et définition des paramètres discrets [page 377]
.
Toutefois, la section Définition manuelle des paramètres dans le code [page 385]
nécessite uniquement la création de la constante PARAMETER_FIELD_NAME. Vous n'avez pas besoin de créer la méthode d'assistance SetCurrentValuesForParameterField().
● Si vous avez déjà créé un projet à l'aide des instructions de la section
Tutoriel : Lecture et définition des paramètres discrets [page 377]
, supprimez la méthode d'assistance SetCurrentValuesForParameterField() et l'appel dans la méthode ConfigureCrystalReports().
1.5.2.5.7.1 Pour utiliser la méthode SetParameterValue() avec des paramètres discrets
Procédure
1. Ouvrez le projet terminé de ce tutoriel.
2. Ouvrez le Web Form ou Windows Form.
3. Dans le menu
Affichage
, cliquez sur
Code
.
4. Dans la méthode ConfigureCrystalReports(), au-dessus de la ligne qui lie le rapport à la propriété
ReportSource du contrôle CrystalReportViewer, appelez la méthode SetParameterValue() à partir de la classe CustomerByCity. Transmettez le nom de champ et les valeurs de paramètre d'une instance Array à la méthode.
customersByCityReport.SetParameterValue(PARAMETER_FIELD_NAME, arrayList.ToArray()) customersByCityReport.SetParameterValue(PARAMETER_FIELD_NAME, arrayList.ToArray());
Résultats
Vous êtes maintenant prêt à générer et exécuter le projet pour lire et définir des paramètres discrets.
1.5.2.6 Tutoriel : Lecture et définition des paramètres avec un sous-rapport
Dans ce tutoriel, vous allez traiter un problème supplémentaire : que faire si un rapport nécessitant des paramètres contient un sous-rapport nécessitant des paramètres différents ?
Remarque
Pour suivre ce tutoriel, vous devez terminer le tutoriel précédent
Tutoriel : Lecture et définition des paramètres discrets [page 377] .
404
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Introduction
Dans le tutoriel précédent,
Tutoriel : Lecture et définition des paramètres discrets [page 377] , vous avez appris à
créer un rapport avec un paramètre et à créer un code permettant de définir ce paramètre au moment de l'exécution, en utilisant chaque fois des valeurs de paramètres codées en dur et des valeurs de paramètres transmises à partir d'un contrôle ListBox.
Dans ce tutoriel, vous allez apprendre à ajouter des paramètres à un sous-rapport.
Vous devez apporter quatre modifications au projet que vous avez créé lors de la procédure
Tutoriel : Lecture et définition des paramètres discrets [page 377] :
● Vous ajoutez un sous-rapport au rapport d'origine.
Ce sous-rapport désigne la table Commandes de la base de données Xtreme. La table Commandes est liée à la table Clients utilisée dans le tutoriel précédent par la clé externe ID client.
● Vous ajoutez un paramètre de plage au sous-rapport qui effectue un filtrage selon une plage de dates de commande.
● Vous ajoutez deux contrôles Text au formulaire : orderStartDate et orderEndDate afin de définir la plage des dates de commande au moment de l'exécution.
● Vous ajoutez une nouvelle méthode.
Cette méthode crée une instance ParameterRangeValue contenant les valeurs startDate et endDate, puis transmet cette instance ParameterRangeValue au paramètre de plage dans le sous-rapport.
Une fois le tutoriel terminé, vous pouvez filtrer les valeurs affichées dans le rapport au moment de l'exécution. Le code que vous ajoutez limite le nombre de villes affichées dans le rapport principal ainsi que la plage de dates de commande qui apparaîtront dans le sous-rapport.
Ce tutoriel peut également être effectué avec des classes du modèle d'objet CrystalReportViewer, bien qu'il soit recommandé d'utiliser le modèle d'objet ReportDocument.
Exemple de code
Ce tutoriel fournit des exemples de code Visual Basic et C# qui illustrent la version terminée du projet. Suivez les instructions de ce tutoriel pour créer un projet ou ouvrez le projet d'exemple de code pour travailler à partir d'une version terminée.
Les exemples de code sont stockés dans des dossiers classés par langue et par type de projet. Les noms des dossiers de chaque version d'exemple de code sont les suivants :
● Site Web C# : CS_Web_RDObjMod_ParametersSubrpt
● Projet Windows C# : CS_Win_RDObjMod_ParametersSubrpt
● Site Web Visual Basic : VB_Web_RDObjMod_ParametersSubrpt
● Projet Windows Visual Basic : VB_Win_RDObjMod_ParametersSubrpt
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
405
Base de données Xtreme
Ce tutoriel utilise un exemple de base de données appelée Xtreme. Le fichier de base de données xtreme.mdb est fourni dans le package d'exemples de code du SDK de SAP Crystal Reports .NET. Pour utiliser la base de données
Xtreme, vous devez créer manuellement une connexion ODBC à cette base de données.
Informations associées
Choisir le modèle d'objet correct pour votre projet [page 32]
Tutoriel : Lecture et définition des paramètres de plage d'un sous-rapport [page 270]
Répertoire d'exemples de rapports [page 15]
1.5.2.6.1 Ajout d'un sous-rapport au rapport d'origine
Pour commencer, vous ajoutez un sous-rapport au rapport d'origine.
1.5.2.6.1.1 Pour ajouter un sous-rapport
Procédure
2. Dans l'
Explorateur de solutions
, cliquez deux fois sur le rapport
CustomersByCity
pour l'ouvrir.
3. Cliquez avec le bouton droit de la souris sur la barre grise
Détails
et sélectionnez
Insérer une section en dessous
.
4. Cliquez avec le bouton droit de la souris sur la nouvelle section
Détails b
que vous avez créée, sélectionnez
Insérer
, puis cliquez sur
Sous-rapport
.
Un carré gris encadre le curseur de la souris.
5. Faites glisser le rectangle gris sur la nouvelle section
Détails b
, puis relâchez le bouton de la souris.
6. Dans l'onglet
Sous-rapport
de la boîte de dialogue
Insérer un sous-rapport
, sélectionnez
Créer un sous-rapport
à l'aide de l'Assistant de création de rapports
.
Remarque
La boîte de dialogue Insérer un sous-rapport inclut d'autres options permettant de sélectionner un rapport existant et des sous-rapports à la demande. Pour en savoir plus sur ces fonctionnalités, voir
Onglet Sousrapport (boîte de dialogue Insérer un sous-rapport) [page 911]
.
7. Dans le champ
Nom du nouveau rapport
, saisissez
CustomerOrders
.
406
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
8. Cliquez sur
Assistant de création de rapports...
9. Dans le panneau
Sources de données disponibles
de la fenêtre Assistant de création de rapports standard, développez le dossier
Créer une nouvelle connexion
.
10. Dans le sous-dossier qui s'ouvre, développez le dossier
ODBC (RDO)
.
Le dossier contient le serveur de base de données qui a été configuré pour le rapport lorsque ce dernier a été créé.
Remarque
Si le serveur ne s'affiche pas, suivez les instructions du tutoriel précédent pour vous connecter à la base de données Xtreme.
11. Sélectionnez la table
Commandes
et cliquez sur le bouton
>
pour la déplacer dans le panneau
Tables sélectionnées
, puis cliquez sur
Suivant
.
12. Dans le panneau
Champs disponibles
, sélectionnez
ID commande
,
Date de commande
,
Date d'expédition
et
Transporteur
.
13. Cliquez sur le bouton
>
pour déplacer ces champs dans le panneau
Champs à afficher
, puis cliquez sur
Terminer
.
14. Dans la boîte de dialogue
Insérer un sous-rapport
, sélectionnez l'onglet
Mise en relation
.
15. Dans la liste
Champs disponibles
du panneau
Champs du rapport principal à mettre en relation
, développez la table
Clients
, sélectionnez
ID client
, puis cliquez sur le bouton
>
.
16. Dans le panneau
Mise en relation du champ Clients.ID client
qui s'affiche, laissez les sélections par défaut.
Ces sélections de paramètres et de données génèrent automatiquement une relation entre le rapport principal et le sous-rapport.
17. Cliquez sur
OK
.
Le nouveau sous-rapport, CustomerOrders, s'affiche dans la section Détails b du rapport principal.
Remarque
Lorsque vous ajoutez un sous-rapport à la section Détails, le sous-rapport s'affiche pour chaque ligne, ce qui influe sur les performances du rapport. Si vous ne souhaitez pas obtenir des informations aussi détaillées, placez le sous-rapport dans une section Groupe plutôt qu'une section Détails.
Résultats
Vous pouvez à présent vérifier les paramètres du sous-rapport.
1.5.2.6.1.2 Pour vérifier les paramètres du sous-rapport
Procédure
1. Dans la section Détails du rapport, cliquez deux fois sur le sous-rapport
CustomerOrders
pour l'afficher.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
407
Des boutons de navigation apparaissent au bas de la fenêtre du concepteur à la fois pour le rapport principal et le sous-rapport CustomerOrders.
2. Si l'
Explorateur de champs
n'est pas visible, cliquez sur
Activer/Désactiver l'affichage du champ
dans la barre d'outils Crystal Reports.
Remarque
Vous pouvez également afficher l'
Explorateur de champs
en ouvrant le menu
Crystal Reports
, puis en cliquant sur
Explorateur de champs
.
3. Dans l'
Explorateur de champs
, développez
Champs de paramètre
.
4. Vérifiez que le champ de paramètre
Pm-Clients.ID Client
a été automatiquement généré lorsque le sousrapport a été relié.
5. Dans la barre d'outils, cliquez sur
Expert Sélection
.
6. Dans la boîte de dialogue
Expert Sélection
, vérifiez que le critère
Commandes.ID Client est égal à {Pm-
Clients.ID Client}
est défini, puis cliquez sur
OK
.
7. Dans le menu
Fichier
, sélectionnez
Enregistrer tout
.
Résultats
Vous avez réussi à ajouter un sous-rapport CustomerOrders au rapport CustomersByCity. Dans la section suivante, vous allez ajouter un paramètre OrderDateRange au sous-rapport.
1.5.2.6.1.3 Pour ajouter un paramètre OrderDateRange au sous-rapport
Procédure
1. Dans l'
Explorateur de champs
, cliquez avec le bouton droit de la souris sur
Champs de paramètre
, puis sélectionnez
Nouveau
.
2. Dans la boîte de dialogue Créer un champ de paramètre :
○ Attribuez à
Nom
la valeur
OrderDateRange
.
○ Attribuez à
Type de valeur
la valeur
Date
.
○ Attribuez à
Texte de l'invite
la valeur
Spécifiez une plage de dates des commandes à afficher
.
○ Attribuez au paramètre
Options
une seule sélection, la valeur
Valeur(s) de plage
.
3. Cliquez sur
OK
.
4. Dans la barre d'outils, cliquez sur
Expert Sélection
.
5. Cliquez sur l'onglet
Nouveau
.
6. Dans la boîte de dialogue
Choisir un champ
, développez la table
Commandes
, sélectionnez
Date de commande
, puis cliquez sur
OK
.
7. Dans le nouvel onglet
Commandes.Date de commande
sélectionnez
formule
dans la liste déroulante des critères.
408
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
8. Saisissez la formule suivante :
{Commandes.Date de commande} in {?OrderDateRange}
.
9. Cliquez sur
OK
.
10. Dans le menu
Fichier
, sélectionnez
Enregistrer tout
.
Résultats
Vous avez réussi à ajouter un paramètre OrderDateRange au sous-rapport et à l'associer à la colonne
Commandes.Date de commande. Dans la section suivante, vous allez ajouter un code afin de désigner le paramètre OrderDateRange dans le sous-rapport.
1.5.2.6.2 Ajout du code de paramètre au sous-rapport
Vous allez à présent ajouter le code de paramètre du sous-rapport à la classe code-behind. Vous commencez par créer une méthode d'assistance privée SetDateRangeForOrders().
1.5.2.6.2.1 Pour créer et coder la méthode
SetDateRangeForOrders()
Procédure
1. Ouvrez le Web Form ou Windows Form.
2. Dans le menu
Affichage
, cliquez sur
Code
.
3. Au début de la classe, ajoutez deux nouvelles constantes sous la constante PARAMETER_FIELD_NAME existante définie dans le tutoriel précédent.
Private Const SUBREPORT_PARAMETER_FIELD_NAME As String = "OrderDateRange"
Private Const SUBREPORT_NAME As String = "CustomerOrders" private const string SUBREPORT_PARAMETER_FIELD_NAME = "OrderDateRange"; private const string SUBREPORT_NAME = "CustomerOrders";
4. Dans la partie inférieure de la classe, créez une méthode privée appelée SetDateRangeForOrders() avec les trois paramètres suivants : ReportDocument, une chaîne startDate et une chaîne endDate.
Private Sub SetDateRangeForOrders(ByVal myReportDocument As ReportDocument,
ByVal startDate As String, ByVal endDate As String)
End Sub
{
} private void SetDateRangeForOrders(ReportDocument reportDocument, string startDate, string endDate)
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
409
5. Dans cette méthode, déclarez et instanciez la classe ParameterRangeValue.
Dim myParameterRangeValue As ParameterRangeValue = New
ParameterRangeValue()
ParameterRangeValue parameterRangeValue = new
ParameterRangeValue();
Remarque
Pour que la classe ParameterRangeValue soit accessible, vous devez inclure une instruction "Imports"
[Visual Basic] ou "using" [C#] dans la partie supérieure de la classe code-behind pour l'espace de
.)
6. Attribuez à la propriété StartValue de l'instance ParameterRangeValue le paramètre de méthode startDate.
myParameterRangeValue.StartValue = startDate parameterRangeValue.StartValue = startDate;
Remarque
Les propriétés StartValue et EndValue de la classe ParameterRangeValue acceptent les valeurs de type
Objet. Ce type générique permet de transmettre la valeur de plage sous plusieurs formes, y compris texte, nombre, date, devise ou heure.
7. Attribuez à la propriété EndValue de l'instance ParameterRangeValue le paramètre de méthode endDate.
myParameterRangeValue.EndValue = endDate parameterRangeValue.EndValue = endDate;
8. Définissez les limites inférieures et supérieures afin de les inclure.
myParameterRangeValue.LowerBoundType = RangeBoundType.BoundInclusive
myParameterRangeValue.UpperBoundType = RangeBoundType.BoundInclusive
parameterRangeValue.LowerBoundType = RangeBoundType.BoundInclusive; parameterRangeValue.UpperBoundType = RangeBoundType.BoundInclusive;
Remarque
Pour le paramètre BoundInclusive, les valeurs de plage supérieures et inférieures sont incluses dans la plage.
Vous allez à présent affecter l'instance ParameterRangeValue au paramètre du sous-rapport.
9. Extrayez l'objet ParameterFieldDefinitions provenant de la propriété DataDefinition de l'instance
ReportDocument.
410
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Remarque
ParameterFieldDefinitions est une classe indexée contenant des instances de la classe
ParameterFieldDefinition.
Dim myParameterFieldDefinitions As ParameterFieldDefinitions = myReportDocument.DataDefinition.ParameterFields
ParameterFieldDefinitions parameterFieldDefinitions = reportDocument.DataDefinition.ParameterFields;
10. Extrayez l'instance ParameterFieldDefinition de la classe indexée ParameterFieldDefinitions basée sur les deux valeurs indexées suivantes : le nom du champ de paramètre du sous-rapport et le nom du sous-rapport. Transmettez les deux valeurs de constante que vous avez déclarées au début de la classe.
Dim myParameterFieldDefinition As ParameterFieldDefinition = myParameterFieldDefinitions(SUBREPORT_PARAMETER_FIELD_NAME,
SUBREPORT_NAME)
ParameterFieldDefinition parameterFieldDefinition = parameterFieldDefinitions[SUBREPORT_PARAMETER_FIELD_NAME,
SUBREPORT_NAME];
11. Appelez la méthode Clear() de la propriété CurrentValues de l'instance ParameterFieldDefinition afin de supprimer les éventuelles valeurs existantes de la propriété CurrentValues.
myParameterFieldDefinition.CurrentValues.Clear() parameterFieldDefinition.CurrentValues.Clear();
12. Ajoutez l'instance ParameterRangeValue que vous venez de créer à la propriété CurrentValues de l'instance ParameterFieldDefinition.
myParameterFieldDefinition.CurrentValues.Add(myParameterRangeValue) parameterFieldDefinition.CurrentValues.Add(parameterRangeValue);
13. Appelez la méthode ApplyCurrentValues() en lui transmettant la propriété CurrentValues de l'instance
ParameterFieldDefinition.
myParameterFieldDefinition.ApplyCurrentValues(myParameterFieldDefinition.CurrentV
alues) parameterFieldDefinition.ApplyCurrentValues(parameterFieldDefinition.CurrentValue
s);
Résultats
Cette procédure a défini des valeurs de date de début et de fin dans une instance ParameterRangeValue et les a transmises au paramètre OrderDateRange du sous-rapport CustomerOrders.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
411
1.5.2.6.3 Ajout de contrôles TextBox pour contenir les valeurs de paramètres de plage
Dans cette section, vous allez ajouter deux contrôles TextBox pour transmettre au paramètre de plage
OrderDateRange des valeurs de date de début et de date de fin au moment de l'exécution dans le sous-rapport
CustomerOrders.
Remarque
Si vous implémentez ce tutoriel dans un site Web, la persistance des valeurs de date que les utilisateurs saisissent dans les zones de texte est conservée par ViewState.
1.5.2.6.3.1 Pour créer et configurer un contrôle Button de réaffichage sur le formulaire
Procédure
1. Ouvrez le Web Form ou Windows Form.
2. Dans le menu
Affichage
, cliquez sur
Concepteur
.
3. Si vous développez un site Web, procédez comme suit : a. Cliquez entre le contrôle
ListBox
et le contrôle
Button
.
b. Appuyez trois fois sur ENTREE pour insérer deux lignes entre le contrôle ListBox et le contrôle Button.
c. Sur la première ligne créée sous le contrôle
ListBox
, saisissez "Date de début de la commande".
d. Sur la seconde ligne créée sous le contrôle
ListBox
, saisissez "Date de fin de la commande".
4. Si vous développez un projet Windows, procédez comme suit : a. Dans la
boîte à outils
, faites glisser deux contrôles
Label
à droite du contrôle ListBox. Placez une étiquette sur l'autre, en positionnant les deux étiquettes au-dessus du contrôle
Button
.
b. Sélectionnez le premier contrôle
Label
. Dans la fenêtre
Propriétés
, attribuez à la propriété
Text
la valeur
"Date de début de la commande".
c. Sélectionnez le second contrôle
Label
. Dans la fenêtre
Propriétés
, attribuez à la propriété
Text
la valeur
"Date de fin de la commande".
5. Dans la
boîte à outils
, faites glisser un contrôle
TextBox
à droite de "Date de début de la commande".
6. Cliquez sur le contrôle
TextBox
pour le sélectionner.
7. Dans la fenêtre
Propriétés
, attribuez à
ID
(ou
Name
) la valeur "orderStartDate."
8. Dans la
boîte à outils
, faites glisser un contrôle
TextBox
à droite de "Date de fin de la commande."
9. Cliquez sur le contrôle
TextBox
pour le sélectionner.
10. Dans la fenêtre
Propriétés
, attribuez à
ID
(ou
Name
) la valeur "orderEndDate".
11. Dans le menu
Fichier
, sélectionnez
Enregistrer tout
.
412
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.5.2.6.4 Modification des méthodes d'appel du sous-rapport
Vous devez à présent modifier la méthode ConfigureCrystalReports() et la méthode d'événement redisplay_Click() pour recevoir des informations de ces contrôles TextBox, les appliquer à la méthode
SetDateRangeForOrders() et traiter les informations de paramètre pour les sous-rapports.
Dans le tutoriel précédent,
Tutoriel : Lecture et définition des paramètres discrets [page 377] , vous avez conçu
ces méthodes de deux façons différentes si vous avez inclus la persistance Session.
Remarque
Les projets Windows ne nécessitent aucune persistance Session. Les sites Web nécessitent généralement la persistance Session.
Choisissez l'une des deux (mais pas les deux) procédures ci-dessous. Modifiez les méthodes qui excluent la persistance Session ou les méthodes qui incluent la persistance Session :
1.5.2.6.4.1 Modification des méthodes qui excluent la persistance Session
Si vous avez créé le tutoriel précédent
Tutoriel : Lecture et définition des paramètres discrets [page 377] et exclu
la persistance Session, effectuez les procédures suivantes. Si vous souhaitez inclure la persistance de Session, voir
Modification des méthodes qui incluent la persistance Session [page 415] .
1.5.2.6.4.1.1 Pour modifier la méthode
ConfigureCrystalReports() excluant la persistance Session
Procédure
1. Dans la méthode ConfigureCrystalReports(), créez plusieurs sauts de ligne dans le code après les lignes qui affectent "Paris" et "Tokyo" comme variables ArrayList.
2. Dans les sauts de ligne, déclarez et définissez des valeurs en code dur pour les deux variables chaîne, startDate et endDate.
Dim startDate As String = "8/1/1997"
Dim endDate As String = "8/31/1997" string startDate = "8/1/1997"; string endDate = "8/31/1997";
3. Créez plusieurs sauts de ligne dans le code au-dessus de la ligne qui lie le rapport au contrôle
CrystalReportViewer.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
413
4. Dans les sauts de ligne, saisissez un appel à la méthode SetDateRangeForOrders(), puis transmettez le rapport CustomersByCity et les variables startDate et endDate.
SetDateRangeForOrders(customersByCityReport, startDate, endDate)
SetDateRangeForOrders(customersByCityReport, startDate, endDate);
Cette procédure est suivie du code d'origine qui lie le rapport au contrôle CrystalReportViewer.
5. Dans le menu
Fichier
, sélectionnez
Enregistrer tout
.
Résultats
Modifiez ensuite la méthode d'événement redisplay_Click.
1.5.2.6.4.1.2 Pour modifier la méthode redisplay_Click() excluant la persistance Session
Procédure
1. Dans la méthode d'événement redisplay_Click(), créez plusieurs sauts de ligne dans le code au-dessus de la ligne qui lie le rapport au contrôle CrystalReportViewer.
2. Dans les sauts de ligne, déclarez et définissez les valeurs des deux variables chaîne startDate et endDate à partir des contrôles TextBox que vous avez ajoutés au Web Form ou Windows Form.
Dim startDate As String = orderStartDate.Text
Dim endDate As String = orderEndDate.Text
string startDate = orderStartDate.Text; string endDate = orderEndDate.Text;
3. Saisissez un appel à la méthode SetDateRangeForOrders(), puis transmettez le rapport CustomersByCity et les variables startDate et endDate.
SetDateRangeForOrders(customersByCityReport, startDate, endDate)
SetDateRangeForOrders(customersByCityReport, startDate, endDate);
4. Dans le menu
Fichier
, sélectionnez
Enregistrer tout
.
414
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.5.2.6.4.2 Modification des méthodes qui incluent la persistance Session
Si vous avez créé le tutoriel précédent
Tutoriel : Lecture et définition des paramètres discrets [page 377] et inclus
1.5.2.6.4.2.1 Pour modifier la méthode
ConfigureCrystalReports() incluant la persistance Session
Procédure
1. Dans la méthode ConfigureCrystalReports(), créez plusieurs sauts de ligne dans le code après la ligne qui déclare et instancie ArrayList.
2. Dans les sauts de ligne, déclarez deux variables chaîne, startDate et endDate.
Dim startDate As String
Dim endDate As String string startDate; string endDate;
3. Dans le bloc conditionnel Not IsPostBack, saisissez des valeurs par défaut pour les variables startDate et endDate.
startDate = "8/1/1997" endDate = "8/31/1997" startDate = "8/1/1997"; endDate = "8/31/1997";
4. Dans le bloc conditionnel Not IsPostBack, affectez les variables startDate et endDate à Session.
Session("startDate") = startDate
Session("endDate") = endDate
Session["startDate"] = startDate;
Session["endDate"] = endDate;
5. Dans le bloc Else, après l'extraction de l'instance ArrayList de Session, extrayez les variables startDate et endDate de Session.
startDate = Session("startDate").ToString() endDate = Session("endDate").ToString() startDate = Session["startDate"].ToString(); endDate = Session["endDate"].ToString();
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
415
Cette approche permet d'atteindre la fin du bloc avec les variables de date affectées dans les deux cas. Cette méthode suit la logique parallèle de l'affectation de la variable ArrayList que vous avez configurée dans le tutoriel précédent.
6. Créez plusieurs sauts de ligne dans le code au-dessus de la ligne qui lie le rapport au contrôle
CrystalReportViewer.
7. Dans ces nouveaux sauts de ligne, saisissez un appel à la méthode SetDateRangeForOrders(), puis transmettez le rapport CustomersByCity et les variables startDate et endDate.
SetDateRangeForOrders(customersByCityReport, startDate, endDate)
SetDateRangeForOrders(customersByCityReport, startDate, endDate);
Cette procédure est suivie du code d'origine qui lie le rapport au contrôle CrystalReportViewer.
8. Dans le menu
Fichier
, sélectionnez
Enregistrer tout
.
Résultats
Modifiez ensuite la méthode d'événement redisplay_Click.
1.5.2.6.4.2.2 Pour modifier la méthode redisplay_Click() incluant la persistance Session
Procédure
1. Dans la méthode d'événement redisplay_Click(), créez plusieurs sauts de ligne dans le code après la ligne qui affecte l'instance ArrayList à Session.
2. Dans les sauts de ligne, affectez la propriété Text des contrôles TextBox orderStartDate et orderEndDate aux variables Session.
Session("startDate") = orderStartDate.Text
Session("endDate") = orderEndDate.Text
Session["startDate"] = orderStartDate.Text;
Session["endDate"] = orderEndDate.Text;
3. Dans le menu
Fichier
, sélectionnez
Enregistrer tout
.
Ces valeurs Session startDate et endDate sont à présent extraites et appliquées lors de l'appel de la méthode
ConfigureCrystalReports().
Résultats
Vous êtes maintenant prêt à générer et exécuter le projet pour vérifier que les valeurs TextBox redéfinissent le paramètre de plage dans le sous-rapport. w
416
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.5.2.6.5 Vérification du paramètre du sous-rapport
Vous allez à présent vérifier le paramètre du sous-rapport à partir des valeurs TextBox.
1.5.2.6.5.1 Pour vérifier le paramètre du sous-rapport
Procédure
1. Dans le menu
Générer
, sélectionnez
Générer la solution
.
2. Si vous rencontrez des erreurs lors de la génération, corrigez-les.
3. Dans le menu
Déboguer
, cliquez sur
Démarrer
.
4. Dans le contrôle
ListBox
, cliquez sur au moins quatre villes différentes dans la liste en maintenant la touche
Ctrl enfoncée.
5. Dans le contrôle
TextBox
startDate, saisissez "1/1/1997".
6. Dans le contrôle
TextBox
endDate , saisissez "31/12/1997".
7. Cliquez sur le bouton
Réafficher le rapport
.
La page se recharge et affiche les enregistrements des clients qui vivent dans les villes que vous venez de sélectionner dans la liste, ainsi qu'un sous-rapport indiquant les commandes correspondant à la plage de dates spécifiées ci-dessus.
8. Dans le contrôle
CrystalReportViewer
, augmentez le facteur de
zoom
à 125 %.
La page se recharge avec un facteur de zoom de 125 %. Les valeurs sélectionnées à la fois pour les villes et la plage des dates de commande sont rendues persistantes.
9. Revenez dans Visual Studio, puis cliquez sur
Arrêter
pour quitter le mode débogage.
1.5.2.6.6 Addenda : Améliorations du code des paramètres de plage pour des sous-rapports
Vous avez réussi à modifier votre projet de tutoriel pour utiliser un rapport contenant un sous-rapport, ainsi qu'à définir une plage de dates de commande selon le paramètre de plage créé dans le sous-rapport. Dans cet addenda, vous allez apprendre à lire et à définir des paramètres d'un sous-rapport avec des fonctionnalités API améliorées.
Dans les étapes précédentes, vous avez appris à créer la méthode d'assistance SetDateRangeForOrders() qui utilise les classes ParameterFieldDefinitions et ParameterFieldDefinition.
Dans ce tutoriel, vous devez supprimer les lignes de code utilisant les classes ParameterFieldDefinitions et
ParameterFieldDefinition. Vous apprendrez ensuite à utiliser les classes ParameterFields et
ParameterField des fonctionnalités API améliorées de SAP Crystal Reports pour coder la méthode
SetDateRangeForOrders().
Remarque
Les fonctionnalités API améliorées incluent la méthode SetParameterValue(string parameterFieldName, object value, string subreport) pour les sous-rapports avec des champs de
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
417
paramètre discret. La méthode SetParameterValue() ne peut donc pas être utilisée dans ce tutoriel, car le sous-rapport comporte un paramètre de plage.
1.5.2.6.6.1 Pour utiliser les fonctionnalités API améliorées de SAP Crystal Reports pour les sous-rapports avec des paramètres de plage
Prérequis
.
Procédure
1. Ouvrez le projet terminé de ce tutoriel.
2. Ouvrez le Web Form ou Windows Form.
3. Dans le menu
Affichage
, cliquez sur
Code
.
4. Dans la méthode SetDateRangeForOrders(), supprimez les lignes de code qui utilisent les classes
ParameterFieldDefinitions ou ParameterFieldDefinition. Supprimez les lignes de code suivantes :
Dim myParameterFieldDefinitions As ParameterFieldDefinitions = myReportDocument.DataDefinition.ParameterFields
Dim myParameterFieldDefinition As ParameterFieldDefinition = myParameterFieldDefinitions(SUBREPORT_PARAMETER_FIELD_NAME, SUBREPORT_NAME) myParameterFieldDefinition.CurrentValues.Clear() myParameterFieldDefinition.CurrentValues.Add(myParameterRangeValue) myParameterFieldDefinition.ApplyCurrentValues(myParameterFieldDefinition.CurrentV
alues)
ParameterFieldDefinitions parameterFieldDefinitions = reportDocument.DataDefinition.ParameterFields;
ParameterFieldDefinition parameterFieldDefinition = parameterFieldDefinitions[SUBREPORT_PARAMETER_FIELD_NAME, SUBREPORT_NAME]; parameterFieldDefinition.CurrentValues.Clear(); parameterFieldDefinition.CurrentValues.Add(parameterRangeValue); parameterFieldDefinition.ApplyCurrentValues(parameterFieldDefinition.CurrentValue
s);
Dans l'étape suivante, vous allez ajouter les nouvelles méthodes API de SAP Crystal Reports à la méthode
SetDateRangeForOrders(), après le code définissant le type de limite de plage.
5. Dans la méthode SetDateRangeForOrders(), extrayez l'instance ParameterFields à partir de la propriété
ParameterFields de l'instance ReportDocument.
Dim myParameterFields As ParameterFields = reportDocument.ParameterFields
ParameterFields parameterFields = reportDocument.ParameterFields;
418
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
6. Extrayez l'instance ParameterField de la classe indexée ParameterFields, basée sur les deux valeurs indexées suivantes : le nom du champ de paramètre du sous-rapport et le nom du sous-rapport. Transmettez les deux valeurs de constante que vous avez déclarées au début de la classe.
Dim myParameterField As ParameterField = myParameterFields(SUBREPORT_PARAMETER_FIELD_NAME, SUBREPORT_NAME)
ParameterField parameterField = parameterFields[SUBREPORT_PARAMETER_FIELD_NAME,
SUBREPORT_NAME];
7. Appelez la méthode Clear() de la propriété CurrentValues de l'instance ParameterField afin de supprimer les éventuelles valeurs existantes de la propriété CurrentValues.
myParameterField.CurrentValues.Clear() parameterField.CurrentValues.Clear();
8. Ajoutez l'instance ParameterRangeValue que vous venez de créer à la propriété CurrentValues de l'instance
ParameterField.
myParameterField.CurrentValues.Add(myParameterRangeValue) parameterField.CurrentValues.Add(parameterRangeValue);
Résultats
Vous êtes maintenant prêt à générer et exécuter le projet pour lire et définir des paramètres de plage pour un sous-rapport.
1.5.2.7 Tutoriel : Exportation dans plusieurs formats
Dans ce tutoriel, vous allez apprendre à exporter le rapport par programmation.
Introduction
Dans ce tutoriel, vous allez apprendre à exporter le rapport par programmation. SAP Crystal Reports permet d'exporter vers un grand nombre de formats. Les options disponibles dépendent de la version de
SAP Crystal Reports installée.
Toutes les versions de SAP Crystal Reports, version développeur pour Microsoft Visual Studio prennent en charge les options d'exportation suivantes :
● SAP Crystal Reports (RPT)
● SAP Crystal Reports Read-Only (RPTR)
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
419
● Rich Text Format (RTF)
● Microsoft Word (97-2003)
● Microsoft Excel (97-2003)
● Microsoft Excel (97-2003) Données uniquement
● Microsoft Excel (2007) Données uniquement
● HTML 4.0
SAP Crystal Reports Developer prend en charge les formats supplémentaires suivants :
● Valeurs séparées par des virgules (CSV)
● Microsoft Word modifiable (RTF)
● Texte séparé par des tabulations (TTX)
● Texte
Vous pouvez sélectionner n'importe lequel de ces formats ; cliquez sur le bouton Exporter du contrôle
CrystalReportViewer, puis exportez un rapport au format sélectionné vers votre ordinateur local qui exécute
SAP Crystal Reports dans une application Web ou Windows.
Vous pouvez également exporter des rapports par programmation vers des répertoires spécifiques sur un serveur Web local ou un ordinateur utilisant Windows.
Pour commencer ce tutoriel, vous allez ajouter un contrôle DropDownList à votre Web Form ou Windows Form, puis le remplir avec les valeurs de l'énumération ExportFormatType dans l'espace de noms
CrystalDecisions.Shared.
Vous allez ensuite créer trois méthodes d'assistance privées contenant la fonctionnalité d'exportation et effectuant la configuration spécifique de chaque format d'exportation.
Enfin, vous allez créer une méthode d'événement de clic à partir d'un contrôle Button sur le Web Form ou le
Windows Form et appeler les trois méthodes d'assistance privées exécutant l'exportation.
Exemple de code
Ce tutoriel fournit des exemples de code Visual Basic et C# qui illustrent la version terminée du projet. Suivez les instructions de ce tutoriel pour créer un projet ou ouvrez le projet d'exemple de code pour travailler à partir d'une version terminée.
Les exemples de code sont stockés dans des dossiers classés par langue et par type de projet. Les noms des dossiers de chaque version d'exemple de code sont les suivants :
● Site Web C# : CS_Web_RDObjMod_Export
● Projets Windows C# : CS_Win_RDObjMod_Export
● Site Web Visual Basic : VB_Web_RDObjMod_Export
● Projet Windows Visual Basic : VB_Win_RDObjMod_Export
Informations associées
Répertoire d'exemples de rapports [page 15]
420
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.5.2.7.1 Ajout de contrôles au Web Form ou Windows Form
Dans cette section, vous allez ajouter des contrôles DropDownList, Button et Label au-dessus du contrôle
CrystalReportViewer sur le Web Form ou le Windows Form.
1.5.2.7.1.1 Pour ajouter des contrôles au Web Form ou
Windows Form
Procédure
1. Ouvrez le Web Form ou Windows Form.
2. Dans le menu
Affichage
, cliquez sur
Concepteur
.
3. Si vous développez un site Web, procédez comme suit : a. Cliquez sur le contrôle
CrystalReportViewer
pour le sélectionner.
b. Appuyez sur la FLECHE GAUCHE du clavier afin de faire apparaître un curseur clignotant, puis appuyez sur ENTREE.
Le contrôle CrystalReportViewer descend d'une ligne.
4. Si vous développez un projet Windows, procédez comme suit : a. Cliquez sur le contrôle
CrystalReportViewer
pour le sélectionner.
b. Redimensionnez le contrôle
CrystalReportViewer
pour laisser assez d'espace au-dessus afin d'ajouter un contrôle ComboBox.
c. Dans la fenêtre
Propriétés
, attribuez à la propriété
Anchor
la valeur "Top, Bottom, Left, Right".
5. Dans la
Boîte à outils
, faites glisser un contrôle
DropDownList
(dans les sites Web) ou un contrôle
ComboBox
(dans les projets Windows) au-dessus du contrôle
CrystalReportViewer
.
Remarque
Si une tâche guidée apparaît dans le contrôle DropDownList (ComboBox) lorsque vous utilisez
Visual Studio 2005 ou version ultérieure, appuyez sur Echap pour la fermer.
6. Cliquez sur le contrôle
DropDownList
(ComboBox) pour le sélectionner.
7. Dans la fenêtre
Propriétés
, attribuez à la propriété
ID
la valeur "exportTypesList".
8. Dans la
Boîte à outils
, faites glisser un contrôle
Button
à droite du contrôle
DropDownList
(ComboBox).
9. Cliquez sur le contrôle
Button
pour le sélectionner.
10. Dans la fenêtre
Propriétés
, procédez comme suit :
○ Attribuez à la propriété
ID
la valeur "exportByType".
○ Attribuez à la propriété
Text
la valeur "Exporter au type sélectionné".
11. Dans la
Boîte à outils
, faites glisser un contrôle
Label
à droite du contrôle
Button
.
12. Cliquez sur le contrôle
Label
pour le sélectionner.
13. Dans la fenêtre
Propriétés
, procédez comme suit :
○ Attribuez à la propriété
ID
la valeur "message".
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
421
○ Laissez la propriété
Text
vide.
○ Attribuez à la propriété
Visible
la valeur "False".
14. Dans le menu
Fichier
, sélectionnez
Enregistrer tout
.
Résultats
Vous devez à présent remplir le contrôle DropDownList à l'aide de l'énumération ExportFormatType de l'espace de noms CrystalDecisions.Shared.
1.5.2.7.1.2 Pour remplir le contrôle DropDownList à l'aide de l'énumération ExportFormatType pour un site
Web
Procédure
1. Ouvrez le Web Form.
2. Dans le menu
Affichage
, cliquez sur
Code
.
3. Ajoutez un bloc conditionnel Not IsPostBack à la fin de la méthode ConfigureCrystalReports().
If Not IsPostBack Then
End If if (!IsPostBack)
{
}
4. Dans le bloc conditionnel, attribuez à la propriété DataSource du contrôle ComboBox exportTypesList les valeurs de l'énumération ExportFormatType.
exportTypesList.DataSource = System.Enum.GetValues(GetType(ExportFormatType)) exportTypesList.DataSource = System.Enum.GetValues(typeof(ExportFormatType));
5. Appelez la méthode DataBind() du contrôle DropDownList exportTypesList pour lier les valeurs au contrôle.
exportTypesList.DataBind() exportTypesList.DataBind();
422
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.5.2.7.1.3 Pour remplir le contrôle DropDownList à l'aide de l'énumération ExportFormatType pour un projet
Windows
Procédure
1. Ouvrez le Windows Form.
2. Dans le menu
Affichage
, cliquez sur
Code
.
3. A la fin de la méthode ConfigureCrystalReports(), attribuez à la propriété DataSource du contrôle
ComboBox exportTypesList les valeurs de l'énumération ExportFormatType.
exportTypesList.DataSource = System.Enum.GetValues(GetType(ExportFormatType)) exportTypesList.DataSource = System.Enum.GetValues(typeof(ExportFormatType));
1.5.2.7.2 Création de méthodes exécutant l'exportation
Dans cette section, vous allez créer les méthodes d'assistance privées exécutant l'exportation suivantes.
● ExportSetup()
● ExportSelection()
● ExportCompletion()
Ces méthodes sont appelées plus loin dans ce tutoriel à partir d'une méthode d'événement de clic. Vous commencez par créer la méthode d'assistance ExportSetup().
1.5.2.7.2.1 Pour créer la méthode ExportSetup()
Procédure
1. Ouvrez le Web Form ou Windows Form.
2. Dans le menu
Affichage
, cliquez sur
Code
.
3. En haut de la classe, ajoutez trois déclarations de classe.
Private exportPath As String
Private myDiskFileDestinationOptions As DiskFileDestinationOptions
Private myExportOptions As ExportOptions private string exportPath; private DiskFileDestinationOptions diskFileDestinationOptions; private ExportOptions exportOptions;
Vous instancierez ultérieurement ces classes d'assistance dans la méthode ExportSetup().
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
423
4. A la fin de la classe, créez une méthode d'assistance privée appelée ExportSetup(), sans valeur renvoyée.
Public Sub ExportSetup()
End Sub private void ExportSetup()
{
}
5. Dans la méthode, définissez pour la variable de type chaîne exportPath le répertoire racine du disque dur.
exportPath = "C:\Exported\" exportPath = "C:\\Exported\\";
Remarque
Si vous souhaitez placer le dossier Exported dans le répertoire Web de votre serveur Web, ajoutez la propriété Request.PhysicalApplicationPath comme préfixe au nom de dossier.
6. Créez un bloc conditionnel qui vérifie si le répertoire dans la chaîne exportPath existe déjà.
If Not System.IO.Directory.Exists(exportPath) Then
End If if (!System.IO.Directory.Exists(exportPath))
{
}
7. Dans le bloc conditionnel, appelez la méthode CreateDirectory() de System.IO.Directory pour créer le répertoire dans la chaîne exportPath.
System.IO.Directory.CreateDirectory(exportPath)
System.IO.Directory.CreateDirectory(exportPath);
8. En dehors du bloc conditionnel, instanciez la classe DiskFileDesintationOptions.
myDiskFileDestinationOptions = New DiskFileDestinationOptions() diskFileDestinationOptions = new DiskFileDestinationOptions();
9. Remplissez l'instance ExportOptions avec la propriété ExportOptions de l'instance hierarchicalGroupingReport.
myExportOptions = hierarchicalGroupingReport.ExportOptions
exportOptions = hierarchicalGroupingReport.ExportOptions;
10. Attribuez à la propriété ExportDestinationType de l'instance ExportOptions l'énumération
ExportDestinationType.DiskFile.
myExportOptions.ExportDestinationType = ExportDestinationType.DiskFile
exportOptions.ExportDestinationType = ExportDestinationType.DiskFile;
424
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
11. Pour un projet Windows, effacez les valeurs de la propriété ExportFormatOptions de l'instance ExportOptions.
(Cette ligne de code est inutile pour un site Web car la variable est automatiquement effacée à chaque
événement de clic.) myExportOptions.ExportFormatOptions = Nothing exportOptions.ExportFormatOptions = null;
Résultats
Vous allez créer à présent la méthode d'assistance ExportSelection().
1.5.2.7.2.2 Pour créer la méthode ExportSelection()
Procédure
1. Ouvrez le Web Form ou Windows Form.
2. Dans le menu
Affichage
, cliquez sur
Code
.
3. Au début de la classe, ajoutez une déclaration booléenne utilisée pour vérifier qu'aucun format d'exportation n'est sélectionné.
Private selectedNoFormat As Boolean = True private bool selectedNoFormat = true;
4. A la fin de la classe, créez une méthode d'assistance privée appelée ExportSelection(), sans valeur renvoyée.
Public Sub ExportSelection()
End Sub private void ExportSelection()
{
}
5. Dans la méthode, créez une instruction "Select Case" [Visual Basic] ou "switch" [C#] qui référence les membres de l'énumération ExportFormatType. L'énumération repose sur l'objet SelectedIndex du contrôle DropDownList exportTypesList que vous avez créé dans la procédure précédente.
Select Case exportTypesList.SelectedIndex
Case ExportFormatType.NoFormat
Case ExportFormatType.CrystalReport
Case ExportFormatType.RichText
Case ExportFormatType.WordForWindows
Case ExportFormatType.Excel
Case ExportFormatType.PortableDocFormat
Case ExportFormatType.HTML32
Case ExportFormatType.HTML40
Case Else
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
425
End Select switch ((ExportFormatType)exportTypesList.SelectedIndex)
{
case ExportFormatType.NoFormat:
break;
case ExportFormatType.CrystalReport:
break;
case ExportFormatType.RichText:
break;
case ExportFormatType.WordForWindows:
break;
case ExportFormatType.Excel:
break;
case ExportFormatType.PortableDocFormat:
break;
case ExportFormatType.HTML32:
break;
case ExportFormatType.HTML40:
break;
default:
break;
}
Résultats
Vous avez terminé la méthode ExportSelection(). Vous allez créer à présent la méthode d'assistance
ExportCompletion().
1.5.2.7.2.3 Pour créer la méthode ExportCompletion()
Procédure
1. Ouvrez le Web Form ou Windows Form.
2. Dans le menu
Affichage
, cliquez sur
Code
.
3. A la fin de la classe, créez une méthode d'assistance privée appelée ExportCompletion(), sans valeur renvoyée.
Public Sub ExportCompletion()
End Sub private void ExportCompletion()
{
}
4. Dans la méthode, créez un bloc try/catch avec la classe Exception référencée en tant que variable intitulée
"ex".
Try
Catch ex As Exception
End Try
426
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
{
} try
{
} catch (Exception ex)
5. Dans le bloc d'essai, créez un bloc conditionnel pour vérifier la variable booléenne selectedNoFormat.
If selectedNoFormat Then
Else
End If
{
} if (selectedNoFormat)
{
} else
6. Dans le bloc If, attribuez à la propriété Text du contrôle Label message la constante
FORMAT_NOT_SUPPORTED de la classe MessageConstants.
message.Text = MessageConstants.FORMAT_NOT_SUPPORTED
message.Text = MessageConstants.FORMAT_NOT_SUPPORTED;
7. Dans le bloc Else, appelez la méthode Export() de l'instance hierarchicalGroupingReport.
hierarchicalGroupingReport.Export() hierarchicalGroupingReport.Export();
8. Toujours dans le bloc Else, attribuez à la propriété Text du contrôle Label message la constante SUCCESS de la classe MessageConstants.
message.Text = MessageConstants.SUCCESS
message.Text = MessageConstants.SUCCESS;
9. Dans le bloc catch, attribuez à la propriété Text du contrôle Label message la constante FAILURE de la classe
MessagesConstants, puis ajoutez-lui la propriété Message du paramètre Exception.
message.Text = MessageConstants.FAILURE & ex.Message
message.Text = MessageConstants.FAILURE + ex.Message;
10. En dehors du bloc try/catch, attribuez à la propriété Visible du contrôle Label message la valeur "True".
message.Visible = True message.Visible = true;
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
427
Résultats
Vous venez de créer les trois méthodes d'assistance privées exécutant l'exportation.
1.5.2.7.3 Création de méthodes configurant plusieurs formats d'exportation
Dans cette section, vous allez créer les méthodes d'assistance privées configurant plusieurs formats d'exportation. Toutes ces méthodes sont utilisées de la même façon, à l'exception des méthodes
ConfigureExportToHtml32() et ConfigureExportToHtml40() qui offrent différents modes d'exportation au format
HTML.
● ConfigureExportToRpt()
● ConfigureExportToRtf()
● ConfigureExportToDoc()
● ConfigureExportToXls()
● ConfigureExportToPdf()
● ConfigureExportToHtml32()
● ConfigureExportToHtml40()
1.5.2.7.3.1 Pour créer la méthode d'assistance
ConfigureExportToRpt()
Procédure
1. Ouvrez le Web Form ou Windows Form.
2. Dans le menu
Affichage
, cliquez sur
Code
.
3. A la fin de la classe, créez une méthode d'assistance privée appelée ConfigureExportToRpt(), sans valeur renvoyée.
Public Sub ConfigureExportToRpt()
End Sub private void ConfigureExportToRpt()
{
}
4. Dans la méthode, attribuez à la propriété ExportFormatType de l'instance ExportOptions l'énumération
ExportFormatType CrystalReport.
myExportOptions.ExportFormatType = ExportFormatType.CrystalReport
exportOptions.ExportFormatType = ExportFormatType.CrystalReport;
428
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
5. Attribuez à la propriété DiskFileName de l'instance DiskFileDestinationOptions la chaîne exportPath, puis ajoutez-lui le nom d'un document avec une extension de fichier .rpt.
myDiskFileDestinationOptions.DiskFileName = exportPath &
"Report.rpt" diskFileDestinationOptions.DiskFileName = exportPath +
"Report.rpt";
6. Enfin, attribuez à la propriété ExportDestinationOptions de l'instance ExportOptions, l'instance
DiskFileDestinationOptions que vous avez configurée à l'étape précédente.
myExportOptions.ExportDestinationOptions = myDiskFileDestinationOptions exportOptions.ExportDestinationOptions = diskFileDestinationOptions;
1.5.2.7.3.2 Pour créer la méthode d'assistance
ConfigureExportToRtf
Procédure
1. Ouvrez le Web Form ou Windows Form.
2. Dans le menu
Affichage
, cliquez sur
Code
.
3. A la fin de la classe, créez une méthode d'assistance privée appelée ConfigureExportToRtf(), sans valeur renvoyée.
Public Sub ConfigureExportToRtf()
End Sub
{
} private void
ConfigureExportToRtf()
4. Dans la méthode, attribuez à la propriété ExportFormatType de l'instance ExportOptions l'énumération
ExportFormatType RichText.
myExportOptions.ExportFormatType = ExportFormatType.RichText
exportOptions.ExportFormatType = ExportFormatType.RichText;
5. Attribuez à la propriété DiskFileName de l'instance DiskFileDestinationOptions la chaîne exportPath, puis ajoutez-lui le nom d'un document avec une extension de fichier .rtf.
myDiskFileDestinationOptions.DiskFileName = exportPath & "RichTextFormat.rtf" diskFileDestinationOptions.DiskFileName = exportPath + "RichTextFormat.rtf";
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
429
6. Enfin, attribuez à la propriété ExportDestinationOptions de l'instance ExportOptions, l'instance
DiskFileDestinationOptions que vous avez configurée à l'étape précédente.
myExportOptions.ExportDestinationOptions = myDiskFileDestinationOptions exportOptions.ExportDestinationOptions = diskFileDestinationOptions;
1.5.2.7.3.3 Pour créer la méthode d'assistance
ConfigureExportToDoc
Procédure
1. Ouvrez le Web Form ou Windows Form.
2. Dans le menu
Affichage
, cliquez sur
Code
.
3. A la fin de la classe, créez une méthode d'assistance privée appelée ConfigureExportToDoc(), sans valeur renvoyée.
Public Sub ConfigureExportToDoc()
End Sub
{
} private void
ConfigureExportToDoc()
4. Dans la méthode, attribuez à la propriété ExportFormatType de l'instance ExportOptions l'énumération
ExportFormatType WordForWindows.
myExportOptions.ExportFormatType = ExportFormatType.WordForWindows
exportOptions.ExportFormatType = ExportFormatType.WordForWindows;
5. Attribuez à la propriété DiskFileName de l'instance DiskFileDestinationOptions la chaîne exportPath, puis ajoutez-lui le nom d'un document avec une extension de fichier .doc.
myDiskFileDestinationOptions.DiskFileName = exportPath &
"Word.doc" diskFileDestinationOptions.DiskFileName = exportPath + "Word.doc";
6. Enfin, attribuez à la propriété ExportDestinationOptions de l'instance ExportOptions, l'instance
DiskFileDestinationOptions que vous avez configurée à l'étape précédente.
myExportOptions.ExportDestinationOptions = myDiskFileDestinationOptions exportOptions.ExportDestinationOptions = diskFileDestinationOptions;
430
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.5.2.7.3.4 Pour créer la méthode d'assistance
ConfigureExportToXls
Procédure
1. Ouvrez le Web Form ou Windows Form.
2. Dans le menu
Affichage
, cliquez sur
Code
.
3. A la fin de la classe, créez une méthode d'assistance privée appelée ConfigureExportToXls(), sans valeur renvoyée.
Public Sub ConfigureExportToXls()
End Sub
{
} private void
ConfigureExportToXls()
4. Dans la méthode, attribuez à la propriété ExportFormatType de l'instance ExportOptions l'énumération
ExportFormatType Excel.
myExportOptions.ExportFormatType = ExportFormatType.Excel
exportOptions.ExportFormatType = ExportFormatType.Excel;
5. Attribuez à la propriété DiskFileName de l'instance DiskFileDestinationOptions la chaîne exportPath, puis ajoutez-lui le nom d'un document avec une extension de fichier .xls.
myDiskFileDestinationOptions.DiskFileName = exportPath & "Excel.xls" diskFileDestinationOptions.DiskFileName = exportPath + "Excel.xls";
6. Enfin, attribuez à la propriété ExportDestinationOptions de l'instance ExportOptions, l'instance
DiskFileDestinationOptions que vous avez configurée à l'étape précédente.
myExportOptions.ExportDestinationOptions = myDiskFileDestinationOptions exportOptions.ExportDestinationOptions = diskFileDestinationOptions;
1.5.2.7.3.5 Pour créer la méthode d'assistance
ConfigureExportToPdf
Procédure
1. Ouvrez le Web Form ou Windows Form.
2. Dans le menu
Affichage
, cliquez sur
Code
.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
431
3. A la fin de la classe, créez une méthode d'assistance privée appelée ConfigureExportToPdf(), sans valeur renvoyée.
Public Sub ConfigureExportToPdf()
End Sub
{
} private void
ConfigureExportToPdf()
4. Dans la méthode, attribuez à la propriété ExportFormatType de l'instance ExportOptions l'énumération
ExportFormatType PortableDocFormat.
myExportOptions.ExportFormatType = ExportFormatType.PortableDocFormat
exportOptions.ExportFormatType = ExportFormatType.PortableDocFormat;
5. Attribuez à la propriété DiskFileName de l'instance DiskFileDestinationOptions la chaîne exportPath, puis ajoutez-lui le nom d'un document avec une extension de fichier .pdf.
myDiskFileDestinationOptions.DiskFileName = exportPath & "PortableDoc.pdf" diskFileDestinationOptions.DiskFileName = exportPath + "PortableDoc.pdf";
6. Enfin, attribuez à la propriété ExportDestinationOptions de l'instance ExportOptions, l'instance
DiskFileDestinationOptions que vous avez configurée à l'étape précédente.
myExportOptions.ExportDestinationOptions = myDiskFileDestinationOptions exportOptions.ExportDestinationOptions = diskFileDestinationOptions;
1.5.2.7.3.6 Pour créer la méthode d'assistance
ConfigureExportToHtml32
Procédure
1. Ouvrez le Web Form ou Windows Form.
2. Dans le menu
Affichage
, cliquez sur
Code
.
3. A la fin de la classe, créez une méthode d'assistance privée appelée ConfigureExportToHtml32(), sans valeur renvoyée.
Public Sub ConfigureExportToHtml32()
End Sub
{
} private void
ConfigureExportToHtml32()
432
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
4. Dans la méthode, attribuez à la propriété ExportFormatType de l'instance ExportOptions l'énumération
ExportFormatType HTML32.
myExportOptions.ExportFormatType = ExportFormatType.HTML32
exportOptions.ExportFormatType = ExportFormatType.HTML32;
5. Déclarez et instanciez la classe HTMLFormatOptions avec le nom de variable "html32FormatOptions".
Dim html32FormatOptions As HTMLFormatOptions = New
HTMLFormatOptions()
HTMLFormatOptions html32FormatOptions = new HTMLFormatOptions();
6. Attribuez à la propriété HTMLBaseFolderName de l'instance html32FormatOptions la chaîne exportPath et le nom "Html32Folder".
html32FormatOptions.HTMLBaseFolderName = exportPath &
"Html32Folder" html32FormatOptions.HTMLBaseFolderName = exportPath +
"Html32Folder";
7. Attribuez à la propriété HTMLFileName de l'instance html32FormatOptions le nom "html32.html".
html32FormatOptions.HTMLFileName = "html32.html" html32FormatOptions.HTMLFileName = "html32.html";
8. Attribuez à la propriété HTMLEnableSeparatedPages de l'instance html32FormatOptions la valeur "False".
html32FormatOptions.HTMLEnableSeparatedPages = False html32FormatOptions.HTMLEnableSeparatedPages = false;
9. Attribuez à la propriété HTMLHasPageNavigator de l'instance html32FormatOptions la valeur "False".
html32FormatOptions.HTMLHasPageNavigator = False html32FormatOptions.HTMLHasPageNavigator = false;
10. Enfin, affectez l'instance html32FormatOptions à la propriété FormatOptions de l'instance ExportOptions.
myExportOptions.ExportFormatOptions = html32FormatOptions exportOptions.ExportFormatOptions = html32FormatOptions;
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
433
1.5.2.7.3.7 Pour créer la méthode d'assistance
ConfigureExportToHtml40
Procédure
1. Ouvrez le Web Form ou Windows Form.
2. Dans le menu
Affichage
, cliquez sur
Code
.
3. A la fin de la classe, créez une méthode d'assistance privée appelée ConfigureExportToHtml40(), sans valeur renvoyée.
Public Sub ConfigureExportToHtml40()
End Sub
{
} private void
ConfigureExportToHtml40()
4. Dans la méthode, attribuez à la propriété ExportFormatType de l'instance ExportOptions l'énumération
ExportFormatType HTML40.
myExportOptions.ExportFormatType = ExportFormatType.HTML40
exportOptions.ExportFormatType = ExportFormatType.HTML40;
5. Déclarez et instanciez la classe HTMLFormatOptions avec le nom de variable "html40FormatOptions".
Dim html40FormatOptions As HTMLFormatOptions = New
HTMLFormatOptions()
HTMLFormatOptions html40FormatOptions = new HTMLFormatOptions();
6. Attribuez à la propriété HTMLBaseFolderName de l'instance html40FormatOptions la chaîne exportPath et le nom "Html40Folder".
html40FormatOptions.HTMLBaseFolderName = exportPath &
"Html40Folder" html40FormatOptions.HTMLBaseFolderName = exportPath +
"Html40Folder";
7. Attribuez à la propriété HTMLFileName de l'instance html40FormatOptions le nom "html40.html".
html40FormatOptions.HTMLFileName = "html40.html" html40FormatOptions.HTMLFileName = "html40.html";
8. Attribuez à la propriété HTMLEnableSeparatedPages de l'instance html40FormatOptions la valeur "True".
html40FormatOptions.HTMLEnableSeparatedPages = True html40FormatOptions.HTMLEnableSeparatedPages = true;
434
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
9. Attribuez à la propriété HTMLHasPageNavigator de l'instance html40FormatOptions la valeur "True".
html40FormatOptions.HTMLHasPageNavigator = True html40FormatOptions.HTMLHasPageNavigator = true;
10. Attribuez à la propriété FirstPageNumber de l'instance html40FormatOptions la valeur 1.
html40FormatOptions.FirstPageNumber = 1 html40FormatOptions.FirstPageNumber = 1;
11. Attribuez à la propriété LastPageNumber de l'instance html40FormatOptions la valeur 3.
html40FormatOptions.LastPageNumber = 3 html40FormatOptions.LastPageNumber = 3;
12. Enfin, affectez l'instance html40FormatOptions à la propriété FormatOptions de l'instance ExportOptions.
myExportOptions.FormatOptions = html40FormatOptions exportOptions.FormatOptions = html40FormatOptions;
Résultats
Vous avez créé les méthodes d'assistance privées configurant plusieurs formats d'exportation.
1.5.2.7.4 Appel des méthodes à partir de l'instruction Case
Précédemment, vous avez créé une instruction Case dans la méthode ExportSelection() avec plusieurs cas de figure. Chaque cas est lié à une sélection de l'énumération ExportFormatType. Vous pouvez désormais appeler chaque méthode de configuration selon les cas correspondants, ainsi que définir la valeur de la valeur booléenne selectedNoFormat.
1.5.2.7.4.1 Pour appeler les méthodes à partir de l'instruction Case
Procédure
1. Localisez la méthode ExportSelection() que vous avez créée dans le cours précédent.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
435
2. Dans l'instruction Select Case [Visual Basic] ou switch [C#], dans le cas correspondant à
ExportFormatType.NoFormat, attribuez à la variable booléenne selectedNoFormat la valeur True.
selectedNoFormat = True selectedNoFormat = true;
3. Dans l'instruction Select Case [Visual Basic] ou switch [C#], dans le cas correspondant à
ExportFormatType.CrystalReport, appelez la méthode ConfigureExportToRpt().
selectedNoFormat = False
ConfigureExportToRpt() selectedNoFormat = false;
ConfigureExportToRpt();
4. Dans l'instruction Select Case [Visual Basic] ou switch [C#], dans le cas correspondant à
ExportFormatType.RichText, appelez la méthode ConfigureExportToRtf().
selectedNoFormat = False
ConfigureExportToRtf() selectedNoFormat = false;
ConfigureExportToRtf();
5. Dans l'instruction Select Case [Visual Basic] ou switch [C#], dans le cas correspondant à
ExportFormatType.WordForWindows, appelez la méthode ConfigureExportToDoc().
selectedNoFormat = False
ConfigureExportToDoc() selectedNoFormat = false;
ConfigureExportToDoc();
6. Dans l'instruction Select Case [Visual Basic] ou switch [C#], dans le cas correspondant à
ExportFormatType.Excel, appelez la méthode ConfigureExportToXls().
selectedNoFormat = False
ConfigureExportToXls() selectedNoFormat = false;
ConfigureExportToXls();
7. Dans l'instruction Select Case [Visual Basic] ou switch [C#], dans le cas correspondant à
ExportFormatType.PortableDocFormat, appelez la méthode ConfigureExportToPdf().
selectedNoFormat = False
ConfigureExportToPdf() selectedNoFormat = false;
ConfigureExportToPdf();
8. Dans l'instruction Select Case [Visual Basic] ou switch [C#], dans le cas correspondant à
ExportFormatType.HTML32, appelez la méthode ConfigureExportToHtml32().
selectedNoFormat = False
436
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
ConfigureExportToHtml32() selectedNoFormat = false;
ConfigureExportToHtml32();
9. Dans l'instruction Select Case [Visual Basic] ou switch [C#], dans le cas correspondant à
ExportFormatType.HTML40, appelez la méthode ConfigureExportToHtml40().
selectedNoFormat = False
ConfigureExportToHtml40() selectedNoFormat = false;
ConfigureExportToHtml40();
10. Dans le instructions conditionnelles Select Case [Visual Basic] ou switch [C#], dans le cas de
Switch Else [Visual Basic] ou default: [C#], attribuez à la variable booléenne selectedNoFormat la valeur True.
selectedNoFormat = True selectedNoFormat = true;
Résultats
Si vous créez un projet dans Visual Studio 2005 ou une version ultérieure, vous devez suivre les procédures de la section
Appel des méthodes pour exécuter l'exportation [page 437] .
1.5.2.7.5 Appel des méthodes pour exécuter l'exportation
Vous pouvez à présent créer la méthode d'événement de clic du contrôle Button exportByType, puis appeler les méthodes afin d'effectuer l'exportation à partir de cette méthode d'événement.
1.5.2.7.5.1 Pour créer la méthode d'événement exportByType_Click
Procédure
1. Ouvrez le Web Form ou Windows Form.
2. Dans le menu
Affichage
, cliquez sur
Concepteur
.
3. Cliquez deux fois sur le contrôle Button exportByType.
La méthode d'événement exportByType_Click() est créée et s'affiche en mode code.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
437
4. Dans la méthode d'événement exportByType_Click(), saisissez les appels aux trois méthodes d'événement que vous avez créées précédemment afin d'effectuer l'exportation.
ExportSetup()
ExportSelection()
ExportCompletion()
ExportSetup();
ExportSelection();
ExportCompletion();
Résultats
Vous êtes maintenant prêt à générer et exécuter votre projet, puis exporter votre rapport dans plusieurs formats.
1.5.2.7.5.2 Pour vérifier le projet
Procédure
1. Dans le menu
Générer
, sélectionnez
Générer la solution
.
2. Si vous rencontrez des erreurs lors de la génération, corrigez-les.
3. Dans le menu
Déboguer
, cliquez sur
Démarrer
.
L'application Web ou Windows compile et affiche le rapport Hierarchical Grouping. Un contrôle
DropDownList
affiche plusieurs formats d'exportation et un bouton
Exporter au type sélectionné
apparaît permettant d'exécuter l'exportation.
4. Sélectionnez un des formats d'exportation dans le contrôle
DropDownList
, puis cliquez sur le bouton
Exporter au type sélectionné
.
Un message s'affiche en regard du bouton et indique si l'exportation a réussi. Dans le cas contraire, un message d'erreur apparaît.
5. Essayez d'effectuer des exportations avec différents formats.
6. Revenez dans Visual Studio, puis cliquez sur
Arrêter
pour quitter le mode débogage.
7. Vérifiez le répertoire de fichiers Exported sur votre serveur Web ou votre ordinateur utilisant Windows pour confirmer que les fichiers exportés ont été placés dans le répertoire.
1.5.2.7.6 Addenda : Améliorations apportées au code d'exportation
Si vous avez installé Visual Studio 2005 ou version ultérieure, ou SAP Crystal Reports, vous avez accès aux fonctionnalités API améliorées pour l'exportation de votre rapport Crystal dans différents formats.
438
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Dans les fonctionnalités API améliorées de SAP Crystal Reports, l'énumération ExportFormatTypes comporte deux nouveaux formats d'exportation : des enregistrements Microsoft Excel (fichier .xls contenant uniquement les données) et des fichiers texte.
En outre, vous disposez à présent des méthodes d'exportation améliorées suivantes dans la classe
ReportDocument :
● ExportToDisk(CrystalDecisions.Shared.ExportFormatType formatType, string fileName) : exporte un rapport vers le disque local du serveur Web ou de l'ordinateur utilisant Windows.
● ExportToHttpResponse(CrystalDecisions.Shared.ExportFormatType formatType,
System.Web.HttpResponse response, bool asAttachment, string attachmentName) : exporte un rapport au type de format spécifié vers une fenêtre de navigateur, ou exporte le rapport sous la forme d'une pièce jointe.
● ExportToHttpResponse(CrystalDecisions.Shared.ExportOptions options,
System.Web.HttpResponse response, bool asAttachment, string attachmentName) : exporte un rapport au type de format spécifié vers une fenêtre de navigateur, ou exporte le rapport sous la forme d'une pièce jointe.
● ExportToStream(CrystalDecisions.Shared.ExportFormatType formatType) : exporte les données d'un rapport avec un type de format spécifié vers un flux d'entrée/sortie.
1.5.2.7.6.1 Création de méthodes pour les nouveaux formats d'exportation
Dans cette section, vous allez apprendre à modifier votre projet (que vous avez précédemment créé dans ce tutoriel) afin d'inclure les nouveaux formats d'exportation.
Avant de modifier le code pour inclure les nouveaux formats d'exportation, effectuez toutes les procédures de la section
Tutoriel : Exportation dans plusieurs formats [page 419] .
1.5.2.7.6.1.1 Pour modifier le code afin d'inclure les nouveaux formats d'exportation
Procédure
1. Ouvrez le projet terminé de ce tutoriel.
2. Ouvrez le Web Form ou Windows Form.
3. Dans le menu
Affichage
, cliquez sur
Code
.
4. Dans l'instruction "Select Case" [Visual Basic] ou "switch" [C#] de la méthode
ExportSelection(), ajoutez une instruction Case pour le format ExcelRecord.
Case ExportFormatType.ExcelRecord
case ExportFormatType.ExcelRecord:
break;
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
439
Créez les méthodes d'assistance privées configurant plusieurs formats d'exportation. Vous créez d'abord la méthode ConfigureExportToXlsRec() afin de définir les options d'exportation ExcelRecord.
5. A la fin de la classe, créez une méthode d'assistance privée appelée ConfigureExportToXlsRec(), sans valeur renvoyée.
Public Sub ConfigureExportToXlsRec()
End Sub private void ConfigureExportToXlsRec()
{
}
6. Dans la méthode, attribuez à la propriété ExportFormatType de l'instance ExportOptions l'énumération
ExportFormatType ExcelRecord.
myExportOptions.ExportFormatType = ExportFormatType.ExcelRecord
exportOptions.ExportFormatType = ExportFormatType.ExcelRecord;
7. Attribuez à la propriété DiskFileName de l'instance DiskFileDestinationOptions la chaîne exportPath, puis ajoutez-lui le nom d'un document avec une extension de fichier .xls.
myDiskFileDestinationOptions.DiskFileName = exportPath & "ExcelRecord.xls" diskFileDestinationOptions.DiskFileName = exportPath + "ExcelRecord.xls";
8. Attribuez à la propriété ExportDestinationOptions de l'instance ExportOptions, l'instance
DiskFileDestinationOptions que vous avez configurée à l'étape précédente.
myExportOptions.ExportDestinationOptions = myDiskFileDestinationOptions exportOptions.ExportDestinationOptions = diskFileDestinationOptions;
Résultats
Vous avez réussi à ajouter deux nouveaux formats d'exportation à votre projet.
Pour continuer l'exploration des fonctionnalités API améliorées, choisissez l'une des méthodes d'exportation améliorées suivantes :
● Si vous souhaitez réduire la quantité de code et n'avez pas besoin de définir l'instance ExportOptions,
effectuez la procédure Utilisation de la méthode ExportToDisk() [page 441]
.
● Pour un site Web, si vous souhaitez exporter votre rapport dans une fenêtre de navigateur ou sous forme de pièce jointe dans une fenêtre de navigateur, effectuez la procédure
ExportToHttpResponse() [page 449] .
● Si vous souhaitez transmettre les données de votre rapport vers un flux d'entrée/sortie, effectuez la procédure
Utilisation de la méthode ExportToStream() [page 454] .
440
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.5.2.7.6.2 Utilisation de la méthode ExportToDisk()
La méthode ExportToDisk() fait appel à une instance d'ExportFormatType et à un paramètre de nom de fichier.
Cette méthode simplifie l'utilisation des méthodes de configuration d'exportation que vous avez créées dans la section
Création de méthodes configurant plusieurs formats d'exportation [page 428]
.
Dans cette section, vous allez apprendre à créer un projet, à modifier un projet existant et à ajouter un code au projet pour utiliser la méthode ExportToDisk().
Conditions prérequises :
● Vous devez créer un projet en suivant les instructions de la section
Configuration d'un projet pour la méthode
.
● Ou vous devez créer un projet en suivant les instructions de la section
Création de méthodes pour les nouveaux formats d'exportation [page 439]
.
.
1.5.2.7.6.2.1 Configuration d'un projet pour la méthode
ExportToDisk()
Dans cette section, vous allez apprendre à créer un projet pour la méthode ExportToDisk().
1.5.2.7.6.2.1.1 Pour configurer un nouveau projet pour la méthode ExportToDisk()
Procédure
1. Suivez les instructions de la section
Ajout de contrôles au Web Form ou Windows Form [page 421] .
2. Créez la méthode ExportSetup() et la méthode ExportSelection() indiquées dans la section
Création de méthodes exécutant l'exportation [page 423] .
3. Dans l'instruction "Select Case" [Visual Basic] ou "switch" [C#] de la méthode
ExportSelection(), ajoutez une instruction Case pour le format ExcelRecord.
Case ExportFormatType.ExcelRecord
case ExportFormatType.ExcelRecord:
break;
4. Créez un bloc conditionnel pour vérifier la variable booléenne selectedNoFormat.
If selectedNoFormat Then
Else
End If
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
441
{
} if (selectedNoFormat)
{
} else
5. Dans le bloc If, attribuez à la propriété Text du contrôle Label message la constante
FORMAT_NOT_SUPPORTED de la classe MessageConstants.
message.Text = MessageConstants.FORMAT_NOT_SUPPORTED
message.Text = MessageConstants.FORMAT_NOT_SUPPORTED;
6. Dans le bloc Else, attribuez à la propriété Text du contrôle Label message la constante SUCCESS de la classe
MessageConstants.
message.Text = MessageConstants.SUCCESS
message.Text = MessageConstants.SUCCESS;
7. Créez un bloc try/catch avec la classe Exception référencée en tant que variable intitulée "ex". Le bloc try inclut l'instruction "Select Case" [Visual Basic] ou "switch" [C#] et le bloc conditionnel.
Try
Catch ex As Exception
End Try
{
} try
{
} catch (Exception ex)
8. Dans le bloc catch, attribuez à la propriété Text du contrôle Label message la constante FAILURE de la classe
MessagesConstants, puis ajoutez-lui la propriété Message du paramètre Exception.
message.Text = MessageConstants.FAILURE & ex.Message
message.Text = MessageConstants.FAILURE + ex.Message;
9. En dehors du bloc try/catch, attribuez à la propriété Visible du contrôle Label message la valeur "True".
message.Visible = True message.Visible = true;
10. Dans le menu
Affichage
, cliquez sur
Concepteur
.
11. Cliquez deux fois sur le contrôle Button exportByType.
La méthode d'événement exportByType_Click() est créée et vous passez en mode code.
12. Dans la méthode d'événement exportByType_Click(), saisissez les appels aux méthodes ExportSetup() et ExportSelection().
ExportSetup()
ExportSelection()
442
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
ExportSetup();
ExportSelection();
1.5.2.7.6.2.2 Préparation du projet pour la méthode
ExportToDisk()
Vous devez à présent supprimer certaines lignes de code inutiles pour la méthode ExportToDisk().
1.5.2.7.6.2.2.1 Pour modifier le projet afin d'utiliser la méthode ExportToDisk()
Procédure
1. Ouvrez le projet.
2. Ouvrez le Web Form ou Windows Form.
3. Dans le menu
Affichage
, cliquez sur
Code
.
4. En haut de la classe, supprimez les déclarations de classe suivantes :
Private myDiskFileDestinationOptions As DiskFileDestinationOptions
Private myExportOptions As ExportOptions private DiskFileDestinationOptions diskFileDestinationOptions; private ExportOptions exportOptions;
5. Dans la méthode ExportSetup(), supprimez toutes les lignes de code situées après le bloc conditionnel. (La dernière ligne de code qui appelle la propriété ExportFormatOptions s'applique uniquement à un projet
Windows.) myDiskFileDestinationOptions = New DiskFileDestinationOptions() myExportOptions = hierarchicalGroupingReport.ExportOptions
myExportOptions.ExportDestinationType = ExportDestinationType.DiskFile
myExportOptions.ExportFormatOptions = Nothing diskFileDestinationOptions = new DiskFileDestinationOptions(); exportOptions = hierarchicalGroupingReport.ExportOptions; exportOptions.ExportDestinationType = ExportDestinationType.DiskFile; exportOptions.ExportFormatOptions = null;
6. Supprimez les méthodes de configuration d'exportation suivantes :
○ ConfigureExportToRpt()
○ ConfigureExportToRtf()
○ ConfigureExportToDoc()
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
443
○ ConfigureExportToXls()
○ ConfigureExportToPdf()
○ ConfigureExportToHtml32()
○ ConfigureExportToHtml40()
○ ConfigureExportToXlsRec()
○ ConfigureExportToTxt()
7. Dans les instructions Case Select Case [Visual Basic] ou switch [C#] de ExportSelection(), supprimez les appels aux méthodes de configuration d'exportation.
8. Dans la méthode ExportCompletion(), supprimez l'appel à la méthode Export().
9. Copiez et collez la totalité du code de la méthode ExportCompletion() au début de la méthode
ExportSelection().
10. Supprimez la méthode ExportCompletion() et l'appel à la méthode ExportCompletion() dans l'événement de clic exportByType.
11. Dans la méthode ExportSelection(), coupez et collez les instructions Case Select Case [Visual
Basic] ou switch [C#] au-dessus du bloc If dans le bloc try.
Le bloc try/catch ressemble maintenant à ceci :
Try
Select Case exportTypesList.SelectedIndex
Case ExportFormatType.NoFormat
selectedNoFormat = True
Case ExportFormatType.CrystalReport
Case ExportFormatType.RichText
Case ExportFormatType.WordForWindows
Case ExportFormatType.Excel
Case ExportFormatType.PortableDocFormat
Case ExportFormatType.HTML32
Case ExportFormatType.HTML40
End Select
If selectedNoFormat Then
message.Text = MessageConstants.FORMAT_NOT_SUPPORTED
Else
message.Text = MessageConstants.SUCCESS
End If
Catch ex As Exception
message.Text = MessageConstants.FAILURE & ex.Message
End Try try
{
switch ((ExportFormatType)exportTypesList.SelectedIndex)
{
case ExportFormatType.NoFormat:
selectedNoFormat = true;
break;
case ExportFormatType.CrystalReport:
break;
case ExportFormatType.RichText:
break;
case ExportFormatType.WordForWindows:
break;
case ExportFormatType.Excel:
break;
case ExportFormatType.PortableDocFormat:
break;
case ExportFormatType.HTML32:
break;
case ExportFormatType.HTML40:
444
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
break;
case ExportFormatType.ExcelRecord:
break;
}
if (selectedNoFormat)
{
message.Text = MessageConstants.FORMAT_NOT_SUPPORTED;
}
else
{
message.Text = MessageConstants.SUCCESS;
}
} catch (Exception ex)
{
message.Text = MessageConstants.FAILURE + ex.Message;
}
1.5.2.7.6.2.3 Modification de la méthode ExportSetup()
Dans cette section, vous allez apprendre à modifier la méthode ExportSetup() pour créer des dossiers destinés aux formats d'exportation HTML32 et HTML40.
1.5.2.7.6.2.3.1 Pour modifier la méthode ExportSetup()
Procédure
1. Au début de la classe, ajoutez les déclarations de classe suivantes :
Private exportPathHTML32 As String
Private exportPathHTML40 As String private string exportPathHTML32; private string exportPathHTML40;
2. Dans la méthode ExportSetup(), instanciez les variables de type chaîne exportPathHTML32 et exportPathHTML40 sur le répertoire racine du disque dur.
exportPathHTML32 = "C:\Exported\HTML32\" exportPathHTML40 = "C:\Exported\HTML40\" exportPathHTML32 = "C:\\Exported\\HTML32\\"; exportPathHTML40 = "C:\\Exported\\HTML40\\";
Remarque
Si vous souhaitez placer les dossiers dans le répertoire Web de votre serveur Web, ajoutez la propriété
Request.PhysicalApplicationPath comme préfixe au nom de dossier.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
445
3. Créez un bloc conditionnel qui vérifie si le répertoire dans la chaîne exportPathHTML32 existe déjà.
If Not System.IO.Directory.Exists(exportPathHTML32) Then
End If if (!System.IO.Directory.Exists(exportPathHTML32))
{
}
4. Dans le bloc conditionnel, appelez la méthode CreateDirectory() de System.IO.Directory pour créer le répertoire dans la chaîne exportPathHTML32.
System.IO.Directory.CreateDirectory(exportPathHTML32)
System.IO.Directory.CreateDirectory(exportPathHTML32);
5. Créez un bloc conditionnel qui vérifie si le répertoire dans la chaîne exportPathHTML40 existe déjà.
If Not System.IO.Directory.Exists(exportPathHTML40) Then
End If if (!System.IO.Directory.Exists(exportPathHTML40))
{
}
6. Dans le bloc conditionnel, appelez la méthode CreateDirectory() de System.IO.Directory pour créer le répertoire dans la chaîne exportPathHTML40.
System.IO.Directory.CreateDirectory(exportPathHTML40)
System.IO.Directory.CreateDirectory(exportPathHTML40);
1.5.2.7.6.2.4 Appel de la méthode ExportToDisk()
Dans cette section, vous allez apprendre à appeler la méthode ExportToDisk() dans chaque instruction Case de la méthode ExportSelection().
1.5.2.7.6.2.4.1 Pour appeler la méthode ExportToDisk() dans la méthode ExportSelection()
Procédure
1. Dans la méthode ExportSelection(), déclarez une variable de type chaîne et instanciez la variable sur une chaîne vide.
Dim myFileName As String = ""
446
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
string fileName = "";
2. Dans l'instruction Case ExportFormatType.CrystalReport, procédez comme suit : a. Attribuez à la chaîne de nom de fichier la chaîne exportPath, puis ajoutez-lui le nom d'un document avec une extension de fichier .rpt.
myFileName = exportPath & "Report.rpt" fileName = exportPath + "Report.rpt"; b. Appelez la méthode ExportToDisk() à partir de l'instance hierarchicalGroupingReport, puis transmettez ExportFormatType.CrystalReport et la chaîne de nom de fichier.
hierarchicalGroupingReport.ExportToDisk(ExportFormatType.CrystalReport, myFileName) hierarchicalGroupingReport.ExportToDisk(ExportFormatType.CrystalReport, fileName);
3. Dans l'instruction Case ExportFormatType.RichText, procédez comme suit : a. Attribuez à la chaîne de nom de fichier la chaîne exportPath, puis ajoutez-lui le nom d'un document avec une extension de fichier .rtf.
myFileName = exportPath & "RichTextFormat.rtf" fileName = exportPath + "RichTextFormat.rtf"; b. Appelez la méthode ExportToDisk() à partir de l'instance hierarchicalGroupingReport, puis transmettez ExportFormatType.RichText et la chaîne de nom de fichier.
hierarchicalGroupingReport.ExportToDisk(ExportFormatType.RichText, myFileName) hierarchicalGroupingReport.ExportToDisk(ExportFormatType.RichText, fileName);
4. Dans l'instruction Case ExportFormatType.WordForWindows, procédez comme suit : a. Attribuez à la chaîne de nom de fichier la chaîne exportPath, puis ajoutez-lui le nom d'un document avec une extension de fichier .doc.
myFileName = exportPath & "Word.doc" fileName = exportPath + "Word.doc"; b. Appelez la méthode ExportToDisk() à partir de l'instance hierarchicalGroupingReport, puis transmettez ExportFormatType.WordForWindows et la chaîne de nom de fichier.
hierarchicalGroupingReport.ExportToDisk(ExportFormatType.WordForWindows, myFileName) hierarchicalGroupingReport.ExportToDisk(ExportFormatType.WordForWindows, fileName);
5. Dans l'instruction Case ExportFormatType.Excel, procédez comme suit :
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
447
a. Attribuez à la chaîne de nom de fichier la chaîne exportPath, puis ajoutez-lui le nom d'un document avec une extension de fichier .xls.
myFileName = exportPath & "Excel.xls" fileName = exportPath + "Excel.xls"; b. Appelez la méthode ExportToDisk() à partir de l'instance hierarchicalGroupingReport, puis transmettez ExportFormatType.Excel et la chaîne de nom de fichier.
hierarchicalGroupingReport.ExportToDisk(ExportFormatType.Excel, myFileName) hierarchicalGroupingReport.ExportToDisk(ExportFormatType.Excel, fileName);
6. Dans l'instruction Case ExportFormatType.PortableDocFormat, procédez comme suit : a. Attribuez à la chaîne de nom de fichier la chaîne exportPath, puis ajoutez-lui le nom d'un document avec une extension de fichier .pdf.
myFileName = exportPath & "PortableDoc.pdf" fileName = exportPath + "PortableDoc.pdf"; b. Appelez la méthode ExportToDisk() à partir de l'instance hierarchicalGroupingReport, puis transmettez ExportFormatType.PortableDocFormat et la chaîne de nom de fichier.
hierarchicalGroupingReport.ExportToDisk(ExportFormatType.PortableDocFormat, myFileName) hierarchicalGroupingReport.ExportToDisk(ExportFormatType.PortableDocFormat, fileName);
7. Dans l'instruction Case ExportFormatType.HTML32 procédez comme suit : a. Attribuez à la chaîne de nom de fichier la chaîne exportPathHTML32, puis ajoutez-lui le nom d'un document avec une extension de fichier .html.
myFileName = exportPathHTML32 & "HTML32.html" fileName = exportPathHTML32 + "HTML32.html"; b. Appelez la méthode ExportToDisk() à partir de l'instance hierarchicalGroupingReport, puis transmettez ExportFormatType.HTML32 et la chaîne de nom de fichier.
hierarchicalGroupingReport.ExportToDisk(ExportFormatType.HTML32, myFileName) hierarchicalGroupingReport.ExportToDisk(ExportFormatType.HTML32, fileName);
8. Dans l'instruction Case ExportFormatType.HTML40 procédez comme suit : a. Attribuez à la chaîne de nom de fichier la chaîne exportPathHTML40, puis ajoutez-lui le nom d'un document avec une extension de fichier .html.
myFileName = exportPathHTML40 & "HTML40.html"
448
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
fileName = exportPathHTML40 + "HTML40.html"; b. Appelez la méthode ExportToDisk() à partir de l'instance hierarchicalGroupingReport, puis transmettez ExportFormatType.HTML40 et la chaîne de nom de fichier.
hierarchicalGroupingReport.ExportToDisk(ExportFormatType.HTML40, myFileName) hierarchicalGroupingReport.ExportToDisk(ExportFormatType.HTML40, fileName);
9. Dans l'instruction Case ExportFormatType.ExcelRecord procédez comme suit : a. Attribuez à la chaîne de nom de fichier la chaîne exportPath, puis ajoutez-lui le nom d'un document avec une extension de fichier .xls.
myFileName = exportPath & "ExcelRecord.xls" fileName = exportPath + "ExcelRecord.xls"; b. Appelez la méthode ExportToDisk() à partir de l'instance hierarchicalGroupingReport, puis transmettez ExportFormatType.ExcelRecord et la chaîne de nom de fichier.
hierarchicalGroupingReport.ExportToDisk(ExportFormatType.ExcelRecord, myFileName) hierarchicalGroupingReport.ExportToDisk(ExportFormatType.ExcelRecord, fileName);
Résultats
Vous êtes maintenant prêt à générer et exécuter le projet pour exporter votre rapport Crystal dans différents formats.
Si vous souhaitez utiliser d'autres méthodes API améliorées, cliquez sur un des liens ci-dessous pour atteindre la section qui vous intéresse :
●
Utilisation de la méthode ExportToHttpResponse() [page 449]
●
Utilisation de la méthode ExportToStream() [page 454]
1.5.2.7.6.3 Utilisation de la méthode
ExportToHttpResponse()
La méthode ExportToHttpResponse() permet d'exporter votre rapport Crystal vers une fenêtre de navigateur ou sous forme de pièce jointe. Cette méthode s'applique uniquement aux sites Web.
Les méthodes surchargées disponibles pour la méthode ExportToHttpResponse() sont notamment les suivantes :
● ExportToHttpResponse(CrystalDecisions.Shared.ExportFormatType formatType,
System.Web.HttpResponse response, bool asAttachment, string attachmentName)
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
449
● ExportToHttpResponse(CrystalDecisions.Shared.ExportOptions options,
System.Web.HttpResponse response, bool asAttachment, string attachmentName)
La méthode ExportToHttpResponse() ne prend pas en charge les exportations vers HTTP Response pour les formats HTML32 et HTML40. Par conséquent, lorsque vous essayez d'effectuer une exportation au format
HTML32 ou HTML40, un message d'erreur s'affiche.
Si la variable booléenne asAttachment a la valeur True, une boîte de dialogue Téléchargement de fichier apparaît.
Si la variable booléenne asAttachment a la valeur False, le rapport exporté s'ouvre dans la fenêtre du navigateur.
Lorsque vous choisissez d'enregistrer le fichier, le nom de fichier a pour valeur la variable de type chaîne attachmentName. Si vous ne spécifiez pas la variable attachmentName, le nom de fichier par défaut est "Sans titre" avec l'extension de fichier spécifiée. Le nom de fichier peut être modifié dans la boîte de dialogue Enregistrer sous.
1.5.2.7.6.3.1 Utilisation de la méthode
ExportToHttpResponse() avec l'énumération
ExportFormatType
Pour utiliser la méthode ExportToHttpResponse()avec le paramètre ExportFormatType, vous devez effectuer la
procédure Ajout de contrôles au Web Form ou Windows Form [page 421]
pour un site Web. Vous n'avez pas besoin des méthodes ExportSetup(), ExportSelection() et ExportCompletion(). Le code nécessaire est placé dans la méthode d'événement de clic exportByType.
1.5.2.7.6.3.1.1 Pour utiliser la méthode
ExportToHttpResponse() avec le paramètre
ExportFormatType
Procédure
1. Ouvrez le Web Form.
2. Dans le menu
Affichage
, cliquez sur
Concepteur
.
3. Cliquez deux fois sur le contrôle Button exportByType.
La méthode d'événement exportByType_Click() est créée et vous passez en mode code.
4. Au début de la classe, ajoutez une déclaration de classe ExportOptions.
Private myExportOptions As ExportOptions private ExportOptions exportOptions;
5. Dans la méthode d'événement exportByType_Click(), instanciez l'instance ExportOptions.
myExportOptions = New ExportOptions()
450
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
exportOptions = new ExportOptions();
6. Créez un bloc try/catch avec la classe Exception référencée en tant que variable intitulée "ex".
Try
Catch ex As Exception
End Try
{
} try
{
} catch (Exception ex)
7. Dans le bloc try, créez un bloc conditionnel pour vérifier si l'élément sélectionné à partir de l'instance exportTypesList est égal à l'instance ExportFormatType.NoFormat.
If (exportTypesList.SelectedIndex = ExportFormatType.NoFormat) Then
Else
End If
{
} if ((ExportFormatType)exportTypesList.SelectedIndex == ExportFormatType.NoFormat)
{
} else
8. Dans le bloc If, attribuez à la propriété Text du contrôle Label message la constante
FORMAT_NOT_SUPPORTED de la classe MessageConstants.
message.Text = MessageConstants.FORMAT_NOT_SUPPORTED
message.Text = MessageConstants.FORMAT_NOT_SUPPORTED;
9. Dans le bloc Else, affectez l'instance ExportFormatType sélectionnée dans exportTypesList à la propriété
ExportFormatType de l'instance ExportOptions.
myExportOptions.ExportFormatType = exportTypesList.SelectedIndex
exportOptions.ExportFormatType =
(ExportFormatType)exportTypesList.SelectedIndex;
10. Dans le bloc Else, appelez la méthode ExportToHttpResponse() de l'instance hierarchicalGroupingReport.
Transmettez l'instance ExportOptions, l'objet de réponse ASP.NET, une valeur booléenne True et une chaîne de nom de fichier comme paramètres de la méthode.
Remarque
La chaîne de nom de fichier de la pièce jointe ne nécessite aucune extension, car celle-ci est automatiquement ajoutée au fichier exporté.
hierarchicalGroupingReport.ExportToHttpResponse(myExportOptions,
Response, True, "ExportedReport") hierarchicalGroupingReport.ExportToHttpResponse(exportOptions,
Response, True, "ExportedReport");
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
451
11. Dans le bloc catch, attribuez à la propriété Text du contrôle Label message la constante FAILURE de la classe
MessagesConstants, puis ajoutez-lui la propriété Message du paramètre Exception.
message.Text = MessageConstants.FAILURE & ex.Message
message.Text = MessageConstants.FAILURE + ex.Message;
12. En dehors du bloc try/catch, attribuez à la propriété Visible du contrôle Label message la valeur "True".
message.Visible = True message.Visible = true;
Résultats
Vous êtes maintenant prêt à générer et exécuter le projet pour exporter votre rapport Crystal dans différents formats.
Si vous souhaitez utiliser la méthode ExportToHttpResponse() avec la classe ExportOptions, voir
Utilisation de la méthode ExportToHttpResponse() avec la classe ExportOptions [page 452]
.
Pour utiliser d'autres méthodes API améliorées, cliquez sur un des liens ci-dessous pour atteindre la section qui vous intéresse :
●
Utilisation de la méthode ExportToDisk() [page 441]
●
Utilisation de la méthode ExportToStream() [page 454]
1.5.2.7.6.3.2 Utilisation de la méthode
ExportToHttpResponse() avec la classe
ExportOptions
Pour utiliser la méthode ExportToHttpResponse() avec le paramètre ExportOptions, vous devez effectuer la
procédure Ajout de contrôles au Web Form ou Windows Form [page 421]
pour un site Web. Vous n'avez pas besoin des méthodes ExportSetup(), ExportSelection() et ExportCompletion(). Le code nécessaire est placé dans la méthode d'événement de clic exportByType.
452
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.5.2.7.6.3.2.1 Pour utiliser la méthode
ExportToHttpResponse() avec le paramètre
ExportOptions
Procédure
1. Ouvrez le Web Form.
2. Dans le menu
Affichage
, cliquez sur
Concepteur
.
3. Cliquez deux fois sur le contrôle Button exportByType.
La méthode d'événement exportByType_Click() est créée et vous passez en mode code.
4. Dans la méthode d'événement exportByType_Click(), créez un bloc try/catch avec la classe Exception référencée en tant que variable intitulée "ex".
Try
Catch ex As Exception
End Try
{
} try
{
} catch (Exception ex)
5. Dans le bloc try, créez un bloc conditionnel pour vérifier si l'élément sélectionné à partir de l'instance exportTypesList est égal à l'instance ExportFormatType.NoFormat.
If (exportTypesList.SelectedIndex = ExportFormatType.NoFormat) Then
Else
End If
{
} if ((ExportFormatType)exportTypesList.SelectedIndex ==
ExportFormatType.NoFormat) else
{
}
6. Dans le bloc If, attribuez à la propriété Text du contrôle Label message la constante
FORMAT_NOT_SUPPORTED de la classe MessageConstants.
Remarque
La condition If est remplie lorsque la valeur NoFormat du contrôle DropDownList est sélectionnée.
message.Text = MessageConstants.FORMAT_NOT_SUPPORTED
message.Text = MessageConstants.FORMAT_NOT_SUPPORTED;
7. Dans le bloc Else, appelez la méthode ExportToHttpResponse() de l'instance hierarchicalGroupingReport.
Transmettez l'instance ExportFormatType sélectionnée, l'objet de réponse ASP.NET, une valeur booléenne
True et une chaîne de nom de fichier comme paramètres de la méthode.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
453
Remarque
La chaîne de nom de fichier de la pièce jointe ne nécessite aucune extension, car celle-ci est automatiquement ajoutée au fichier exporté.
hierarchicalGroupingReport.ExportToHttpResponse(exportTypesList.SelectedIndex,
Response, True, "ExportedReport") hierarchicalGroupingReport.ExportToHttpResponse((ExportFormatType)exportTypesList
.SelectedIndex,
Response, True, "ExportedReport");
8. Dans le bloc catch, attribuez à la propriété Text du contrôle Label message la constante FAILURE de la classe
MessagesConstants, puis ajoutez-lui la propriété Message du paramètre Exception.
message.Text = MessageConstants.FAILURE & ex.Message
message.Text = MessageConstants.FAILURE + ex.Message;
9. En dehors du bloc try/catch, attribuez à la propriété Visible du contrôle Label message la valeur "True".
message.Visible = True message.Visible = true;
Résultats
Vous êtes maintenant prêt à générer et exécuter le projet pour exporter votre rapport Crystal dans différents formats.
Pour utiliser d'autres méthodes API améliorées, cliquez sur un des liens ci-dessous pour atteindre la section qui vous intéresse :
●
Utilisation de la méthode ExportToDisk() [page 441]
●
Utilisation de la méthode ExportToStream() [page 454]
1.5.2.7.6.4 Utilisation de la méthode ExportToStream()
Dans cette section, vous allez apprendre à utiliser la méthode ExportToStream() pour exporter le rapport vers le flux d'entrée/sortie sous la forme d'une séquence d'octets. Vous allez ensuite apprendre à écrire la séquence d'octets dans un fichier au format que vous avez spécifié.
Lorsque vous exportez le rapport au format HTML, les images ne sont pas exportées. Il est recommandé d'utiliser les méthodes ExportToHttpResponse() pour exporter des rapports au format HTML.
Conditions prérequises :
● Vous devez créer un projet en suivant les instructions de la section
Configuration d'un projet pour la méthode
.
454
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
● Ou vous devez créer un projet en suivant les instructions de la section
Création de méthodes pour les nouveaux formats d'exportation [page 439]
.
.
1.5.2.7.6.4.1 Configuration d'un projet pour la méthode
ExportToStream()
Dans cette section, vous allez apprendre à créer un projet pour la méthode ExportToStream().
1.5.2.7.6.4.1.1 Pour configurer un nouveau projet pour la méthode ExportToStream()
Procédure
1. Suivez les instructions de la section
Ajout de contrôles au Web Form ou Windows Form [page 421] .
2. Créez la méthode ExportSetup() et la méthode ExportSelection() indiquées dans la section
Création de méthodes exécutant l'exportation [page 423] .
3. Dans l'instruction "Select Case" [Visual Basic] ou "switch" [C#] de la méthode
ExportSelection(), ajoutez une instruction Case pour le format ExcelRecord.
Case ExportFormatType.ExcelRecord
case ExportFormatType.ExcelRecord:
break;
4. Créez un bloc conditionnel pour vérifier la variable booléenne selectedNoFormat.
If selectedNoFormat Then
Else
End If
{
} if (selectedNoFormat)
{
} else
5. Dans le bloc If, attribuez à la propriété Text du contrôle Label message la constante
FORMAT_NOT_SUPPORTED de la classe MessageConstants.
message.Text = MessageConstants.FORMAT_NOT_SUPPORTED
message.Text = MessageConstants.FORMAT_NOT_SUPPORTED;
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
455
6. Dans le bloc Else, attribuez à la propriété Text du contrôle Label message la constante SUCCESS de la classe
MessageConstants.
message.Text = MessageConstants.SUCCESS
message.Text = MessageConstants.SUCCESS;
7. Créez un bloc try/catch avec la classe Exception référencée en tant que variable intitulée "ex". Le bloc try inclut l'instruction "Select Case" [Visual Basic] ou "switch" [C#] et le bloc conditionnel.
Try
Catch ex As Exception
End Try
{
} try
{
} catch (Exception ex)
8. Dans le bloc catch, attribuez à la propriété Text du contrôle Label message la constante FAILURE de la classe
MessagesConstants, puis ajoutez-lui la propriété Message du paramètre Exception.
message.Text = MessageConstants.FAILURE & ex.Message
message.Text = MessageConstants.FAILURE + ex.Message;
9. En dehors du bloc try/catch, attribuez à la propriété Visible du contrôle Label message la valeur "True".
message.Visible = True message.Visible = true;
10. Dans le menu
Affichage
, cliquez sur
Concepteur
.
11. Cliquez deux fois sur le contrôle Button exportByType.
La méthode d'événement exportByType_Click() est créée et vous passez en mode code.
12. Dans la méthode d'événement exportByType_Click(), saisissez les appels aux méthodes ExportSetup() et ExportSelection().
ExportSetup()
ExportSelection()
ExportSetup();
ExportSelection();
1.5.2.7.6.4.2 Préparation du projet pour la méthode
ExportToStream()
456
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Vous devez à présent supprimer certaines lignes de code inutiles pour la méthode ExportToStream().
1.5.2.7.6.4.2.1 Pour modifier le projet afin d'utiliser la méthode ExportToStream()
Procédure
1. Ouvrez le projet.
2. Ouvrez le Web Form ou Windows Form.
3. Dans le menu
Affichage
, cliquez sur
Code
.
4. En haut de la classe, supprimez les déclarations de classe suivantes :
Private myDiskFileDestinationOptions As DiskFileDestinationOptions
Private myExportOptions As ExportOptions private DiskFileDestinationOptions diskFileDestinationOptions; private ExportOptions exportOptions;
5. Dans la méthode ExportSetup(), supprimez toutes les lignes de code situées après le bloc conditionnel. (La dernière ligne de code qui appelle la propriété ExportFormatOptions s'applique uniquement à un projet
Windows.) myDiskFileDestinationOptions = New DiskFileDestinationOptions() myExportOptions = hierarchicalGroupingReport.ExportOptions
myExportOptions.ExportDestinationType = ExportDestinationType.DiskFile
myExportOptions.ExportFormatOptions = Nothing diskFileDestinationOptions = new DiskFileDestinationOptions(); exportOptions = hierarchicalGroupingReport.ExportOptions; exportOptions.ExportDestinationType = ExportDestinationType.DiskFile; exportOptions.ExportFormatOptions = null;
6. Supprimez les méthodes de configuration d'exportation suivantes :
○ ConfigureExportToRpt()
○ ConfigureExportToRtf()
○ ConfigureExportToDoc()
○ ConfigureExportToXls()
○ ConfigureExportToPdf()
○ ConfigureExportToHtml32()
○ ConfigureExportToHtml40()
○ ConfigureExportToXlsRec()
7. Dans les instructions Case Select Case [Visual Basic] ou switch [C#] de ExportSelection(), supprimez les appels aux méthodes de configuration d'exportation.
8. Dans la méthode ExportCompletion(), supprimez l'appel à la méthode Export().
9. Copiez et collez la totalité du code de la méthode ExportCompletion() au début de la méthode
ExportSelection().
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
457
10. Supprimez la méthode ExportCompletion() et l'appel à la méthode ExportCompletion() dans l'événement de clic
exportByType
.
11. Dans la méthode ExportSelection(), coupez et collez les instructions Case Select Case [Visual
Basic] ou switch [C#] au-dessus du bloc If dans le bloc try.
Le bloc try/catch ressemble maintenant à ceci :
Try
Select Case exportTypesList.SelectedIndex
Case ExportFormatType.NoFormat
selectedNoFormat = True
Case ExportFormatType.CrystalReport
Case ExportFormatType.RichText
Case ExportFormatType.WordForWindows
Case ExportFormatType.Excel
Case ExportFormatType.PortableDocFormat
Case ExportFormatType.HTML32
Case ExportFormatType.HTML40
End Select
If selectedNoFormat Then
message.Text = MessageConstants.FORMAT_NOT_SUPPORTED
Else
message.Text = MessageConstants.SUCCESS
End If
Catch ex As Exception
message.Text = MessageConstants.FAILURE & ex.Message
End Try try
{
switch ((ExportFormatType)exportTypesList.SelectedIndex)
{
case ExportFormatType.NoFormat:
selectedNoFormat = true;
break;
case ExportFormatType.CrystalReport:
break;
case ExportFormatType.RichText:
break;
case ExportFormatType.WordForWindows:
break;
case ExportFormatType.Excel:
break;
case ExportFormatType.PortableDocFormat:
break;
case ExportFormatType.HTML32:
break;
case ExportFormatType.HTML40:
break;
case ExportFormatType.ExcelRecord:
break;
}
if (selectedNoFormat)
{
message.Text = MessageConstants.FORMAT_NOT_SUPPORTED;
}
else
{
message.Text = MessageConstants.SUCCESS;
}
} catch (Exception ex)
{
message.Text = MessageConstants.FAILURE + ex.Message;
}
458
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.5.2.7.6.4.3 Modification des instructions Case dans la méthode ExportSelection()
Dans cette section, vous allez apprendre à définir une chaîne de nom de fichier pour chaque instruction Case
ExportFormatType.
1.5.2.7.6.4.3.1 Pour modifier les instructions Case dans la méthode ExportSelection()
Procédure
1. Dans la méthode ExportSelection(), déclarez une variable de type chaîne et instanciez la variable sur une chaîne vide.
Dim myFileName As String = "" string fileName = "";
2. Dans l'instruction Case ExportFormatType.CrystalReport, attribuez à la chaîne de nom de fichier la chaîne exportPath, suivie d'un nom de document avec une extension de fichier .rpt.
myFileName = exportPath & "Report.rpt" myFileName = exportPath + "Report.rpt";
3. Dans l'instruction Case ExportFormatType.RichText, attribuez à la chaîne de nom de fichier la chaîne exportPath suivie d'un nom de document avec une extension de fichier .rtf.
myFileName = exportPath & "RichTextFormat.rtf" myFileName = exportPath + "RichTextFormat.rtf";
4. Dans l'instruction Case ExportFormatType.WordForWindows, attribuez à la chaîne de nom de fichier la chaîne exportPath suivie d'un nom de document avec une extension de fichier .doc.
myFileName = exportPath & "Word.doc" fileName = exportPath + "Word.doc";
5. Dans l'instruction Case ExportFormatType.Excel, attribuez à la chaîne de nom de fichier la chaîne exportPath suivie d'un nom de document avec une extension de fichier .xls.
myFileName = exportPath & "Excel.xls" fileName = exportPath + "Excel.xls";
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
459
6. Dans l'instruction Case ExportFormatType.PortableDocFormat, attribuez à la chaîne de nom de fichier la chaîne exportPath suivie d'un nom de document avec une extension de fichier .pdf.
myFileName = exportPath & "PortableDoc.pdf" fileName = exportPath + "PortableDoc.pdf";
7. Dans l'instruction Case ExportFormatType.HTML32, attribuez à la chaîne de nom de fichier la chaîne exportPath suivie d'un nom de document avec une extension de fichier .html.
myFileName = exportPath & "HTML32.html" fileName = exportPath + "HTML32.html";
8. Dans l'instruction Case ExportFormatType.HTML40, attribuez à la chaîne de nom de fichier la chaîne exportPath suivie d'un nom de document avec une extension de fichier .html.
myFileName = exportPath & "HTML40.html" fileName = exportPath + "HTML40.html";
9. Dans l'instruction Case ExportFormatType.ExcelRecord, attribuez à la chaîne de nom de fichier la chaîne exportPath suivie d'un nom de document avec une extension de fichier .xls.
myFileName = exportPath & "ExcelRecord.xls" fileName = exportPath + "ExcelRecord.xls";
1.5.2.7.6.4.4 Appel de la méthode ExportToStream()
Dans cette section, vous allez apprendre à appeler la méthode ExportToStream() et à écrire les données du rapport exporté dans un fichier au format que vous avez spécifié.
1.5.2.7.6.4.4.1 Pour appeler la méthode ExportToStream() dans la méthode ExportSelection()
Procédure
1. Au-dessus de la signature de classe, ajoutez une déclaration "Imports" [Visual Basic] ou "using"
[C#] au début de la classe pour l'espace de noms System.IO.
Imports System.IO
using System.IO;
460
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
2. Dans le bloc Else de la méthode ExportSelection(), appelez la méthode ExportToStream() de l'instance hierarchicalGroupingReport, transmettez l'instance ExportFormatType sélectionnée dans le contrôle dropdownlist exportTypesList et affectez l'instance à la classe Stream.
Stream myStream = hierarchicalGroupingReport.ExportToStream(exportTypesList.SelectedIndex)
Stream stream = hierarchicalGroupingReport.ExportToStream((ExportFormatType)exportTypesList.Selec
tedIndex);
3. Créez un tableau d'octets de même longueur que l'instance Stream.
Dim myDataArray As byte() = New byte(myStream.Length) byte[] dataArray = new byte[stream.Length];
4. Envoyez les données de l'instance Stream au tableau d'octets d'un décalage de zéro jusqu'à la longueur de l'instance Stream.
myStream.Read(myDataArray, 0, Convert.ToInt32(myStream.Length)); stream.Read(dataArray, 0, Convert.ToInt32(stream.Length));
5. Créez une instance FileStream qui crée le fichier spécifié par la variable chaîne de nom de fichier.
Dim myFileStream As FileStream = New FileStream(myFileName,
System.IO.FileMode.Create)
FileStream fileStream = new FileStream(fileName, System.IO.FileMode.Create);
6. Transférez les données stockées dans le tableau d'octets vers le fichier d'un décalage de zéro jusqu'à la longueur du tableau d'octets.
myFileStream.Write(myDataArray, 0, myDataArray.Length) fileStream.Write(dataArray, 0, dataArray.Length);
7. Fermez l'instance FileStream et l'instance Stream.
myFileStream.Close() myStream.Close() fileStream.Close(); stream.Close();
8. Attribuez à la propriété Text du contrôle Label message la constante SUCCESS de la classe
MessageConstants.
message.Text = MessageConstants.SUCCESS
message.Text = MessageConstants.SUCCESS;
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
461
Résultats
Vous êtes maintenant prêt à générer et exécuter le projet pour exporter votre rapport Crystal dans différents formats.
Si vous souhaitez utiliser d'autres méthodes API améliorées, cliquez sur un des liens ci-dessous pour atteindre la section qui vous intéresse :
●
Utilisation de la méthode ExportToDisk() [page 441]
●
Utilisation de la méthode ExportToHttpResponse() [page 449]
1.5.2.8 Tutoriel : Filtrage des données à l'aide des formules de sélection
Dans ce tutoriel, vous allez apprendre à filtrer les données dans le modèle d'objet ReportDocument en définissant la propriété RecordSelectionFormula de la classe DataDefinition.
Introduction
Les formules de sélection servent à filtrer les enregistrements à afficher dans un rapport Crystal. Pour écrire des formules de sélection, vous pouvez utiliser la syntaxe Basic ou la syntaxe Crystal.
Dans ce tutoriel, vous allez créer une formule de sélection afin de filtrer les enregistrements clients dans lesquels le champ Ventes de l'année dernière est supérieur à une valeur spécifique et le champ Nom du client est comparé
à une autre chaîne. Un contrôle DropDownList (Web) ou ComboBox (Windows) sélectionne un opérateur de comparaison pour le champ Nom du client. Vous pouvez choisir d'afficher les noms de client qui sont égaux, inférieurs, supérieurs, inférieurs ou égaux, supérieurs ou égaux, ou pas égaux à la valeur de chaîne que vous avez spécifiée.
La formule est transmise sous forme de variable chaîne à la propriété SelectionFormula de la classe
CrystalReportViewer. Une fois la propriété définie, le rapport Crystal lié au contrôle CrystalReportViewer est filtré avant d'être affiché.
Ce tutoriel peut également être effectué avec des classes du modèle d'objet CrystalReportViewer, bien qu'il soit recommandé d'utiliser le modèle d'objet ReportDocument.
Exemple de code
Ce tutoriel fournit des exemples de code Visual Basic et C# qui illustrent la version terminée du projet. Suivez les instructions de ce tutoriel pour créer un projet ou ouvrez le projet d'exemple de code pour travailler à partir d'une version terminée.
Les exemples de code sont stockés dans des dossiers classés par langue et par type de projet. Les fichiers de chaque version d'exemple de code sont stockés dans les dossiers suivants :
462
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
● Site Web C# : CS_Web_RDObjMod_SavedDataSelectionFormula
● Projet Windows C# : CS_Win_RDObjMod_SavedDataSelectionFormula
● Site Web Visual Basic : VB_Web_RDObjMod_SavedDataSelectionFormula
● Projet Windows Visual Basic : VB_Win_RDObjMod_SavedDataSelectionFormula
Base de données Xtreme
Ce tutoriel utilise un exemple de base de données appelée Xtreme. Le fichier de base de données xtreme.mdb est fourni dans le package d'exemples de code du SDK de SAP Crystal Reports .NET. Pour utiliser la base de données
Xtreme, vous devez créer manuellement une connexion ODBC à cette base de données.
Informations associées
Choisir le modèle d'objet correct pour votre projet [page 32]
Répertoire d'exemples de rapports [page 15]
1.5.2.8.1 Création d'un rapport
Pour commencer, vous allez créer un rapport Crystal dans lequel vous allez filtrer les données.
1.5.2.8.1.1 Pour créer un rapport Crystal
Contexte
Remarque
de code spécifique nécessaire à cette procédure. Il est impossible de suivre cette procédure sans cette configuration.
Procédure
1. Dans l'
Explorateur de solutions
, cliquez avec le bouton droit de la souris sur le nom du projet affiché en gras, pointez sur
Ajouter
, puis cliquez sur
Nouvel élément
.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
463
2. Dans la boîte de dialogue
Ajouter un nouvel élément
, dans la vue
Modèles
, sélectionnez le modèle
Rapport
Crystal
.
3. Dans le champ
Nom
, saisissez le nom "CustomerBySalesName.rpt", puis cliquez sur
Ajouter
.
4. Dans le panneau
Créer un document de rapport Crystal
de la boîte de dialogue
Galerie de rapports Crystal
, sélectionnez
en utilisant l' Assistant de création de rapports
.
5. Dans le panneau
Choisir un expert
, sélectionnez
Standard
, puis cliquez sur
OK
.
6. Dans le panneau
Sources de données disponibles
de la fenêtre Assistant de création de rapports standard, développez le dossier
Créer une nouvelle connexion
.
7. Dans le sous-dossier qui s'ouvre, développez le dossier
ODBC (RDO)
.
8. Dans la fenêtre
ODBC (RDO)
, sélectionnez l'entrée DSN ODBC correspondant à l'exemple de base de données
Xtreme, puis cliquez sur
Terminer
.
Le dossier ODBC (RDO) se développe pour afficher la base de données Xtreme.
9. Développez le nœud
Tables
et sélectionnez la table
Clients
.
10. Cliquez deux fois sur la table
Clients
pour l'ajouter au panneau
Tables sélectionnées
, puis cliquez sur
Suivant
.
11. Utilisez la combinaison de touches CTRL-clic pour sélectionner
Nom du client
,
Ventes de l'année dernière
et
Ville
.
12. Cliquez sur le bouton
>
pour déplacer ces champs dans le panneau
Champs à afficher
, puis cliquez sur le bouton
Terminer
.
Le rapport CustomerBySalesName est créé et chargé dans la fenêtre principale de Visual Studio.
13. Cliquez sur
Aperçu Rapport principal
.
Un aperçu du rapport s'affiche contenant toutes les données disponibles. Vous filtrerez ensuite ces données par programmation.
14. Cliquez sur
Rapport principal
pour quitter le mode Aperçu.
1.5.2.8.2 Liaison du rapport
Durant la procédure
Configuration d'un projet [page 15] , vous avez placé un contrôle CrystalReportViewer dans
un Web Form ou Windows Form. Lors de l'étape précédente, vous avez ajouté un rapport CustomerBySalesName au projet.
Dans cette section, vous allez instancier le rapport CustomerBySalesName et le lier au contrôle
CrystalReportViewer.
Vous pouvez instancier et lier le rapport de deux façons :
● En tant que rapport incorporé.
● En tant que rapport non incorporé.
Choisissez l'une des deux (mais pas les deux) procédures ci-dessous.
● Si vous utilisez des rapports incorporés, effectuez la procédure suivante afin d'instancier le rapport sous forme de rapport incorporé.
● Si vous utilisez des rapports non incorporés, effectuez la seconde procédure afin d'instancier le rapport sous forme de rapport non incorporé.
464
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.5.2.8.2.1 Pour instancier le rapport CustomerBySalesName sous forme de rapport incorporé et le lier au contrôle CrystalReportViewer
Procédure
1. Ouvrez le Web Form ou Windows Form.
2. Dans le menu
Affichage
, cliquez sur
Code
.
3. Ajoutez une nouvelle déclaration de niveau classe pour la classe wrapper du rapport CustomerBySalesName, en utilisant la variable customerBySalesNameReport. Définissez le modificateur d'accès à private.
Private customerBySalesNameReport As CustomerBySalesName private CustomerBySalesName customerBySalesNameReport;
4. Dans la méthode ConfigureCrystalReports(), instanciez la classe wrapper du rapport.
Remarque
Vous avez créé la méthode ConfigureCrystalReports() dans
Configuration d'un projet [page 15] .
customerBySalesNameReport = New CustomerBySalesName() customerBySalesNameReport = new CustomerBySalesName();
5. Sur la ligne suivante, au-dessous de l'instanciation du rapport, liez la propriété ReportSource du contrôle
CrystalReportViewer à la classe de rapport instanciée (nom de la variable : customerBySalesNameReport).
myCrystalReportViewer.ReportSource = customerBySalesNameReport crystalReportViewer.ReportSource = customerBySalesNameReport;
Résultats
Vous êtes maintenant prêt à générer et exécuter votre projet. Passez à la section suivante ci-dessous.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
465
1.5.2.8.2.2 Pour instancier le rapport CustomerBySalesName sous forme de rapport non incorporé et le lier au contrôle CrystalReportViewer
Procédure
1. Ouvrez le Web Form ou Windows Form.
2. Dans le menu
Affichage
, cliquez sur
Code
.
3. Ajoutez une nouvelle déclaration de niveau classe pour la classe wrapper du rapport ReportDocument, avec la variable customerBySalesNameReport. Définissez le modificateur d'accès à private.
Private customerBySalesNameReport As ReportDocument private ReportDocument customerBySalesNameReport;
Remarque
La classe ReportDocument est un membre de l'espace de noms
CrystalDecisions.CrystalReports.Engine. Vous avez ajouté une déclaration "Imports" [Visual
Basic] ou "using" [C#] pour cet espace de noms dans la section
Configuration d'un projet [page 15]
.
Lorsque vous instanciez ReportDocument et chargez un rapport dans l'espace de noms, vous accédez au rapport via le SDK sans l'incorporer.
customerBySalesNameReport = New ReportDocument() customerBySalesNameReport = new ReportDocument();
5. Déclarez une variable chaîne, nommez-la reportPath et affectez-lui un chemin d'accès au rapport local au moment de l'exécution. Ce chemin est déterminé différemment selon qu'il s'agit d'un site Web ou d'un projet
Windows :
○ Pour un site Web, transmettez le nom du fichier de rapport local sous forme de paramètre de type chaîne dans la méthode Server.MapPath(). Ceci permet d'associer le rapport local au chemin d'accès du répertoire de fichiers du disque dur au moment de l'exécution.
Dim reportPath As String = Server.MapPath("CustomerBySalesName.rpt") string reportPath = Server.MapPath("CustomerBySalesName.rpt");
○ Pour un projet Windows, concaténez la propriété Application.StartupPath avec une barre oblique inverse et le nom du fichier de rapport local. Ceci permet d'associer le rapport au même répertoire que celui du fichier exécutable Windows.
466
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Remarque
Au moment de la compilation, vous copierez le rapport dans le répertoire contenant le fichier exécutable.
Dim reportPath As String = Application.StartupPath & "\" &
"CustomerBySalesName.rpt" string reportPath = Application.StartupPath + "\\" +
"CustomerBySalesName.rpt";
6. Appelez la méthode Load() de l'instance ReportDocument et transmettez-lui la variable chaîne reportPath.
customerBySalesNameReport.Load(reportPath) customerBySalesNameReport.Load(reportPath);
7. Sur la ligne suivante, sous le chargement du rapport, liez la propriété ReportSource du contrôle
CrystalReportViewer à l'instance ReportDocument.
myCrystalReportViewer.ReportSource = customerBySalesNameReport crystalReportViewer.ReportSource = customerBySalesNameReport;
Résultats
Que vous ayez choisi d'instancier une classe de rapport incorporé ou une classe de rapport non incorporé via la classe ReportDocument, le nom de la variable utilisée est identique : customerBySalesNameReport. Vous pouvez ainsi utiliser un bloc de code commun dans les procédures suivantes.
Vous êtes maintenant prêt à générer et exécuter votre projet.
1.5.2.8.2.3 Pour tester le chargement du rapport
CustomerBySalesName
Procédure
1. Dans le menu
Générer
, sélectionnez
Générer la solution
.
2. Si vous rencontrez des erreurs lors de la génération, corrigez-les.
3. Si vous utilisez un rapport non incorporé dans un projet Windows, recherchez l'exécutable Windows compilé dans le sous-répertoire \bin\ [Visual Basic] ou \bin\debug\ [C#], puis copiez le rapport dans ce sous-répertoire.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
467
Remarque
Pour que le rapport non incorporé soit chargé par l'exécutable Windows au moment de l'exécution, le rapport doit être stocké dans le même répertoire que l'exécutable Windows.
4. Dans le menu
Déboguer
, cliquez sur
Démarrer
.
Le rapport apparaît et affiche toutes les lignes de données disponibles. Dans la section suivante, vous allez commencer à filtrer les données à l'aide de la propriété RecordSelectionFormula.
5. Revenez dans Visual Studio, puis cliquez sur
Arrêter
pour quitter le mode débogage.
1.5.2.8.3 Application d'un filtre aux données du rapport
Dans cette section, vous allez apprendre à appliquer un filtre aux données du rapport.
1.5.2.8.3.1 Pour appliquer un filtre aux données du rapport
Procédure
1. Ouvrez le Web Form ou le Windows Form en mode Design.
2. Dans le menu
Affichage
, cliquez sur
Code
.
3. Au début de la classe, ajoutez trois nouvelles déclarations de variables de niveau classe qui représenteront les valeurs selon lesquelles les données seront filtrées.
Private salesAmount As String
Private operatorValue As String
Private customerName As String private string salesAmount; private string operatorValue; private string customerName;
4. Si vous créez un projet Windows, ajoutez une déclaration de variable de niveau classe supplémentaire, une variable booléenne appelée useDefaultValues, puis affectez-lui la valeur True.
Private useDefaultValues As Boolean = True private bool useDefaultValues = true;
5. Dans la méthode ConfigureCrystalReports(), créez un bloc conditionnel.
○ Si vous créez un site Web, créez un bloc conditionnel Not IsPostBack. Placez ce bloc au-dessus du code existant dans la méthode.
If Not IsPostBack Then
End If if (!IsPostBack)
468
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
{
}
○ Si vous créez un projet Windows, créez un bloc conditionnel useDefaultValues. Placez ce bloc au-dessus du code existant dans la méthode.
If useDefaultValues Then
End If if (useDefaultValues)
{
}
6. Dans le bloc conditionnel, affectez les valeurs 4000, < et K aux trois variables de niveau classe.
Ces valeurs sont affectées dans un bloc conditionnel, car plus tard vous les remplacerez par un événement de clic.
salesAmount = "4000" operatorValue = "<" customerName = "K" salesAmount = "4000"; operatorValue = "<"; customerName = "K";
7. Immédiatement en dessous et en dehors du bloc conditionnel, créez une chaîne selectionFormula dans laquelle vous ajoutez des littéraux aux variables de niveau classe que vous venez de créer.
Dim selectionFormula As String = "{Customer.Last Year's Sales} >
" _
& salesAmount _
& " AND Mid({Customer.Customer Name}, 1, 1) " _
& operatorValue _
& "'" _
& customerName _
& "'" string selectionFormula = "{Customer.Last Year's Sales} > "
+ salesAmount
+ " AND Mid({Customer.Customer Name}, 1, 1) "
+ operatorValue
+ "'"
+ customerName
+ "'";
8. Dans le code de liaison de rapport que vous avez créé précédemment, créez un saut de ligne juste au-dessus de la ligne de code dans laquelle customerBySalesName est affecté à la propriété ReportSource du contrôle
CrystalReportViewer.
9. Dans ce saut de ligne, affectez la variable chaîne selectionFormula à l'instance ReportDocument.
customerBySalesNameReport.DataDefinition.RecordSelectionFormula = selectionFormula customerBySalesNameReport.DataDefinition.RecordSelectionFormula = selectionFormula;
10. Compilez et affichez votre application.
Les données devraient maintenant être filtrées.
11. Revenez dans Visual Studio, puis cliquez sur
Arrêter
pour quitter le mode débogage.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
469
Résultats
Dans la section suivante, vous allez créer des contrôles sur le formulaire qui permettront d'ajuster de façon dynamique la formule de sélection.
1.5.2.8.4 Ajout de contrôles pour le filtrage dynamique
Dans cette section, vous allez ajouter des contrôles que vous utiliserez dans la formule de sélection. Ces contrôles permettront de filtrer les données de façon dynamique.
1.5.2.8.4.1 Pour ajouter des contrôles dans la formule de sélection
Procédure
1. Ouvrez le Web Form ou Windows Form.
2. Dans le menu
Affichage
, cliquez sur
Concepteur
.
3. Si vous développez un site Web, procédez comme suit : a. Cliquez sur le contrôle
CrystalReportViewer
pour le sélectionner.
b. Appuyez sur la FLECHE GAUCHE du clavier afin de faire apparaître un curseur clignotant, puis appuyez cinq fois sur ENTREE.
Le contrôle CrystalReportViewer descend de cinq lignes.
4. Si vous développez un projet Windows, procédez comme suit : a. Cliquez sur le contrôle
CrystalReportViewer
pour le sélectionner.
b. Dans la fenêtre
Propriétés
, attribuez à la propriété
Dock
la valeur "Bottom".
c. Redimensionnez le contrôle
CrystalReportViewer
afin d'afficher environ trois lignes au-dessus.
d. Dans la fenêtre
Propriétés
, attribuez à la propriété
Anchor
la valeur "Top, Bottom, Left, Right".
5. Dans la
boîte à outils
, faites glisser un contrôle
Label
en haut à gauche du formulaire.
6. Dans la fenêtre
Propriétés
, attribuez à la propriété
Text
la valeur "Afficher les clients suivants :".
7. Dans la
boîte à outils
, faites glisser un second contrôle
Label
sur le formulaire en dessous du premier.
8. Dans la fenêtre
Propriétés
, attribuez à la propriété
Text
la valeur "- ventes de l'année dernière > $".
9. Dans la
boîte à outils
, faites glisser un troisième contrôle
Label
sur le formulaire en dessous du second.
10. Dans la fenêtre
Propriétés
, attribuez à la propriété
Text
la valeur "- première lettre du nom".
11. Dans la
boîte à outils
, faites glisser un contrôle
TextBox
à droite du second contrôle
Label
.
12. Dans la fenêtre
Propriétés
, attribuez à
ID
la valeur "lastYearsSales".
13. Dans la
boîte à outils
, faites glisser un contrôle
DropDownList
(Web) ou
ComboBox
(Windows) à droite du troisième contrôle
Label
.
14. Dans la fenêtre
Propriétés
, attribuez à
ID
la valeur "operatorValueList".
470
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
15. Dans la
boîte à outils
, faites glisser un contrôle
TextBox
à droite du contrôle
DropDownList
(Web) ou du contrôle
ComboBox
(Windows).
16. Dans la fenêtre
Propriétés
, attribuez à
ID
la valeur "letterOfName".
17. Dans la
boîte à outils
, faites glisser un contrôle
Button
en dessous du troisième contrôle
Label
.
18. Dans la fenêtre
Propriétés
, attribuez à
ID
la valeur "redisplay" et à
Text
la valeur "Réafficher le rapport".
19. Dans la
boîte à outils
, faites glisser un contrôle
Label
en dessous du contrôle
Button
.
20. Dans la fenêtre
Propriétés
, attribuez à
ID
la valeur "formula" et laissez la propriété
Text
vide.
Vérifiez que le contrôle CrystalReportViewer se trouve bien juste en dessous de ces contrôles.
21. Dans le menu
Fichier
, cliquez sur
Enregistrer tout
.
Résultats
Dans la section suivante, vous allez remplir le contrôle DropDownList (Web) ou ComboBox (Windows).
1.5.2.8.5 Définition du contenu du contrôle DropDownList ou
ComboBox
Le contrôle DropDownList (Web) ou le contrôle ComboBox (Windows) requiert une liste de valeurs d'opérateurs
(égal à, supérieur à, etc.). Le moyen le plus courant de remplir ce contrôle consiste à fournir cette liste de valeurs sous la forme d'un énumérateur.
1.5.2.8.5.1 Pour remplir le contrôle DropDownList ou
ComboBox
Procédure
1. Dans l'
Explorateur de solutions
, cliquez avec le bouton droit de la souris sur le nom du projet affiché en gras, pointez sur
Ajouter
, puis cliquez sur
Nouvel élément
.
2. Dans la boîte de dialogue
Ajouter un nouvel élément
, sélectionnez
Classe
.
3. Saisissez le nom "CeComparisonOperator", puis cliquez sur OK.
4. Dans le fichier de classe, remplacez le mot class par enum.
Remarque
Dans Visual Basic, n'oubliez pas de remplacer à la fois la signature d'ouverture et de fermeture. Dans C#, supprimez le constructeur.
5. Saisissez les valeurs d'énumération suivantes.
EqualTo
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
471
GreaterThan
GreaterThanOrEqualTo
LessThan
LessThanOrEqualTo
NotEqualTo
EqualTo,
GreaterThan,
GreaterThanOrEqualTo,
LessThan,
LessThanOrEqualTo,
NotEqualTo
6. Ouvrez le Web Form ou le Windows Form en mode
Design
.
7. Dans le menu
Affichage
, cliquez sur
Code
.
8. Dans la méthode ConfigureCrystalReports(), vous remplissez maintenant l'instance operatorValueList avec des valeurs de l'énumération CeComparisonOperator. Ce code est placé dans un emplacement différent selon que vous créez un site Web ou un projet Windows.
○ Dans un site Web, insérez l'affectation et la liaison de la propriété DataSource au sein du bloc conditionnel
Not IsPostBack.
operatorValueList.DataSource =
System.Enum.GetValues(GetType(CeComparisonOperator)) operatorValueList.DataBind() operatorValueList.DataSource =
System.Enum.GetValues(typeof(CeComparisonOperator)); operatorValueList.DataBind();
○ Dans un projet Windows, insérez uniquement l'affectation de la propriété DataSource au sein du bloc conditionnel useDefaultValues.
operatorValueList.DataSource =
System.Enum.GetValues(GetType(CeComparisonOperator)) operatorValueList.DataSource =
System.Enum.GetValues(typeof(CeComparisonOperator));
Remarque
Dans un projet Windows, il est inutile d'appeler une méthode DataBind().
9. Au bas de la méthode ConfigureCrystalReports(), affectez la chaîne selectionFormula à la propriété
Text du contrôle Label formula.
formula.Text = selectionFormula formula.Text = selectionFormula;
10. Compilez et affichez l'application.
La liste d'opérateurs et tous les autres contrôles devraient s'afficher correctement.
11. Fermez votre navigateur.
472
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Résultats
Dans la section suivante, vous allez créer une méthode qui extrait des sélections à partir de ce contrôle lorsqu'un utilisateur clique sur le bouton Réafficher le rapport.
1.5.2.8.6 Extraction des sélections à partir du contrôle
Dans cette section, vous allez extraire des sélections à partir du contrôle DropDownList (Web) ou ComboBox
(Windows).
1.5.2.8.6.1 Pour extraire des sélections à partir du contrôle
Procédure
1. Ouvrez le Web Form ou le Windows Form en mode
Design
.
2. Dans le menu
Affichage
, cliquez sur
Code
.
3. A la fin de la classe, créez une méthode d'assistance privée GetSelectedOperator() qui renvoie une valeur de chaîne.
Private Function GetSelectedOperator() As String
End Function private string GetSelectedOperator()
{
}
4. Dans la méthode, déclarez une chaîne selectedOperator et affectez-lui une valeur de chaîne vide.
Dim selectedOperator As String = "" string selectedOperator = "";
5. Toujours dans la méthode, créez une instruction Select Case/switch case qui vérifie l'index sélectionné dans le contrôle de liste et renvoie la valeur d'énumération correspondante.
Remarque
Dans C#, vous devez effectuer explicitement un cast de l'index sélectionné en énumération dans la signature switch.
Select Case operatorValueList.SelectedIndex
Case CeComparisonOperator.EqualTo
selectedOperator = "="
Case CeComparisonOperator.GreaterThan
selectedOperator = ">"
Case CeComparisonOperator.GreaterThanOrEqualTo
selectedOperator = ">="
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
473
Case CeComparisonOperator.LessThan
selectedOperator = "<"
Case CeComparisonOperator.LessThanOrEqualTo
selectedOperator = "<="
Case CeComparisonOperator.NotEqualTo
selectedOperator = "<>"
End Select switch ((CeComparisonOperator)operatorValueList.SelectedIndex)
{
case CeComparisonOperator.EqualTo:
selectedOperator = "=";
break;
case CeComparisonOperator.GreaterThan:
selectedOperator = ">";
break;
case CeComparisonOperator.GreaterThanOrEqualTo:
selectedOperator = ">=";
break;
case CeComparisonOperator.LessThan:
selectedOperator = "<";
break;
case CeComparisonOperator.LessThanOrEqualTo:
selectedOperator = "<=";
break;
case CeComparisonOperator.NotEqualTo:
selectedOperator = "<>";
break;
}
6. Renvoyez la chaîne selectedOperator à partir de la méthode.
Return selectedOperator return selectedOperator;
7. Dans le menu
Fichier
, cliquez sur
Enregistrer tout
.
Résultats
Dans la dernière section, vous allez ajouter un événement de clic pour que les nouvelles valeurs de formule de sélection soient appliquées au rapport lorsqu'un utilisateur clique sur le bouton.
1.5.2.8.7 Ajout d'un événement de clic
La dernière étape de configuration du filtrage dynamique consiste à ajouter l'événement de clic et à écrire le code permettant d'appliquer les nouvelles valeurs de formule de sélection au rapport.
474
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.5.2.8.7.1 Pour ajouter l'événement de clic
Procédure
1. Ouvrez le Web Form ou le Windows Form en mode
Design
.
2. Cliquez deux fois sur le contrôle
Button
.
3. La classe code-behind est chargée et un événement de clic est créé.
4. Dans la méthode, attribuez à la variable de niveau classe "salesAmount" la propriété Text de l'instance du contrôle lastYearsSales.
salesAmount = lastYearsSales.Text
salesAmount = lastYearsSales.Text;
5. Attribuez à la variable de niveau classe "operatorValue" la valeur renvoyée par la méthode d'assistance
GetSelectedOperator.
operatorValue = GetSelectedOperator() operatorValue = GetSelectedOperator();
6. Attribuez à la variable de niveau classe "customerName" la propriété Text de l'instance du contrôle letterOfName.
customerName = letterOfName.Text
customerName = letterOfName.Text;
7. Si vous générez un projet Windows, attribuez à la variable de niveau classe "useDefaultValues" la valeur False.
Remarque
Ceci permet d'ignorer le bloc conditionnel de la méthode ConfigureCrystalReports() qui définit les valeurs par défaut des variables de niveau classe.
useDefaultValues = False useDefaultValues = false;
8. Toujours dans la méthode, appelez la méthode ConfigureCrystalReports() pour procéder au filtrage et à la liaison du rapport.
ConfigureCrystalReports()
ConfigureCrystalReports();
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
475
Résultats
Vous pouvez maintenant tester l'application.
1.5.2.8.8 Test du filtrage des données
Dans la section finale, vous testez le filtrage des données.
1.5.2.8.8.1 Pour tester le filtrage des données
Procédure
1. Compilez et affichez votre application.
2. Vérifiez que le rapport s'affiche avec les valeurs de filtrage par défaut.
3. Saisissez "200000" dans
Ventes de l'année dernière
.
4. Sélectionnez
GreaterThan
dans le contrôle
DropDownList
(Web) ou
ComboBox
(Windows).
5. Saisissez "M" dans le contrôle
TextBox
, puis cliquez sur
Réafficher le rapport
.
Les données du rapport qui s'affiche sont filtrées de la manière spécifiée ci-dessus.
6. Fermez votre navigateur.
1.5.2.8.9 Addenda : Améliorations apportées au code des formules de sélection
Si vous avez installé SAP Crystal Reports 2008, vous avez accès aux fonctionnalités API améliorées qui filtrent les données dans le modèle d'objet ReportDocument en définissant la formule SavedDataSelection de la classe
DataDefinition.
Dans les procédures précédentes, vous avez appris à utiliser la formule RecordSelection pour filtrer les données après un événement de clic.
Dans ce tutoriel, vous allez modifier la méthode redisplay_Click afin d'utiliser la formule SavedDataSelection pour filtrer les données après un événement de clic. La formule SavedDataSelection permet de d'appliquer le filtrage sur les données enregistrées sans qu'il soit nécessaire d'accéder une nouvelle fois à la base de données.
476
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.5.2.8.9.1 Modification du projet pour la formule
SavedDataSelection
suivante.
1.5.2.8.9.1.1 Pour modifier le projet afin d'utiliser la formule
SavedDataSelection
Procédure
1. Ouvrez le projet terminé de ce tutoriel.
2. Ouvrez le Web Form ou Windows Form.
3. Dans le menu
Affichage
, cliquez sur
Code
.
4. Si vous développez un projet Windows, supprimez la variable de niveau classe nommée
"useDefaultValues".
5. Si vous développez un projet Web, dans la méthode ConfigureCrystalReports(), supprimez le bloc conditionnel sans supprimer le code qu'il contient.
La méthode ConfigureCrystalReports() modifiée doit ressembler à ceci :
Private Sub ConfigureCrystalReports()
salesAmount = "4000"
operatorValue = "<"
customerName = "K"
Dim selectionFormula As String = "{Customer.Last Year's Sales} > " & salesAmount _
& " AND Mid({Customer.Customer Name}, 1, 1) " & operatorValue & "'" & customerName & "'"
operatorValueList.DataSource =
System.Enum.GetValues(GetType(CeComparisonOperator))
operatorValueList.DataBind()
customerBySalesNameReport = New ReportDocument()
Dim reportPath As String = Server.MapPath("CustomerSalesByReport.rpt")
customerBySalesNameReport.Load(reportPath)
customerBySalesNameReport.DataDefinition.RecordSelectionFormula = selectionFormula
myCrystalReportViewer.ReportSource = customerBySalesNameReport
formula.Text = selectionFormula
End Sub private void ConfigureCrystalReports()
{
salesAmount = "4000";
operatorValue = "<";
customerName = "K";
string selectionFormula = "{Customer.Last Year's Sales} > " + salesAmount
+ " AND Mid({Customer.Customer Name}, 1, 1) " + operatorValue + "'" + customerName + "'";
operatorValueList.DataSource =
System.Enum.GetValues(typeof(CeComparisonOperator));
operatorValueList.DataBind();
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
477
customerBySalesNameReport = new ReportDocument();
string reportPath = Server.MapPath("CustomerBySalesName.rpt");
customerBySalesNameReport.Load(reportPath);
customerBySalesNameReport.DataDefinition.RecordSelectionFormula = selectionFormula;
crystalReportViewer.ReportSource = customerBySalesNameReport;
formula.Text = selectionFormula;
}
1.5.2.8.9.2 Ajout d'un événement qui applique la formule
SavedDataSelection
Dans cette section, vous allez modifier la méthode redisplay_Click en appliquant la formule
SavedDataSelection aux valeurs selectionFormula du rapport.
1.5.2.8.9.2.1 Pour ajouter l'événement de clic
Procédure
1. Ouvrez le Web Form ou Windows Form.
2. Dans le menu
Affichage
, cliquez sur
Code
.
3. Dans la méthode redisplay_Click, supprimez la ligne qui appelle la méthode
ConfigureCrystalReports().
4. Créez une chaîne selectionFormula dans laquelle vous ajoutez des littéraux aux variables de niveau classe.
Dim selectionFormula As String = "{Customer.Last Year's Sales} > " _
& salesAmount _
& " AND Mid({Customer.Customer Name}, 1, 1) " _
& operatorValue _
& "'" _
& customerName _
& "'" string selectionFormula = "{Customer.Last Year's Sales} > "
+ salesAmount
+ " AND Mid({Customer.Customer Name}, 1, 1) "
+ operatorValue
+ "'"
+ customerName
+ "'";
5. Affectez la variable chaîne selectionFormula à l'instance ReportDocument.
customerBySalesNameReport.DataDefinition.SavedDataSelectionFormula = selectionFormula customerBySalesNameReport.DataDefinition.SavedDataSelectionFormula = selectionFormula;
478
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
6. Sur la ligne suivante, liez la propriété ReportSource du contrôle CrystalReportViewer à l'instance
ReportDocument.
myCrystalReportViewer.ReportSource = customerBySalesNameReport crystalReportViewer.ReportSource = customerBySalesNameReport;
7. Au bas de la méthode , affectez la chaîne selectionFormula à la propriété Text du contrôle Label de la formule.
formula.Text = selectionFormula formula.Text = selectionFormula;
Résultats
Vous pouvez maintenant tester l'application.
1.5.2.8.9.3 Test du filtrage des données
Dans cette section, vous testez le filtrage des données.
1.5.2.8.9.3.1 Pour tester le filtrage des données
Procédure
1. Compilez et affichez votre application.
2. Vérifiez que le rapport s'affiche avec les valeurs de filtrage par défaut.
3. Saisissez "30000" dans
Ventes de l'année dernière
.
4. Sélectionnez
GreaterThan
dans le contrôle
DropDownList
(Web) ou
ComboBox
(Windows).
5. Saisissez "H" dans le contrôle
TextBox
, puis cliquez sur
Réafficher le rapport
.
Le rapport est réaffiché, avec tous les clients dont le nom commence par les lettres H à K et dont les ventes sont supérieures à 30 000 $.
6. Remplacez "H" par "S" dans le contrôle
TextBox
, puis cliquez sur
Réafficher le rapport
.
Le rapport est réaffiché sans aucune donnée. Cela est dû au fait que la lettre "S" est en dehors des paramètres initiaux définis dans la méthode ConfigureCrystalReports().
7. Fermez votre navigateur.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
479
1.5.2.9 Tutoriel : Affichage de parties de rapport à l'aide du contrôle CrystalReportPartsViewer
Dans ce tutoriel, vous allez apprendre à diviser le rapport en plusieurs parties et à afficher chaque partie en cliquant sur une série de liens hypertexte successifs.
Introduction
Dans ce tutoriel, vous allez apprendre à diviser le rapport en plusieurs parties et à afficher chaque partie en cliquant sur une série de liens hypertexte successifs. Les liens hypertexte vont du groupe de résumé de rapport de base aux informations les plus détaillées sur le rapport. Vous allez définir le point de départ, puis chaque lien hypertexte successif du rapport. Pour afficher le rapport en plusieurs parties, vous allez affecter le rapport à un autre contrôle appelé CrystalReportPartsViewer.
Remarque
Les parties de rapport sont utilisées uniquement dans les sites Web ; elles ne sont pas disponibles pour les projets Windows.
Il existe deux principaux moyens de visualiser un rapport :
● Vous pouvez visualiser la totalité du rapport.
● Vous pouvez visualiser le rapport sous forme de série de parties de rapport liées.
Visualisation de la totalité du rapport
Les rapports s'affichent généralement sous la forme d'un document unique (composé d'une ou de plusieurs pages) dans lequel des informations détaillées sont regroupées par catégories, sous-catégories et lignes de détails individuelles.
Par exemple, la base de données Xtreme Access fournie avec SAP Crystal Reports contient des données client sur les magasins de bicyclettes dans de nombreux endroits du monde. L'un des moyens classiques de visualiser les données dans un rapport consiste à regrouper les magasins de bicyclettes en fonction des régions, puis des villes et à faire apparaître des lignes d'informations sur chaque magasin au niveau des détails.
Le contrôle CrystalReportViewer permet d'afficher la totalité d'un rapport.
Visualisation d'un rapport sous la forme d'une série de parties liées
Avec l'avènement des portails Web et de la navigation Web sur les téléphones cellulaires, lesquels offrent tous deux une surface de visualisation très limitée pour consulter les informations, une nouvelle méthode d'affichage des rapports a été mise au point.
Pour ce faire, le rapport complet qui se compose de catégories de groupes, de sous-catégories et de lignes de détails est redéfini sous la forme d'une série de parties de rapport. Ces parties s'affichent ensuite à travers une
480
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
série de pages liées. Dans ce scénario, le groupe d'informations de la catégorie la plus élevée s'affiche en premier.
Lorsqu'un élément de ce groupe de niveau supérieur est sélectionné, le groupe d'informations d'une souscatégorie s'affiche. Cette exploration continue jusqu'à ce que les lignes de détails individuelles d'une souscatégorie donnée soient atteintes.
Par exemple, les données client sur les magasins de bicyclettes de la base de données Xtreme s'affichent au départ sous la forme d'une liste de régions. Lorsque vous sélectionnez une région, les villes de cette région apparaissent. Lorsque vous sélectionnez une ville, les lignes de détails sur les magasins de bicyclettes de la ville en question apparaissent.
Cette division en plusieurs parties d'un rapport permet d'accéder facilement à un rapport long et complexe sur une surface de visualisation très limitée.
Le contrôle CrystalReportPartsViewer permet d'afficher des rapports sous la forme d'une série de parties liées.
Exemple de code
Ce tutoriel fournit des exemples de code Visual Basic et C# qui illustrent la version terminée du projet. Suivez les instructions de ce tutoriel pour créer un projet ou ouvrez le projet d'exemple de code pour travailler à partir d'une version terminée.
Les exemples de code sont stockés dans des dossiers classés par langue et par type de projet. Les noms des dossiers de chaque version d'exemple de code sont les suivants :
● Site Web C# : CS_Web_RDObjMod_ReportParts
● Site Web Visual Basic : VB_Web_RDObjMod_ReportParts
Base de données Xtreme
Ce tutoriel utilise un exemple de base de données appelée Xtreme. Le fichier de base de données xtreme.mdb est fourni dans le package d'exemples de code du SDK de SAP Crystal Reports .NET. Pour utiliser la base de données
Xtreme, vous devez créer manuellement une connexion ODBC à cette base de données.
Informations associées
Répertoire d'exemples de rapports [page 15]
1.5.2.9.1 Création d'un rapport
Commencez par créer un rapport à partir des informations de la base de données Xtreme.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
481
1.5.2.9.1.1 Pour créer un rapport avec des paramètres
Procédure
1. Dans l'
Explorateur de solutions
, cliquez avec le bouton droit de la souris sur le nom du projet affiché en gras, pointez sur
Ajouter
, puis cliquez sur
Nouvel élément
.
2. Dans la boîte de dialogue
Ajouter un nouvel élément
, dans la vue
Modèles
, sélectionnez le modèle "Rapport
Crystal".
3. Dans le champ
Nom
, saisissez le nom "Customers.rpt", puis cliquez sur
Ajouter
.
4. Dans le panneau
Créer un document de rapport Crystal
de la boîte de dialogue
Galerie de rapports Crystal
, sélectionnez
en utilisant l' Assistant de création de rapports
.
5. Dans le panneau
Choisir un expert
, sélectionnez
Standard
, puis cliquez sur
OK
.
6. Dans le panneau
Sources de données disponibles
de la fenêtre Assistant de création de rapports standard, développez le dossier
Créer une nouvelle connexion
.
7. Dans le sous-dossier qui s'ouvre, développez le dossier
ODBC (RDO)
.
8. Dans la fenêtre ODBC (RDO), sélectionnez l'entrée DSN ODBC correspondant à la base de données Xtreme, puis cliquez sur
Terminer
.
Le dossier ODBC (RDO) se développe pour afficher la base de données Xtreme.
9. Développez le nœud
Tables
et sélectionnez la table
Clients
.
10. Cliquez deux fois sur la table
Clients
pour l'ajouter au panneau
Tables sélectionnées
, puis cliquez sur
Suivant
.
11. Utilisez la combinaison de touches CTRL-clic pour sélectionner
Pays
,
Nom du client
,
Ventes de l'année dernière
,
Région
et
Ville
.
12. Cliquez sur le bouton
>
pour déplacer ces champs dans le panneau
Champs à afficher
, puis cliquez sur le bouton
Suivant
.
13. Dans le panneau
Champs disponibles
, sous
Champs du rapport
, suivez les instructions suivantes : a. Sélectionnez
Pays
et cliquez sur le bouton
>
pour déplacer le champ dans le panneau
Regrouper par
.
b. Sélectionnez
Région
et cliquez sur le bouton
>
pour déplacer le champ dans le panneau
Regrouper par
.
c. Cliquez sur
Suivant
.
Des champs résumés sont créés pour le champ Ventes de l'année dernière dans les groupes Pays et
Région.
14. Cliquez sur
Terminer
.
Le rapport Customers est créé et chargé dans la fenêtre principale de Visual Studio.
15. En bas de la fenêtre, cliquez sur
Aperçu Rapport principal
.
Le rapport s'affiche selon des niveaux hiérarchiques triés d'abord par pays, puis par région. Si vous changez l'affichage du rapport pour afficher des parties de rapport, chaque niveau s'affiche séparément.
Résultats
Vous pouvez maintenant convertir le rapport pour afficher des parties de rapport.
482
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.5.2.9.2 Conversion du rapport afin d'afficher des parties de rapport
Dans cette section, vous allez apprendre à définir des liens hypertexte dans le rapport pour lier les informations générales aux informations plus détaillées.
1.5.2.9.2.1 Pour convertir le rapport afin d'afficher des parties de rapport
Procédure
1. En bas de la fenêtre, cliquez sur
Rapport
principal.
Remarque
Le groupe de plus haut niveau,
Nom du groupe n° 1
, s'affiche en deux endroits, au début et en bas du rapport.
Au bas du rapport dans la section Pied de page de groupe n° 1,
Nom du groupe n° 1
est une étiquette suivie d'un champ résumé de
Clients.Ventes de l'année dernière
. Cette étiquette est à utiliser de préférence comme point d'entrée des parties de rapport.
2. Cliquez avec le bouton droit de la souris sur
Nom du groupe n° 1
situé dans la section
Pied de page de groupe n
° 1
, puis cliquez sur
Copier
.
3. Cliquez avec le bouton droit de la souris sur une zone vide du rapport, pointez sur
Rapport
, puis cliquez sur
Options du rapport
.
4. Dans la boîte de dialogue Options du rapport, cliquez sur
Coller le lien
.
L'ID de l'étiquette du groupe 1 "GroupNamePays2" est collée dans le champ
Nom de l'objet
.
Le champ
Contexte des données
accepte une valeur de chaîne qui filtre les données du rapport. Pour le moment, ce champ doit rester vide.
5. Cliquez sur
OK
.
6. Cliquez avec le bouton droit de la souris sur
Nom du groupe n° 1
qui se trouve dans la section
Pied de page de groupe n° 1
, puis cliquez sur
Mettre en forme l'objet
.
7. Dans l'
Editeur de mise en forme
, cliquez sur l'onglet
Lien hypertexte
, puis sélectionnez
Exploration des parties du rapport
.
8. Dans le panneau
Champs disponibles
, développez
Pied de page de groupe n° 2
, cliquez deux fois sur
GroupNameRégion2
, puis cliquez sur
OK
.
Vous avez configuré Groupe n° 1 pour le lier à Groupe n° 2 lorsqu'un utilisateur clique sur Groupe n° 1 au moment de l'exécution.
9. Cliquez avec le bouton droit de la souris sur
Nom du groupe n° 2
qui se trouve dans la section Pied de page de groupe n° 2, puis cliquez sur
Mettre en forme l'objet
.
10. Dans l'
Editeur de mise en forme
, cliquez sur l'onglet
Lien hypertexte
, puis sélectionnez
Exploration des parties du rapport
.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
483
11. Dans le panneau
Champs disponibles
, procédez de la manière suivante : a. Développez
Détails
.
b. Utilisez la combinaison de touches CTRL-clic pour sélectionner
Nomduclient1
,
Ventesdelannéedernière1
et
Ville1
.
c. Cliquez sur le bouton
>
pour déplacer ces champs dans le panneau Champs à afficher.
d. Cliquez sur
OK
.
Vous avez défini Groupe n° 2 pour le lier aux informations détaillées sur le client lorsqu'un utilisateur clique sur Groupe n° 2 au moment de l'exécution.
12. Dans le menu
Fichier
, sélectionnez
Enregistrer tout
.
1.5.2.9.3 Liaison du rapport
Lorsque vous avez suivi les instructions de la procédure Configuration d'un projet [page 15]
en préparation de ce tutoriel, vous avez placé un contrôle CrystalReportViewer sur le Web Form. Or, pour afficher des parties de rapport, vous devez utiliser le contrôle CrystalReportPartsViewer.
Dans cette section, vous allez instancier le rapport Customers et le lier au contrôle
CrystalReportPartsViewer. Vous vérifierez ensuite si le rapport affiche les parties de rapport que vous avez créées dans les procédures précédentes.
Vous pouvez instancier et lier le rapport de deux façons :
● En tant que rapport incorporé.
● En tant que rapport non incorporé.
Choisissez l'une des deux (mais pas les deux) procédures ci-dessous.
● Si vous utilisez des rapports incorporés, effectuez la procédure suivante afin d'instancier le rapport sous forme de rapport incorporé.
● Si vous utilisez des rapports non incorporés, effectuez la seconde procédure afin d'instancier le rapport sous forme de rapport non incorporé.
Effectuez maintenant la procédure Filtrage des données du rapport [page 487]
.
1.5.2.9.3.1 Pour instancier le rapport Customers sous forme de rapport incorporé et le lier au contrôle
CrystalPartsReportViewer
Procédure
1. Ouvrez le Web Form.
2. Dans le menu
Affichage
, cliquez sur
Concepteur
.
3. Supprimez le contrôle
CrystalReportViewer
.
4. Dans la
boîte à outils
, ouvrez le nœud
Crystal Reports
afin de localiser le contrôle
CrystalReportPartsViewer
.
484
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
5. Faites glisser le contrôle
CrystalReportPartsViewer
sur le Web Form.
6. Dans la fenêtre
Propriétés
, définissez la propriété
ID
de la manière suivante :
○ Pour les sites Web Visual Basic, attribuez à la propriété ID la valeur "myCrystalReportPartsViewer".
○ Pour les sites Web C#, attribuez à la propriété ID la valeur "crystalReportPartsViewer".
7. Dans le menu
Affichage
, cliquez sur
Code
pour afficher la classe code-behind de ce Web Form.
8. Ajoutez une nouvelle déclaration de niveau classe pour la classe wrapper du rapport Customers, avec la variable customerReport. Définissez le modificateur d'accès à private.
Private customersReport As Customers private Customers customersReport;
9. Dans la méthode ConfigureCrystalReports(), instanciez la classe wrapper du rapport.
Remarque
Vous avez créé la méthode ConfigureCrystalReports() dans
Configuration d'un projet [page 15] .
customersReport = New Customers() customersReport = new Customers();
10. Sur la ligne suivante, au-dessous de l'instanciation du rapport, liez la propriété ReportSource du contrôle
CrystalReportPartsViewer à la classe de rapport instanciée (nom de la variable : customersReport).
myCrystalReportPartsViewer.ReportSource = customersReport crystalReportPartsViewer.ReportSource = customersReport;
Remarque
L'instance du contrôle CrystalReportPartsViewer est accessible dans le code, car vous avez ajouté le contrôle à votre Web Form ou Windows Form. Si IntelliSense ne reconnaît pas l'instance du contrôle
CrystalReportPartsViewer, vérifiez que le contrôle CrystalReportPartsViewer a été ajouté sous la forme d'une déclaration de niveau classe à cette classe code-behind.
1.5.2.9.3.2 Pour instancier le rapport Customers sous forme de rapport non incorporé et le lier au contrôle
CrystalReportPartsViewer
Contexte
Vous êtes maintenant prêt à générer et exécuter votre projet.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
485
Procédure
1. Ouvrez le Web Form.
2. Dans le menu
Affichage
, cliquez sur
Code
.
3. Ajoutez une nouvelle déclaration de niveau classe pour la classe wrapper du rapport ReportDocument, avec la variable customersReport. Définissez le modificateur d'accès à private.
Private customersReport As ReportDocument private ReportDocument customersReport;
Remarque
La classe ReportDocument est un membre de l'espace de noms CrystalDecisions.CrystalReports.Engine.
Vous avez ajouté une déclaration "Imports" [Visual Basic] ou "using" [C#] pour cet espace de noms dans la section
Configuration d'un projet [page 15] . Lorsque vous instanciez ReportDocument et
chargez un rapport dans l'espace de noms, vous accédez au rapport via le SDK sans l'incorporer.
4. Dans la méthode ConfigureCrystalReports() (que vous avez créée dans l'une des procédures de la section
Configuration d'un projet [page 15] ), instanciez la classe ReportDocument.
customersReport = New ReportDocument() customersReport = new ReportDocument();
5. Déclarez une variable chaîne, nommez-la reportPath et affectez-lui un chemin d'accès au rapport local au moment de l'exécution. Ce chemin est déterminé différemment selon qu'il s'agit d'un site Web ou d'un projet
Windows :
○ Pour un site Web, transmettez le nom du fichier de rapport local sous forme de paramètre de type chaîne dans la méthode Server.MapPath(). Ceci permet d'associer le rapport local au chemin d'accès du répertoire de fichiers du disque dur au moment de l'exécution.
Dim reportPath As String = Server.MapPath("Customers.rpt") string reportPath = Server.MapPath("Customers.rpt");
○ Pour un projet Windows, concaténez la propriété Application.StartupPath avec une barre oblique inverse et le nom du fichier de rapport local. Ceci permet d'associer le rapport au même répertoire que celui du fichier exécutable Windows.
Remarque
Au moment de la compilation, vous copierez le rapport dans le répertoire contenant le fichier exécutable.
Dim reportPath As String = Application.StartupPath & "\" & "Customers.rpt" string reportPath = Application.StartupPath + "\\" + "Customers.rpt";
486
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
6. Appelez la méthode Load() de l'instance ReportDocument et transmettez-lui la variable chaîne reportPath.
customersReport.Load(reportPath) customersReport.Load(reportPath);
7. Sur la ligne suivante, sous le chargement du rapport, liez la propriété ReportSource du contrôle
CrystalReportPartsViewer à l'instance ReportDocument.
myCrystalReportPartsViewer.ReportSource = customersReport crystalReportPartsViewer.ReportSource = customersReport;
1.5.2.9.3.3 Pour tester le chargement du rapport Customers
Contexte
Que vous ayez choisi d'instancier une classe de rapport incorporé ou une classe de rapport non incorporé via la classe ReportDocument, le nom de la variable utilisée est identique : customersReport. Vous pouvez ainsi utiliser un bloc de code commun dans les procédures suivantes.
Vous êtes maintenant prêt à générer et exécuter votre projet. Le chargement du rapport doit échouer, car le code permettant de définir une valeur pour le champ de paramètre Ville n'a pas encore été écrit. Vous ajouterez une valeur au paramètre Ville plus loin dans ce tutoriel.
Procédure
1. Dans le menu
Générer
, sélectionnez
Générer la solution
.
2. Si vous rencontrez des erreurs lors de la génération, corrigez-les.
3. Dans le menu
Déboguer
, cliquez sur
Démarrer
.
Le rapport Customers s'affiche dans le navigateur Web.
4. Cliquez sur un pays pour afficher une liste des régions.
5. Cliquez sur une région pour afficher les champs Nom du client, Ventes de l'année dernière et Ville.
6. Revenez dans Visual Studio, puis cliquez sur
Arrêter
pour quitter le mode débogage.
1.5.2.9.4 Filtrage des données du rapport
Dans cette section, vous allez apprendre à définir le champ Contexte des données pour filtrer les données qui
.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
487
1.5.2.9.4.1 Pour filtrer les données du rapport
Procédure
1. Ouvrez le rapport Crystal.
2. Cliquez avec le bouton droit de la souris sur une zone vide du rapport. Sélectionnez
Rapport
, puis cliquez sur
Options du rapport
.
3. Dans le champ Contexte des données, saisissez "/Pays[Etats-Unis]".
4. Cliquez sur
OK
pour fermer la boîte de dialogue
Options du rapport
.
5. Dans le menu
Générer
, sélectionnez
Générer la solution
.
6. Si vous rencontrez des erreurs lors de la génération, corrigez-les.
7. Dans le menu
Déboguer
, cliquez sur
Démarrer
.
Le rapport affiche uniquement les enregistrements des Etats-Unis.
8. Revenez dans Visual Studio, puis cliquez sur
Arrêter
pour quitter le mode débogage.
1.5.3 Tutoriels de programmation allégée dans Visual Studio
Cette section présente divers tutoriels consacrés au modèle de développement de programmation allégée.
Remarque
.
1.5.3.1 Tutoriel : Configuration par programmation allégée d'un site Web avec SAP Crystal Reports à l'aide du panneau des tâches guidées
Dans ce tutoriel, vous allez apprendre à utiliser le nouveau modèle de développement d'applications avec balises dans Visual Studio. Vous allez suivre un modèle de développement par programmation allégée pour configurer un site Web avec SAP Crystal Reports, à l'aide des tâches guidées.
Introduction
Dans ce tutoriel, vous allez créer un site Web ASP.NET dans Visual Studio. Vous allez ensuite ajouter un contrôle
CrystalReportViewer au Web Form, afin de lancer le nouveau panneau des tâches guidées. Dans le panneau des tâches guidées, vous allez créer un contrôle CrystalReportSource, puis créer un rapport Crystal. Le rapport est référencé dans le contrôle CrystalReportSource.
488
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Ce tutoriel permet d'afficher un aperçu du rapport de trois façons :
● Dans le concepteur SAP Crystal Reports incorporé, à l'aide du nouveau bouton Aperçu de
SAP Crystal Reports, version développeur pour Microsoft Visual Studio.
● Dans le Web Form, à l'aide de données factices.
Remarque
C'est grâce à une nouvelle fonctionnalité nommée Aperçu au moment de la conception qu'il est désormais possible d'obtenir un aperçu du Web Form.
● Au moment de l'exécution, lorsque vous créez et compilez l'application.
A la fin de ce tutoriel, vous allez passer en mode HTML (mode Source) et découvrir la relation entre le contrôle
CrystalReportViewer et le contrôle CrystalReportSource dans le nouveau modèle de développement d'applications avec balises de Visual Studio 2005 ou version ultérieure.
Exemple de code
Ce tutoriel fournit des exemples de code Visual Basic et C# qui illustrent la version terminée du projet. Suivez les instructions de ce tutoriel pour créer un projet ou ouvrez le projet d'exemple de code pour travailler à partir d'une version terminée.
Les exemples de code sont stockés dans des dossiers classés par langue et par type de projet. Les noms des dossiers de chaque version d'exemple de code sont les suivants :
● Site Web C# : CS_Web_ReducedCode_WebSiteSetup
● Site Web Visual Basic : VB_Web_ReducedCode_WebSiteSetup
Base de données Xtreme
Ce tutoriel utilise un exemple de base de données appelée Xtreme. Le fichier de base de données xtreme.mdb est fourni dans le package d'exemples de code du SDK de SAP Crystal Reports .NET. Pour utiliser la base de données
Xtreme, vous devez créer manuellement une connexion ODBC à cette base de données.
Informations associées
Affichage d'un rapport au moment de la conception [page 219]
Répertoire d'exemples de rapports [page 15]
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
489
1.5.3.1.1 Création d'un site Web avec un contrôle
CrystalReportViewer
Prérequis
Avant de créer un site Web, vérifiez que SAP Crystal Reports, version développeur pour Microsoft Visual Studio a
été installé sur votre système.
Procédure
1. Démarrez Visual Studio.
2. Dans le menu
Fichier
, sélectionnez
Nouveau
, puis cliquez sur
Site Web
.
3. Dans la boîte de dialogue
Nouveau site Web
, cliquez sur
Site Web ASP.NET
.
4. Dans la liste déroulante
Emplacement
, sélectionnez
Système de fichiers
.
5. Dans la liste déroulante
Langage
, sélectionnez le langage de programmation que vous souhaitez utiliser.
6. Dans le champ de texte
Emplacement
, saisissez le chemin d'accès du répertoire C:\WebSites\, suivi du nom de votre projet.
7. Cliquez sur
OK
.
Votre projet s'affiche dans l'Explorateur de solutions et contient une page Default.aspx.
8. Ouvrez la page Default.aspx (le Web Form).
9. Dans le menu
Affichage
, cliquez sur
Concepteur
.
Remarque
Vous pouvez également basculer en mode Design en cliquant sur le bouton Design en bas du formulaire.
10. Dans la
Boîte à outils
, ouvrez le nœud
Reporting
afin de localiser le contrôle
CrystalReportViewer
.
11. Faites glisser le contrôle
CrystalReportViewer
sur le Web Form.
Le panneau des tâches guidées "Tâches CrystalReportViewer" s'affiche.
Informations associées
Eléments à installer [page 10]
490
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.5.3.1.2 Configuration du contrôle CrystalReportSource dans les tâches guidées
Visual Studio 2005 et version ultérieure disposent d'une nouvelle fonctionnalité d'interface utilisateur graphique destinée aux contrôles .NET, appelée tâches guidées. Pour le contrôle CrystalReportViewer dans des sites Web, le panneau des tâches guidées s'intitule "Tâches CrystalReportViewer".
Ce panneau "Tâches CrystalReportViewer" permet de configurer plusieurs fonctionnalités du contrôle
CrystalReportViewer, sans avoir à écrire de code. Les sélections que vous effectuez à l'aide des tâches guidées sont appliquées sous forme de paramètres avec balises dans la page ASPX.
Dans cette section, vous allez apprendre à configurer l'option CrystalReportSource disponible dans le panneau des tâches guidées "Tâches CrystalReportViewer".
Plus loin dans ces tutoriels de programmation allégée, vous examinerez d'autres fonctionnalités du panneau
"Tâches CrystalReportViewer".
1.5.3.1.2.1 Pour configurer le contrôle CrystalReportSource
à l'aide des tâches guidées
Procédure
1. Si le panneau des tâches guidées est ouvert, cliquez sur le Web Form pour le fermer.
2. Dans l'angle supérieur droit du contrôle CrystalReportViewer, cliquez sur le petit bouton triangulaire.
Le panneau des tâches guidées intitulé "Tâches CrystalReportViewer" s'affiche de nouveau. Dans la liste
Sélectionner la source du rapport, la valeur <Aucune> s'affiche.
3. Cliquez sur la liste
Sélectionner la source du rapport
, puis sélectionnez
<Source du nouveau rapport…>
.
La boîte de dialogue Créer la source du rapport s'ouvre.
4. Dans la zone
Indiquer le nom du contrôle CrystalReportSource
, laissez l'entrée par défaut
CrystalReportSource1.
5. Cliquez sur la liste
Spécifier un rapport Crystal pour le contrôle CrystalReportSource
, puis sélectionnez
<Nouveau rapport>
.
L'autre sélection possible est <Parcourir…>. Cette option permet de sélectionner un rapport Crystal existant dans le répertoire de fichiers. Cependant, dans ce tutoriel, vous allez créer un rapport.
6. Dans la boîte de dialogue
Créer un rapport Crystal
, saisissez le nom "XtremeCustomers.rpt", puis cliquez sur
OK
.
7. Cliquez à nouveau sur
OK
pour fermer la boîte de dialogue
Créer la source du rapport
.
1.5.3.1.3 Configuration du rapport pour le contrôle
CrystalReportSource
Dans cette section, vous utilisez l'Assistant de création de rapports pour configurer le rapport et l'ajouter au contrôle CrystalReportSource. Vous créez une connexion à une base de données, configurez les champs du
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
491
rapport, puis ajoutez le rapport au contrôle. Lorsque vous avez terminé ces opérations, vous testez le site Web que vous avez créé par programmation allégée.
1.5.3.1.3.1 Pour configurer le rapport pour le contrôle
CrystalReportSource
Procédure
1. Dans le panneau
Créer un document de rapport Crystal
de la boîte de dialogue
Galerie de rapports Crystal
, sélectionnez
en utilisant l' Assistant de création de rapports
.
2. Dans le panneau
Choisir un expert
, sélectionnez
Standard
, puis cliquez sur
OK
.
3. Dans le panneau
Sources de données disponibles
de la fenêtre de l'Assistant de création de rapports standard, procédez comme suit : a. Développez le dossier
Créer une nouvelle connexion
.
b. Développez le dossier
ODBC (RDO)
.
4. Dans la fenêtre ODBC (RDO), sélectionnez l'entrée DSN ODBC correspondant à la base de données Xtreme, puis cliquez sur
Terminer
.
Le dossier ODBC (RDO) se développe pour afficher la base de données Xtreme.
5. Développez le nœud
Tables
et sélectionnez la table
Clients
.
6. Cliquez deux fois sur la table
Clients
pour l'ajouter au panneau
Tables sélectionnées
, puis cliquez sur
Suivant
.
7. Développez la table
Clients
, puis utilisez la combinaison de touches CTRL-clic pour sélectionner les champs
Nom du client
,
Titre
,
Adresse 1
,
Nom du contact
et
Ville
.
8. Cliquez sur le bouton
>
pour déplacer ces champs dans le panneau
Champs à afficher
, puis cliquez sur
Suivant
.
9. Dans le panneau
Champs disponibles
, sous
Champs du rapport
, sélectionnez
Clients.Ville
, cliquez sur le bouton
>
pour déplacer le champ dans le panneau
Regrouper par
, puis cliquez sur
Terminer
.
Le rapport XtremeCustomers est créé et chargé dans la fenêtre principale de Visual Studio.
10. En bas de la fenêtre, cliquez sur
Aperçu Rapport principal
.
Remarque
Le bouton Aperçu est pour la première fois disponible dans le concepteur SAP Crystal Reports incorporé, fourni avec SAP Crystal Reports pour Visual Studio 2005.
Le rapport s'affiche en mode Aperçu et présente les données provenant de la base de données Xtreme.
11. En bas de la fenêtre, cliquez sur
Rapport principal
pour quitter le mode Aperçu.
12. Ouvrez le Web Form.
13. Dans le menu
Affichage
, cliquez sur
Concepteur
.
Le rapport s'affiche alors sous forme graphique dans le Web Form, en mode Aperçu au moment de la conception.
14. Dans le menu
Fichier
, cliquez sur
Enregistrer tout
.
492
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.5.3.1.3.2 Pour vérifier le site Web créé par programmation allégée
Contexte
Votre rapport est créé et constitue le rapport désigné pour le contrôle CrystalReportSource. Vous êtes maintenant prêt à générer et exécuter votre projet.
Procédure
1. Dans le menu
Générer
, sélectionnez
Générer la solution
.
2. Si vous rencontrez des erreurs lors de la génération, corrigez-les.
3. Dans le menu
Déboguer
, cliquez sur
Démarrer
.
4. Le rapport XtremeCustomers s'affiche dans le navigateur Web.
5. Revenez dans Visual Studio, puis cliquez sur
Arrêter
pour quitter le mode débogage.
1.5.3.1.4 Exploration du contrôle CrystalReportSource en mode Source
Contexte
Dans cette section, vous allez découvrir le modèle de développement d'applications avec balises utilisé dans
ASP.NET version 2.0. Ce modèle permet de configurer un site Web avec SAP Crystal Reports, version développeur pour Microsoft Visual Studio, sans avoir à écrire de code. Vous allez également découvrir la structure du contrôle DataSource et le contrôle CrystalReportSource qui font partie d'ASP.NET 2.0.
Procédure
1. Ouvrez la page
Default.aspx
.
2. Dans le menu
Affichage
, cliquez sur
Concepteur
.
3. En bas du Web Form, cliquez sur le bouton
Source
.
Le code HTML de la page Default.aspx s'affiche. Il contient deux balises apparentées pour SAP Crystal
Reports :
○ La balise CrystalReportSource, qui imbrique la balise Report. La balise Report référence le rapport dans sa propriété FileName.
<CR:CrystalReportSource ID="CrystalReportSource1" Runat="server"
EnableCaching="False" GroupPath="">
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
493
<Report FileName="XtremeCustomers.rpt"></Report>
</CR:CrystalReportSource>
○ La balise CrystalReportViewer, qui référence le contrôle CrystalReportSource par ID.
<CR:CrystalReportViewer ID="CrystalReportViewer1" Runat="server"
AutoDataBind="True"
Height="1158px" CssFilename="CssFilename"
ReportSourceID="CrystalReportSource1" Width="1059px" />
Résultats
Le code présente le nouveau modèle de développement d'applications avec balises qui fait partie d'ASP.NET 2.0.
Comme dans ASP.NET version 1.0, le contrôle CrystalReportViewer est représenté par une balise XML.
Cependant, les propriétés disponibles pour ce contrôle sont plus nombreuses dans ASP.NET 2.0 afin de prendre en charge le modèle de développement d'applications avec balises.
Dans ASP.NET 2.0, la connectivité des données a été encapsulée dans le contrôle DataSource. Le contrôle
CrystalReportSource s'adapte à la structure du contrôle DataSource, à la différence qu'il encapsule la connectivité du rapport plutôt que la connectivité des données. Cette structure est gérée par la propriété
ReportSourceID dans le contrôle visuel principal.
Pour en savoir plus sur les autres propriétés du contrôle CrystalReportSource, voir Contrôle
programmation allégée de cette section.
1.5.3.2 Tutoriel : Configuration par programmation allégée d'un projet Windows avec SAP Crystal Reports à l'aide des tâches guidées
Introduction
Dans ce tutoriel, vous allez apprendre à créer un projet Windows dans SAP Crystal Reports, version développeur pour Microsoft Visual Studio. Vous allez ensuite ajouter un contrôle CrystalReportViewer au Windows Form. Dans le panneau des tâches guidées, vous allez ouvrir le concepteur SAP Crystal Reports incorporé et créer un rapport.
La fonctionnalité des tâches guidées génère le code qui lie le rapport au contrôle CrystalReportViewer.
Ce tutoriel permet d'afficher un aperçu du rapport de trois façons :
● Dans le concepteur SAP Crystal Reports incorporé, à l'aide du nouveau bouton Aperçu de
SAP Crystal Reports, version développeur pour Microsoft Visual Studio.
● Dans le Windows Form, à l'aide de données factices.
● Au moment de l'exécution, lorsque vous créez et compilez l'application.
A la fin de ce tutoriel, vous allez passer en mode code pour observer comment le modèle de développement par programmation allégée fonctionne dans SAP Crystal Reports, version développeur pour Microsoft Visual Studio.
494
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Exemple de code
Ce tutoriel fournit des exemples de code Visual Basic et C# qui illustrent la version terminée du projet. Suivez les instructions de ce tutoriel pour créer un projet ou ouvrez le projet d'exemple de code pour travailler à partir d'une version terminée.
Les exemples de code sont stockés dans des dossiers classés par langue et par type de projet. Les noms des dossiers de chaque version d'exemple de code sont les suivants :
● Projet Windows C# : CS_Win_ReducedCode_ProjectSetup.
● Projet Windows Visual Basic : VB_Win_ReducedCode_ProjectSetup.
Base de données Xtreme
Ce tutoriel utilise un exemple de base de données appelée Xtreme. Le fichier de base de données xtreme.mdb est fourni dans le package d'exemples de code du SDK de SAP Crystal Reports .NET. Pour utiliser la base de données
Xtreme, vous devez créer manuellement une connexion ODBC à cette base de données.
Informations associées
Répertoire d'exemples de rapports [page 15]
1.5.3.2.1 Création d'un projet Windows avec un contrôle
CrystalReportViewer
Prérequis
Avant de créer un projet Windows, vérifiez que SAP Crystal Reports, version développeur pour Microsoft
Visual Studio a été installé sur votre système.
Procédure
1. Lancez Visual Studio.
2. Dans le menu
Fichier
, sélectionnez
Nouveau
, puis cliquez sur
Projet
.
3. Dans la boîte de dialogue
Nouveau projet
, dans la liste
Types de projets
, sélectionnez un dossier de langage pour C# ou Visual Basic.
4. Dans la liste
Modèles
, cliquez sur
Application Windows
.
5. Dans le champ
Nom
, remplacez le nom de projet par défaut par le nom de votre projet.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
495
6. Cliquez sur
OK
.
Votre projet s'affiche dans l'Explorateur de solutions et contient une classe Form1.
7. Ouvrez la classe Form1.
8. Dans la
Boîte à outils
, ouvrez le nœud
Reporting
afin de localiser le contrôle
CrystalReportViewer
.
9. Faites glisser le contrôle
CrystalReportViewer
sur le Windows Form.
10. Dans la fenêtre
Propriétés
, définissez la propriété
Name
de la manière suivante :
○ Pour les projets Visual Basic, attribuez la valeur "myCrystalReportViewer".
○ Pour les projets C#, attribuez la valeur "crystalReportViewer".
11. Dans le menu
Fichier
, cliquez sur
Enregistrer tout
.
Informations associées
Eléments à installer [page 10]
1.5.3.2.2 Configuration du rapport dans le panneau des tâches guidées
Pour le contrôle CrystalReportViewer dans des projets Windows, le panneau des tâches guidées s'intitule
Tâches
CrystalReportViewer
.
Les sélections que vous effectuez dans les tâches guidées sont générées sous forme de code dans une classe partielle Form1. Dans cette section, vous allez configurer un nouveau rapport à l'aide du panneau des tâches guidées Tâches CrystalReportViewer et du concepteur SAP Crystal Reports incorporé. Plus loin dans ces tutoriels de programmation allégée, vous examinerez d'autres fonctionnalités des tâches guidées.
1.5.3.2.2.1 Configuration du rapport à l'aide des tâches guidées
Procédure
1. Dans l'angle supérieur droit du contrôle CrystalReportViewer, cliquez sur le petit bouton triangulaire.
Le panneau des tâches guidées
Tâches CrystalReportViewer
s'affiche.
2. Cliquez sur le lien
Créer un rapport Crystal
.
3. Dans la boîte de dialogue
Créer un rapport Crystal
, saisissez le nom
XtremeCustomers.rpt
, puis cliquez sur
OK
.
La boîte de dialogue Galerie de rapports Crystal s'affiche.
4. Dans le panneau
Créer un document de rapport Crystal
de la boîte de dialogue
Galerie de rapports Crystal
, sélectionnez
en utilisant l' Assistant de création de rapports
.
5. Dans le panneau
Choisir un expert
, sélectionnez
Standard
, puis cliquez sur
OK
.
496
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
6. Dans le panneau
Sources de données disponibles
de la fenêtre de l'Assistant de création de rapports standard, procédez comme suit : a. Développez le dossier
Créer une nouvelle connexion
.
b. Développez le dossier
ODBC (RDO)
.
7. Dans la fenêtre
ODBC (RDO)
, sélectionnez l'entrée DSN ODBC correspondant à l'exemple de base de données
Xtreme, puis cliquez sur
Terminer
.
Le dossier ODBC (RDO) se développe pour afficher la base de données Xtreme.
8. Développez le nœud
Tables
, puis sélectionnez la table
Clients
.
9. Cliquez deux fois sur la table
Clients
pour l'ajouter au panneau
Tables sélectionnées
, puis cliquez sur
Suivant
.
10. Utilisez la combinaison de touches CTRL-clic pour sélectionner les champs
Nom du client
,
Titre
,
Adresse 1
et
Ville
.
11. Cliquez sur le bouton
>
pour déplacer ces champs dans le panneau
Champs à afficher
, puis cliquez sur
Suivant
.
12. Dans le panneau
Champs disponibles
, sous
Champs du rapport
, sélectionnez
Clients.Ville
, cliquez sur le bouton
>
pour déplacer le champ dans le panneau
Regrouper par
, puis cliquez sur
Terminer
.
Le rapport XtremeCustomers est créé et chargé dans la fenêtre principale de Visual Studio.
13. En bas de la fenêtre, cliquez sur
Aperçu Rapport principal
.
Remarque
Le bouton Aperçu est une nouvelle fonctionnalité du concepteur SAP Crystal Reports incorporé fourni avec
SAP Crystal Reports, version développeur pour Microsoft Visual Studio.
14. En bas de la fenêtre, cliquez sur
Rapport principal
pour quitter le mode Aperçu.
15. Revenez à la classe
Form1
.
Le rapport s'affiche sous forme graphique dans le Web Form, en mode Aperçu au moment de la conception.
Sous la classe Form1, le rapport XtremeCustomers s'affiche dans la barre d'état des composants.
16. Dans le menu
Fichier
, cliquez sur
Enregistrer tout
.
1.5.3.2.2.2 Pour renommer la variable du rapport
Contexte
Votre rapport est créé et constitue le rapport désigné pour le contrôle
CrystalReportViewer
. A ce stade, vous pouvez renommer la variable de rapport.
Procédure
1. Cliquez sur
XtremeCustomers1
dans la barre d'état des composants pour le sélectionner.
2. Dans la fenêtre
Propriétés
, attribuez au champ
Name
la valeur "xtremeCustomersReport".
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
497
1.5.3.2.2.3 Pour vérifier le projet Windows créé par programmation allégée
Contexte
Vous êtes maintenant prêt à générer et exécuter votre projet.
Procédure
1. Dans le menu
Générer
, sélectionnez
Générer la solution
.
2. Si vous rencontrez des erreurs lors de la génération, corrigez-les.
3. Dans le menu
Déboguer
, cliquez sur
Démarrer
.
4. Le rapport XtremeCustomers s'affiche dans une nouvelle application Windows.
5. Revenez dans Visual Studio, puis cliquez sur
Arrêter
pour quitter le mode débogage.
1.5.3.2.3 Exploration du code généré par des tâches guidées
Dans cette section, vous allez explorer le code généré par les tâches guidées, qui a permis de configurer un projet
Windows avec SAP Crystal Reports sans avoir à écrire de code.
1.5.3.2.3.1 Pour explorer le code généré par les tâches guidées
Procédure
1. Ouvrez la classe
Form1
.
2. Dans le menu
Affichage
, cliquez sur
Code
.
La classe Form1 s'ouvre en mode code et affiche une classe vide.
Remarque
Dans C#, la classe vide affiche le constructeur de classe.
public Form1()
{
InitializeComponent();
}
498
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.5.3.2.3.2 Pour afficher la classe Form1 partielle masquée
Contexte
Notez que le code suivant est absent :
● la déclaration de l'instance du contrôle CrystalReportViewer ;
● l'instance du rapport XtremeCustomers ;
● le code qui lie le rapport au contrôle CrystalReportViewer.
Le code absent a été masqué dans une classe partielle. Elles permettent à une classe d'accepter un addenda provenant d'un autre fichier de classe, en attribuant à ce fichier le même nom de classe avec le préfixe "partial".
Les classes partielles contiennent généralement du code généré automatiquement.
Pour visualiser le code généré automatiquement qui n'apparaît pas dans la classe Form1, vous allez explorer les instances CrystalReportViewer et les instances du rapport dans la classe partielle masquée Form1.
Procédure
1. Dans l'
Explorateur de solutions
, cliquez sur l'icône de barre d'outils
Afficher tous les fichiers
.
2. Développez
Form1.cs
ou
Form1.vb
.
La classe Form1.Designer.cs ou .vb s'affiche.
3. Cliquez avec le bouton droit de la souris sur la classe
Form1.Designer.cs
ou
.vb
, puis sélectionnez
Afficher le code
.
La classe partielle Form1 s'ouvre et affiche le code généré de façon automatique pour cette classe. Cela inclut la déclaration de l'instance du contrôle CrystalReportViewer, l'instance du rapport XtremeCustomers et le code qui lie le rapport à l'instance du contrôle CrystalReportViewer.
Remarque
Si vous préférez écrire le code et le placer dans la classe code-behind, voir
Configuration d'un projet [page
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
499
1.5.3.3 Tutoriel : Connexion à une base de données sécurisée
à programmation allégée dans un site Web
Dans ce tutoriel de création de site Web par programmation allégée, vous allez apprendre à afficher un rapport contenant des informations provenant d'une base de données SQL Server sécurisée.
Introduction
Dans ce tutoriel de création de site Web par programmation allégée, vous allez apprendre à afficher un rapport contenant des informations provenant d'une base de données SQL Server sécurisée. Pour créer une connexion à une base de données sécurisée, vous affectez la propriété DataSources du rapport au contrôle SQLDataSource faisant partie de la nouvelle structure du contrôle DataSource dans .NET 2.0.
Dans ce tutoriel, pour afficher un rapport contenant des informations provenant d'une base de données SQL
Server sécurisée, vous allez utiliser le nouveau modèle de développement d'applications avec balises pour connecter les composants clés :
● Connecter un contrôle CrystalReportViewer à un contrôle CrystalReportSource.
● Connecter le contrôle CrystalReportSource à un rapport.
● Connecter la propriété DataSources du rapport à un contrôle SqlDataSource.
Remarque
La propriété DataSources s'affiche sous forme de propriété de rapport dans la fenêtre Propriétés, ou sous forme de balise en mode HTML (mode Source).
Toutes ces opérations sont réalisées sans écrire de code.
Remarque
Un modèle de développement de codage de ce tutoriel est également disponible. Voir
ou
à une base de données SQL Server sécurisée à l'aide de la sécurité intégrée [page 359]
.
Pour commencer, vous allez ajouter un contrôle CrystalReportViewer au Web Form. Dans le panneau des tâches guidées, vous allez créer un contrôle CrystalReportSource, puis un rapport Crystal à l'aide du concepteur
SAP Crystal Reports incorporé. Ce rapport se connecte à une base de données SQL Server sécurisée. Le rapport est référencé dans le contrôle CrystalReportSource.
Vous allez ensuite apprendre à configurer la connexion à la base de données SQL Server sécurisée afin de renvoyer les tables requises utilisées par le rapport Crystal. Pour commencer, vous allez sélectionner l'option
"Activer l'invite de connexion à la base de données" dans le panneau des tâches guidées. Lorsque cette option est sélectionnée, l'exception renvoyée lorsque la connexion à la base de données échoue est remplacée par une invite demandant à l'utilisateur de se connecter manuellement.
Pour configurer une connexion cohérente à la base de données requise, vous ajoutez un contrôle SqlDataSource, puis le configurez de manière à ce qu'il désigne la base de données SQL Server sécurisée et renvoie les tables requises.
Enfin, vous affectez la propriété DataSource du rapport au contrôle SqlDataSource que vous avez créé.
500
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Exemple de code
Ce tutoriel fournit des exemples de code Visual Basic et C# qui illustrent la version terminée du projet. Suivez les instructions de ce tutoriel pour créer un projet ou ouvrez le projet d'exemple de code pour travailler à partir d'une version terminée.
Les exemples de code sont stockés dans des dossiers classés par langue et par type de projet. Les noms des dossiers de chaque version d'exemple de code sont les suivants :
● Site Web C# : CS_Web_ReducedCode_DBLogon
● Site Web Visual Basic : VB_Web_ReducedCode_DBLogon
Informations associées
Répertoire d'exemples de rapports [page 15]
1.5.3.3.1 Création d'un site Web avec un contrôle
CrystalReportViewer
Avant de créer un site Web, vérifiez que SAP Crystal Reports, version développeur pour Microsoft Visual Studio, a
été installé sur votre système.
Une configuration préalable de la base de données est requise avant de commencer ce tutoriel.
1.5.3.3.1.1 Configuration préalable requise de la base de données
● Configuration de SQL Server :
○ Si vous disposez de SQL Server (ou de la version OEM, MSDE), il doit être configuré de manière à exiger une authentification SQL Server.
○ Si vous ne disposez pas de SQL Server (ou de la version OEM, MSDE), vous devez installer MSDE en attribuant à l'authentification SQL Server la valeur True.
● La base de données Northwind fournie avec SQL Server doit être installée et vous devez vérifier que l'authentification SQL Server est bien requise.
● Vous devez créer un compte à accès limité qui sera utilisé au sein du site Web.
Après avoir configuré SQL Server et la base de données Northwind conformément aux instructions des sections ci-dessus, vous êtes prêt à créer un site Web qui affiche un rapport Crystal dont les informations proviennent, de façon sécurisée, de la base de données Northwind.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
501
1.5.3.3.1.2 Pour configurer un site Web créé par programmation allégée dans
SAP Crystal Reports, version développeur pour
Microsoft Visual Studio
Procédure
1. Lancez Visual Studio.
2. Dans le menu
Fichier
, sélectionnez
Nouveau
, puis cliquez sur
Site Web
.
3. Dans la boîte de dialogue
Nouveau site Web
, cliquez sur
Site Web ASP.NET
.
4. Dans la liste déroulante
Emplacement
, sélectionnez
Système de fichiers
.
5. Dans la liste déroulante
Langage
, sélectionnez le langage de programmation que vous souhaitez utiliser.
6. Dans le champ de texte
Emplacement
, saisissez le chemin d'accès du répertoire C:\WebSites\, suivi du nom de votre projet.
7. Cliquez sur
OK
.
Votre projet s'affiche dans l'Explorateur de solutions et contient une page Default.aspx.
8. Ouvrez la page Default.aspx (le Web Form).
9. Dans le menu
Affichage
, cliquez sur
Concepteur
.
Remarque
Vous pouvez également basculer en mode Design en cliquant sur le bouton Design en bas du formulaire.
10. Dans la
Boîte à outils
, ouvrez le nœud
Reporting
afin de localiser le contrôle
CrystalReportViewer
.
11. Faites glisser le contrôle
CrystalReportViewer
sur le Web Form.
Le panneau des tâches guidées "Tâches CrystalReportViewer" s'affiche.
1.5.3.3.2 Configuration du contrôle CrystalReportSource dans les tâches guidées
Une nouvelle fonctionnalité d'interface utilisateur graphique destinée aux contrôles .NET, appelée tâches guidées, a été ajoutée à Visual Studio 2005. Pour le contrôle CrystalReportViewer dans des sites Web, le panneau des tâches guidées s'intitule "Tâches CrystalReportViewer".
Ce panneau "Tâches CrystalReportViewer" permet de configurer plusieurs fonctionnalités du contrôle
CrystalReportViewer, sans avoir à écrire de code.
Les sélections que vous effectuez dans les tâches guidées sont appliquées sous forme de paramètres avec balises dans la page ASPX.
Dans cette section, vous allez configurer le contrôle CrystalReportSource disponible dans le panneau des tâches guidées "Tâches CrystalReportViewer". Plus loin dans ces tutoriels de programmation allégée, vous examinerez d'autres fonctionnalités des tâches guidées.
Pour commencer, vous allez apprendre à fermer, puis rouvrir le panneau des tâches guidées.
502
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Informations associées
Panneau Tâches guidées [page 47]
1.5.3.3.2.1 Configuration du contrôle CrystalReportSource à l'aide des tâches guidées
Procédure
1. Si le panneau des tâches guidées est affiché, cliquez sur le Web Form pour le fermer.
2. Dans l'angle supérieur droit du contrôle CrystalReportViewer, cliquez sur le petit bouton triangulaire.
Le panneau des tâches guidées intitulé "Tâches CrystalReportViewer" s'affiche de nouveau. Dans la liste
Sélectionner la source du rapport, la valeur <Aucune> s'affiche.
3. Cliquez sur la liste
Sélectionner la source du rapport
, puis sélectionnez
<Source du nouveau rapport…>
.
La boîte de dialogue Créer la source du rapport s'ouvre.
4. Dans la zone
Indiquer le nom du contrôle CrystalReportSource
, laissez l'entrée par défaut
CrystalReportSource1.
5. Cliquez sur la liste déroulante
Spécifier un rapport Crystal pour le contrôle CrystalReportSource
, puis sélectionnez
<Nouveau rapport>
.
L'autre sélection possible est <Parcourir…>. Cette option permet de sélectionner un rapport Crystal existant dans le répertoire de fichiers. Cependant, vous allez ensuite créer un rapport nécessaire pour ce tutoriel.
6. Dans la boîte de dialogue
Créer un rapport Crystal
, saisissez le nom "NorthwindCustomers.rpt".
7. Cliquez sur
OK
, puis de nouveau sur
OK
pour fermer la boîte de dialogue
Créer la source du rapport
.
1.5.3.3.3 Création et connexion du rapport à une base de données sécurisée
Vous commencez maintenant le processus de création et de connexion du rapport.
1.5.3.3.3.1 Pour créer et connecter le rapport à une base de données sécurisée
Procédure
1. Dans le panneau
Créer un document de rapport Crystal
de la boîte de dialogue
Galerie de rapports Crystal
, sélectionnez
en utilisant l' Assistant de création de rapports
.
2. Dans le panneau
Choisir un expert
, sélectionnez
Standard
, puis cliquez sur
OK
.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
503
3. Dans le panneau
Sources de données disponibles
, développez le dossier
Créer une nouvelle connexion
.
4. Dans le sous-dossier qui s'ouvre, développez le dossier
OLE DB (ADO)
.
5. Dans la boîte de dialogue
OLE DB (ADO)
, sélectionnez
Microsoft OLE DB Provider for SQL Server
, puis cliquez sur
Suivant
.
6. Vous pouvez maintenant utiliser l'authentification SQL ou l'authentification Windows avec la sécurité intégrée :
○ Si vous utilisez l'authentification SQL, saisissez le nom de votre serveur de base de données, votre ID utilisateur et votre mot de passe dans les champs
Serveur
,
ID utilisateur
et
Mot de passe
, puis dans la liste
Base de données
, sélectionnez "Northwind".
Remarque
Pour des raisons de sécurité, il est important que vous utilisiez un compte de base de données à accès limité.
○ Si vous utilisez l'authentification Windows avec la sécurité intégrée, saisissez le nom de votre serveur de base de données et activez la case à cocher
Sécurité intégrée
, puis dans la liste
Base de données
, sélectionnez "Northwind".
7. Cliquez sur
Terminer
.
Le dossier OLE DB se développe pour afficher votre serveur de base de données et, à l'intérieur de celui-ci, la base de données Northwind.
8. Développez les nœuds
Northwind
,
dbo
et
Tables
, puis sélectionnez la table
Customers
.
9. Cliquez sur le bouton
>
pour déplacer la table dans le panneau
Tables sélectionnées
, puis cliquez sur
Suivant
.
10. Cliquez sur
CompanyName
,
ContactName
et
City
en maintenant la touche CTRL enfoncée.
11. Cliquez sur le bouton
>
pour déplacer ces champs dans le panneau
Champs à afficher
, puis cliquez sur
Suivant
.
12. Dans le panneau
Champs disponibles
, sous
Champs du rapport
, sélectionnez
Clients.Ville
, cliquez sur le bouton
>
pour déplacer le champ dans le panneau
Regrouper par
, puis cliquez sur
Terminer
.
Le rapport NorthwindCustomers est créé et chargé dans la fenêtre principale de Visual Studio.
13. En bas de la fenêtre, cliquez sur
Aperçu Rapport principal
.
Le rapport s'affiche en mode Aperçu et présente les données provenant de la base de données Northwind sécurisée.
14. En bas de la fenêtre, cliquez sur
Rapport principal
pour quitter le mode Aperçu.
15. Ouvrez le Web Form.
16. Dans le menu
Affichage
, cliquez sur
Concepteur
.
Le rapport s'affiche alors sous forme graphique dans le Web Form, en mode Aperçu au moment de la conception.
17. Dans le menu
Fichier
, cliquez sur
Enregistrer tout
.
504
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.5.3.3.3.2 Pour vérifier le site Web créé par programmation allégée
Contexte
Votre rapport est créé et constitue à présent le rapport désigné pour le contrôle CrystalReportSource. Vous êtes maintenant prêt à générer et exécuter votre projet.
Procédure
1. Dans le menu
Générer
, sélectionnez
Générer la solution
.
2. Si vous rencontrez des erreurs lors de la génération, corrigez-les.
3. Dans le menu
Déboguer
, cliquez sur
Démarrer
.
4. Une page d'invite de connexion à la base de données s'affiche et vous demande de saisir le mot de passe de la base de données.
Ce résultat est logique pour deux raisons :
○ Vous n'avez pas encore configuré la source de données.
○ Dans le panneau des tâches guidées du contrôle CrystalReportViewer, la case à cocher "Activer l'invite de connexion à la base de données" est activée par défaut.
5. Saisissez le mot de passe et cliquez sur
Connexion
.
6. Le rapport NorthwindCustomers s'affiche dans le navigateur Web.
7. Revenez dans Visual Studio, puis cliquez sur
Arrêter
pour quitter le mode débogage.
1.5.3.3.4 Configuration de l'invite de connexion à la base de données dans le panneau des tâches guidées
Dans cette procédure, vous allez examiner l'effet de la désactivation de l'option "Activer l'invite de connexion à la base de données" dans le panneau des tâches guidées.
1.5.3.3.4.1 Pour configurer l'invite de connexion à la base de données dans le panneau des tâches guidées
Procédure
1. Ouvrez la page Default.aspx (le Web Form).
2. Dans le menu
Affichage
, cliquez sur
Concepteur
.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
505
3. Dans l'angle supérieur droit du contrôle CrystalReportViewer, cliquez sur le petit bouton triangulaire.
Le panneau des tâches guidées "Tâches CrystalReportViewer" s'affiche.
4. Désactivez la case à cocher
Activer l'invite de connexion à la base de données
.
5. Cliquez sur le Web Form pour fermer le panneau des tâches guidées.
6. Dans le menu
Générer
, sélectionnez
Générer la solution
.
7. Si vous rencontrez des erreurs lors de la génération, corrigez-les.
8. Dans le menu
Déboguer
, cliquez sur
Démarrer
.
L'invite de connexion à la base de données n'étant plus active, une exception "Echec de la connexion" est renvoyée dans la fenêtre de l'application Web.
9. Revenez dans Visual Studio, puis cliquez sur
Arrêter
pour quitter le mode débogage.
10. Revenez au panneau des tâches guidées du contrôle CrystalReportViewer.
11. Activez la case à cocher
Activer l'invite de connexion à la base de données
.
12. Fermez le panneau des
tâches guidées
.
13. Dans le menu
Fichier
, cliquez sur
Enregistrer tout
.
1.5.3.3.5 Ajout d'un contrôle SqlDataSource
Dans ASP.NET 2.0, les sources de données sont à présent configurées et accessibles à partir de la nouvelle structure du contrôle DataSource. Par défaut, un rapport Crystal contourne la nécessité d'une source de données distincte, car l'accès aux données est encapsulé dans le rapport.
Cependant, si les données proviennent d'un serveur SQL Server sécurisé, le rapport nécessite une source de données pour gérer le processus de connexion.
1.5.3.3.5.1 Pour ajouter un contrôle SqlDataSource
Procédure
1. Ouvrez la page Default.aspx (le Web Form).
2. Dans le menu
Affichage
, cliquez sur
Concepteur
.
Remarque
Vous pouvez également basculer en mode Design en cliquant sur le bouton Design en bas du formulaire.
3. Cliquez à droite du contrôle CrystalReportSource, puis appuyez sur Entrée.
Un curseur clignotant apparaît sous le contrôle CrystalReportSource.
4. Dans la
boîte à outils
, cliquez sur le sous-nœud
Données
pour développer les contrôles de données.
5. Dans le sous-nœud
Données
, faites glisser un contrôle
SqlDataSource
sur le Web Form sous le contrôle
CrystalReportSource.
6. Dans le
panneau Tâches guidées
(intitulé
Tâches SqlDataSource
), cliquez sur
Configurer la source de données...
.
506
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
7. Dans la fenêtre
Configurer la source de données
, cliquez sur
Nouvelle connexion
.
8. Dans le champ
Nom du serveur
de la boîte de dialogue
Ajouter une connexion
, saisissez le nom de votre serveur de base de données.
9. Dans le panneau
Connexion au serveur
, choisissez l'option
Utiliser l'authentification SQL Server
ou
Utiliser l'authentification Windows
.
10. Si vous choisissez l'option
Utiliser l'authentification SQL Server
, procédez de la manière suivante :
○ Saisissez des valeurs dans les champs
Nom d'utilisateur
et
Mot de passe
.
Remarque
Pensez à utiliser un compte de base de données à accès limité.
○ Activez la case à cocher
Enregistrer mon mot de passe
.
11. Si vous choisissez l'option
Utiliser l'authentification Windows
, passez à l'étape suivante.
12. Dans le panneau
Connexion à la base de données
, sélectionnez l'option
Sélectionner ou entrer un nom de base de données
.
13. Dans la liste, sélectionnez
Northwind
, puis cliquez sur
Tester la connexion
.
14. La connexion Northwind est vérifiée. Si la connexion échoue, vérifiez votre mot de passe.
15. Une fois le test de connexion réussi, cliquez sur
OK
pour fermer la fenêtre
Propriétés de connexion
.
16. Dans la fenêtre
Configurer la source de données
, le champ
Chaîne de connexion
affiche des informations complètes sur la connexion.
○ Si vous avez choisi l'authentification Windows, la propriété Integrated Security a la valeur True.
Data Source=ABCDE;Initial Catalog=Northwind;Integrated Security=True
○ Si vous avez choisi l'authentification SQL, les valeurs UserID et Password sont affectées.
Remarque
Pour des raisons de sécurité, il est important que vous utilisiez un compte de base de données à accès limité.
Dans votre propre code, remplacez l'exemple de nom de serveur, de nom de base de données et de mot de passe (indiqué ci-dessous) par vos propres informations de connexion.
Server=ABCDE;User
ID=limitedPermissionAccount;Password=1234;Database=Northwind;Persist Security
Info=True
17. Cliquez sur
Suivant
, puis de nouveau sur
Suivant
dans la fenêtre qui s'affiche pour enregistrer la connexion sous le nom par défaut "NorthwindConnectionString".
18. Cliquez sur l'option
Spécifiez les colonnes d'une table ou d'une vue
.
19. Dans la liste
Nom
, sélectionnez "Customers".
20. Dans le panneau
Colonnes
, activez les cases à cocher
Company Name
,
Contact Name
et
City
, puis cliquez sur
Suivant
.
Remarque
Les colonnes sélectionnées ici doivent correspondre aux colonnes sélectionnées dans votre rapport d'origine. Si vous modifiez ultérieurement les colonnes sélectionnées dans votre rapport avec le
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
507
concepteur SAP Crystal Reports incorporé, vous devez modifier les colonnes ici dans votre instruction
SQL. Dans un souci d'évolutivité, il est vivement conseillé de ne pas utiliser la sélection astérisque mais de choisir plutôt les colonnes spécifiques utilisées par votre rapport.
21. Dans la fenêtre
Tester la requête
, cliquez sur
Tester la requête
.
22. Si la requête réussit, cliquez sur
Terminer
.
23. Le contrôle
SqlDataSource
s'affiche en bas de la fenêtre, sous le contrôle
CrystalReportViewer
et le contrôle
CrystalReportSource.
1.5.3.3.6 Connexion du contrôle CrystalReportSource au contrôle SqlDataSource
Le Web Form contient à présent trois contrôles reliés entre eux :
● le contrôle CrystalReportViewer lié au contrôle CrystalReportSource pour accéder au rapport et l'afficher ;
● le contrôle CrystalReportSource qui encapsule le rapport ;
● le contrôle SqlDataSource qui encapsule les informations d'accès aux données.
N'oubliez pas que le contrôle CrystalReportSource était lié au contrôle CrystalReportViewer lors de l'ajout de ce dernier au Web Form. Cependant, aucune opération n'a permis de lier le contrôle CrystalReportSource au contrôle SqlDataSource. Par conséquent, même s'il existe des informations de configuration des données, au moment de l'exécution, le rapport serait incapable de trouver ces informations et demanderait d'indiquer une connexion.
Dans cette section, vous allez connecter le contrôle CrystalReportSource au contrôle SqlDataSource. Pour ce faire, vous allez utiliser la boîte de dialogue Editeur de collections de sources de données.
1.5.3.3.6.1 Pour connecter le contrôle CrystalReportSource au contrôle SqlDataSource
Procédure
1. Ouvrez la page Default.aspx (le Web Form).
2. Dans le menu
Affichage
, cliquez sur
Concepteur
.
3. Sélectionnez le contrôle
CrystalReportSource
.
4. Dans
Propriétés
, développez
Report
.
Remarque
Si l'Explorateur des propriétés n'est pas visible, dans le menu
Affichage
, cliquez sur
Fenêtre Propriétés
.
5. Dans la propriété
Report
, cliquez sur le bouton de sélection (
...
) tout à fait à droite de
DataSources
(Collection)
.
6. Dans la boîte de dialogue
Editeur de collections de sources de données
, procédez de la manière suivante :
508
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
a. Cliquez sur
Ajouter
.
b. Dans le panneau
Rapport
, sélectionnez
Rapport principal
.
c. Dans la liste déroulante
Choisir la source de données
, cliquez sur
SqlDataSource1
.
d. Sélectionnez
Spécifier le nom de la table
et saisissez "Customers" dans le champ.
7. Cliquez sur
OK
.
8. Au bas de la page Default.aspx, cliquez sur
Source
.
9. Localisez les balises CrystalReportSource.
10. Dans les balises du contrôle CrystalReportSource, localisez la balise Report.
11. Dans les balises Report (entre les balises d'ouverture et de fermeture), vérifiez que les informations de balisage du contrôle DataSources suivantes ont été générées.
<DataSources>
<CR:DataSourceRef DataSourceID="SqlDataSource1" TableName="Customers" />
</DataSources>
12. Dans le menu
Générer
, cliquez sur
Générer la solution
.
13. Si vous rencontrez des erreurs lors de la génération, corrigez-les.
14. Dans le menu
Déboguer
, cliquez sur
Démarrer
.
Le rapport s'affiche correctement avec une connexion sécurisée à la base de données SQL Server.
1.5.3.4 Tutoriel : Définition d'un paramètre de programmation allégée dans un site Web
Dans ce tutoriel de création de site Web par programmation allégée, vous allez apprendre à afficher un rapport contenant des paramètres et à transmettre les valeurs de paramètre à ce rapport à l'aide du nouveau modèle
Paramètres de données.
Introduction
Dans ce tutoriel, vous allez utiliser le nouveau modèle de développement d'applications avec balises pour connecter les composants clés :
● Connecter un contrôle CrystalReportViewer à un contrôle CrystalReportSource.
● Connecter le contrôle CrystalReportSource à un rapport contenant un paramètre.
● Connecter la balise Parameters du rapport à l'une des sources de paramètre du nouveau modèle Paramètres de données inclus dans ASP.NET version 2.0.
Toutes ces opérations sont réalisées sans écrire de code.
Remarque
Un modèle de codage de ce tutoriel est également disponible. Voir
Tutoriel : Lecture et définition des paramètres discrets [page 377] .
Pour commencer, vous allez ajouter un contrôle CrystalReportViewer au Web Form. Dans le panneau des tâches guidées, vous allez créer un contrôle CrystalReportSource, puis un rapport Crystal à l'aide du concepteur
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
509
SAP Crystal Reports incorporé. Ce rapport inclut un paramètre qui est appliqué aux critères de recherche du rapport. Le rapport est référencé dans le contrôle CrystalReportSource.
Vous allez ensuite utiliser la case à cocher Activer l'invite de saisie de paramètre dans le panneau des tâches guidées. Lorsque cette option est activée, l'exception renvoyée lorsque la connexion à la base de données échoue est remplacée par une invite demandant à l'utilisateur de fournir un paramètre.
Vous devez toutefois personnaliser votre sélection de paramètre. Pour ce faire, vous ajoutez un contrôle
DropDownList contenant une liste de valeurs de paramètre pouvant être sélectionnées pour le rapport.
Enfin, vous ouvrez l'Editeur de collections de paramètres du rapport et configurez une connexion entre le paramètre de rapport et le contrôle DropDownList que vous avez ajouté.
Remarque
Le paramètre ControlParameter ne représente qu'une seule source de paramètre possible dans le modèle
Paramètres de données. Les autres sources de paramètres sont notamment les paramètres
QueryStringParameter, SessionParameter, FormParameter ou CookieParameter. Pour certains de ces types de source de paramètre, vous modifiez la balise Parameters directement en mode HTML (mode Source).
Exemple de code
Ce tutoriel fournit des exemples de code Visual Basic et C# qui illustrent la version terminée du projet. Suivez les instructions de ce tutoriel pour créer un projet ou ouvrez le projet d'exemple de code pour travailler à partir d'une version terminée.
Les exemples de code sont stockés dans des dossiers classés par langue et par type de projet. Les noms des dossiers de chaque version d'exemple de code sont les suivants :
● Site Web C# : CS_Web_ReducedCode_Parameters
● Site Web Visual Basic : VB_Web_ReducedCode_Parameters
Base de données Xtreme
Ce tutoriel utilise un exemple de base de données appelée Xtreme. Le fichier de base de données xtreme.mdb est fourni dans le package d'exemples de code du SDK de SAP Crystal Reports .NET. Pour utiliser la base de données
Xtreme, vous devez créer manuellement une connexion ODBC à cette base de données.
Informations associées
Répertoire d'exemples de rapports [page 15]
510
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.5.3.4.1 Création d'un site Web avec un contrôle
CrystalReportViewer
Prérequis
Avant de créer un site Web, vérifiez que SAP Crystal Reports, version développeur pour Microsoft Visual Studio a
été installé sur votre système.
Procédure
1. Démarrez Visual Studio.
2. Dans le menu
Fichier
, sélectionnez
Nouveau
, puis cliquez sur
Site Web
.
3. Dans la boîte de dialogue
Nouveau site Web
, cliquez sur
Site Web ASP.NET
.
4. Dans la liste déroulante
Emplacement
, sélectionnez
Système de fichiers
.
5. Dans la liste déroulante
Langage
, sélectionnez le langage de programmation que vous souhaitez utiliser.
6. Dans le champ de texte
Emplacement
, saisissez le chemin d'accès du répertoire C:\WebSites\, suivi du nom de votre projet.
7. Cliquez sur
OK
.
Votre projet s'affiche dans l'Explorateur de solutions et contient une page Default.aspx.
8. Ouvrez la page Default.aspx (le Web Form).
9. Dans le menu
Affichage
, cliquez sur
Concepteur
.
Conseil
Vous pouvez également basculer en mode Design en cliquant sur le bouton Design en bas du formulaire.
10. Dans la
Boîte à outils
, ouvrez le nœud
Reporting
afin de localiser le contrôle
CrystalReportViewer
.
11. Faites glisser le contrôle
CrystalReportViewer
sur le Web Form.
Le panneau des tâches guidées "Tâches CrystalReportViewer" s'affiche.
Informations associées
Eléments à installer [page 10]
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
511
1.5.3.4.2 Configuration du contrôle CrystalReportSource dans les tâches guidées
Contexte
Une nouvelle fonctionnalité d'interface utilisateur graphique destinée aux contrôles .NET, appelée tâches guidées, a été ajoutée à Visual Studio 2005. Pour le contrôle CrystalReportViewer dans des sites Web, le panneau des tâches guidées s'intitule "Tâches CrystalReportViewer".
Ce panneau "Tâches CrystalReportViewer" permet de configurer plusieurs fonctionnalités du contrôle
CrystalReportViewer, sans avoir à écrire de code. Les sélections que vous effectuez dans les tâches guidées sont appliquées sous forme de paramètres avec balises dans la page ASPX.
Dans cette section, vous allez configurer la fonction principale disponible dans le panneau "Tâches
CrystalReportViewer" : le contrôle CrystalReportSource. Plus loin dans ces tutoriels de programmation allégée, vous examinerez d'autres fonctionnalités des tâches guidées.
Pour commencer, vous allez apprendre à fermer, puis rouvrir le panneau des tâches guidées.
Procédure
1. Si le panneau
Tâches guidées
est ouvert, cliquez sur le Web Form pour
le
fermer .
2. Dans l'angle supérieur droit du contrôle CrystalReportViewer, cliquez sur le petit bouton triangulaire.
Le panneau intitulé "Tâches CrystalReportViewer" s'affiche de nouveau. Dans la liste Sélectionner la source du rapport, la valeur <Aucune> s'affiche.
3. Cliquez sur la liste
Sélectionner la source du rapport
, puis sélectionnez
<Source du nouveau rapport…>
.
La boîte de dialogue Créer la source du rapport s'ouvre.
4. Dans la zone de texte
Indiquer le nom du contrôle CrystalReportSource
, laissez l'entrée par défaut
CrystalReportSource1
.
5. Cliquez sur la liste déroulante
Spécifier un rapport Crystal pour le contrôle CrystalReportSource
, puis sélectionnez
<Nouveau rapport>
.
L'autre sélection possible est
<Parcourir…>
. Cette option permet de sélectionner un rapport Crystal existant dans le répertoire de fichiers. Cependant, vous allez ensuite créer un rapport nécessaire pour ce tutoriel.
6. Dans la boîte de dialogue
Créer un rapport Crystal
, saisissez "XtremeCustomers.rpt" et cliquez sur
OK
, puis cliquez de nouveau sur
OK
dans la boîte de dialogue Créer la source du rapport.
1.5.3.4.3 Création du rapport avec des paramètres
Commencez par créer un rapport à partir des informations de la base de données Xtreme.
512
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.5.3.4.3.1 Pour créer le rapport avec des paramètres
Procédure
1. Dans le panneau
Créer un document de rapport Crystal
de la boîte de dialogue
Galerie de rapports Crystal
, sélectionnez
en utilisant l' Assistant de création de rapports
.
2. Dans le panneau
Choisir un expert
, sélectionnez
Standard
, puis cliquez sur
OK
.
La fenêtre Assistant de création de rapports standard s'affiche.
3. Dans le panneau
Sources de données disponibles
de la fenêtre Assistant de création de rapports standard, développez le dossier
Créer une nouvelle connexion
.
4. Dans le sous-dossier qui s'ouvre, développez le dossier
ODBC (RDO)
.
5. Dans la boîte de dialogue
ODBC (RDO)
sélectionnez l'entrée DSN ODBC correspondant à la base de données
Xtreme, puis cliquez sur
Suivant
.
6. Laissez les champs
ID utilisateur
et
Mot de passe
vides, puis cliquez sur
Terminer
.
Le dossier ODBC (RDO) se développe pour afficher la base de données Xtreme.
7. Développez le nœud
Tables
et sélectionnez la table
Clients
.
8. Cliquez deux fois sur la table
Clients
pour l'ajouter au panneau
Tables sélectionnées
, puis cliquez sur
Suivant
.
9. Développez la table
Clients
, puis utilisez la combinaison de touches CTRL-clic pour sélectionner les champs
Nom du client
,
Titre
,
Adresse 1
,
Nom du contact
et
Ville
.
10. Cliquez sur le bouton
>
pour déplacer ces champs dans le panneau
Champs à afficher
, puis cliquez sur
Suivant
.
11. Dans le panneau
Champs disponibles
, sous
Champs du rapport
, sélectionnez
Clients.Ville
, cliquez sur le bouton
>
pour déplacer le champ dans le panneau
Regrouper par
, puis cliquez sur
Terminer
.
Le rapport CustomersByCity est créé et chargé dans la fenêtre principale de Visual Studio.
Résultats
Vous êtes maintenant prêt à ajouter un paramètre appelé Ville et à le remplir avec des valeurs par défaut.
1.5.3.4.3.2 Pour ajouter un paramètre Ville
Prérequis
L'Explorateur de champs doit être visible, car il permet d'accéder à plusieurs fonctions du rapport, notamment aux paramètres.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
513
Procédure
1. Si l'
Explorateur de champs
n'est pas visible, cliquez sur
Activer/Désactiver l'affichage du champ
dans la barre d'outils Crystal Reports.
Remarque
Vous pouvez également afficher l'
Explorateur de champs
en ouvrant le menu
Crystal Reports
, puis en cliquant sur
Explorateur de champs
.
2. Dans l'
Explorateur de champs
, cliquez avec le bouton droit de la souris sur
Champs de paramètre
et sélectionnez
Nouveau
.
3. Dans la boîte de dialogue
Créer un champ de paramètre
: a. Attribuez à
Nom
la valeur
Ville
.
b. Attribuez à
Type
la valeur
Chaîne
. Attribuez à
Texte de l'invite
la valeur
Sélectionnez une ou plusieurs villes
.
c. Attribuez à
Champ de valeur
la valeur
Ville
.
d. Cliquez sur
Actions
, puis sélectionnez
Ajouter toutes les valeurs de la base de données
. La liste complète des villes apparaît dans le volet du milieu.
e. Dans le volet
Options de valeur
, attribuez à
Texte de l'invite
la valeur
Sélectionnez une ou plusieurs villes
.
f.
Dans ce même volet, attribuez à
Autoriser plusieurs valeurs
la valeur
True
.
g. Attribuez à
Autoriser les valeurs discrètes
la valeur
True
.
4. Cliquez sur
OK
pour fermer la boîte de dialogue
Créer un champ de paramètre
.
1.5.3.4.3.3 Pour connecter le paramètre Ville à la colonne
Ville de la base de données
Contexte
Vous devez maintenant utiliser l'Expert Sélection pour définir une formule permettant de connecter la colonne
Ville de la base de données au champ de paramètre Ville que vous venez de créer.
Procédure
1. Dans la barre d'outils Crystal Reports, cliquez sur
Expert Sélection
.
2. Dans la boîte de dialogue
Choisir un champ
, sous
Champs du rapport
, sélectionnez
Clients.Ville
, puis cliquez sur
OK
.
3. Dans la boîte de dialogue
Expert Sélection
, dans l'onglet
Clients.Ville
, choisissez
est égal à
dans la liste.
4. Dans la nouvelle liste qui s'affiche à droite, sélectionnez le premier élément de la liste,
{?Ville}
, puis cliquez sur
OK
.
514
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Remarque
Cette sélection,
{?Ville}
, correspond au paramètre Ville que vous avez créé précédemment.
5. Dans le menu
Fichier
, sélectionnez
Enregistrer tout
.
6. En bas de la fenêtre, cliquez sur
Aperçu Rapport principal
.
7. Dans la boîte de dialogue
Saisir des valeurs de paramètre
, sélectionnez au moins une ville dans la liste
Valeurs discrètes
, cliquez sur
Ajouter
, puis sur
OK
.
Le rapport s'affiche en mode Aperçu, avec la valeur de paramètre de ville que vous avez sélectionnée.
8. En bas de la fenêtre, cliquez sur
Rapport principal
pour quitter le mode Aperçu.
9. Ouvrez le Web Form.
10. Dans le menu
Affichage
, cliquez sur
Concepteur
.
Le rapport s'affiche alors sous forme graphique dans le Web Form, en mode Aperçu au moment de la conception.
11. Dans le menu
Fichier
, cliquez sur
Enregistrer tout
.
1.5.3.4.3.4 Pour vérifier le site Web créé par programmation allégée
Contexte
Votre rapport est créé et constitue à présent le rapport désigné pour le contrôle CrystalReportSource. Vous êtes maintenant prêt à générer et exécuter votre projet.
Procédure
1. Dans le menu
Générer
, sélectionnez
Générer la solution
.
2. Si vous rencontrez des erreurs lors de la génération, corrigez-les.
3. Dans le menu
Déboguer
, cliquez sur
Démarrer
.
Une page d'invite de saisie de paramètre s'affiche et vous demande de sélectionner une invite dans un contrôle DropDownList. Ce résultat est logique pour deux raisons :
○ Vous n'avez pas encore configuré la balise Parameters dans le rapport.
○ Dans le panneau des tâches guidées du contrôle
CrystalReportViewer
, la case à cocher
Activer l'invite de saisie de paramètre
est activée par défaut.
4. Sélectionnez un paramètre, puis cliquez sur
OK
.
5. Le rapport CustomersByCity s'affiche dans le navigateur Web et indique la ville que vous avez sélectionnée.
6. Revenez dans Visual Studio, puis cliquez sur
Arrêter
pour quitter le mode débogage.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
515
1.5.3.4.4 Configuration de l'invite de saisie de paramètre dans le panneau des tâches guidées
Contexte
Dans cette procédure, vous allez examiner l'effet de la désactivation de l'option "Activer l'invite de saisie de paramètre" dans le panneau des tâches guidées.
Procédure
1. Ouvrez la page Default.aspx (le Web Form).
2. Dans le menu
Affichage
, cliquez sur
Concepteur
.
3. Dans l'angle supérieur droit du contrôle CrystalReportViewer, cliquez sur le petit bouton triangulaire.
Le panneau des tâches guidées "Tâches CrystalReportViewer" s'affiche.
4. Désactivez la case à cocher
Activer l'invite de saisie de paramètre
.
5. Cliquez sur le Web Form pour fermer le panneau des tâches guidées.
6. Dans le menu
Générer
, sélectionnez
Générer la solution
.
7. Si vous rencontrez des erreurs lors de la génération, corrigez-les.
8. Dans le menu
Déboguer
, cliquez sur
Démarrer
.
L'invite de saisie de paramètre de rapport n'étant plus active, une exception "Valeurs de paramètres manquantes" est renvoyée dans la fenêtre de l'application Web.
9. Revenez dans Visual Studio, puis cliquez sur
Arrêter
pour quitter le mode débogage.
10. Revenez au panneau des tâches guidées du contrôle CrystalReportViewer.
11. Activez la case à cocher
Activer l'invite de saisie de paramètre
.
12. Fermez le panneau des tâches guidées.
13. Dans le menu
Fichier
, cliquez sur
Enregistrer tout
.
1.5.3.4.5 Préparation d'un contrôle avec les valeurs de paramètre
Contexte
Dans cette section, vous allez préparer un contrôle DropDownList avec des valeurs de ville. Dans la section suivante, les valeurs de ville sont transmises aux paramètres du rapport.
516
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Procédure
1. Ouvrez la page Default.aspx (le Web Form).
2. Dans le menu
Affichage
, cliquez sur
Concepteur
.
3. Au-dessus du contrôle
CrystalReportViewer
, saisissez
Sélectionnez une ville :
.
4. Dans la
boîte à outils
, faites glisser un contrôle
DropDownList
à droite du texte.
Le panneau des tâches guidées intitulé "Tâches DropDownList" s'affiche.
5. Dans le panneau des tâches guidées, cliquez sur
Modifier les éléments
.
6. Dans la boîte de dialogue
Editeur de collections ListItem
, cliquez sur
Ajouter
.
Dans le panneau Membres, une entrée ListItem est créée.
7. Dans le panneau
Propriétés ListItem
, cliquez dans le champ
Text
, puis saisissez
Paris
.
8. Cliquez de nouveau sur
Ajouter
.
Dans le panneau Membres, une seconde entrée ListItem est créée.
9. Dans le panneau
Propriétés ListItem
, cliquez dans le champ
Text
, puis saisissez
Tokyo
.
10. Cliquez sur
OK
.
11. Cliquez sur le Web Form pour fermer le panneau des tâches guidées du contrôle
DropDownList
.
12. Cliquez sur le contrôle
DropDownList
pour le sélectionner.
13. Dans la fenêtre
Propriétés
, attribuez au champ
ID
la valeur
cityList
.
14. Dans la
Boîte à outils
, faites glisser un contrôle
Button
à droite du contrôle
DropDownList
.
15. Dans la fenêtre
Propriétés
: a. Attribuez au champ
Text
la valeur
Réafficher le rapport
.
b. Attribuez au champ
ID
la valeur
redisplay
.
16. Dans le menu
Fichier
, cliquez sur
Enregistrer tout
.
Résultats
Vous disposez à présent d'un contrôle DropDownList avec deux valeurs de paramètre de ville et un bouton permettant d'envoyer des valeurs à partir de ce contrôle. Cependant, le rapport ignore encore ce contrôle et les valeurs qu'il contient. Dans la section suivante, vous allez connecter le contrôle DropDownList à la balise
<Parameters> du rapport.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
517
1.5.3.4.6 Configuration des paramètres pour le contrôle
CrystalReportSource
Contexte
Le contrôle CrystalReportSource que vous avez créé dans ce tutoriel implémente le nouveau modèle de paramètres inclus dans ASP.NET 2.0. Tout type de paramètre faisant partie du modèle Paramètres de données peut être transmis en tant que paramètre au contrôle CrystalReportSource, y compris les paramètres suivants :
● ControlParameter
● QueryStringParameter
● SessionParameter
● FormParameter
● CookieParameter
Dans ce tutoriel, un paramètre ControlParameter est utilisé. Le contrôle DropDownList que vous avez créé et rempli avec une liste de villes dans la section précédente est configuré comme la source du paramètre de rapport contenu dans le contrôle CrystalReportSource.
Procédure
1. Ouvrez la page Default.aspx (le Web Form).
2. Dans le menu
Affichage
, cliquez sur
Concepteur
.
3. Sélectionnez le contrôle
CrystalReportSource
.
4. Dans
Propriétés
, développez
Report
.
5. Dans la propriété
Report
, cliquez sur le bouton de sélection (
...
) tout à fait à droite de
Parameters (Collection)
.
6. Dans la boîte de dialogue
Editeur de collections de paramètres
, procédez de la manière suivante : a. Cliquez sur
Ajouter
.
b. Dans le panneau
Rapport
, sélectionnez
Rapport principal
.
c. Dans la liste déroulante
Nom du paramètre
, cliquez sur
Ville
.
d. Sélectionnez
Spécifier le ControlID
, puis dans la liste déroulante, cliquez sur
cityList
.
7. Cliquez sur
OK
.
8. Au bas de la page Default.aspx, cliquez sur
Source
.
9. Localisez les informations de balisage du contrôle CrystalReportSource.
10. Dans les balises du contrôle CrystalReportSource, localisez la balise Report.
11. Dans les balises Report (entre les balises d'ouverture et de fermeture), vérifiez les informations de balisage du contrôle Parameters suivantes.
<Parameters>
<CR:controlparameter name="City" propertyname="SelectedValue" controlid="cityList"></CR:controlparameter>
</Parameters>
12. Dans le menu
Générer
, sélectionnez
Générer la solution
.
518
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
13. Si vous rencontrez des erreurs lors de la génération, corrigez-les.
14. Dans le menu
Déboguer
, cliquez sur
Démarrer
.
Le rapport s'affiche à présent correctement avec la valeur de paramètre issue de la sélection par défaut (la première) de votre liste.
15. Remplacez la valeur de paramètre par une autre valeur, puis cliquez sur le bouton
Réafficher le rapport
.
Remarque
Si vous souhaitez remplir le contrôle DropDownList avec les valeurs par défaut du paramètre Ville du rapport CustomersByCity, voir le tutoriel
Tutoriel : Lecture et définition des paramètres discrets [page
Le rapport affiche la valeur de ville que vous avez sélectionnée dans le contrôle DropDownList.
1.5.3.5 Tutoriel : Exposition par programmation allégée de données de rapport à d'autres contrôles dans un site
Web
Dans ce tutoriel de création de site Web par programmation allégée, vous allez apprendre à exposer des données de rapport issues du contrôle CrystalReportViewer à d'autres contrôles du site Web.
Introduction
Dans ce tutoriel, vous allez apprendre à exposer des données de rapport Crystal provenant du contrôle
CrystalReportViewer à un contrôle Label dans le site Web.
Pour commencer, vous allez créer un site Web ASP.NET dans Visual Studio, puis vous ajouterez un contrôle
CrystalReportViewer au Web Form. Vous ajouterez ensuite une étiquette (contrôle Label) au Web Form pour afficher les données du rapport. Dans le panneau des tâches guidées, vous créerez un contrôle
CrystalReportSource, puis lui ajouterez un exemple de rapport. Vous ajouterez également un événement d'exploration au contrôle CrystalReportViewer. Enfin, vous exposerez les données du rapport de l'événement d'exploration au contrôle Label.
Exemple de code
Ce tutoriel fournit des exemples de code Visual Basic et C# qui illustrent la version terminée du projet. Suivez les instructions de ce tutoriel pour créer un projet ou ouvrez le projet d'exemple de code pour travailler à partir d'une version terminée.
Les exemples de code sont stockés dans des dossiers classés par langue et par type de projet. Les noms des dossiers de chaque version d'exemple de code sont les suivants :
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
519
● Site Web C# : CS_Web_ReducedCode_ReportData
● Site Web Visual Basic : VB_Web_ReducedCode_ReportData
Base de données Xtreme
Ce tutoriel utilise un exemple de base de données appelée Xtreme. Le fichier de base de données xtreme.mdb est fourni dans le package d'exemples de code du SDK de SAP Crystal Reports .NET. Pour utiliser la base de données
Xtreme, vous devez créer manuellement une connexion ODBC à cette base de données.
Informations associées
Répertoire d'exemples de rapports [page 15]
1.5.3.5.1 Création d'un site Web avec un contrôle
CrystalReportViewer
Contexte
Avant de créer un site Web, vérifiez que SAP Crystal Reports, version développeur pour Microsoft Visual Studio a
été installé sur votre système.
Procédure
1. Démarrez Visual Studio.
2. Dans le menu
Fichier
, sélectionnez
Nouveau
, puis cliquez sur
Site Web
.
3. Dans la boîte de dialogue
Nouveau site Web
, cliquez sur
Site Web ASP.NET
.
4. Dans la liste déroulante
Emplacement
, sélectionnez
Système de fichiers
.
5. Dans la liste déroulante
Langage
, sélectionnez le langage de programmation que vous souhaitez utiliser.
6. Dans le champ de texte
Emplacement
, saisissez le chemin d'accès de répertoire "C:\WebSites\", suivi du nom de votre projet.
7. Cliquez sur
OK
.
Votre projet s'affiche dans l'Explorateur de solutions et contient une page Default.aspx.
8. Ouvrez la page Default.aspx (le Web Form).
9. Dans le menu
Affichage
, cliquez sur
Concepteur
.
Remarque
Vous pouvez également basculer en mode Design en cliquant sur le bouton Design en bas du formulaire.
520
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
10. Cliquez sur le Web Form et appuyez trois fois sur la touche
Entrée
du clavier pour créer de l'espace pour le contrôle
Label
et le contrôle
CrystalReportViewer
.
11. Dans la
Boîte à outils
, ouvrez le nœud
Reporting
afin de localiser le contrôle
CrystalReportViewer
.
12. Faites glisser le contrôle
CrystalReportViewer
sur le Web Form, jusqu'à l'espace situé tout en bas.
Le panneau des tâches guidées "Tâches CrystalReportViewer" s'affiche.
13. Appuyez sur la touche
Echap
du clavier pour fermer le panneau des tâches guidées.
14. Cliquez sur le contrôle
CrystalReportViewer
pour le sélectionner.
15. Dans la fenêtre
Propriétés
, définissez la propriété
ID
de la manière suivante :
○ Pour les sites Web Visual Basic, attribuez à la propriété
ID
la valeur "myCrystalReportViewer".
○ Pour les sites Web C#, attribuez à la propriété
ID
la valeur "crystalReportViewer".
16. Dans le menu
Fichier
, cliquez sur
Enregistrer tout
.
Informations associées
Eléments à installer [page 10]
1.5.3.5.2 Ajout d'un contrôle Label à un site Web
Contexte
Cette section explique comment ajouter une étiquette au Web Form. L'étiquette ajoutée dans cette section indique les données de rapport exposées plus loin dans ce tutoriel.
Procédure
1. Dans la
Boîte à outils
, ouvrez le nœud
Standard
afin de localiser le contrôle
Label
.
2. Faites glisser le contrôle
Label
sur le Web Form, jusqu'à l'espace situé tout en haut de ce dernier.
3. Cliquez sur le contrôle
Label
pour le sélectionner.
4. Dans la fenêtre
Propriétés
, attribuez à la propriété
ID
la valeur "drillLabel".
5. Dans le menu
Fichier
, cliquez sur
Enregistrer tout
.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
521
1.5.3.5.3 Configuration du contrôle CrystalReportSource à l'aide des tâches guidées
Contexte
Une nouvelle fonctionnalité d'interface utilisateur graphique destinée aux contrôles .NET, appelée tâches guidées, a été ajoutée à Visual Studio 2005. Pour le contrôle CrystalReportViewer dans des sites Web, le panneau des tâches guidées s'intitule
Tâches CrystalReportViewer
.
Ce panneau
Tâches CrystalReportViewer
permet de configurer plusieurs fonctionnalités du contrôle
CrystalReportViewer, sans avoir à écrire de code. Les sélections que vous effectuez dans les tâches guidées sont appliquées sous forme de paramètres avec balises dans la page ASPX.
Dans cette section, vous allez configurer la fonctionnalité principale disponible dans le panneau des tâches guidées
Tâches CrystalReportViewer
: le contrôle CrystalReportSource. Plus loin dans ces tutoriels de programmation allégée, vous examinerez d'autres fonctionnalités des tâches guidées.
Procédure
1. Si le panneau des tâches guidées est ouvert, cliquez sur le Web Form pour le fermer.
2. Dans l'angle supérieur droit du contrôle
CrystalReportViewer
, cliquez sur le petit bouton triangulaire.
Le panneau intitulé
Tâches CrystalReportViewer
s'affiche de nouveau. Dans la liste
Sélectionner la source du rapport
, la valeur
<Aucune>
s'affiche.
3. Cliquez sur la liste
Sélectionner la source du rapport
, puis sélectionnez
<Source du nouveau rapport…>
.
La boîte de dialogue
Créer la source du rapport
s'ouvre.
4. Dans la zone de texte
Indiquer le nom du contrôle
, laissez l'entrée par défaut
CrystalReportSource1
.
5. Cliquez sur la liste déroulante
Spécifier un rapport pour le contrôle ReportSource
, puis sélectionnez
<Parcourir…>
.
La boîte de dialogue
Sélectionner un rapport Crystal
s'ouvre.
6. Recherchez le fichier
World Sales Report.rpt
dans le dossier General Business du répertoire des exemples de rapports SAP Crystal Reports.
7. Sélectionnez le fichier
World Sales Report.rpt
, puis cliquez sur
Ouvrir
.
A ce stade, ce rapport devient le rapport désigné pour le contrôle
CrystalReportViewer
.
8. Dans le menu
Fichier
, cliquez sur
Enregistrer tout
.
1.5.3.5.4 Ajout d'un événement d'exploration au contrôle
CrystalReportViewer
Contexte
Cette section explique comment ajouter un événement d'exploration au contrôle CrystalReportViewer de sorte que, lorsqu'un utilisateur explore le rapport, l'étiquette affiche le nom de la partie explorée du rapport.
522
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Procédure
1. Dans le menu
Affichage
, cliquez sur
Code
pour afficher la classe code-behind de ce Web Form.
2. Dans le menu
Affichage
, cliquez sur
Concepteur
pour revenir à la vue du concepteur du Web Form.
3. Cliquez sur le contrôle
CrystalReportViewer
pour le sélectionner.
4. Dans la fenêtre
Propriétés
, cliquez sur le bouton
Evénements
pour afficher la liste des événements associés au contrôle
CrystalReportViewer
.
5. Dans la liste des événements disponibles, sous le nœud
Action
, recherchez l'événement
Drill
.
6. Pour générer le code du gestionnaire d'événements d'exploration, cliquez deux fois sur l'événement
Drill
dans la fenêtre
Propriétés
.
Le code suivant est généré pour gérer l'événement d'exploration :
Protected Sub myCrystalReportViewer_Drill(ByVal source As Object,
ByVal e As CrystalDecisions.Web.DrillEventArgs) Handles myCrystalReportViewer.Drill
End Sub
{
} protected void crystalReportViewer_Drill(object source,
CrystalDecisions.Web.DrillEventArgs e)
7. Dans le menu
Fichier
, cliquez sur
Enregistrer tout
.
1.5.3.5.5 Exposition des données de rapport d'un événement d'exploration au contrôle Label
Cette section explique comment ajouter du texte au contrôle Label afin d'indiquer quelle partie du rapport l'utilisateur a explorée.
1.5.3.5.5.1 Pour exposer des données de rapport d'événement d'exploration au contrôle Label
Procédure
1. Dans le menu
Affichage
, cliquez sur
Code
pour afficher la classe code-behind de ce Web Form.
2. Recherchez le code suivant qui gère l'événement d'exploration :
Protected Sub myCrystalReportViewer_Drill(ByVal source As Object,
ByVal e As CrystalDecisions.Web.DrillEventArgs) Handles myCrystalReportViewer.Drill
End Sub protected void crystalReportViewer_Drill(object source,
CrystalDecisions.Web.DrillEventArgs e)
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
523
{
}
3. Pour afficher le nom de la partie explorée du rapport dans le contrôle
Label
, ajoutez la ligne de code suivante dans la méthode du gestionnaire d'événements : drillLabel.Text = e.NewGroupName
drillLabel.Text = e.NewGroupName;
4. Dans le menu
Fichier
, cliquez sur
Enregistrer tout
.
1.5.3.5.5.2 Pour générer et exécuter le projet
Contexte
Vous êtes maintenant prêt à générer et exécuter le projet.
Procédure
1. Dans le menu
Générer
, cliquez sur
Générer la solution
.
2. Si vous rencontrez des erreurs lors de la génération, corrigez-les.
3. Dans le menu
Déboguer
, cliquez sur
Démarrer
.
Si aucune erreur de génération ne s'affiche, le projet est chargé dans votre navigateur Web et le Web Form s'affiche avec le rapport World Sales Report généré.
4. Pour vérifier si l'étiquette affiche correctement les données de rapport de l'événement d'exploration, sous l'en-tête des
5 meilleures ventes nationales
, cliquez sur
Etats-Unis
pour explorer cette partie du rapport. La page est rechargée et le rapport des ventes des Etats-Unis affiche "Etats-Unis".
5. Dans Visual Studio, cliquez sur
Arrêter
pour quitter le mode débogage.
524
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.5.3.6 Tutoriel : Exposition par programmation allégée de données de rapport à d'autres contrôles dans une application Windows
Dans ce tutoriel de programmation allégée, vous allez apprendre à exposer des données de rapport issues du contrôle CrystalReportViewer à d'autres contrôles dans un projet Windows.
Introduction
Dans ce tutoriel, vous allez apprendre à exposer des données de rapport Crystal provenant du contrôle
CrystalReportViewer à un contrôle Label dans le projet Windows.
Pour commencer, vous allez apprendre à créer un projet Windows dans SAP Crystal Reports, version développeur pour Microsoft Visual Studio. Vous allez ensuite ajouter un contrôle CrystalReportViewer au Windows Form.
Puis vous ajouterez une étiquette au Windows Form pour afficher les données du rapport. Dans le panneau des tâches guidées, vous créerez un contrôle CrystalReportSource, puis y ajouterez un exemple de rapport. Vous ajouterez également un événement d'exploration au contrôle CrystalReportViewer. Enfin, vous exposerez les données du rapport de l'événement d'exploration au contrôle Label.
Exemple de code
Ce tutoriel fournit des exemples de code Visual Basic et C# qui illustrent la version terminée du projet. Suivez les instructions de ce tutoriel pour créer un projet ou ouvrez le projet d'exemple de code pour travailler à partir d'une version terminée.
Les exemples de code sont stockés dans des dossiers classés par langue et par type de projet. Les noms des dossiers de chaque version d'exemple de code sont les suivants :
● Application Windows C# : CS_Win_ReducedCode_ReportData
● Application Windows Visual Basic : VB_Win_ReducedCode_ReportData
Base de données Xtreme
Ce tutoriel utilise un exemple de base de données appelée Xtreme. Le fichier de base de données xtreme.mdb est fourni dans le package d'exemples de code du SDK de SAP Crystal Reports .NET. Pour utiliser la base de données
Xtreme, vous devez créer manuellement une connexion ODBC à cette base de données.
Informations associées
Répertoire d'exemples de rapports [page 15]
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
525
1.5.3.6.1 Création d'un projet Windows avec un contrôle
CrystalReportViewer
Prérequis
Avant de créer un projet Windows, vérifiez que SAP Crystal Reports, version développeur pour Microsoft
Visual Studio a été installé sur votre système.
Procédure
1. Lancez Visual Studio.
2. Dans le menu
Fichier
, sélectionnez
Nouveau
, puis cliquez sur
Projet
.
3. Dans la boîte de dialogue
Nouveau projet
, dans la liste
Types de projets
, sélectionnez un dossier de langage pour C# ou Visual Basic.
4. Dans la liste
Modèles
, cliquez sur
Application Windows
.
5. Dans le champ
Nom
, remplacez le nom de projet par défaut par le nom de votre projet.
6. Cliquez sur
OK
.
Votre projet s'affiche dans l'Explorateur de solutions et contient une classe Form1.
7. Ouvrez la classe Form1.
8. Dans la
Boîte à outils
, ouvrez le nœud
Reporting
afin de localiser le contrôle
CrystalReportViewer
.
9. Faites glisser le contrôle
CrystalReportViewer
sur le Windows Form.
10. Dans la fenêtre
Propriétés
, définissez la propriété
Name
de la manière suivante :
○ Pour les projets Visual Basic, attribuez la valeur
myCrystalReportViewer
.
○ Pour les projets C#, attribuez la valeur
crystalReportViewer
.
11. Dans le menu
Fichier
, cliquez sur
Enregistrer tout
.
Informations associées
Eléments à installer [page 10]
1.5.3.6.2 Ajout d'une étiquette à l'application Windows
Contexte
Cette section explique comment ajouter une étiquette au Windows Form. L'étiquette ajoutée dans cette section indique les données de rapport exposées plus loin dans ce tutoriel.
526
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Procédure
1. Si le panneau des tâches guidées est ouvert, appuyez sur la touche
Echap
du clavier pour le fermer.
2. Dans la
boîte à outils
, ouvrez le nœud
Contrôles communs
afin de localiser le contrôle
Label
.
3. Faites glisser le contrôle
Label
sur le Windows Form et placez-le directement au-dessus du contrôle
CrystalReportViewer
.
4. Cliquez sur le contrôle
Label
pour le sélectionner.
5. Dans la fenêtre
Propriétés
, attribuez à la propriété
Name
la valeur "drillLabel".
6. Dans le menu
Fichier
, cliquez sur
Enregistrer tout
.
1.5.3.6.3 Configuration du contrôle CrystalReportSource à l'aide des tâches guidées
Contexte
Une fonctionnalité d'interface utilisateur graphique destinée à la configuration des contrôles .NET, appelée panneau des tâches guidées, a été ajoutée à Visual Studio 2005. Pour le contrôle CrystalReportViewer dans des sites Web, le panneau des tâches guidées s'intitule
Tâches CrystalReportViewer
.
Le panneau "Tâches CrystalReportViewer" vous permet de configurer plusieurs fonctionnalités du contrôle
CrystalReportViewer, sans avoir à écrire de code. Toutes les sélections que vous effectuez dans le panneau des tâches guidées sont générées sous forme de code Windows Form Designer.
Dans cette section, vous allez configurer la fonctionnalité principale disponible dans le panneau des tâches guidées
Tâches CrystalReportViewer
: le contrôle CrystalReportSource. Plus loin dans ces tutoriels de programmation allégée, vous examinerez d'autres fonctionnalités des tâches guidées.
Procédure
1. Si le panneau des tâches guidées est ouvert, cliquez sur le Web Form pour le fermer.
2. Dans l'angle supérieur droit du contrôle
CrystalReportViewer
, cliquez sur le petit bouton triangulaire.
Le panneau des tâches guidées intitulé
Tâches CrystalReportViewer
s'affiche de nouveau. Dans la liste
Sélectionner la source du rapport
, la valeur
<Aucune>
s'affiche.
3. Cliquez sur la liste
Sélectionner la source du rapport
, puis sélectionnez
<Source du nouveau rapport…>
.
La boîte de dialogue
Créer la source du rapport
s'ouvre.
4. Dans la zone de texte
Indiquer le nom du contrôle
, laissez l'entrée par défaut
CrystalReportSource1
.
5. Cliquez sur la liste déroulante
Spécifier un rapport pour le contrôle ReportSource
, puis sélectionnez
<Parcourir…>
.
La boîte de dialogue
Sélectionner un rapport Crystal
s'ouvre.
6. Recherchez le fichier
World Sales Report.rpt
dans le dossier General Business du répertoire des exemples de rapports SAP Crystal Reports.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
527
7. Sélectionnez le fichier
World Sales Report.rpt
, puis cliquez sur
Ouvrir
.
A ce stade, ce rapport devient le rapport désigné pour le contrôle
CrystalReportViewer
.
8. Dans le menu
Fichier
, cliquez sur
Enregistrer tout
.
1.5.3.6.4 Ajout d'un événement d'exploration au contrôle
CrystalReportViewer
Contexte
Cette section explique comment ajouter un événement d'exploration au contrôle
CrystalReportViewer
de sorte que, lorsqu'un utilisateur explore le rapport, l'étiquette affiche le nom de la partie explorée du rapport.
Procédure
1. Dans le menu
Affichage
, cliquez sur
Code
pour afficher la classe code-behind de ce Web Form.
2. Dans le menu
Affichage
, cliquez sur
Concepteur
pour revenir à la vue du concepteur du Web Form.
3. Cliquez sur le contrôle
CrystalReportViewer
pour le sélectionner.
4. Dans la fenêtre
Propriétés
, cliquez sur le bouton
Evénements
pour afficher la liste des événements associés au contrôle
CrystalReportViewer
.
5. Dans la liste des événements disponibles, sous le nœud
Action
, recherchez l'événement
Drill
.
6. Pour générer le code du gestionnaire d'événements d'exploration, cliquez deux fois sur l'événement
Drill
dans la fenêtre
Propriétés
.
Le code suivant est généré pour gérer l'événement d'exploration :
Private Sub myCrystalReportViewer_Drill(ByVal source As
System.Object, ByVal e As
CrystalDecisions.Windows.Forms.DrillEventArgs) Handles myCrystalReportViewer.Drill
End Sub
{
} private void crystalReportViewer_Drill(object source,
CrystalDecisions.Windows.Forms.DrillEventArgs e)
7. Dans le menu
Fichier
, cliquez sur
Enregistrer tout
.
1.5.3.6.5 Exposition des données de rapport d'un événement d'exploration au contrôle Label
Cette section explique comment ajouter du texte au contrôle
Label
afin d'indiquer quelle partie du rapport l'utilisateur a explorée.
528
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.5.4 Tutoriels sur la connectivité des données
Cette section présente différents tutoriels sur les options de connectivité des données dans SAP Crystal Reports, version développeur pour Microsoft Visual Studio.
1.5.4.1 Tutoriel : Connexion aux DataSets ADO.NET
Introduction
Dans ce tutoriel, vous allez apprendre à connecter un rapport Crystal à un DataSet (groupe de données) ADO.NET
à l'aide d'un schéma DataSet. Certaines étapes supplémentaires sont nécessaires pour créer un rapport à partir d'un DataSet ADO.NET, car le rapport n'est pas directement connecté à une base de données.
Un schéma DataSet ADO.NET fournit un modèle de structure de données au format XML. Cependant, un rapport ne peut pas extraire seul les données du schéma DataSet. Le schéma DataSet doit d'abord être instancié comme une instance DataSet fortement typée ou une instance DataSet générique. L'instance DataSet doit être ensuite remplie de données à l'aide de classes DataAdapter.
Dans ce tutoriel, étant donné la complexité de la création de rapports à partir de DataSets ADO.NET, les processus que vous allez suivre pour créer le schéma et remplir le DataSet sont isolés du code de liaison
SAP Crystal Reports.
Remarque
SAP Crystal Reports, version développeur pour Microsoft Visual Studio propose un modèle intitulé DataSet pour créer un schéma DataSet ADO.NET. Dans les sites Web créés avec Visual Studio 2005 ou une version ultérieure, le modèle DataSet n'est pas accessible à partir de la boîte de dialogue Ajouter un nouvel élément.
Seul le modèle "Schéma XML" par défaut est disponible. Cependant, les légères modifications apportées au code (expliquées dans les étapes suivantes) permettent d'utiliser le modèle Schéma XML par défaut pour obtenir les mêmes résultats.
Vous allez commencer par créer une connexion aux données et un schéma DataSet basé sur cette connexion.
Vous créerez ensuite une classe d'assistance avec une propriété qui renvoie une instance remplie du DataSet.
Enfin, vous écrirez du code qui lie le rapport Crystal au DataSet.
Pour le code de liaison du rapport Crystal, vous allez écrire du code pour effectuer les opérations suivantes :
● Instancier le rapport.
● Définir sa propriété SetDataSource en fonction de la propriété DataSet remplie à partir de la classe d'assistance.
● Lier le rapport Crystal rempli au contrôle CrystalReportViewer.
Enfin, si vous créez un site Web, vous allez placer l'instance DataSet remplie dans un objet Cache ASP.NET afin d'améliorer les performances et l'évolutivité.
Il est recommandé de dissocier le processus de configuration du DataSet du processus de liaison du rapport
Crystal, afin de maintenir la clarté du code lorsque vous liez le rapport et de réutiliser le DataSet dans votre projet
Web ou Windows.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
529
Exemple de code
Ce tutoriel fournit des exemples de code Visual Basic et C# qui illustrent la version terminée du projet. Suivez les instructions de ce tutoriel pour créer un projet ou ouvrez le projet d'exemple de code pour travailler à partir d'une version terminée.
Les exemples de code sont stockés dans des dossiers classés par langue et par type de projet. Les noms des dossiers de chaque version d'exemple de code sont les suivants :
● Site Web C# : CS_Web_Data_DataSets
● Projet Windows C# : CS_Win_Data_DataSets
● Site Web Visual Basic : VB_Web_Data_DataSets
● Projet Windows Visual Basic : VB_Win_Data_DataSets
Base de données Xtreme
Ce tutoriel utilise un exemple de base de données appelée Xtreme. Le fichier de base de données xtreme.mdb est fourni dans le package d'exemples de code du SDK de SAP Crystal Reports .NET. Pour utiliser la base de données
Xtreme, vous devez créer manuellement une connexion ODBC à cette base de données.
Informations associées
Répertoire d'exemples de rapports [page 15]
1.5.4.1.1 Configuration d'une connexion à l'exemple de base de données dans l'Explorateur de serveurs
Contexte
Dans ce tutoriel, vous vous basez sur l'interface utilisateur pour générer votre schéma DataSet : dans la fenêtre principale de Visual Studio, vous faites glisser une table de base de données de l'Explorateur de serveurs vers une fenêtre de DataSet.
La première étape consiste à configurer, dans l'Explorateur de serveurs, une connexion de base de données à l'exemple de base de données fourni avec les exemples de rapports SAP Crystal Reports.
Procédure
1. Dans le menu
Affichage
, cliquez sur
Explorateur de serveurs
.
530
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
2. Dans l'
Explorateur de serveurs
, cliquez avec le bouton droit de la souris sur
Connexions de données
, puis cliquez sur
Ajouter une connexion
.
Les étapes suivantes diffèrent selon que vous ajoutez cette connexion dans Visual Studio .NET 2003 ou dans une version ultérieure de Visual Studio.
3. Dans Visual Studio, procédez comme suit : a. Dans la liste déroulante
Fournisseur de données
de la boîte de dialogue
Modifier la source de données
, sélectionnez
Fournisseur de données .NET Framework pour OLE DB
.
b. Dans la liste
Source de données
, sélectionnez
Fichier de base de données Microsoft Access
, puis cliquez sur
OK
.
Remarque
Si c'est la première fois que vous ajoutez une connexion dans Visual Studio 2005, la fenêtre
Modifier la source de données
apparaît. Si la boîte de dialogue Ajouter une connexion s'affiche, cliquez sur
Modifier...
4. Dans le champ
Nom du fichier de base de données
, saisissez le chemin d'accès à la base de données Xtreme.
5. Laissez les champs
Nom d'utilisateur
et
Mot de passe
vides, puis cliquez sur
Tester la connexion
.
6. Si le test de connexion échoue, vérifiez de nouveau le chemin d'accès à la base de données Xtreme et assurez-vous que les champs
Nom d'utilisateur
et
Mot de passe
sont vides.
7. Cliquez sur
OK
pour fermer la boîte de dialogue
Tester la connexion
, puis de nouveau sur
OK
pour fermer la boîte de dialogue
Ajouter une connexion
.
8. Dans l'
Explorateur de serveurs
, développez le nœud
Access
, puis le nœud
Tables
.
9. Vérifiez que la table
Clients
s'affiche dans l'
Explorateur de serveurs
.
1.5.4.1.2 Création d'un schéma DataSet
Prérequis
Cette procédure fonctionne uniquement avec un projet créé à partir de la procédure
. La section Configuration d'un projet contient une configuration de références d'espaces de noms et de code spécifique nécessaire à cette procédure. Il est impossible de suivre cette procédure sans cette configuration.
Contexte
Vous pouvez maintenant créer un projet Windows ou un site Web, auquel vous ajouterez un schéma DataSet
ADO.NET basé sur une table de la base de données Access.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
531
Procédure
1. Dans l'
Explorateur de solutions
, cliquez avec le bouton droit de la souris sur le nom du projet affiché en gras, pointez sur
Ajouter
, puis cliquez sur
Nouvel élément
.
2. Dans la liste
Modèles
de la boîte de dialogue
Ajouter un nouvel élément
, procédez de la manière suivante :
○ Pour un projet Windows, sélectionnez
DataSet
.
○ Pour un site Web, sélectionnez
Schéma XML
.
3. Dans le champ
Nom
, saisissez
CustomerDataSetSchema.xsd
, puis cliquez sur
Ajouter
.
4. Dans l'
Explorateur de serveurs
, faites glisser la table
Clients
(située sous le nœud
ACCESS > Tables > Clients
) sur la fenêtre
CustomerDataSetSchema.xsd
.
5. Dans le menu
Générer
, cliquez sur
Générer la solution
.
Remarque
Le fichier CustomerDataSetSchema.xsd doit être placé dans le répertoire App_Code s'il est destiné à un usage général. Si votre projet ne contient pas de répertoire App_Code, cliquez avec le bouton droit de la souris sur le nom du projet affiché en gras, puis cliquez sur
Nouveau dossier
. Nommez le nouveau dossier
App_Code
.
6. Dans le menu
Fichier
, cliquez sur
Enregistrer tout
.
1.5.4.1.3 Création d'une classe d'assistance pour remplir le
DataSet
Le schéma DataSet que vous avez créé pour la table Customer (Client) constitue une structure de données. Au moment de l'exécution, un code est nécessaire pour remplir la structure DataSet avec les données de la base de données. Dans cette section, vous allez créer une classe d'assistance qui remplit le DataSet avec des données.
1.5.4.1.3.1 Pour créer une classe d'assistance afin de remplir le DataSet avec des données
Procédure
1. Dans l'
Explorateur de solutions
, cliquez avec le bouton droit de la souris sur le nom du projet affiché en gras, pointez sur
Ajouter
, puis cliquez sur
Nouvel élément
.
2. Dans la liste
Modèles Visual Studio installés
de la boîte de dialogue
Ajouter un nouvel élément
, sélectionnez
Classe
.
3. Dans le champ
Nom
, saisissez "DataSetConfiguration", puis cliquez sur
Ajouter
.
Remarque
Si une boîte de dialogue s'affiche et vous demande si vous souhaitez placer la classe dans un répertoire
"Code", cliquez sur
Oui
.
532
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
4. Au-dessus de la signature de classe, ajoutez une déclaration "Imports"[Visual Basic] ou "using"[C#] au début de la classe pour les espaces de noms System.Data et System.Data.OleDb.
Imports System.Data
Imports System.Data.OleDb
using System.Data; using System.Data.OleDb;
5. Au début de la classe, créez une constante CONNECTION_STRING destinée à contenir la chaîne de connexion dans l'exemple de base de données Xtreme.
Private Const CONNECTION_STRING As String ="Provider=Microsoft.Jet.OLEDB.
4.0;Data Source=C:\Program Files\Microsoft Visual Studio 8\Crystal Reports
\Samples\Fr\Database\xtreme.mdb" private const string CONNECTION_STRING = "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=C:\\Program Files\\Microsoft Visual Studio 8\\Crystal Reports\\Samples\\Fr
\\Database\\xtreme.mdb";
6. Sous la première constante, créez une deuxième constante QUERY_STRING destinée à contenir la chaîne de requête de la base de données.
Remarque
Cette chaîne de requête permet de sélectionner toutes les colonnes, sans aucun critère. Pour la base de données Xtreme, cette chaîne ne renverra que quelques données. Cependant, il est recommandé dans la plupart des cas de restreindre votre requête en incluant une clause WHERE et en sélectionnant un nombre limité de colonnes.
Private Const QUERY_STRING As String = "SELECT * FROM CUSTOMER" private const string QUERY_STRING = "SELECT * FROM CUSTOMER";
7. Sous la deuxième constante, créez une troisième constante DATATABLE_NAME destinée à contenir le nom de l'objet DataTable à remplir dans le DataSet.
L'étape suivante vous indique comment créer une constante DIRECTORY_FILE_PATH. Cette constante est requise uniquement si vous créez un site Web dans Visual Studio 2005. Dans le cas contraire, ignorez cette
étape.
Private Const DATATABLE_NAME As String = "Customer" private const string DATATABLE_NAME = "Customer";
8. Sous la troisième constante, créez une quatrième constante nommée DIRECTORY_FILE_PATH pour faire référence au chemin d'accès au répertoire contenant le fichier xsd.
Remarque
Le code ci-dessous montre un chemin d'accès pour un site Web.
Private Const DIRECTORY_FILE_PATH As String = "C:\WebSites\VB_Web_Data_DataSets\" private const string DIRECTORY_FILE_PATH = @"C:\WebSites\CS_Web_Data_DataSets\";
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
533
9. Modifiez le fichier app.config ou web.config dans la solution pour inclure le code XML suivant dans le niveau supérieur des balises de configuration.
Cela permet de faire face au problème de l'utilisation d'un DataSet ADO.NET en tant que source de rapport sous .NET 4.0 Framework. Pour en savoir plus, voir
Problèmes de migration [page 9]
.
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
1.5.4.1.3.2 Pour créer une propriété qui remplit le DataSet
Procédure
1. Créez une propriété en lecture seule intitulée CustomerDataSet qui renvoie une instance de DataSet.
Appliquez à la méthode un modificateur "Shared"[Visual Basic] ou "static"[C#] afin de pouvoir appeler directement la classe et la propriété, sans nécessiter d'instanciation.
Public Shared ReadOnly Property CustomerDataSet() As DataSet
Get
End Get
End Property public static DataSet CustomerDataSet
{
get
{
}
}
2. Cette étape comporte deux options : une pour l'utilisation avec la classe DataSet fortement typée (qui est disponible avec les projets Windows) et une autre pour l'utilisation avec la classe DataSet générique (qui est disponible avec les sites Web).
○ Pour les projets Windows utilisant la classe DataSet fortement typée, dans la clause get de la propriété
CustomerDataSet, déclarez et instanciez la classe CustomerDataSetSchema (la classe DataSet fortement typée générée à partir du schéma DataSet dans la section précédente).
Dim myDataSet As CustomerDataSetSchema = New
CustomerDataSetSchema()
CustomerDataSetSchema dataSet = new CustomerDataSetSchema();
○ Pour les sites Web utilisant la classe DataSet générique, dans la clause get de la propriété
CustomerDataSet, déclarez et instanciez une classe DataSet, puis appliquez le schéma XML à l'instance
DataSet. En d'autres termes, transmettez le chemin d'accès au répertoire de fichiers
CustomerDataSetSchema.xsd sous la forme d'un paramètre de type chaîne à la méthode
ReadXmlSchema() de l'instance DataSet.
Dim myDataSet As DataSet = New DataSet() myDataSet.ReadXmlSchema(DIRECTORY_FILE_PATH & "XMLSchema.xsd")
534
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
DataSet dataSet = new DataSet(); dataSet.ReadXmlSchema(DIRECTORY_FILE_PATH + "XMLSchema.xsd");
3. Déclarez et instanciez la classe OleDbConnection et transmettez-lui la constante CONNECTION_STRING en tant que paramètre de méthode.
Dim myOleDbConnection As OleDbConnection = New OleDbConnection(CONNECTION_STRING)
OleDbConnection oleDbConnection = new OleDbConnection(CONNECTION_STRING);
4. Déclarez et instanciez la classe OleDbDataAdapter et transmettez-lui la constante QUERY_STRING et l'instance OleDbConnection en tant que paramètres de méthode.
Dim myOleDbDataAdapter As OleDbDataAdapter = New OleDbDataAdapter(QUERY_STRING, myOleDbConnection)
OleDbDataAdapter oleDbDataAdapter = new OleDbDataAdapter(QUERY_STRING, oleDbConnection);
5. Appelez la méthode Fill() de l'instance OleDbDataAdapter et transmettez-lui l'instance
CustomerDataSetSchema et la constante DATATABLE_NAME.
Remarque
La méthode Fill() remplit l'objet DataTable spécifié, dans l'instance DataSet, avec les données extraites de la base de données.
myOleDbDataAdapter.Fill(myDataSet, DATATABLE_NAME) oleDbDataAdapter.Fill(dataSet, DATATABLE_NAME);
6. Pour terminer la propriété, renvoyez l'instance DataSet.
Return myDataSet return dataSet;
Résultats
La propriété CustomerDataSet est créée et peut être appelée depuis n'importe quel endroit dans le projet.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
535
1.5.4.1.4 Création d'un rapport connecté au schéma DataSet
Contexte
Dans les étapes précédentes, vous avez créé une méthode qui remplit le schéma DataSet avec les données de la base de données. Dans cette section, vous allez créer un rapport Crystal dont la connectivité des données repose sur le schéma CustomerDataSetSchema.
Procédure
1. Dans l'
Explorateur de solutions
, cliquez avec le bouton droit de la souris sur le nom du projet affiché en gras, pointez sur
Ajouter
, puis cliquez sur
Nouvel élément
.
2. Dans la liste
Modèles Visual Studio installés
de la boîte de dialogue
Ajouter un nouvel élément
, sélectionnez
Rapport Crystal
.
3. Dans le champ
Nom
, saisissez le nom
Customer.rpt
, puis cliquez sur
Ajouter
.
4. Dans le panneau
Créer un document de rapport Crystal
de la boîte de dialogue
Galerie de rapports Crystal
, sélectionnez
en utilisant l' Assistant de création de rapports
.
5. Dans le panneau
Choisir un expert
, sélectionnez
Standard
, puis cliquez sur
OK
.
6. Dans le panneau
Sources de données disponibles
de la fenêtre Assistant de création de rapports standard, développez le dossier
Données du projet
.
7. Développez le nœud
ADO.NET DataSets
.
8. Cette étape comporte deux options : une pour la classe DataSet fortement typée (disponible avec les projets
Windows) et une pour la classe DataSet générique (disponible avec les sites Web).
○ Pour les projets Windows utilisant la classe DataSet fortement typée, développez le nœud
CustomerDataSetSchema
. Développez le nœud
Tables
s'il existe.
○ Pour les sites Web utilisant la classe DataSet générique, développez le nœud
DataSetConfiguration
.
Dans la boîte de dialogue
ADO.NET (XML)
, sélectionnez
Utiliser le DataSet de la classe
. Dans la boîte de dialogue Noms des DataSet, sélectionnez la propriété
CustomerDataSet
, puis cliquez sur
Terminer
.
9. Sélectionnez le nœud de la table
Clients
.
10. Cliquez deux fois sur la table
Clients
pour l'ajouter au panneau
Tables sélectionnées
, puis cliquez sur
Suivant
.
11. Développez la table
Clients
, puis utilisez la combinaison de touches CTRL-clic pour sélectionner les champs
Nom du client
,
Titre
,
Adresse 1
,
Nom du contact
et
Ville
.
12. Cliquez sur le bouton
>
pour déplacer ces champs dans le panneau
Champs à afficher
, puis cliquez sur le bouton
Suivant
.
13. Dans le panneau
Champs disponibles
, sous
Champs du rapport
, sélectionnez
Clients.Ville
, cliquez sur le bouton
>
pour déplacer le champ dans le panneau
Regrouper par
, puis cliquez sur
Terminer
.
Le rapport Customer est créé avec une connectivité des données au schéma CustomerDataSetSchema (ou, dans un site Web Visual Studio 2005, à la propriété CustomerDataSet de la classe
DataSetConfiguration).
536
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.5.4.1.5 Liaison du rapport et définition du contrôle
DataSource selon le DataSet rempli
Dans cette section, vous allez apprendre à instancier le rapport que vous avez créé, à remplir le DataSet du rapport et à afficher le rapport dans le contrôle CrystalReportViewer. Vous allez remplir le rapport en affectant sa propriété SetDataSource au DataSet rempli, renvoyé depuis la propriété CustomerDataSet de la classe
DataSetConfiguration. Enfin, vous allez lier le rapport rempli au contrôle CrystalReportViewer.
Vous pouvez instancier et lier le rapport à l'aide d'une des façons suivantes :
● En tant que rapport incorporé.
● En tant que rapport non incorporé.
Choisissez l'une des deux (mais pas les deux) procédures ci-dessous.
1.5.4.1.5.1 Pour instancier et lier un rapport incorporé au contrôle CrystalReportViewer
Procédure
1. Ouvrez le Web Form ou Windows Form.
2. Dans le menu
Affichage
, cliquez sur
Code
.
3. Au-dessus de la signature de classe, ajoutez une déclaration "Imports"[Visual Basic] ou "using"[C#] au début de la classe pour l'espace de noms System.Data, le cas échéant.
Imports System.Data
using System.Data;
4. Ajoutez une nouvelle déclaration de niveau classe pour la classe wrapper du rapport Customer, avec le nom de variable customerReport. Définissez le modificateur d'accès à private.
Private customerReport As Customer private Customer customerReport;
5. Dans la méthode ConfigureCrystalReports(), instanciez la classe wrapper du rapport.
Remarque
Vous avez créé la méthode ConfigureCrystalReports() dans
Configuration d'un projet [page 15] .
customerReport = New Customer() customerReport = new Customer();
6. Sur la ligne suivante, au-dessous de l'instanciation du rapport, déclarez un DataSet.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
537
Cette étape et l'étape suivante séparent la déclaration de la variable de son affectation. Chaque ligne de code est séparée car, dans un addenda de site Web ajouté à ce tutoriel, vous allez refactoriser l'affectation de la variable dans un bloc de code qui met en cache le DataSet dans l'objet Cache ASP.NET.
Dim myDataSet As DataSet
DataSet dataSet;
7. Affectez l'instance DataSet à la propriété DataSetConfiguration.CustomerDataSet.
myDataSet = DataSetConfiguration.CustomerDataSet
dataSet = DataSetConfiguration.CustomerDataSet;
8. Appelez la méthode SetDataSource() de l'instance CustomerReport et transmettez-lui l'instance DataSet.
customerReport.SetDataSource(myDataSet) customerReport.SetDataSource(dataSet);
9. Liez la propriété ReportSource du contrôle CrystalReportViewer à l'instance CustomerReport.
myCrystalReportViewer.ReportSource = customerReport crystalReportViewer.ReportSource = customerReport;
1.5.4.1.5.2 Pour instancier et lier un rapport non incorporé au contrôle CrystalReportViewer
Procédure
1. Ouvrez le Web Form ou Windows Form.
2. Dans le menu
Affichage
, cliquez sur
Code
.
3. Ajoutez une nouvelle déclaration de niveau classe pour la classe wrapper du rapport ReportDocument, avec la variable customerReport. Définissez le modificateur d'accès à private.
Remarque
La classe ReportDocument est un membre de l'espace de noms CrystalDecisions.CrystalReports.Engine.
Vous avez ajouté une déclaration "Imports"[Visual Basic] ou "using"[C#] pour cet espace de noms dans la section
Configuration d'un projet [page 15] . Lorsque vous instanciez ReportDocument et
chargez un rapport dans l'espace de noms, vous accédez au rapport via le SDK sans l'incorporer.
Private customerReport As ReportDocument private ReportDocument customerReport;
538
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
4. Dans la méthode ConfigureCrystalReports() (que vous avez ajoutée dans l'une des procédures de la
section Configuration d'un projet [page 15]
), instanciez la classe ReportDocument.
customerReport = New ReportDocument() customerReport = new ReportDocument();
5. Déclarez une variable chaîne, nommez-la reportPath et affectez-lui un chemin d'accès au rapport local au moment de l'exécution. Ce chemin est déterminé différemment selon qu'il s'agit d'un site Web ou d'un projet
Windows :
○ Pour un site Web, transmettez le nom du fichier de rapport local sous forme de paramètre de type chaîne dans la méthode Server.MapPath(). Ceci permet d'associer le rapport local au chemin d'accès du répertoire de fichiers du disque dur au moment de l'exécution.
Dim reportPath As String = Server.MapPath("Customer.rpt") string reportPath = Server.MapPath("Customer.rpt");
○ Pour un projet Windows, concaténez la propriété Application.StartupPath avec une barre oblique inverse et le nom du fichier de rapport local. Ceci permet d'associer le rapport au même répertoire que celui du fichier exécutable Windows.
Remarque
Au moment de la compilation, vous copierez le rapport dans le répertoire contenant le fichier exécutable.
Dim reportPath As String = Application.StartupPath & "\" &
"Customer.rpt" string reportPath = Application.StartupPath + "\\" +
"Customer.rpt";
6. Appelez la méthode Load() de l'instance ReportDocument et transmettez-lui la variable chaîne reportPath.
customerReport.Load(reportPath) customerReport.Load(reportPath);
7. Déclarez un DataSet et affectez-lui la DataSetConfiguration.CustomerDataSet property.
Dim myDataSet As DataSet = DataSetConfiguration.CustomerDataSet
DataSet dataSet = DataSetConfiguration.CustomerDataSet;
8. Appelez la méthode SetDataSource() de l'instance customerReport ReportDocument et transmettez-lui l'instance DataSet.
customerReport.SetDataSource(myDataSet) customerReport.SetDataSource(dataSet);
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
539
9. Sur la ligne suivante, sous le chargement du rapport, liez la propriété ReportSource du contrôle
CrystalReportViewer à l'instance ReportDocument.
myCrystalReportViewer.ReportSource = customerReport crystalReportViewer.ReportSource = customerReport;
1.5.4.1.5.3 Pour vérifier le chargement du rapport Customer et son DataSet rempli
Contexte
Vous êtes maintenant prêt à générer et exécuter votre projet.
Procédure
1. Dans le menu
Générer
, cliquez sur
Générer la solution
.
2. Si vous rencontrez des erreurs lors de la génération, corrigez-les.
3. Si vous utilisez un rapport non incorporé dans un projet Windows, recherchez l'exécutable Windows compilé dans le sous-répertoire \bin\ [Visual Basic] ou \bin\debug\ [C#], puis copiez le rapport dans ce sous-répertoire.
Remarque
Pour que le rapport non incorporé soit chargé par l'exécutable Windows au moment de l'exécution, le rapport doit être stocké dans le même répertoire que l'exécutable Windows.
4. Dans le menu
Déboguer
, cliquez sur
Démarrer
.
5. Le rapport Customer s'affiche et indique les données remplies que vous avez placées dans le DataSet.
6. Revenez dans Visual Studio, puis cliquez sur
Arrêter
pour quitter le mode débogage.
Résultats
Si vous créez un projet Windows, vous avez maintenant terminé le tutoriel.
Si vous créez un site Web, effectuez la procédure
Mise en cache du DataSet dans un site Web [page 541] .
540
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.5.4.1.6 Mise en cache du DataSet dans un site Web
Contexte
Si vous créez un site Web, vous pouvez obtenir une évolutivité et des performances supérieures en plaçant votre instance DataSet remplie dans l'objet Cache ASP.NET. Cette opération évite les appels redondants (et potentiellement lents) à la base de données pour remplir le DataSet.
Remarque
Si votre DataSet contient des valeurs standard pour tous les utilisateurs, utilisez l'objet Cache. En revanche, si votre DataSet contient des valeurs uniques pour chaque utilisateur (se basant sur des critères spécifiques à l'utilisateur définis dans la clause WHERE de la requête SQL, comme un ID utilisateur), vous devez plutôt utiliser l'objet Session.
Procédure
1. Ouvrez le Web Form.
2. Dans le menu
Affichage
, cliquez sur
Code
.
3. Localisez la ligne de code où l'instance DataSet est affectée à la propriété
DataSetConfiguration.CustomerDataSet property (voir ci-dessous).
myDataSet = DataSetConfiguration.CustomerDataSet
dataSet = DataSetConfiguration.CustomerDataSet;
4. Remplacez cette ligne de code par un bloc de code conditionnel complet permettant de rechercher une valeur
Cache intitulée "customerDataSet".
Saisissez le bloc conditionnel et le code exactement comme indiqué ici.
If Cache("customerDataSet") Is Nothing Then
myDataSet = DataSetConfiguration.CustomerDataSet
Cache("customerDataSet") = myDataSet
Else
myDataSet = CType(Cache("customerDataSet"), DataSet)
End If if (Cache["customerDataSet"] == null)
{
dataSet = DataSetConfiguration.CustomerDataSet;
Cache["customerDataSet"] = dataSet;
} else
{
dataSet = (DataSet)Cache["customerDataSet"];
}
5. Pour tester la mise en cache du DataSet, sélectionnez
Démarrer
dans le menu
Déboguer
.
Le rapport Customer s'affiche et indique les données remplies que vous avez placées dans le DataSet.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
541
6. Cliquez sur le bouton
Actualiser
du navigateur.
Le rapport Customer s'affiche de nouveau rapidement, car le DataSet est à présent extrait de l'objet Cache
ASP.NET.
7. Revenez dans Visual Studio, puis cliquez sur
Arrêter
pour quitter le mode débogage.
Informations associées
En cas d'utilisation des DataSets, les mettre en mémoire cache [page 68]
1.5.4.2 Tutoriel : Connexion aux IDataReader
Dans ce tutoriel sur la connectivité des données, vous allez apprendre à vous connecter à une instance d'IDataReader.
Introduction
De nombreux projets .NET utilisent les DataReader, plutôt que les DataSets, pour extraire des données. Par exemple, le moyen le plus courant de lier un contrôle (tel que le contrôle GridView) aux données consiste à créer une méthode qui extrait les données par le biais d'un DataReader, puis de renvoyer ces données à partir de la méthode via une interface IDataReader.
Dans SAP Crystal Reports, version développeur pour Microsoft Visual Studio, le concepteur Crystal Reports incorporé peut accéder au IDataReader lorsque certaines conditions sont remplies :
● Les données doivent être renvoyées à partir d'une méthode, par le biais de l'interface IDataReader.
● Le fournisseur de données utilisé dans la méthode doit être le fournisseur de données OleDb .NET.
Remarque
Les classes de ce fournisseur de données se trouvent dans l'espace de noms System.Data.OleDb.
● La méthode doit être partagée [Visual Basic] ou statique [C#].
● La classe contenant cette méthode doit faire partie d'un projet de bibliothèque de classes et être compilée dans un assembly.
Dans ce tutoriel, vous allez apprendre à connecter un rapport Crystal au fichier d'assembly DLL, ainsi qu'à accéder à une classe et à une méthode statique dans l'assembly qui renvoie l'IDataReader.
Pour commencer, vous allez créer une bibliothèque de classes, ajouter une classe et une méthode statique qui renvoie IDataReader, puis compiler cette bibliothèque de classes dans un assembly.
542
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Exemple de code
Ce tutoriel fournit des exemples de code Visual Basic et C# qui illustrent la version terminée du projet. Suivez les instructions de ce tutoriel pour créer un projet ou ouvrez le projet d'exemple de code pour travailler à partir d'une version terminée.
Les exemples de code sont stockés dans des dossiers classés par langue et par type de projet. Les noms des dossiers de chaque version d'exemple de code sont les suivants :
● Site Web C# : CS_Web_Data_IDataReader
● Projet Windows C# : CS_Win_Data_IDataReader
● Site Web Visual Basic : VB_Web_Data_IDataReader
● Projet Windows Visual Basic : VB_Win_Data_IDataReader
Informations associées
Répertoire d'exemples de rapports [page 15]
1.5.4.2.1 Création de la bibliothèque de classes pour le
DataReader
Une configuration préalable est requise avant de commencer ce tutoriel.
1.5.4.2.1.1 Configuration préalable requise de la base de données
Procédure
1. Configuration de SQL Server :
○ Si vous disposez de SQL Server (ou de la version OEM, MSDE), il doit être configuré de manière à exiger une authentification SQL Server.
○ Si vous ne disposez pas de SQL Server (ou de la version OEM, MSDE), vous devez installer MSDE en attribuant à l'authentification SQL Server la valeur True.
2. La base de données Northwind fournie avec SQL Server doit être installée et vous devez vérifier que l'authentification SQL Server est bien requise.
Remarque
Ce tutoriel utilise la base de données Northwind avec SQL Server, mais vous pouvez utiliser n'importe quelle base de données compatible OleDb.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
543
3. Vous devez créer un compte à accès limité qui sera utilisé au sein du site Web.
1.5.4.2.1.2 Pour créer une bibliothèque de classes contenant une méthode statique qui renvoie IDataReader
Contexte
Une fois que vous aurez configuré SQL Server et la base de données Northwind, vous pourrez créer une bibliothèque de classes qui renvoie des valeurs à partir de la base de données Northwind sous forme d'un
IDataReader.
Remarque
La bibliothèque de classes doit être créée dans le répertoire du projet Data_IDataReader parent pour éviter de rencontrer des problèmes liés aux droits d'accès au programme.
Procédure
1. Dans le menu
Fichier
, sélectionnez
Nouveau
, puis cliquez sur
Projet
.
2. Dans la boîte de dialogue
Nouveau projet
, dans la liste
Types de projets
, sélectionnez un dossier de langage pour C# ou Visual Basic.
3. Dans la liste
Modèles
, cliquez sur
Bibliothèque de classes
.
4. Dans la zone
Nom
, remplacez le nom de projet par défaut par "VB_Lib_DataLayer" [Visual Basic] ou
"CS_Lib_DataLayer" [C#], puis cliquez sur
OK
.
5. Dans l'
Explorateur de solutions
, cliquez avec le bouton droit de la souris sur la classe par défaut (Class1), puis cliquez sur
Supprimer
.
6. Dans l'
Explorateur de solutions
, cliquez avec le bouton droit de la souris sur le nom du projet affiché en gras, pointez sur
Ajouter
, puis cliquez sur
Classe
.
La boîte de dialogue
Ajouter un nouvel élément
s'ouvre.
7. Dans la boîte de dialogue
Ajouter un nouvel élément
, dans la vue
Modèles
, sélectionnez le modèle "Classe".
8. Dans le champ Nom, saisissez
DataCenter
, puis cliquez sur
Ajouter
.
9. Si vous utilisez Visual Basic, tapez
Option Strict On
au début de la classe.
10. Au-dessus de la signature de classe, ajoutez une déclaration "Imports" [Visual Basic] ou "using"
[C#] au début de la classe des espaces de noms System.Data et System.Data.OleDb (si ces espaces de noms n'ont pas déjà été déclarés).
Imports System.Data
Imports System.Data.OleDb
using System.Data; using System.Data.OleDb;
544
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
11. Au niveau de la classe, créez une constante chaîne privée pour la chaîne de connexion OleDb.
Remarque
Pour des raisons de sécurité, il est important que vous utilisiez un compte de base de données à accès limité.
Dans le code que vous écrivez, remplacez l'exemple de nom du serveur DBServer01 et l'exemple de mot de passe 1234 (indiqués ci-dessous) par le nom du serveur et le mot de passe de votre base de données.
Private Const OLEDB_CONNECTION_STRING As String =
"provider=sqloledb;Data Source=DBSERVER01;Initial
Catalog=Northwind;User Id=limitedPermissionAccount;Password=1234" private const string OLEDB_CONNECTION_STRING =
"provider=sqloledb;Data Source=DBSERVER01;Initial
Catalog=Northwind;User Id=limitedPermissionAccount;Password=1234";
12. Créez une seconde constante chaîne privée pour la requête de base de données.
Private Const CUSTOMER_TABLE_QUERY As String = "SELECT CustomerID,
CompanyName, ContactName, Address, City FROM Customers" private const string CUSTOMER_TABLE_QUERY = "SELECT CustomerID,
CompanyName, ContactName, Address, City FROM Customers";
13. Créez une méthode publique "Shared" [Visual Basic] ou "static" [C#] appelée
GetCustomersUsingOleDb() qui renvoie IDataReader.
Public Shared Function GetCustomersUsingOleDb() As IDataReader
End Function public static IDataReader GetCustomersUsingOleDb()
{
}
14. Dans cette méthode, déclarez et instanciez OleDbConnection et transmettez la constante
OLEDB_CONNECTION_STRING.
Dim myOleDbConnection As OleDbConnection = New
OleDbConnection(OLEDB_CONNECTION_STRING)
OleDbConnection oleDbConnection = new
OleDbConnection(OLEDB_CONNECTION_STRING);
15. Appelez la méthode Open()à partir de l'instance OleDbConnection pour ouvrir la connexion à la base de données.
myOleDbConnection.Open() oleDbConnection.Open();
16. Déclarez et instanciez OleDbCommand, puis transmettez la constante CUSTOMER_TABLE_QUERY et l'instance OleDbConnection.
Dim myOleDbCommand As OleDbCommand = New
OleDbCommand(CUSTOMER_TABLE_QUERY, myOleDbConnection)
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
545
OleDbCommand oleDbCommand = new OleDbCommand(CUSTOMER_TABLE_QUERY, oleDbConnection);
17. Appelez la méthode ExecuteReader() de l'instance OleDbCommand et transmettez-la à une instance d'IDataReader.
Dim myIDataReader As IDataReader = myOleDbCommand.ExecuteReader()
IDataReader iDataReader = oleDbCommand.ExecuteReader();
18. Renvoyez l'instance IDataReader à partir de la méthode.
Return myIDataReader return iDataReader;
19. Dans le menu
Générer
, cliquez sur
Générer la solution
.
20. Dans le menu
Fichier
, cliquez sur
Fermer la solution
.
1.5.4.2.2 Connexion d'un rapport à la méthode statique
IDataReader
Dans cette section, vous allez créer un projet client qui accède à la méthode IDataReader dans l'assembly compilé.
1.5.4.2.2.1 Pour connecter un rapport à la méthode statique
IDataReader
Prérequis
Cette procédure fonctionne uniquement avec un projet créé à partir de la procédure
. La section Configuration d'un projet contient une configuration de références d'espaces de noms et de code spécifique nécessaire à cette procédure. Il est impossible de suivre cette procédure sans cette configuration.
Procédure
1. Dans l'
Explorateur de solutions
, cliquez avec le bouton droit de la souris sur le nom du projet affiché en gras, pointez sur
Ajouter
, puis cliquez sur
Nouvel élément
.
2. Dans la boîte de dialogue
Ajouter un nouvel élément
, sélectionnez
Rapport Crystal
.
3. Dans le champ
Nom
, saisissez "CustomersViaIDR.rpt", puis cliquez sur
OK
.
546
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
4. Dans la boîte de dialogue
Galerie de rapports Crystal
, cliquez sur
OK
.
5. Dans la boîte de dialogue
Assistant de création de rapports standard
, développez le nœud
Créer une nouvelle connexion
.
6. Développez le nœud
ADO.NET
.
7. Dans la boîte de dialogue
ADO.NET
, cliquez sur le bouton de sélection
...
situé à l'extrémité du champ
Chemin d'accès du fichier
.
8. Dans la boîte de dialogue
Ouvrir
, sélectionnez
Tous les fichiers
dans la liste
Fichiers de type
.
9. Localisez l'assembly DLL à partir du chemin d'accès au répertoire de fichiers suivant.
Remarque
L'assembly DLL a été créé dans la procédure
Création de la bibliothèque de classes pour le DataReader
Dans Visual Basic, la DLL se trouve dans le répertoire bin. Dans C#, la DLL se trouve dans le sousrépertoire bin appelé Debug. L'emplacement indiqué ici varie en fonction de la version de Visual Studio que vous utilisez.
\Mes documents\Visual Studio\Projects\VB_Lib_IDataReader\VB_Lib_IDataReader\bin
\VB_Lib_DataLayer.dll
\Mes documents\Visual Studio\Projects\CS_Lib_DataReader\CS_Lib_IDataReader\bin
\Debug\CS_Lib_DataLayer.dll
10. Sélectionnez la DLL, puis cliquez sur
Ouvrir
.
11. Dans la liste
Nom de la classe
, sélectionnez la classe
DataCenter
, puis cliquez sur
Terminer
.
Dans la zone Sources de données disponibles, la méthode GetCustomersUsingOleDB() apparaît.
12. Sélectionnez
GetCustomersUsingOleDb
et cliquez sur le bouton
>
pour placer la méthode dans le panneau
Tables sélectionnées
, puis cliquez sur
Suivant
.
Si la bibliothèque de classes IDataReader n'a pas été configurée correctement, une exception est renvoyée.
1.5.4.2.3 Traitement des exceptions
Contexte
Dans cette section, vous allez apprendre à traiter les exceptions que la méthode de bibliothèque de classes
IDataReader peut renvoyer.
Procédure
1. Fermez le site Web ou le projet Windows, puis rouvrez le projet de bibliothèque de classes contenant la méthode statique IDataReader.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
547
Remarque
[page 543] s'appelle "VB_Lib_DataLayer" [Visual Basic] ou "CS_Lib_DataLayer" [C#].
2. Recherchez les erreurs éventuelles dans la constante chaîne de connexion au niveau du nom du serveur de la base de données ou du mot de passe.
3. Recherchez les erreurs éventuelles dans la constante chaîne de requête au niveau de la requête.
4. Dans le menu
Générer
, cliquez sur
Générer la solution
.
5. Dans le menu
Fichier
, cliquez sur
Fermer la solution
.
6. Rouvrez le site Web ou le projet Windows.
7. Supprimez le fichier de rapport Crystal que vous avez créé, puis créez-en un autre.
8. Répétez les étapes de la section précédente
Connexion d'un rapport à la méthode statique IDataReader [page
9. Enfin, modifiez le fichier app.config ou web.config dans la solution pour inclure le code XML suivant dans le niveau supérieur des balises de configuration.
Remarque
Cela permet de faire face au problème de l'utilisation d'un DataSet ADO.NET en tant que source de rapport
sous .NET 4.0 Framework. Pour en savoir plus, voir Problèmes de migration [page 9] .
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
Résultats
La méthode GetCustomersUsingOleDb() est transférée vers le panneau Tables sélectionnées.
Remarque
Si vous obtenez toujours une exception, répétez le processus de débogage.
Pour pousser plus loin le débogage, créez un Web Form ou Windows Form dans votre site Web ou projet
Windows et ajoutez un contrôle GridView à ce formulaire. Dans la classe code-behind, attribuez à la propriété
DataSource du contrôle GridView la méthode statique IDataReader. Compilez et affichez ensuite le Web
Form ou Windows Form en question pour vérifier si l'affichage est correct.
548
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.5.4.2.4 Pour concevoir le rapport en fonction des valeurs de la méthode statique IDataReader
Contexte
Vous pouvez maintenant concevoir le rapport en fonction des valeurs de la méthode statique IDataReader.
Remarque
Cette procédure suppose que vous avez pu accéder à la méthode statique GetCustomersUsingOleDb
IDataReader et, par conséquent, que la méthode a été transférée dans le panneau Tables sélectionnées de la boîte de dialogue Assistant de création de rapports standard.
Procédure
1. Dans le panneau
Champs disponibles
, développez
GetCustomersUsingOleDb
.
2. Utilisez la combinaison de touches CTRL-clic pour sélectionner
CompanyName
,
ContactName
et
City
.
3. Cliquez sur le bouton
>
pour déplacer ces champs dans le panneau
Champs à afficher
, puis cliquez sur
Suivant
.
4. Dans le panneau
Champs disponibles
, sous
Champs du rapport
, sélectionnez
GetCustomerUsingOleDb.City
, cliquez sur le bouton
>
pour déplacer le champ dans le panneau
Regrouper par
, puis cliquez sur
Terminer
.
Le rapport CustomersViaIDR est créé et chargé dans la fenêtre principale de Visual Studio.
5. Cliquez sur
Aperçu Rapport principal
pour afficher un aperçu du rapport, basé sur un appel à la méthode statique
IDataReader
.
Résultats
Vous pouvez maintenant lier le rapport au contrôle CrystalReportViewer.
1.5.4.2.5 Liaison du rapport
Durant la procédure Configuration d'un projet [page 15]
, vous avez placé un contrôle CrystalReportViewer dans un Web Form ou un Windows Form. Lors de l'étape précédente, vous avez ajouté un rapport
CustomersViaIDR au projet.
Dans cette section, vous allez instancier le rapport CustomersViaIDR et le lier au contrôle
CrystalReportViewer.
Vous pouvez instancier et lier le rapport de deux façons :
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
549
● En tant que rapport incorporé.
● En tant que rapport non incorporé.
Choisissez l'une des deux (mais pas les deux) procédures ci-dessous.
● Si vous utilisez des rapports incorporés, effectuez la procédure suivante afin d'instancier le rapport
CustomersViaIDR sous forme de rapport incorporé.
● Si vous utilisez des rapports non incorporés, effectuez la seconde procédure afin d'instancier le rapport
CustomersViaIDR sous forme de rapport non incorporé.
1.5.4.2.5.1 Pour instancier le rapport CustomersViaIDR sous forme de rapport incorporé et le lier au contrôle
CrystalReportViewer
Procédure
1. Ouvrez le Web Form ou Windows Form.
2. Dans le menu
Affichage
, cliquez sur
Code
.
3. Ajoutez une nouvelle déclaration de niveau classe pour la classe wrapper du rapport CustomersViaIDR, en utilisant la variable customersViaIdrReport. Définissez le modificateur d'accès à private.
Private customersViaIdrReport As CustomersViaIDR private CustomersViaIDR customersViaIdrReport;
4. Dans la méthode ConfigureCrystalReports(), instanciez la classe wrapper du rapport.
Remarque
Vous avez créé la méthode ConfigureCrystalReports() dans Configuration d'un projet [page 15]
.
customersViaIdrReport = New CustomersViaIDR() customersViaIdrReport = new CustomersViaIDR();
5. Sur la ligne suivante, au-dessous de l'instanciation du rapport, liez la propriété ReportSource du contrôle
CrystalReportViewer à la classe de rapport instanciée (nom de la variable, customersViaIdrReport).
myCrystalReportViewer.ReportSource = customersViaIdrReport crystalReportViewer.ReportSource = customersViaIdrReport;
550
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.5.4.2.5.2 Pour instancier le rapport CustomersViaIDR sous forme de rapport non incorporé et le lier au contrôle CrystalReportViewer
Contexte
Vous êtes maintenant prêt à générer et exécuter votre projet. Passez à la section suivante ci-dessous.
Procédure
1. Ouvrez le Web Form ou Windows Form.
2. Dans le menu
Affichage
, cliquez sur
Code
.
3. Ajoutez une nouvelle déclaration de niveau classe pour la classe wrapper du rapport ReportDocument, en utilisant la variable customersViaIdrReport. Définissez le modificateur d'accès à private.
Remarque
La classe ReportDocument est un membre de l'espace de noms
CrystalDecisions.CrystalReports.Engine. Vous avez ajouté une déclaration "Imports" [Visual
Basic] ou "using" [C#] pour cet espace de noms dans la section
Configuration d'un projet [page 15]
.
Lorsque vous instanciez ReportDocument et chargez un rapport dans l'espace de noms, vous accédez au rapport via le SDK sans l'incorporer.
Private customersViaIdrReport As ReportDocument private ReportDocument customersViaIdrReport;
4. Dans la méthode ConfigureCrystalReports() (que vous avez créée dans la section
Configuration d'un projet [page 15]
), instanciez la classe ReportDocument.
customersViaIdrReport = New ReportDocument() customersViaIdrReport = new ReportDocument();
5. Déclarez une variable chaîne, nommez-la reportPath et affectez-lui un chemin d'accès au rapport local au moment de l'exécution. Ce chemin est déterminé différemment selon qu'il s'agit d'un site Web ou d'un projet
Windows :
○ Pour un site Web, transmettez le nom du fichier de rapport local sous forme de paramètre de type chaîne dans la méthode Server.MapPath(). Ceci permet d'associer le rapport local au chemin d'accès du répertoire de fichiers du disque dur au moment de l'exécution.
Dim reportPath As String = Server.MapPath("CustomersViaIDR.rpt") string reportPath = Server.MapPath("CustomersViaIDR.rpt");
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
551
○ Pour un projet Windows, concaténez la propriété Application.StartupPath avec une barre oblique inverse et le nom du fichier de rapport local. Ceci permet d'associer le rapport au même répertoire que celui du fichier exécutable Windows.
Remarque
Au moment de la compilation, vous copierez le rapport dans le répertoire contenant le fichier exécutable.
Dim reportPath As String = Application.StartupPath & "\" &
"CustomersViaIDR.rpt" string reportPath = Application.StartupPath + "\\"
+"CustomersViaIDR.rpt";
6. Appelez la méthode Load() de l'instance ReportDocument et transmettez-lui la variable chaîne reportPath.
customersViaIdrReport.Load(reportPath) customersViaIdrReport.Load(reportPath);
7. Sur la ligne suivante, sous le chargement du rapport, liez la propriété ReportSource du contrôle
CrystalReportViewer à l'instance ReportDocument.
myCrystalReportViewer.ReportSource = customersViaIdrReport crystalReportViewer.ReportSource = customersViaIdrReport;
1.5.4.2.5.3 Pour tester le chargement du rapport
CustomersViaIDR
Contexte
Que vous ayez choisi d'instancier une classe de rapport incorporé ou une classe de rapport non incorporé via la classe ReportDocument, le nom de la variable utilisée est identique : customersViaIdrReport. Vous pouvez ainsi utiliser un bloc de code commun dans les procédures suivantes.
Vous êtes maintenant prêt à générer et exécuter votre projet.
Procédure
1. Dans le menu
Générer
, sélectionnez
Générer la solution
.
2. Si vous rencontrez des erreurs lors de la génération, corrigez-les.
3. Si vous utilisez un rapport non incorporé dans un projet Windows, recherchez l'exécutable Windows compilé dans le sous-répertoire \bin\ [Visual Basic] ou \bin\debug\ [C#], puis copiez le rapport dans ce sous-répertoire.
552
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Remarque
Pour que le rapport non incorporé soit chargé par l'exécutable Windows au moment de l'exécution, le rapport doit être stocké dans le même répertoire que l'exécutable Windows.
4. Dans le menu
Déboguer
, cliquez sur
Démarrer
.
Le rapport s'affiche et contient des données issues de la méthode statique IDataReader.
5. Revenez dans Visual Studio, puis cliquez sur
Arrêter
pour quitter le mode débogage.
1.5.4.3 Tutoriels : Connexion aux collections d'objets
Dans ce tutoriel sur la connectivité des données, vous allez apprendre à utiliser une collection d'objets comme source de données d'un rapport Crystal.
Introduction
SAP Crystal Reports a la capacité de créer des rapports à partir de données d'objet. Les données d'objet peuvent
être simples, telles que des données de chaîne ou d'entier, ou complexes, telles qu'une classe ou une collection.
Dans ce tutoriel, vous créez une application effectuant un rapport à partir d'une collection d'objets personnalisés.
Chaque objet représente des informations relatives à la Bourse. Lorsque vous créerez un rapport Crystal, vous accéderez à la classe Stock par le biais de l'Assistant de création de rapports, comme vous le faites pour une table de base de données, mais plutôt que d'ajouter des colonnes de table en tant que champs à afficher, vous ajouterez des propriétés de classe.
Le rapport accède à une ArrayList contenant plusieurs instances d'un objet Stock. Les propriétés de chaque instance Stock auront des valeurs uniques. Vous ajoutez des informations à l'ArrayList par programmation au moment de la conception, puis de façon dynamique au moment de l'exécution.
L'ArrayList renvoyée, qui formera une collection d'objets, sera affectée à la propriété SetDataSource du rapport
Crystal. Lorsque le rapport s'affichera, chaque objet de la collection d'objets formera une ligne de détails dans le rapport.
Exemple de code
Ce tutoriel fournit des exemples de code Visual Basic et C# qui illustrent la version terminée du projet. Suivez les instructions de ce tutoriel pour créer un projet ou ouvrez le projet d'exemple de code pour travailler à partir d'une version terminée.
Les exemples de code sont stockés dans des dossiers classés par langue et par type de projet. Les noms des dossiers de chaque version d'exemple de code sont les suivants :
● Site Web C# : CS_Web_Data_ObjectCollection
● Site Web Visual Basic : VB_Web_Data_ObjectCollection
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
553
Informations associées
Répertoire d'exemples de rapports [page 15]
1.5.4.3.1 Création de la classe Stock
Contexte
Dans cette section, vous allez créer la classe Stock. La classe Stock contient trois champs privés qui sont fournis en tant que propriétés publiques : Company, Volume et Price. SAP Crystal Reports 2008 permet de créer un rapport à partir de données de classe, telles que champs ou objets, et permet les appels dans un objet de manière répétée. L'attribut CrystalComplexTypeExpansionLevels permet de contrôler la profondeur de l'exploration.
Procédure
1. Dans l'
Explorateur de solutions
, cliquez avec le bouton droit de la souris sur le nom du site Web affiché en gras, puis cliquez sur
Ajouter un nouvel élément
.
2. Dans la boîte de dialogue
Ajouter un nouvel élément
: a. Dans le champ
Modèles Visual Studio installés
, sélectionnez
Classe
.
b. Dans le champ
Nom
, saisissez "Stock", puis cliquez sur
Ajouter
.
c. Dans la boîte de dialogue qui s'affiche, cliquez sur
Oui
.
Remarque
Dans Visual Studio 2005 ou version ultérieure, toutes les classes doivent être placées dans un dossier
App_Code si elles sont destinées à un usage général. Lorsque vous cliquez sur le bouton
Ajouter
, un message vous demande si vous souhaitez placer la classe dans ce dossier App_Code.
3. Pour pouvoir accéder à la classe Stock lorsque vous créez le rapport, celle-ci doit être de portée publique.
Vérifiez que la classe que vous avez créée est une classe publique. Dans le cas contraire, ajoutez le modificateur public à la signature de classe de manière à exposer la classe dans le concepteur
SAP Crystal Reports incorporé.
Public Class Stock
End Class public class Stock
{
public Stock()
{
}
}
4. Si vous effectuez le codage en langage Visual Basic, ajoutez un constructeur par défaut.
Sub New()
554
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
End Sub
5. Au sein de la classe, ajoutez trois champs privés.
Private _company As Company
Private _volume As Integer
Private _price As Double private Company _company; private double _price; private int _volume;
6. Créez une propriété nommée Price.
Public Property Price() As Double
Get
Return _price
End Get
Set(ByVal value As Double)
_price = value
End Set
End Property public double Price
{
get
{
return _price;
}
set
{
_price = value;
}
}
7. Créez une propriété nommée Volume.
Public Property Volume() As Integer
Get
Return _volume
End Get
Set(ByVal value As Integer)
_volume = value
End Set
End Property public int Volume
{
get
{
return _volume;
}
set
{
_volume = value;
}
}
8. Créez une propriété nommée Company.
Vous devez définir l'attribut CrystalComplexTypeExpansionLevels sur une valeur supérieure à 1 pour explorer en avant les données de classe. Si vous ne définissez pas l'attribut
CrystalComplexTypeExpansionLevels, SAP Crystal Reports ne pourra pas accéder aux données de
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
555
champ à l'intérieur de la classe Company. Vous créez ensuite une classe personnalisée Company ayant deux champs Chaîne.
<CrystalComplexTypeExpansionLevels(3)> _
Public Property Company() As Company
Get
Return _company
End Get
Set(ByVal value As Company)
_company = value
End Set
End Property
[CrystalDecisions.CrystalReports.Engine.CrystalComplexTypeExpansionLevels(3)]
public Company Company
{
get
{
return _company;
}
set
{
_company = value;
}
}
9. Enfin, créez un constructeur prenant les trois propriétés publiques en tant qu'arguments.
Public Sub New(ByVal company As Company, ByVal volume As Integer, ByVal price As
Double)
_company = company
_volume = volume
_price = price
End Sub public Stock(Company company, int volume, double price)
{
_company = company;
_volume = volume;
_price = price;
}
10. Après avoir créé la classe Stock, créez une classe Company qui fournit deux propriétés publiques : symbol et name.
Public Class Company
Private _symbol As String
Private _name As String
Sub New(ByVal symbol As String, ByVal name As String)
_symbol = symbol
_name = name
End Sub
Public Property Symbol() As String
Get
Return _symbol
End Get
Set(ByVal value As String)
_symbol = value
End Set
End Property
Public Property Name() As String
Get
Return _name
End Get
556
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Set(ByVal value As String)
_name = value
End Set
End Property public class Company {
private string _symbol;
private string _name;
public Company() {}
public Company(String symbol, String name)
{
_symbol = symbol;
_name = name;
}
public string Symbol
{
get { return _symbol; }
set { _symbol = value; }
}
public string Name
{
get { return _name; }
set { _name = value; }
}
}
11. Dans le menu
Générer
, cliquez sur
Générer le site Web
.
Résultats
Vous pouvez maintenant accéder à cet objet à partir du concepteur SAP Crystal Reports incorporé.
1.5.4.3.2 Connexion d'un rapport Crystal à l'objet Stock
Contexte
Dans cette section, vous allez créer un rapport Crystal dans le concepteur SAP Crystal Reports incorporé et le connecter à l'objet Stock.
Procédure
1. Cliquez avec le bouton droit de la souris sur le nom du projet, puis cliquez sur
Ajouter un nouvel élément
.
2. Dans la boîte de dialogue
Ajouter un nouvel élément
, sélectionnez
Rapport Crystal
.
3. Dans le champ
Nom
, saisissez "StockObjects.rpt", puis cliquez sur
Ajouter
.
4. Dans la boîte de dialogue
Galerie de rapports Crystal
, cliquez sur
OK
.
5. Dans la boîte de dialogue
Assistant de création de rapports standard
, développez
Données du projet
, puis le sous-nœud
Objets .NET
.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
557
La liste des classes du projet apparaît. Chaque classe a pour préfixe l'espace de noms du projet.
6. Développez la classe
Stock
pour afficher un sous-nœud pouvant être sélectionné.
7. Cliquez sur la flèche droite pour placer le sous-nœud de la classe Stock dans le panneau
Tables sélectionnées
, puis cliquez sur
Suivant
.
8. Développez
Stock
, cliquez sur le bouton
>>
pour déplacer toutes les colonnes dans le panneau
Champs à afficher
, puis cliquez sur
Suivant
.
9. Sélectionnez
Company.Symbol
, cliquez sur la flèche droite pour vous déplacer dans le panneau
Regrouper par
, puis cliquez sur
Terminer
.
1.5.4.3.3 Pour instancier le rapport StockObjects sous forme de rapport non incorporé et le lier au contrôle
CrystalReportViewer
Contexte
Durant la procédure
Configuration d'un projet [page 15] , vous avez placé un contrôle CrystalReportViewer dans
un Web Form ou Windows Form. Dans la procédure précédente, vous avez ajouté un rapport StockObjects au projet. Dans cette section, vous allez lier le rapport StockObjects à SAP Crystal Reports Viewer, attribuer à la source de données du rapport un ensemble d'objets, puis définir le contenu de cet ensemble par programmation.
Procédure
1. Ouvrez la classe code-behind par défaut, Default.aspx.cs ou Default.aspx.vb.
2. Au-dessus de la signature de classe, ajoutez une déclaration "Imports" [Visual Basic] ou "using"
[C#] au début de la classe pour l'espace de noms System.Collections.
Remarque
Cette référence permet d'accéder à la classe ArrayList. ArrayList implémente ICollection. Cette procédure qualifie ArrayList comme l'un des types de classe pouvant être utilisés pour générer un ensemble d'objets reconnu par SAP Crystal Reports.
Imports System.Collections
using System.Collections;
3. Ajoutez une nouvelle instance ArrayList de niveau classe et appelez-la stockValues.
Private stockValues As ArrayList private ArrayList stockValues;
558
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
4. Ajoutez une nouvelle déclaration de niveau classe pour la classe wrapper du rapport ReportDocument, avec le nom de variable stockObjectsReport. Définissez le modificateur d'accès à private.
Private stockObjectsReport As ReportDocument private ReportDocument StockObjectsReport;
, déclarez une variable chaîne, nommez-la reportPath et affectez-lui un chemin d'accès au rapport local au moment de l'exécution. Transmettez le nom du fichier de rapport local sous forme de paramètre de type chaîne dans la méthode Server.MapPath(). Ceci permet d'associer le rapport local au chemin d'accès de fichier au moment de l'exécution.
Dim reportPath As String = Server.MapPath("StockObjects.rpt") string reportPath = Server.MapPath("StockObjects.rpt");
6. Ajoutez deux sauts de ligne et instanciez la classe ReportDocument.
stockObjectsReport = New ReportDocument() stockObjectsReport = new ReportDocument();
7. Sur la ligne suivante, appelez la méthode Load() de l'instance ReportDocument et transmettez-lui la variable reportPath de type chaîne.
Remarque
La classe ReportDocument est un membre de l'espace de noms
CrystalDecisions.CrystalReports.Engine. Vous avez ajouté une déclaration "Imports" [Visual
Basic] ou "using" [C#] pour cet espace de noms dans la section Configuration d'un projet. Lorsque vous instanciez ReportDocument et chargez un rapport, vous accédez au rapport via le SDK.
stockObjectsReport.Load(reportPath) stockObjectsReport.Load(reportPath);
8. Définissez ensuite stockValues ArrayList comme source de données du rapport.
stockObjectsReport.SetDataSource(stockValues) stockObjectsReport.SetDataSource(stockValues);
9. Enfin, liez la propriété ReportSource du contrôle CrystalReportViewer à l'instance ReportDocument.
myCrystalReportViewer.ReportSource = stockObjectsReport crystalReportViewer.ReportSource = stockObjectsReport;
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
559
Résultats
A ce stade, le rapport StockObjects est lié à SAP Crystal Reports Viewer et la page affiche le rapport correct ; toutefois, le rapport est actuellement lié à une source de données vide, ce qui explique qu'il n'ait aucune information à afficher. Dans la section suivante, vous allez définir le contenu de stockValues ArrayList par programmation avec des exemples de données.
1.5.4.3.4 Définition par programmation du contenu de la collection d'objets
Procédure
1. Cliquez avec le bouton droit de la souris sur le Web Form dans l'
Explorateur de solutions
, puis cliquez sur
Afficher le code
.
2. Dans la classe, ajoutez une autre méthode d'assistance publique nommée
PopulateStockValuesArrayList(), sans valeur renvoyée.
Public Sub PopulateStockValuesArrayList()
End Sub public void PopulateStockValuesArrayList()
{
}
3. Dans la méthode PopulateStockValuesArrayList(), avant le code existant, créez un bloc conditionnel
If/Else vérifiant si un objet Session nommé stockValues existe.
If (Session("stockValues") Is Nothing) Then
Else
End If
{
} if(Session["stockValues"] == null)
{
} else
4. Dans le bloc If, instanciez une nouvelle méthode ArrayList().
stockValues = New ArrayList stockValues = new ArrayList();
5. Créez trois objets Company, chacun avec un symbole et un nom.
Dim c1 As Company = New Company("AWRK", "Arthur, Wren, Roberts and King")
Dim c2 As Company = New Company("CTSO", "Control Systems and Operations")
Dim c3 As Company = New Company("LTWR", "Letter Works")
Company c1 = new Company("AWRK","Arthur, Wren, Roberts and King");
560
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Company c2 = new Company("CTSO","Control Systems and Operations");
Company c3 = new Company("LTWR","Letter Works");
6. Utilisez ensuite le constructeur surchargé de la classe Stock pour créer et instancier trois instances de Stock.
Dim s1 As Stock = New Stock(c1, 1200, 28.47)
Dim s2 As Stock = New Stock(c2, 800, 128.69)
Dim s3 As Stock = New Stock(c3, 1800, 12.95)
Stock s1 = new Stock(c1,1200,28.47);
Stock s2 = new Stock(c2,800,128.69);
Stock s3 = new Stock(c3,1800,12.95);
7. Ajoutez ces trois instances à stockValues.
stockValues.Add(s1) stockValues.Add(s2) stockValues.Add(s3) stockValues.Add(s1); stockValues.Add(s2); stockValues.Add(s3);
8. Ajoutez l'instance stockValues ArrayList mise à jour à Session.
Session("stockValues") = stockValues
Session["stockValues"]=stockValues;
9. Dans le bloc Else, écrivez une ligne pour affecter les valeurs actuelles contenues dans Session à stockValues ArrayList.
stockValues = Ctype(Session("stockValues"), ArrayList) stockValues = (ArrayList)Session["stockValues"];
10. Appelez enfin PopulateStockValuesArrayList() à partir de la méthode
ConfigureCrystalReports().
Il doit s'agir de la première ligne de code exécutée dans la méthode ConfigureCrystalReports().
PopulateStockValuesArrayList()
PopulateStockValuesArrayList();
1.5.4.3.5 Définition dynamique du contenu de la collection d'objets
Dans la section précédente, vous avez défini par programmation le contenu de la collection d'objets. Dans cette section, vous allez apprendre à ajouter de façon dynamique des informations à la source de données à partir de votre site Web. Ces informations seront mises à jour automatiquement dans votre rapport.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
561
1.5.4.3.5.1 Pour ajouter des contrôles au Web Form
Procédure
1. Ouvrez le fichier Default.aspx en mode Design.
Remarque
Pour ouvrir une page ASPX en mode Design, ouvrez d'abord le fichier, puis cliquez sur le bouton
Design
au bas du formulaire.
2. Cliquez sur le contrôle
CrystalReportViewer
pour le sélectionner.
3. Appuyez sur la flèche gauche du clavier afin de faire apparaître un curseur clignotant, puis appuyez plusieurs fois sur la touche Entrée.
4. Dans la
Boîte à outils
, faites glisser un contrôle
TextBox
sur le Web Form.
5. A partir du menu
Propriétés
, attribuez à ID la valeur "symbol".
6. Dans la
Boîte à outils
, faites glisser un contrôle
TextBox
sur le Web Form.
7. A partir du menu
Propriétés
, définissez l'ID sur "name".
8. Faites glisser un deuxième contrôle
TextBox
sur le Web Form. Positionnez le deuxième contrôle
TextBox
sous le premier.
9. Dans la fenêtre
Propriétés
, attribuez à ID la valeur "price".
10. Faites glisser un troisième contrôle
TextBox
sur le Web Form. Positionnez-le sous le deuxième contrôle
TextBox
.
11. Dans la fenêtre
Propriétés
, attribuez à ID la valeur "volume".
Remarque
A ce stade, il peut être utile d'ajouter du texte à côté de chaque contrôle
TextBox
afin de pouvoir identifier le contrôle correspondant à chaque paramètre.
12. Dans la
Boîte à outils
, faites ensuite glisser un contrôle
Button
sur le Web Form. Placez ce contrôle sous les trois contrôles
TextBox
.
13. Dans la fenêtre
Propriétés
: a. Attribuez à la propriété ID du contrôle
Button
la valeur "addStockInformation".
b. Attribuez à la propriété Text du contrôle
Button
la valeur "Ajouter des informations boursières".
14. Enfin, cliquez deux fois sur le bouton "Ajouter des informations boursières".
Cliquez deux fois sur le contrôle
Button
pour ouvrir la classe code-behind et générer automatiquement un gestionnaire d'événements addStockInformation_Click().
562
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.5.4.3.5.2 Pour ajouter des informations à la collection
Contexte
Dans cette section, vous allez écrire du code pour le gestionnaire d'événements addStockInformation_Click() qui ajoutera les informations saisies dans le Web Form à la collection stockValues.
Procédure
1. Dans le gestionnaire d'événements addStockInformation_Click(), créez et instanciez un objet Stock.
Dim temp As Stock = New Stock()
Stock temp = new Stock();
2. Dans la méthode addStockInformation_Click(), créez un bloc try/catch.
Les informations saisies dans un Web Form sont de type chaîne. Dans la mesure où deux des champs de la classe Stock sont des champs numériques, vous devrez écrire du code pour convertir les valeurs de type chaîne du Web Form en valeurs numériques. L'instruction try/catch permet d'éviter les défaillances de votre application Web lors de la conversion en raison des erreurs d'incompatibilité de type.
Try
Catch ex As Exception
End Try
{
} try
{
} catch
3. Dans le bloc Try, affectez la valeur des champs symbol et name du Web Form à la propriété Company de l'objet Stock.
temp.Company = New Company(symbol.Text, name.Text) temp.Company = new Company(symbol.Text, name.Text);
4. Sur la ligne suivante, affectez la valeur du champ price du Web Form à la propriété Price de l'objet Stock.
Convertissez la valeur provenant du Web Form en un double avant de procéder à l'affectation.
temp.Price = CType(price.Text, Double) temp.Price = Convert.ToDouble(price.Text);
5. Affectez ensuite la valeur du champ volume du Web Form à la propriété Volume de l'objet Stock. Convertissez la valeur provenant du Web Form en un entier avant de procéder à l'affectation.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
563
temp.Volume = CType(volume.Text, Integer) temp.Volume = Convert.ToInt32(volume.Text);
6. En dehors du bloc try/catch, ajoutez l'objet Stock à stockValues ArrayList.
stockValues.Add(temp) stockValues.Add(temp);
7. Mettez à jour la valeur de stockValues actuellement contenue dans Session.
Session("stockValues") = stockValues
Session["stockValues"] = stockValues;
8. Enfin, appelez la méthode ConfigureCrystalReports(). Cette opération permettra de lier à nouveau le rapport à la collection d'objets stockValues mise à jour.
ConfigureCrystalReports()
ConfigureCrystalReports();
9. Dans le menu
Générer
, cliquez sur
Générer la solution
.
10. Dans le menu
Déboguer
, cliquez sur
Démarrer le débogage
.
Si vous ne rencontrez aucune erreur de génération, la page Default.aspx est chargée dans le navigateur avec trois valeurs par défaut. Pour ajouter d'autres valeurs, remplissez les contrôles TextBox selon les besoins, puis cliquez sur le bouton Ajouter des informations boursières. Le rapport sera mis à jour de façon dynamique.
Résultats
Lorsque vous exécuterez votre site Web, le rapport sera chargé dans la fenêtre du navigateur avec les trois
dessus du rapport. Grâce à ces contrôles, vous pouvez effectuer une mise à jour dynamique de la collection d'objets et visualiser les résultats de cette mise à jour dans le rapport.
1.5.4.3.6 Addenda : Amélioration du rapport
Les collections d'objets sont des sources de données polyvalentes pour les rapports Crystal. Elles permettent d'écrire des classes personnalisées qui définissent par programmation ou de façon dynamique le contenu d'objets avec des données. Les collections d'objets peuvent également servir à augmenter le nombre de sources de données fournies avec une installation SAP Crystal Reports, version développeur pour Microsoft Visual Studio, par défaut en permettant d'écrire vos propres objets d'accès aux données.
564
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
A ce stade, vous disposez d'un site Web pleinement opérationnel qui affiche un rapport Crystal se basant sur une collection d'objets. Le site affiche des informations saisies par programmation dans une collection d'objets, ainsi que des informations ajoutées de façon dynamique au moment de l'exécution.
Dans cette section, vous allez ajouter deux diagrammes, un champ calculé et des informations de résumé.
1.5.4.3.6.1 Pour ajouter un diagramme simple à un rapport
Procédure
1. Dans l'Explorateur de solutions, ouvrez le fichier StockObjects.rpt.
2. Dans le menu
Crystal Reports
, sélectionnez
Insérer
, puis cliquez sur
Diagramme
.
3. Dans la boîte de dialogue
Expert Diagramme
, sélectionnez un
Diagramme à secteurs
.
4. Dans
Champs du rapport
, sélectionnez l'onglet
Données
.
5. Sélectionnez
Stock.Company-Symbol
, puis cliquez sur la flèche droite tout en haut pour déplacer le champ
Stock.Company-Symbol
dans le champ
Au changement de
.
6. Sélectionnez
Stock.Volume
, puis cliquez sur la flèche Droite tout en bas pour placer le champ
Stock.Volume
dans le champ
Afficher les valeurs
.
7. Cliquez sur
OK
.
Une section En-tête du rapport est créée et un objet diagramme est ajouté à cette section.
8. Dans le menu
Déboguer
, cliquez sur
Démarrer le débogage
.
Si vous ne rencontrez aucune erreur de génération, la page Default.aspx est chargée dans le navigateur.
1.5.4.3.6.2 Pour ajouter un diagramme se basant sur un champ de formule
Contexte
Dans cette section, vous allez créer un diagramme se basant sur des informations d'agrégation. Vous allez d'abord créer une formule permettant de calculer la valeur d'une participation donnée, puis créer un diagramme à secteurs qui affiche la valeur proportionnelle de toutes les participations.
Procédure
1. Dans le menu
Crystal Reports
, sélectionnez
Rapport
, puis cliquez sur
Atelier de formules
.
2. Dans la boîte de dialogue
Atelier de formules
, sélectionnez
Champs de formule
.
3. Cliquez sur le bouton
Nouveau
pour créer une formule.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
565
4. Dans la boîte de dialogue
Nom de la fonction personnalisée
, saisissez "Valeur".
5. Cliquez sur
Utiliser l'éditeur
.
6. Ajoutez du code pour multiplier la valeur du champ price par la
valeur
du champ
volume
.
{Stock.Volume}*{Stock.Price}
7. Cliquez sur
Enregistrer et fermer
.
8. Dans le menu
Crystal Reports
, sélectionnez
Insérer
, puis cliquez sur
Diagramme
.
9. Dans la boîte de dialogue
Expert Diagramme
, sélectionnez un
Diagramme à secteurs
.
10. Cliquez sur l'onglet
Données
.
11. Sélectionnez
Stock.Company-Symbol
, puis cliquez sur la flèche droite tout en haut pour déplacer le champ
Stock.Company-Symbol
dans le champ
Au changement de
.
12. Sélectionnez
Valeur
, puis cliquez sur la flèche Droite tout en bas pour placer la formule
Valeur
dans le champ
Afficher les valeurs
.
13. Cliquez sur l'onglet
Texte
.
14. Désactivez la case à cocher
Texte automatique
située à côté de
Titre
.
15. Saisissez
Valeur / Symbol
dans le champ
Titre
.
16. Cliquez sur
OK
.
17. Une section En-tête du rapport est créée et un objet diagramme est ajouté à cette section.
Remarque
Pour repositionner les objets dans un rapport Crystal, faites-les glisser à l'aide de la souris et placez-les à l'endroit voulu. Vous pouvez utiliser le bouton
Aperçu Rapport principal
situé en bas du formulaire pour afficher un aperçu du rapport.
1.5.4.3.6.3 Pour ajouter des champs de formule et de résumé au rapport
Contexte
Dans cette section, vous allez ajouter un champ de formule au rapport, ainsi qu'un champ de résumé qui calcule la valeur totale de votre portefeuille.
Procédure
1. Développez le nœud
Champs de formule
de l'
Explorateur de champs
.
2. Faites glisser la formule
Valeur
sur le rapport. Positionnez ce champ dans la section Détails du rapport.
Remarque
Vous pouvez également afficher l'
Explorateur de champs
en ouvrant le menu
Crystal Reports
, puis en cliquant sur
Explorateur de champs
.
566
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Ce champ affichera la valeur de chaque ligne. Utilisez un champ de résumé pour afficher la valeur totale de votre portefeuille.
3. Dans le menu
Crystal Reports
, sélectionnez
Insérer
, puis cliquez sur
Résumé
.
4. Dans la boîte de dialogue Insérer un résumé : a. Sélectionnez la formule
Valeur
dans le champ
Choisir le champ à résumer
.
b. Sélectionnez
Somme
dans le champ
Calculer ce résumé
.
c. Sélectionnez
Total général
dans le champ
Emplacement du résumé
.
5. Cliquez sur
OK
.
Un champ de résumé est alors ajouté au rapport.
6. Dans le menu
Déboguer
, cliquez sur
Démarrer le débogage
.
Si vous ne rencontrez aucune erreur de génération, la page Default.aspx est chargée dans le navigateur.
1.5.5 Tutoriels supplémentaires
Cette section présente un ensemble de tutoriels supplémentaires qui ne se rattachent à aucune catégorie en particulier.
Cette section présente un ensemble de tutoriels supplémentaires qui ne se rattachent à aucune catégorie en particulier.
1.5.5.1 Tutoriel : Configuration de la prise en charge de client multilingue
Dans ce tutoriel, vous allez apprendre à configurer la prise en charge de client multilingue dans un site Web ou un projet Windows.
Introduction
SAP Crystal Reports, version développeur pour Microsoft Visual Studio inclut la prise en charge des clients Web et
Windows multilingues via une localisation dynamique.
La localisation dynamique permet aux utilisateurs d'afficher des info-bulles ainsi que d'autres contenus du contrôle CrystalReportViewer dans la langue de leur choix.
Dans ce tutoriel, vous allez étudier les points suivants :
● Comment configurer les ressources de langue du contrôle CrystalReportViewer sur le client Windows ou le serveur Web.
● Comment configurer l'accès du client à la localisation de plusieurs manières.
● Comment configurer les paramètres globaux et locaux.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
567
Exemple de code
Ce tutoriel fournit des exemples de code Visual Basic et C# qui illustrent la version terminée du projet. Suivez les instructions de ce tutoriel pour créer un projet ou ouvrez le projet d'exemple de code pour travailler à partir d'une version terminée.
Les exemples de code sont stockés dans des dossiers classés par langue et par type de projet. Les noms des dossiers de chaque version d'exemple de code sont les suivants :
● Site Web C# : CS_Web_Multilingual
● Projet Windows C# :CS_Win_Multilingual
● Site Web Visual Basic : VB_Web_Multilingual
● Projet Windows Visual Basic :VB_Win_Multilingual
Informations associées
Répertoire d'exemples de rapports [page 15]
1.5.5.1.1 Pour vérifier les paramètres régionaux par défaut d'un rapport
Prérequis
Cette procédure fonctionne uniquement avec un projet créé à partir de la procédure
. La section Configuration d'un projet contient une configuration de références d'espaces de noms et de code spécifique nécessaire à cette procédure. Il est impossible de suivre cette procédure sans cette configuration.
Contexte
Pour commencer, vous allez générer et compiler un site Web ou un projet Windows, puis afficher les paramètres de langue par défaut de la barre d'outils CrystalReportViewer.
Procédure
1. Dans le menu
Générer
, sélectionnez
Générer la solution
.
2. Si vous rencontrez des erreurs lors de la génération, corrigez-les.
3. Dans le menu
Déboguer
, cliquez sur
Démarrer
.
568
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Le rapport Hierarchical Grouping s'affiche.
4. Faites glisser la souris sur les boutons de la barre d'outils du contrôle
CrystalReportViewer
.
Des info-bulles s'affichent dans la langue par défaut.
5. Revenez dans Visual Studio, puis cliquez sur
Arrêter
pour quitter le mode débogage.
Étapes suivantes
Vous pouvez maintenant configurer des fichiers de ressource personnalisée localisés pour des langues personnalisées sur l'ordinateur.
1.5.5.1.2 Configuration du répertoire de fichiers de ressource personnalisée
Contexte
SAP Crystal Reports, version développeur pour Microsoft Visual Studio est conçu pour fonctionner avec plusieurs fichiers de ressources de langue par défaut et avec tous les fichiers de ressources de langue personnalisés qui ont
été créés et compilés par le développeur.
Les fichiers de ressource de langue par défaut sont les suivants :
● Anglais (en)
● Français (fr)
● Allemand (de)
● Espagnol (es)
● Italien (it)
● Japonais (jp)
● Coréen (ko)
● Chinois simplifié (zh-chs)
● Chinois traditionnel (zh-cht)
Remarque
Les fichiers de ressources par défaut sont fournis dans le package d'exemples de code du SDK de
SAP Crystal Reports .NET. Extrayez le dossier LanguageResourceFiles.zip dans le répertoire racine du disque dur.
Outre les langues par défaut, vous pouvez créer vos propres fichiers de ressource de langue personnalisée pour une autre langue.
Dans ce tutoriel, vous allez effectuer la compilation des fichiers de ressource personnalisée en utilisant un dossier non compilé contenant les fichiers de ressource de langue par défaut Espagnol. Vous devrez également renommer ce dossier pour représenter une langue personnalisée.
Commencez par configurer un répertoire de fichiers de ressource personnalisée destiné à contenir les fichiers.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
569
Procédure
1. Accédez au répertoire racine du disque dur et localisez le dossier LanguageResourceFiles.
2. Renommez le dossier en
CrystalReportViewer_resource_files
.
Remarque
Cette procédure suppose que le répertoire racine se trouve sur le lecteur C:.
3. Dans l'Explorateur Windows, ouvrez le dossier nommé C:\CrystalReportViewer_resource_files.
Localisez le sous-dossier es qui contient des chaînes de langue en espagnol sous forme de fichiers .txt.
L'espagnol étant déjà fourni comme l'une des langues compilées par défaut, vous utiliserez ce répertoire pour vous entraîner à créer un fichier de ressources personnalisé. Pour ce faire, vous allez renommer le répertoire
"espagnol" pour utiliser à la place "roumain", langue qui ne fait pas partie des langues par défaut. Vous devez ensuite tester ce répertoire comme s'il contenait des chaînes de langue roumaine.
4. Renommez le répertoire es en ro.
Remarque ro est le code d'abréviation de la langue roumaine.
Étapes suivantes
Dans ce tutoriel, vous allez utiliser les éléments suivants :
● Ressources par défaut pour trois langues fournies :
○ Allemand (de)
○ Français (fr)
○ Italien (it)
● Ressources compilées manuellement pour une langue personnalisée :
○ Roumain (ro)
compiler les fichiers de ressource personnalisée pour le dossier de langue ro.
Informations associées
Répertoire d'exemples de rapports [page 15]
570
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.5.5.1.3 Compilation des fichiers de ressource
Contexte
Vous pouvez maintenant compiler les fichiers de ressource pour le sous-répertoire de langue personnalisée que vous avez créé dans la section précédente.
Si vous avez besoin de compiler des fichiers de ressource personnalisée pour des langues avec des scripts non latin tels que le cyrillique, le chinois, le coréen, le japonais, l'hébreu et l'araméen, vous devez configurer les paramètres régionaux d'un environnement pour ces langues avant d'exécuter la compilation. Cela garantit la
Procédure
1. Ouvrez le sous-répertoire de langue ro.
Ce tutoriel utilise trois fichiers :
○ CRWebFormViewer.txt
○ SCRShared.txt
○ Viewer.txt
Les deux premiers fichiers contiennent des chaînes de ressource pour le contrôle Web
CrystalReportViewer. Le dernier fichier contient des chaînes de ressource pour le contrôle Windows
CrystalReportViewer.
2. Ouvrez le fichier Viewer.txt pour afficher son contenu.
Remarque
Ce dossier de langue roumaine contient actuellement des chaînes de langue espagnole. Pour en savoir plus, voir la procédure précédente de ce tutoriel,
Configuration du répertoire de fichiers de ressource personnalisée [page 569]
.
Les chaînes localisées du contrôle CrystalReportViewer s'affichent dans la langue actuelle.
3. Fermez le fichier Viewer.txt.
4. Dans le menu
Démarrer
, accédez à
Programmes Visual Studio Outils Visual Studio Invite de commandes de Visual Studio
.
5. Remplacez le répertoire affiché par le répertoire de fichiers de ressource : cd c:\CrystalReportViewer_resource_files\ro\
6. Exécutez l'utilitaire resgen pour compiler les fichiers .txt, en suivant la syntaxe affichée ci-dessous :
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
571
Remarque
N'insérez pas d'espace avant ou après la virgule.
resgen /compile CRWebFormViewer.txt,CrystalDecisions.Web.resources
resgen /compile SCRShared.txt,CrystalDecisions.Shared.resources
resgen /compile Viewer.txt,CrystalDecisions.Windows.Forms.resources
7. Exécutez l'utilitaire al.exe afin de créer un fichier DLL pour chaque fichier de ressource.
Remarque
Dans le nom final, l'extension resources.dll est remplacée par custom_resources.dll.
al.exe /t:lib /embed:CrystalDecisions.Web.resources /culture:ro / out:CrystalDecisions.Web.custom_resources.dll
al.exe /t:lib /embed:CrystalDecisions.Shared.resources /culture:ro / out:CrystalDecisions.Shared.custom_resources.dll
al.exe /t:lib /embed:CrystalDecisions.Windows.Forms.resources /culture:ro / out:CrystalDecisions.Windows.Forms.custom_resources.dll
8. Saisissez dir pour afficher les fichiers DLL compilés.
Vous avez terminé la compilation des ressources pour ce sous-répertoire.
9. Si vous souhaitez compiler d'autres langues personnalisées, répétez les étapes de cette section pour chaque langue.
Conseil
Pour gagner du temps, saisissez les six commandes dans un fichier batch. N'oubliez pas que vous devez exécuter le fichier batch à partir de l'invite de commandes de Visual Studio pour accéder aux variables d'environnement correctes.
10. Lorsque vous avez terminé la compilation des ressources personnalisées, fermez
Invite de commandes de
Visual Studio 2005
.
Étapes suivantes
Dans la section suivante, vous allez configurer votre site Web ou projet Windows de sorte qu'il puisse accéder aux ressources personnalisées à partir de leur emplacement global ou personnalisé.
Si vous créez un site Web, effectuez la procédure
Pour configurer des ressources personnalisées globales ou locales [page 573]
.
Si vous créez un projet Windows, effectuez la procédure
Configuration de la prise en charge de client multilingue pour une application Windows [page 579] .
572
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.5.5.1.4 Configuration de la prise en charge de client multilingue pour un site Web
1.5.5.1.4.1 Pour configurer des ressources personnalisées globales ou locales
Le site Web accède à des ressources de langue de manière globale (au niveau du système) ou locale (depuis le dossier de site Web).
Vous pouvez placer les ressources de langue personnalisées dans un emplacement global ou local. Les ressources de langue par défaut sont toujours disponibles de manière globale.
Remarque
Si les fichiers de ressources par défaut ne sont pas inclus dans l'installation du produit, ils peuvent être téléchargés à partir du site Web de SAP BusinessObjects, puis installés indépendamment.
Pour exposer les ressources personnalisées de manière globale, vous devez les placer dans un emplacement central du répertoire de fichiers, où elles peuvent être partagées par plusieurs applications Web. Pour accéder ensuite à ces ressources globales dans un site Web spécifique, vous devez placer une référence au chemin du répertoire de fichiers des ressources globales dans le fichier Web.config. Pour que le chargement d'une ressource globale s'effectue correctement, le nom du dossier contenant les fichiers de la ressource doit correspondre aux paramètres régionaux de la langue.
Pour exposer les ressources personnalisées de manière locale, vous devez les placer directement dans le dossier du site Web. Pour que le chargement d'une ressource locale s'effectue correctement, la culture des fichiers de ressource et le nom du dossier contenant les fichiers de ressource doivent correspondre aux paramètres régionaux de langue.
L'approche globale est plus courante pour les sites Web, car elle permet de desservir tous les sites Web à partir d'un seul emplacement sur le serveur Web et d'éviter la redondance et le risque de divergence entre les versions.
Pour accéder aux ressources personnalisées globales (approche plus classique pour les sites Web)
● Dans le fichier Web.config, ajoutez une clé globalResourcePath au nœud appSettings.
<appSettings>
<add key="globalResourcePath" value="c:\CrystalReportViewer_resource_files\"/>
</appSettings>
Pour accéder aux ressources personnalisées locales (approche moins classique pour les sites Web)
● Copiez le sous-répertoire de ressources personnalisées (dans le cas présent, le sous-répertoire ro) du dossier C:\CrystalReportViewer_resource_files\\ dans le répertoire bin du dossier du site Web. S'il n'existe aucun répertoire bin dans votre projet Web, créez-en un en cliquant avec le bouton droit de la souris sur le nom du projet et en sélectionnant
Nouveau dossier
. Nommez le nouveau dossier
bin
.
Remarque
Si vous avez ajouté une clé globalResourcePath comme indiqué pour les ressources globales, les ressources locales sont ignorées. En effet, les ressources globales sont prioritaires sur les ressources locales dans la hiérarchie d'accès.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
573
Votre site Web est maintenant configuré pour accéder aux ressources de langue personnalisées de manière globale ou locale et pour accéder aux ressources de langue par défaut de manière globale. Toutefois, aucune langue particulière n'a encore été indiquée pour l'affichage. A ce stade, le contrôle CrystalReportViewer conserve donc les paramètres de langue par défaut.
Dans les sections suivantes, vous allez en savoir plus sur la localisation basée sur le navigateur, sur la page et sur l'environnement du serveur Web.
1.5.5.1.4.2 Pour configurer la localisation basée sur le navigateur
Contexte
Dans cette section, vous allez découvrir le scénario de localisation dynamique basée sur le navigateur. Dans ce scénario, une propriété du contrôle CrystalReportViewer détermine que la localisation dynamique sera basée sur les paramètres de langue du navigateur client.
Dans ce scénario, étant donné que la localisation est basée sur le navigateur, le navigateur de chaque utilisateur peut extraire une langue différente pour le contrôle CrystalReportViewer. Ce scénario offre un maximum de souplesse lorsqu'un large éventail de navigateurs clients avec de nombreux paramètres de langues différents doivent se connecter au site Web.
Procédure
1. Démarrez le navigateur.
Remarque
Ce tutoriel suppose que vous utilisez Internet Explorer, mais les autres navigateurs compatibles HTML 4.0 sont également compatibles.
2. Dans le menu
Outils
d'Internet Explorer, cliquez sur
Options Internet
.
3. Dans l'onglet
Général
de la boîte de dialogue
Options Internet
, cliquez sur
Langues
.
4. Dans la boîte de dialogue
Langues
, cliquez sur
Ajouter
.
5. Ajoutez les quatre langues suivantes :
○ Allemand (Autriche) [de-at]
○ France (France) [fr]
○ Italien (Italie) [it]
○ Roumain [ro]
6. Sélectionnez
Italien (Italie) [it]
et cliquez sur
Monter
. Répétez l'opération jusqu'à ce que
Italien (Italie) [it]
se trouve en haut de la liste.
7. Cliquez sur
OK
, puis de nouveau sur
OK
et fermez le navigateur.
8. Ouvrez votre site Web dans Visual Studio, puis générez-le et compilez-le.
574
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
9. Faites glisser la souris sur les boutons de la barre d'outils
CrystalReportViewer
.
Les chaînes d'info-bulles s'affichent toujours en anglais, ignorant les paramètres de langue du navigateur.
Vous devez configurer un paramètre nommé UseBrowserLocale dans le fichier Web.config du projet de sorte que le contrôle CrystalReportViewer respecte le paramètre de langue du navigateur lors de l'affichage des valeurs de chaînes d'info-bulles.
10. Fermez le navigateur pour quitter le mode débogage.
11. Ouvrez le fichier Web.config.
12. Dans la balise <configuration>, saisissez les balises imbriquées suivantes pour attribuer la valeur True à la propriété UseBrowserLocale.
Un fichier Web.config ne peut avoir qu'un seul bloc configSections. Ce bloc doit être le premier enfant de la balise configuration. Si le fichier Web.config contient déjà un bloc configSections, modifiez cette section pour inclure les balises sectionGroup et section comme indiqué ci-dessous.
Remarque
Dans les versions précédentes de SAP Crystal Reports, les propriétés CrystalReportViewer incluaient une propriété UseBrowserLocale. Cette propriété est maintenant désapprouvée et a été remplacée par le paramètre ci-dessus dans le fichier Web.config. Si aucune entrée n'est placée dans le fichier Web.config, la propriété UseBrowserLocale a la valeur par défaut False.
<configSections>
<sectionGroup name="businessObjects">
<sectionGroup name="crystalReports">
<section name="crystalReportViewer"
type="System.Configuration.NameValueSectionHandler" />
</sectionGroup>
</sectionGroup>
</configSections>
<businessObjects>
<crystalReports>
<crystalReportViewer>
<add key="UseBrowserLocale" value="true"/>
</crystalReportViewer>
</crystalReports>
</businessObjects>
13. Régénérez et recompilez l'application.
14. Faites glisser la souris sur les boutons de la barre d'outils
CrystalReportViewer
.
Les chaînes d'info-bulles s'affichent maintenant en italien. Dans l'étape suivante, vous allez remplacer les paramètres de langue du navigateur par l'allemand.
15. Dans le menu
Outils
d'Internet Explorer, cliquez sur
Options Internet
.
16. Dans l'onglet
Général
de la boîte de dialogue
Options Internet
, cliquez sur
Langues
.
17. Sélectionnez
Allemand (Autriche) [de-at]
et cliquez sur
Monter
. Répétez l'opération jusqu'à ce que
Allemand
(Autriche) [de-at]
se trouve en haut de la liste.
18. Cliquez sur
OK
, puis de nouveau sur
OK
pour revenir au navigateur.
19. Cliquez sur
Actualiser
.
20. Faites glisser la souris sur les boutons de la barre d'outils
CrystalReportViewer
.
Les chaînes d'info-bulles s'affichent maintenant en allemand.
21. Répétez ce processus pour
Français (France) [fr]
et
Roumain [ro]
.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
575
Dans chaque cas, les préférences de langue du navigateur déterminent la chaîne affichée dans le contrôle
CrystalReportViewer.
Remarque
Dans ce tutoriel, vous avez compilé les ressources de langue roumaine personnalisées selon des chaînes de langue empruntées à un répertoire de langue espagnole, ce qui signifie que les info-bulles roumaines personnalisées s'afficheront en espagnol.
22. Revenez dans Visual Studio, puis cliquez sur
Arrêter
pour quitter le mode débogage.
Résultats
Vous avez réussi à configurer la localisation dynamique à l'aide des paramètres du navigateur. Dans la section suivante, vous allez apprendre à configurer la localisation à l'aide d'un paramètre de la page ASPX.
1.5.5.1.4.3 Pour configurer la localisation basée sur la page pour une page Web
Contexte
Dans cette section, vous allez découvrir le scénario de localisation dynamique basée sur la page. Dans ce scénario, une directive Page de la page Default.aspx détermine la localisation dynamique.
Etant donné que la localisation est basée sur la page, chaque page d'un site Web peut afficher une langue différente et ignorer les paramètres de langue définis dans les paramètres régionaux du navigateur. Ce scénario est donc utile lorsque vous souhaitez contrôler les paramètres de langue affichés page par page.
Procédure
1. Ouvrez le fichier Web.config.
2. Dans la balise <configuration>, saisissez les balises imbriquées suivantes pour attribuer la valeur False à la propriété UseBrowserLocale.
Remarque
Dans les versions précédentes de SAP Crystal Reports, les propriétés CrystalReportViewer incluaient une propriété UseBrowserLocale. Cette propriété est maintenant désapprouvée et a été remplacée par le paramètre ci-dessus dans le fichier Web.config. Si aucune entrée n'est placée dans le fichier Web.config, la propriété UseBrowserLocale a la valeur par défaut False.
<configSections>
576
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
<sectionGroup name="businessObjects">
<sectionGroup name="crystalReports">
<section name="crystalReportViewer"
type="System.Configuration.NameValueSectionHandler" />
</sectionGroup>
</sectionGroup>
</configSections>
<businessObjects>
<crystalReports=>
<crystalReportViewer>
<add key="UseBrowserLocale" value="false"/>
</crystalReportViewer>
</crystalReports>
</businessObjects>
3. Ouvrez la page
Default.aspx
en mode
Design
.
4. Cliquez sur la page
Default.aspx
pour la sélectionner.
5. Dans la fenêtre
Propriétés
, attribuez à la propriété
Culture
la valeur
it-IT
.
Si la propriété
Culture
n'est pas visible, sélectionnez
Document
dans la liste située en haut de la fenêtre
Propriétés
.
6. Régénérez et recompilez l'application.
7. Faites glisser la souris sur les boutons de la barre d'outils
CrystalReportViewer
.
Les chaînes d'info-bulles s'affichent en italien.
8. Revenez dans Visual Studio, puis cliquez sur
Arrêter
pour quitter le mode débogage.
Résultats
Dans ce scénario, les paramètres suivants ont été configurés :
● La valeur False a été attribuée à la propriété CrystalReportViewer.UseBrowserLocale. Par conséquent, le paramètre de langue du navigateur, qui avait pour valeur Espagnol dans la procédure précédente, est ignoré.
● La propriété Culture de la directive Page a pour valeur l'italien.
Les chaînes d'info-bulles s'affichent donc en italien.
Étapes suivantes
Vous avez réussi à configurer la localisation dynamique à l'aide des paramètres basés sur la page. Dans la section suivante, vous allez apprendre à configurer la localisation à l'aide des paramètres régionaux d'environnement du serveur Web.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
577
1.5.5.1.4.4 Pour configurer la localisation basée sur l'environnement pour un site Web
Contexte
Dans cette section, vous allez découvrir le scénario de localisation dynamique basée sur l'environnement du serveur Web. Dans ce scénario les paramètres régionaux de l'environnement du serveur Web déterminent la localisation dynamique.
Dans ce scénario, la localisation étant basée sur l'environnement, la totalité du site Web s'affiche dans une seule langue. Ce scénario est donc utile lorsque vous souhaitez limiter la langue affichée pour la totalité du site Web à la langue configurée dans les paramètres régionaux de l'environnement du serveur Web.
Remarque
Les paramètres régionaux de l'environnement sont les paramètres par défaut du site Web. Si vous choisissez de configurer la propriété Culture d'une directive Page donnée ou la propriété UseBrowserLocale d'un contrôle CrystalReportViewer particulier dans votre site Web, ces configurations remplaceront les paramètres régionaux par défaut de l'environnement et vous fourniront une localisation plus personnalisée au niveau du contrôle Page ou CrystalReportViewer.
Procédure
1. Ouvrez la page
Default.aspx
en mode
Design
.
"Document" s'affiche en haut de la fenêtre Propriétés.
2. Dans la fenêtre
Propriétés
, désélectionnez la propriété
Culture
.
3. Sur l'ordinateur de développement (en l'occurrence votre serveur Web dans ce tutoriel), remplacez les paramètres régionaux par défaut de l'environnement par
Allemand (Autriche)
dans le panneau de configuration sous
Options régionales
.
Remarque
Pour avoir des instructions détaillées sur la configuration correcte des paramètres régionaux de l'environnement dans Windows XP ou Windows 2000, voir la section à la fin de ce tutoriel :
Configuration des paramètres régionaux d'un environnement [page 581]
4. Si vous devez redémarrer l'ordinateur pour appliquer les paramètres régionaux, faites-le maintenant.
5. Démarrez de nouveau le site Web dans
Visual Studio
, puis générez-le et compilez-le.
6. Faites glisser la souris sur les boutons de la barre d'outils
CrystalReportViewer
.
7. Lorsque vous aurez vérifié la langue affichée, fermez le navigateur pour quitter le mode débogage.
578
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Résultats
Dans ce scénario :
● Vous avez attribué à la propriété CrystalReportViewer.UseBrowserLocale la valeur False (opération effectuée précédemment dans ce tutoriel). Par conséquent, le paramètre de langue du navigateur, correspondant auparavant à l'espagnol, est ignoré.
● Le paramètre Culture de Page a été désélectionné. Ainsi, aucune instruction n'est donnée au niveau de Page.
● Les paramètres de la localisation ont comme valeur par défaut les paramètres régionaux d'environnement du serveur Web, que vous venez de configurer sur "Allemand (Autriche)".
Les chaînes d'info-bulles s'affichent donc en allemand.
Ceci termine la démonstration de la prise en charge de client multilingue à l'aide de la localisation dynamique dans les sites Web. Les sections restantes traitent de la localisation dynamique dans les projets Windows.
1.5.5.1.5 Configuration de la prise en charge de client multilingue pour une application Windows
Le projet Windows accède à des ressources de langue de manière globale (au niveau du système) ou locale
(depuis le dossier de l'exécutable Windows).
Vous pouvez placer les ressources de langue personnalisées dans un emplacement global ou local. Les ressources de langue par défaut sont toujours disponibles de manière globale.
Pour exposer les ressources personnalisées de manière globale, vous devez les placer dans un emplacement central du répertoire de fichiers où elles peuvent être partagées par plusieurs applications Windows. Pour accéder ensuite à ces ressources globales dans une application Windows spécifique, vous devez placer une référence au chemin du répertoire de fichiers des ressources globales dans un fichier de configuration XML stocké dans le même répertoire que l'exécutable Windows. Pour que le chargement d'une ressource globale s'effectue correctement, le nom du dossier contenant les fichiers de la ressource doit correspondre aux paramètres régionaux de la langue.
Pour exposer les ressources personnalisées de manière locale, vous devez les placer dans l'application Windows, au même niveau que le fichier exécutable. Pour que le chargement d'une ressource locale s'effectue correctement, la culture des fichiers de ressource et le nom du dossier contenant les fichiers de ressource doivent correspondre aux paramètres régionaux de langue.
Dans le cadre d'un déploiement, vous devez inclure les ressources de langue par défaut dans le déploiement. Ces ressources seront accessibles de manière globale. Concernant vos ressources personnalisées, il est plus facile d'y accéder de manière locale en les configurant de sorte qu'elles soient installées dans le même dossier que l'exécutable Windows.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
579
1.5.5.1.5.1 Pour accéder aux ressources personnalisées locales
Procédure
1. Remplacez les paramètres des options régionales par "Roumain".
Remarque
Pour avoir des instructions détaillées sur la configuration correcte des paramètres régionaux de l'environnement dans Windows XP ou Windows 2000, voir la section à la fin de ce tutoriel :
Configuration des paramètres régionaux d'un environnement [page 581]
2. Copiez le sous-répertoire de langue ro du dossier C:\CrystalReportViewer_resource_files\ dans le dossier contenant l'exécutable Windows.
Lors du développement, il s'agira probablement du dossier \bin\debug\ .
3. Compilez et exécutez l'application Windows.
4. Faites glisser la souris sur les boutons de la barre d'outils.
Les chaînes d'info-bulles s'affichent en roumain (en fait, dans la mesure où vous avez compilé la ressource
Roumain personnalisée avec les chaînes de test en espagnol, les info-bulles s'affichent en espagnol).
Remarque
Si vous avez ajouté un fichier de configuration global contenant une clé globalResourcePath, les ressources locales sont ignorées. En effet, les ressources globales sont prioritaires sur les ressources locales dans la hiérarchie d'accès.
1.5.5.1.5.2 Pour accéder aux ressources globales personnalisées (approche moins classique pour les applications Windows)
Contexte
Dans cette section, vous allez apprendre à accéder aux ressources globales.
Procédure
1. Remplacez les paramètres des options régionales par "Roumain".
580
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Remarque
Pour avoir des instructions détaillées sur la configuration correcte des paramètres régionaux de
Configuration des paramètres régionaux d'un environnement [page 581]
2. Dans l'Explorateur Windows, localisez le sous-répertoire de votre projet Windows qui contient le fichier exécutable.
\[CHEMIN_PROJET]\bin\debug\
3. Dans ce sous-répertoire, créez un fichier de configuration XML contenant les informations suivantes :
<?xml version="1.0"?>
<configuration>
<appSettings>
<add key="globalResourcePath" value="c:\CrystalReportViewer_resource_files\"/>
</appSettings>
</configuration>
4. Enregistrez ce fichier sous le même nom que le fichier exécutable, mais en ajoutant une extension .config.
Par exemple :
Nom de l'exécutable : CS_Win_Multilingual.exe
Nom du fichier de configuration : CS_Win_Multilingual.exe.config
Remarque
Dans les applications Windows Visual Basic, ce fichier peut avoir été généré automatiquement. Dans ce cas, ajoutez le nœud <app settings> au nœud <configuration> existant dans le fichier de configuration généré automatiquement.
5. Compilez et exécutez l'application Windows.
6. Faites glisser la souris sur les boutons de la barre d'outils.
Les chaînes d'info-bulles s'affichent en roumain (en fait, dans la mesure où vous avez compilé la ressource
Roumain personnalisée avec les chaînes de test en espagnol, les info-bulles s'affichent en espagnol).
1.5.5.1.6 Référence : Configuration des paramètres régionaux d'un environnement
Cette section s'applique aux sites Web et aux projets Windows et concerne les moments où vous avez besoin de changer les paramètres régionaux de l'environnement. Pour cet exemple, les paramètres régionaux ont pour valeur "Allemand (Autriche)".
Les instructions ci-dessous s'appliquent à Windows XP et Windows 2000.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
581
1.5.5.1.6.1 Pour configurer les paramètres régionaux de l'environnement dans Windows XP
Procédure
1. Cliquez sur
Démarrer
, sur
Panneau de configuration
, puis sur
Options régionales et linguistiques
.
2. Dans la liste
Sélectionnez un élément pour afficher ses paramètres
de l'onglet
Options régionales
, sélectionnez
Allemand (Autriche)
.
3. Dans l'onglet
Langues
, cliquez sur
Détails
.
La boîte de dialogue Services de texte et langues d'entrée apparaît.
4. Dans l'onglet
Paramètres
, cliquez sur
Ajouter
.
5. Dans la boîte de dialogue
Ajouter une langue d'entrée
, procédez de la manière suivante : a. Dans la liste
Langue d'entrée
, sélectionnez
Allemand (Autriche)
.
b. Dans la liste
Configuration clavier/IME
, sélectionnez
Allemand (IBM)
.
6. Cliquez ensuite sur
OK
.
7. Dans la liste
Langue d'entrée par défaut
, sélectionnez
Allemand (Autriche)
, puis cliquez sur
OK
.
8. Dans la liste
Langue pour les programmes non Unicode
, sélectionnez
Allemand (Autriche)
.
9. Cliquez sur
Appliquer
, puis sur
OK
.
Résultats
Dans Windows XP, il est inutile de redémarrer l'ordinateur pour appliquer ces modifications.
1.5.5.1.6.2 Pour configurer les paramètres régionaux de l'environnement dans Windows 2000
Procédure
1. Cliquez sur le menu
Démarrer
, pointez sur
Paramètres
, cliquez sur
Panneau de configuration
, puis cliquez sur
Options régionales
.
Le panneau de configuration des options régionales apparaît.
2. Dans l'onglet
Général
, procédez de la manière suivante : a. Cliquez sur la liste
Vos paramètres régionaux (emplacement)
et sélectionnez
Allemand (Autriche)
.
b. Cliquez sur
Valeurs par défaut…
c. Dans la boîte de dialogue
Sélection des paramètres régionaux système
, sélectionnez
Allemand (Autriche)
, puis cliquez sur
OK
.
3. Dans l'onglet
Paramètres régionaux d'entrée
, procédez de la manière suivante :
582
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
a. Cliquez sur
Ajouter…
b. Dans la boîte de dialogue
Ajout de paramètres régionaux
, sélectionnez
Allemand (Autriche)
dans la liste
Paramètres régionaux d'entrée
.
c. Dans la liste
Configuration clavier/IME
, sélectionnez
Allemand (IBM)
, puis cliquez sur
OK
.
4. Cliquez sur
Appliquer
.
Une boîte de dialogue s'affiche et vous invite à installer des fichiers à partir du disque dur ou du CD-ROM de
Windows Installer.
5. Cliquez sur
Oui
et procédez à l'installation.
Une fois l'installation terminée, dans la boîte de dialogue Modification des options régionales, vous êtes invité
à redémarrer l'ordinateur.
6. Cliquez sur
Oui
.
Étapes suivantes
Dans Windows 2000, vous devez redémarrer l'ordinateur pour appliquer ces modifications.
1.5.5.2 Tutoriel : Création d'une bibliothèque de fonctions utilisateur
Dans ce tutoriel, vous allez apprendre à créer une bibliothèque de fonctions utilisateur accessible à partir de l'Expert Formule du concepteur SAP Crystal Reports incorporé.
Introduction
Dans ce tutoriel, vous allez apprendre à créer une bibliothèque de fonctions utilisateur accessible à partir de l'Expert Formule du concepteur SAP Crystal Reports incorporé.
Lorsque les développeurs créent un rapport Crystal dans le concepteur SAP Crystal Reports incorporé, ils créent souvent des champs de formule pour les utiliser dans le rapport. Ces champs de formule se composent de variables et de fonctions. Le concepteur SAP Crystal Reports incorporé est fourni avec un grand nombre de fonctions existantes.
Toutefois, dans certains scénarios, un utilisateur peut avoir besoin de créer une fonction personnalisée, sous la forme d'une bibliothèque pouvant être distribuée entre les ordinateurs. La bibliothèque de fonctions utilisateur offre cette capacité.
Une bibliothèque de fonctions utilisateur (User Function Library, UFL) est une bibliothèque de classes .NET qui présente les caractéristiques suivantes :
● Le nom du projet a pour préfixe la chaîne "CRUFL".
● Le projet comprend une interface et une classe d'implémentation.
● L'interface et la classe d'implémentation intègrent toutes deux des attributs COM et GUID.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
583
● Lors de la compilation, l'assembly est inscrit pour COM Interop de manière à s'afficher comme un objet COM.
● L'assembly/objet COM est ajouté au Global Assembly Cache et est ainsi disponible dans toutes les applications .NET sur l'ordinateur.
● Cet assembly/objet COM (la bibliothèque de fonctions utilisateur ou UFL) devient alors visible dans le concepteur SAP Crystal Reports incorporé sous la forme d'une fonction personnalisée sous "Fonctions >
Fonctions supplémentaires > u2lcom.dll".
Exemple de code
Ce tutoriel fournit des exemples de code Visual Basic et C# qui illustrent la version terminée du projet. Suivez les instructions de ce tutoriel pour créer un projet ou ouvrez le projet d'exemple de code pour travailler à partir d'une version terminée.
Les exemples de code sont stockés dans des dossiers classés par langue et par type de projet. Les noms des dossiers de chaque version d'exemple de code sont les suivants :
● Bibliothèque de classes C# : CRUFL_CS_ExchangeRate
● Bibliothèque de classes Visual Basic : CRUFL_VB_ExchangeRate
Base de données Xtreme
Ce tutoriel utilise un exemple de base de données appelée Xtreme. Le fichier de base de données xtreme.mdb est fourni dans le package d'exemples de code du SDK de SAP Crystal Reports .NET. Pour utiliser la base de données
Xtreme, vous devez créer manuellement une connexion ODBC à cette base de données.
Informations associées
Répertoire d'exemples de rapports [page 15]
1.5.5.2.1 Pour créer une bibliothèque de classes UFL
Contexte
Dans cette section, vous allez créer la bibliothèque de classes UFL et la configurer de manière à l'inscrire pour
COM Interop.
584
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Procédure
1. Lancez Visual Studio.
2. Dans le menu
Fichier
, sélectionnez
Nouveau
, puis cliquez sur
Projet
.
3. Dans la boîte de dialogue
Nouveau projet
, dans la liste
Types de projets
, sélectionnez un dossier de langage pour C# ou Visual Basic.
4. Dans la liste
Modèles
, cliquez sur
Bibliothèque de classes
.
5. Dans le champ
Nom
, saisissez l'une des lignes suivantes :
○ CRUFL_VB_ExchangeRate (Visual Basic)
○ CRUFL_CS_ExchangeRate (C#)
Remarque
Toutes les bibliothèques de fonctions utilisateur doivent avoir pour préfixe CRUFL pour être reconnues par le SAP Crystal Reports Designer incorporé.
6. Cliquez sur
OK
.
7. Dans l'
Explorateur de solutions
, cliquez avec le bouton droit de la souris sur le nom du projet affiché en gras, puis cliquez sur
Propriétés
.
8. Cliquez sur l'onglet
Générer/Compiler
.
9. Si vous utilisez Visual Basic, dans la liste
Option Strict
, cliquez sur
On
.
10. Descendez au bas de la fenêtre
Générer/Compiler
et sélectionnez
Inscrire pour COM Interop
.
Remarque
Avec l'option "Inscrire pour COM Interop", l'assembly est automatiquement enregistré par l'utilitaire regasm.exe, lorsque le projet est compilé. Il est donc inutile d'exécuter regasm.exe manuellement à partir de l'invite de commandes.
11. Dans le menu
Fichier
, cliquez sur
Enregistrer tout
.
12. Fermez la fenêtre
Générer/Compiler
.
Résultats
Vous pouvez maintenant créer l'interface.
1.5.5.2.2 Pour créer l'interface à l'aide des attributs COM
Contexte
Dans cette section, vous allez créer une interface et la configurer à l'aide des attributs COM.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
585
Procédure
1. Supprimez la classe par défaut (Class1).
2. Dans l'
Explorateur de solutions
, cliquez avec le bouton droit de la souris sur le nom du projet affiché en gras, pointez sur
Ajouter
, puis cliquez sur
Classe
.
3. Dans le champ
Nom
, saisissez "IExchangeUfl", puis cliquez sur
Ajouter
.
4. Remplacez la signature de classe class par interface, puis définissez une portée publique.
Remarque
Dans Visual Basic, n'oubliez pas de remplacer à la fois la signature d'ouverture et de fermeture. Dans C#, supprimez le constructeur.
Public Interface IExchangeUfl
End Interface public interface IExchangeUfl
{
}
5. Au-dessus de la déclaration de classe, ajoutez l'instruction using/Imports suivante :
Imports System.Runtime.InteropServices
using System.Runtime.InteropServices;
6. Dans le menu
Outils
, cliquez sur
Create GUID
.
7. Dans le panneau
GUID format
de la boîte de dialogue
Create GUID
, sélectionnez
Registry Format
.
8. Cliquez sur
New GUID
.
9. Cliquez sur
Copy
, puis fermez la boîte de dialogue.
10. Au-dessus de la déclaration d'interface, créez un attribut avec trois valeurs : ComVisible, InterfaceType et
Guid (dans C#) ou GuidAttribute (dans Visual Basic) avec des guillemets de chaîne de paramètre.
Remarque
Dans Visual Basic, pour faciliter la lecture, ajoutez un caractère de soulignement après la balise de fermeture pour placer la classe sur la ligne suivante.
<ComVisible(), InterfaceType(), GuidAttribute("")> _
Public Interface IExchangeUfl
End Interface
{
}
[ComVisible(), InterfaceType(), Guid("")] public interface IExchangeUfl
11. Saisissez la valeur de paramètre "True" [Visual Basic] ou "true" [C#] dans l'attribut ComVisible.
12. Saisissez la valeur de paramètre ComInterfaceType.InterfaceIsDual à partir de l'énumération
ComInterfaceType dans l'attribut InterfaceType.
586
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
13. Collez la valeur GUID à partir du Presse-papiers dans la valeur de paramètre de l'attribut Guid. Veillez à supprimer les accolades et les retours chariot.
Remarque
N'utilisez pas le GUID fourni dans l'extrait de code ci-dessous. Créez un GUID unique pour votre interface.
<ComVisible(True),
InterfaceType(ComInterfaceType.InterfaceIsDual),
GuidAttribute("E7A4EC98-BF2B-4006-B266-74C74421C394")> _
Public Interface IExchangeUfl
End Interface
[ComVisible(true), InterfaceType(ComInterfaceType.InterfaceIsDual),
Guid("E7A4EC98-BF2B-4006-B266-74C74421C394")] public interface IExchangeUfl
{
}
14. Dans l'interface IExchangeUfl, créez une signature de méthode.
Remarque
Cette signature de méthode deviendra le nom de la fonction exposée dans le SAP Crystal Reports Designer incorporé.
Function ConvertUSDollarsToCDN(ByVal usd As Double) As Double double ConvertUSDollarsToCDN(double usd);
15. Fermez la fenêtre d'interface.
Résultats
Vous allez ensuite créer la classe d'implémentation.
1.5.5.2.3 Pour créer la classe d'implémentation à l'aide des attributs COM
Contexte
Dans cette section, vous allez créer une classe d'implémentation qui implémente l'interface IExchangeUfl, puis vous allez configurer cette classe à l'aide des attributs COM.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
587
Procédure
1. Dans l'
Explorateur de solutions
, cliquez avec le bouton droit de la souris sur le nom du projet affiché en gras, pointez sur
Ajouter
, puis cliquez sur
Classe
.
2. Dans le champ
Nom
, saisissez "ExchangeUfl", puis cliquez sur
Ajouter
.
3. Modifiez la signature de classe pour implémenter l'interface IExchangeUfl.
Public Class ExchangeUfl : Implements IExchangeUfl
End Class public class ExchangeUfl : IExchangeUfl
{
}
4. Au-dessus de la déclaration de classe, ajoutez l'instruction using/Imports suivante :
Imports System.Runtime.InteropServices
using System.Runtime.InteropServices;
5. Dans le menu
Outils
, cliquez sur
Create GUID
.
6. Dans le panneau
GUID format
de la boîte de dialogue
Create GUID
, sélectionnez
Registry Format
.
7. Cliquez sur
New GUID
.
8. Cliquez sur
Copy
, puis fermez la boîte de dialogue.
9. Au-dessus de la déclaration de classe, créez un attribut avec trois valeurs : ComVisible, ClassInterface et Guid
(dans C#) ou GuidAttribute (dans Visual Basic) avec des guillemets de chaîne de paramètre.
Remarque
Dans Visual Basic, pour faciliter la lecture, ajoutez un caractère de soulignement après la balise de fermeture pour placer la classe sur la ligne suivante.
<ComVisible(), ClassInterface(), GuidAttribute("")> _
Public Class ExchangeUfl : Implements IExchangeUfl
End Class
{
}
[ComVisible(), ClassInterface(), Guid("")] public class ExchangeUfl : IExchangeUfl
10. Saisissez la valeur de paramètre "True" [Visual Basic] ou "true" [C#] dans l'attribut ComVisible.
11. Saisissez la valeur de paramètre ClassInterfaceType.None à partir de l'énumération ClassInterfaceType dans l'attribut ClassInterface.
12. Collez la valeur GUID à partir du Presse-papiers dans la valeur de paramètre de l'attribut Guid. Veillez à supprimer les accolades et les retours chariot.
Remarque
N'utilisez pas le GUID fourni dans cet extrait de code. Créez un GUID unique pour votre classe.
<ComVisible(True), ClassInterface(ClassInterfaceType.None),
588
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
GuidAttribute("F5DCE88F-AD38-4a9a-9A69-0F8DC0EDB4E3")> _
Public Class ExchangeUfl : Implements IExchangeUfl
End Class
[ComVisible(true), ClassInterface(ClassInterfaceType.None),
Guid("F5DCE88F-AD38-4a9a-9A69-0F8DC0EDB4E3")] public class ExchangeUfl : IExchangeUfl
{
}
13. Dans ExchangeUfl, remplissez la signature de méthode contractuelle avec une méthode publique à partir de l'interface.
Remarque
Ce sera le nom de la fonction exposée dans le SAP Crystal Reports Designer incorporé.
Public Function ConvertUSDollarsToCDN1(ByVal usd As Double) As
Double Implements IExchangeUfl.ConvertUSDollarsToCDN
End Function public double ConvertUSDollarsToCDN(double usd)
{
}
14. Dans la méthode, créez un bloc conditionnel qui vérifie si le paramètre de la méthode usd est supérieur à
Double.MaxValue et qui renvoie une exception s'il l'est.
Remarque
Cette vérification est nécessaire pour éviter un risque de dépassement.
If usd > Double.MaxValue Then
Throw New Exception("La valeur soumise est supérieure à la valeur maximale autorisée pour un double.")
End If if(usd > Double.MaxValue)
{
throw new Exception("La valeur soumise est supérieure à la valeur maximale autorisée pour un double.");
}
15. A la fin du bloc conditionnel, renvoyez le paramètre de la méthode usd multiplié par un taux de change de
1,45.
Dans ce tutoriel, seul un calcul mathématique simple est effectué. Toutefois, vous pouvez placer n'importe quel code dans cette méthode. Par exemple, vous pouvez extraire un taux de change à partir d'un service bancaire sur le Web pour calculer de façon dynamique le taux de change dans le rapport.
Return (usd * 1.45) return (usd * 1.45);
16. Dans le menu
Fichier
, cliquez sur
Enregistrer tout
.
17. Fermez la fenêtre de la classe.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
589
1.5.5.2.4 Pour attribuer une clé de nom fort à la bibliothèque de classes
Contexte
Dans cette section, vous allez affecter une clé de nom fort à la bibliothèque de classes.
Procédure
1. Dans l'
Explorateur de solutions
, cliquez avec le bouton droit de la souris sur le nom du projet affiché en gras, puis sélectionnez
Propriétés
.
2. Cliquez sur l'onglet
Signature
.
3. Activez la case à cocher
Signer l'assembly
.
4. Dans la zone de liste déroulante
Choisir un fichier de clé de nom fort
, sélectionnez
<Nouveau...>
.
5. Dans la boîte de dialogue
Créer une clé de nom fort
, dans le champ de texte
Nom du fichier de clé
, saisissez une valeur de type chaîne.
Remarque
Vous pouvez par exemple saisir votre nom de famille et la date du jour comme valeur.
6. Décochez la case
Protéger mon fichier de clé par un mot de passe
, puis cliquez sur
OK
.
7. Fermez la fenêtre
Signature
.
8. Dans le menu
Générer
, cliquez sur
Générer la solution
.
9. Fermez Visual Studio.
Étapes suivantes
Ensuite, vous allez ajouter l'assembly au Global Assembly Cache (GAC).
1.5.5.2.5 Pour ajouter l'assembly au Global Assembly Cache
Contexte
Dans cette section, vous allez ajouter l'assembly au Global Assembly Cache (GAC).
590
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Procédure
1. Dans l'Explorateur Windows, localisez le projet sur votre ordinateur.
2. Dans le projet que vous avez créé, localisez le sous-répertoire \bin\Debug\. Vérifiez que le fichier DLL d'assembly se trouve dans ce répertoire.
3. Copiez le chemin d'accès au répertoire du fichier DLL dans le Presse-papiers.
4. Cliquez sur
Démarrer
, pointez sur
Programmes > Microsoft Visual Studio > Visual Studio Tools
, puis cliquez sur
Invite de commandes de Visual Studio
.
5. Vous devez remplacer le répertoire par le répertoire contenant votre fichier DLL. Pour ce faire, saisissez tout d'abord la commande de changement de répertoire : cd
6. Ajoutez un espace après la commande cd, puis cliquez avec le bouton droit de la souris pour coller le chemin d'accès au répertoire depuis le Presse-papiers.
7. Appuyez sur
Entrée
.
Vérifiez que le répertoire a été remplacé par le répertoire contenant le fichier DLL d'assembly.
8. Saisissez la commande suivante et remplacez le fichier DLL d'assembly de l'extrait de code par le nom de votre DLL d'assembly.
gacutil -if CRUFL_CS_ExchangeRate.dll
9. Appuyez sur
Entrée
.
Un message indiquant que l'assembly a été ajouté au cache doit s'afficher. Si un message d'erreur apparaît, revérifiez l'orthographe du nom de fichier DLL d'assembly et exécutez de nouveau gacutil.
10. Fermez
Invite de commandes de Visual Studio 2005
.
11. Dans l'Explorateur Windows, localisez le sous-répertoire \assembly\, qui se trouve dans le répertoire
\Windows\ ou \WinNT\.
L'assembly que vous avez ajouté doit maintenant être visible dans le sous-répertoire de l'assembly (appelé
GAC ou Global Assembly Cache).
Résultats
Vous pouvez maintenant créer un rapport Crystal qui accède à cette fonction personnalisée.
1.5.5.2.6 Pour ajouter la fonction personnalisée à un rapport
Crystal
Prérequis
Cette procédure fonctionne uniquement avec un projet créé à partir de la procédure
. La section Configuration d'un projet contient une configuration de références d'espaces de noms et de
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
591
code spécifique nécessaire à cette procédure. Il est impossible de suivre cette procédure sans cette configuration.
Contexte
Dans cette section, vous allez créer un rapport Crystal qui accède à la fonction personnalisée.
Procédure
1. Dans l'
Explorateur de solutions
, cliquez avec le bouton droit de la souris sur le nom du projet affiché en gras, pointez sur
Ajouter
, puis cliquez sur
Nouvel élément
.
2. Dans la boîte de dialogue
Ajouter un nouvel élément
, dans la vue
Modèles
, sélectionnez le modèle
Rapport
Crystal
.
3. Dans le champ
Nom
, saisissez le nom
FunctionTest.rpt
, puis cliquez sur
Ajouter
.
4. Dans le panneau
Créer un document de rapport Crystal
de la boîte de dialogue
Galerie de rapports Crystal
, sélectionnez
en utilisant l' Assistant de création de rapports
.
5. Dans le panneau
Choisir un expert
, sélectionnez
Standard
, puis cliquez sur
OK
.
6. Dans le panneau
Sources de données disponibles
de la fenêtre
Assistant de création de rapports standard
, développez le dossier
Créer une nouvelle connexion
.
7. Dans le sous-dossier qui s'ouvre, développez le dossier
ODBC (RDO)
.
8. Dans la fenêtre ODBC (RDO), sélectionnez l'entrée DSN ODBC correspondant à la base de données Xtreme, puis cliquez sur
Terminer
.
Le dossier ODBC (RDO) se développe pour afficher la base de données Xtreme.
9. Développez le nœud
Tables
et sélectionnez la table
Clients
.
10. Cliquez deux fois sur la table
Clients
pour l'ajouter au panneau
Tables sélectionnées
, puis cliquez sur
Suivant
.
11. Utilisez la combinaison de touches CTRL-clic pour sélectionner
Nom du client
,
Ventes de l'année dernière
et
Ville
.
12. Cliquez sur le bouton
>
pour déplacer ces champs dans le panneau
Champs à afficher
, puis cliquez sur
Suivant
.
13. Dans le panneau
Champs disponibles
, sous
Champs du rapport
, sélectionnez
Clients.Ville
, cliquez sur le bouton
>
pour déplacer le champ dans le panneau
Regrouper par
, puis cliquez sur
Terminer
.
Le rapport FunctionTest est créé et chargé dans la fenêtre principale de Visual Studio.
14. Si l'
Explorateur de champs
n'est pas visible, cliquez sur
Activer/Désactiver l'affichage du champ
dans la barre d'outils Crystal Reports.
Conseil
Vous pouvez également afficher l'
Explorateur de champs
en ouvrant le menu
Crystal Reports
, puis en cliquant sur
Explorateur de champs
.
15. Dans l'
Explorateur de champs
, cliquez avec le bouton droit de la souris sur
Champs de formule
, puis cliquez sur
Nouveau
.
592
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
16. Dans la boîte de dialogue
Nom de la formule
, saisissez le nom
MyFunctionFormula
, puis cliquez sur
Utiliser l'éditeur
.
La fenêtre Atelier de formules s'affiche. Elle contient quatre panneaux horizontaux.
17. Dans le troisième panneau, développez
Fonctions
.
18. Développez
Fonctions supplémentaires
, puis
UFL COM et .NET (u212com.dll)
.
La fonction que vous avez créée s'affiche : CSExchangeRateExchangeUflConvertUSDollarsToCDN (ou
VBExchangeRateExchangeUflConvertUSDollarsToCDN).
19. Cliquez deux fois sur
CSExchangeRateExchangeUflConvertUSDollarsToCDN
(ou
VBExchangeRateExchangeUflConvertUSDollarsToCDN
) .
La fonction CSExchangeRateExchangeUflConvertUSDollarsToCDN() (ou
VBExchangeRateExchangeUflConvertUSDollarsToCDN()) apparaît dans le panneau inférieur, où vous pouvez
à présent créer votre formule.
20. Dans le panneau inférieur, placez le curseur entre les crochets de la fonction.
21. Dans le second panneau, développez
Champs du rapport
, puis cliquez deux fois sur
Clients.Ventes de l'année dernière
.
Clients.Ventes de l'année dernière est saisi comme paramètre dans la fonction ConvertUSDollarsToCDN.
22. Dans la barre d'outils, cliquez sur
Vérifier
.
La formule est vérifiée et aucune erreur n'est trouvée.
23. Fermez l'
Editeur de formule
.
24. Dans le nœud
Champs de formule
de l'
Explorateur de champs
, faites glisser
MyFunctionFormula
à droite du champ
Ventes de l'année dernière
dans la section
Détails
du rapport.
25. Arrangez les champs pour qu'ils soient disposés correctement dans le rapport.
26. Cliquez sur
Aperçu Rapport principal
.
Le rapport s'affiche et la fonction personnalisée a calculé la valeur du champ MyFunctionFormula.
27. Cliquez sur
Rapport principal
pour quitter le mode Aperçu.
1.5.5.2.7 Pour instancier le rapport FunctionTest sous forme de rapport non incorporé et le lier au contrôle
CrystalReportViewer
Contexte
Durant la procédure Configuration d'un projet [page 15]
, vous avez placé un contrôle CrystalReportViewer dans un Web Form ou un Windows Form. Lors de l'étape précédente, vous avez ajouté un rapport FunctionTest au projet.
Dans cette section, vous allez instancier le rapport FunctionTest sous forme de rapport non incorporé et le lier au contrôle CrystalReportViewer.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
593
Procédure
1. Ouvrez le Web Form ou Windows Form.
2. Dans le menu
Affichage
, cliquez sur
Code
.
3. Ajoutez une nouvelle déclaration de niveau classe pour la classe wrapper du rapport ReportDocument, en utilisant la variable functionTestReport. Définissez le modificateur d'accès à private.
Remarque
La classe ReportDocument est un membre de l'espace de noms CrystalDecisions.CrystalReports.Engine.
Vous avez ajouté une déclaration "Imports" [Visual Basic] ou "using" [C#] pour cet espace de noms dans la section
Configuration d'un projet [page 15] . Lorsque vous instanciez ReportDocument et
chargez un rapport dans l'espace de noms, vous accédez au rapport via le SDK sans l'incorporer.
Private functionTestReport As ReportDocument private ReportDocument functionTestReport;
functionTestReport = New ReportDocument() functionTestReport = new ReportDocument();
5. Sur la ligne suivante, appelez la méthode Load() de l'instance ReportDocument, puis collez-y le nom de fichier du rapport.
Remarque
Insérez le nom du fichier de rapport dans une méthode (projet Web) Server.MapPath(), ou concaténez le nom du rapport avec la chaîne renvoyée par Application.StartupPath() (Windows Form). Pour les projets Web, le chemin d'accès au fichier du rapport sera automatiquement généré en fonction du nom du rapport. Pour les projets Windows Form, il faudra ensuite copier le rapport dans le répertoire qui contient le fichier exécutable.
functionTestReport.Load(Server.MapPath("FunctionTest.rpt")) functionTestReport.Load(Server.MapPath("FunctionTest.rpt"));
6. Sur la ligne suivante, sous le chargement du rapport, liez la propriété ReportSource du contrôle
CrystalReportViewer à l'instance ReportDocument.
myCrystalReportViewer.ReportSource = functionTestReport crystalReportViewer.ReportSource = functionTestReport;
Vous êtes maintenant prêt à générer et exécuter votre projet.
7. Dans le menu
Déboguer
, cliquez sur
Démarrer
.
594
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Le rapport s'affiche. Il contient le nouveau champ qui calcule le taux de change pour les ventes de l'année dernière en se basant sur la bibliothèque de fonctions utilisateur que vous avez créée.
8. Revenez dans Visual Studio, puis cliquez sur
Arrêter
pour quitter le mode débogage.
1.6 Déploiement
Cette section explique comment déployer des applications Web ou Windows utilisant SAP Crystal Reports.
Cette section explique comment déployer des applications Web ou Windows utilisant SAP Crystal Reports.
Remarque
Le déploiement de sites Web et de projets Windows utilisant SAP Crystal Reports est disponible uniquement si
SAP Crystal Reports, version développeur pour Microsoft Visual Studio, est installé.
1.6.1 Composants de déploiement
SAP Crystal Reports, version développeur pour Microsoft Visual Studio prend en charge des projets de déploiement qui vous permettent de déployer votre application sur les ordinateurs cibles. Les projets de déploiement utilisés sont des projets d'installation pour les applications Windows ou des projets d'installation
Web pour les sites Web.
Pour distribuer une application Visual Studio qui utilise SAP Crystal Reports, le projet de déploiement a besoin des composants suivants, selon le type de déploiement que vous effectuez :
Sortie de projet
Fichiers de rapport
Windows Installer (MSI)
.NET Framework 1.x ou supérieur
Assemblys, fichiers binaires et fichiers de support du projet nécessaire pour déployer l'application sur les ordinateurs clients.
Rapports incorporés ou non devant être distribués aux ordinateurs clients.
Composants qui permettent aux clients de visualiser les applications utilisant
SAP Crystal Reports.
Composants .NET nécessaires à l'exécution d'une application.
Déploiement Windows Installer
Lorsque vous déployez une application à l'aide d'un déploiement Windows Installer, vous copiez tous les fichiers d'application et les fichiers .rpt de l'ordinateur de développement sur l'ordinateur cible séparément des autres composants tiers.
Les composants tiers supplémentaires que vous devez déployer pour que votre application fonctionne sont les assemblys SAP Crystal Reports. Les assemblys SAP Crystal Reports sont les fichiers dll requis pour visualiser,
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
595
exporter et imprimer un rapport. Ces assemblys sont déployés sous la forme d'un fichier .msi distinct des fichiers d'application et des fichiers .rpt.
Si vous déployez un site Web ASP .NET, les fichiers d'application à inclure dans le projet de déploiement sont les suivants :
● Fichiers Aspx
● Fichiers Aspx.cs ou Aspx.vb
● Fichiers image, html ou css
Si vous déployez une application Windows, les fichiers d'application à inclure dans le projet de déploiement sont les suivants :
● Fichiers Form.cs ou Form.vb
● Fichiers Form.Designer.cs ou Form.Designer.vb
● Resources.resx
● Resources.Designer.cs ou Resources.Designer.vb
● Fichiers image, html ou css
596
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Figure 1 : Composants de déploiement Windows Installer
Déploiement ClickOnce
Lorsque vous déployez une application Windows à l'aide d'un déploiement ClickOnce, vous copiez tous les fichiers de l'application et les fichiers .rpt sur un serveur Web séparément des fichiers .NET Framework, qui sont
également copiés sur le même serveur Web. Vous pouvez ensuite installer la dernière version de l'application sur votre ordinateur cible à partir d'une page Web commune. Les fichiers d'application à inclure dans le projet de déploiement sont les suivants :
● Fichiers Form.cs ou Form.vb
● Fichiers Form.Designer.cs ou Form.Designer.vb
● Resources.resx
● Resources.Designer.cs ou Resources.Designer.vb
● Fichiers image, html ou css
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
597
Figure 2 : Composants de déploiement ClickOnce
1.6.1.1 Sortie de projet
Les sorties de projet contiennent des fichiers issus des applications Web ou Windows qui doivent être ajoutés aux projets de déploiement. Vous pouvez ajouter un ou plusieurs types de sortie de projet :
● L'option
Sortie principale
ajoute tous les fichiers .dll et .exe créés à partir de l'application Web ou Windows.
Remarque
Dans SAP Crystal Reports pour Visual Studio 2005 et versions ultérieures, les sites Web ont été modifiés pour exclure les fichiers .dll et .exe. Par conséquent, aucune sortie principale ne doit être ajoutée aux sites
Web.
● L'option
Content Files
ajoute les fichiers Web.config et Global.asax ainsi que tous les Web Forms
(pages .aspx) créés dans les applications Web ou le fichier App.ico s'il s'agit d'applications Windows.
598
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Remarque
Vous pouvez également ajouter les sorties de projet Fichiers de documentation, Ressources localisées,
Symboles de débogage et Source Files (fichiers sources) au projet de déploiement. Ces fichiers de sortie de projet ne sont cependant pas nécessaires pour effectuer le déploiement.
Vous devez ajouter le type Sortie principale aux projets d'installation Winform et le type Content Files (fichiers de contenu) aux projets Web contenant des fichiers ASPX.
1.6.1.2 Fichiers de rapport
Les fichiers de rapport que vous devez inclure dans votre projet de déploiement dépendent du scénario de liaison utilisé pour les projets Web ou Windows. Les scénarios de liaison SAP Crystal Reports utilisent des rapports incorporés ou des rapports non incorporés.
Dans les applications SAP Crystal Reports, version développeur pour Microsoft Visual Studio, les rapports incorporés sont compilés dans l'application. Vous pouvez ensuite déployer votre application sans avoir à distribuer les fichiers de rapport séparément.
Pour les applications qui utilisent des rapports non incorporés, les fichiers de rapport doivent être distribués avec les projets.
Le tableau ci-après indique les différentes étapes à suivre pour distribuer et visualiser des projets de déploiement en fonction des scénarios de liaison de rapports utilisés.
Table 10 :
Scénarios de liaison de rapports
●
Liaison au chemin d'accès d'un répertoire de fichiers par code [page 169]
●
Liaison au chemin d'accès d'un répertoire de fichiers via la fenêtre Propriétés [page 170]
●
Liaison à un rapport non incorporé chargé dans la classe
●
Liaison à un rapport non incorporé chargé dans une classe utilitaire de gestion du cache [page 203]
Conditions requises
● Distribuez les fichiers de rapport avec le projet de dé ploiement.
● Sur l'ordinateur cible, enregistrez les fichiers de rapport dans le répertoire de fichiers utilisé pour l'application
Web ou Windows. Respectez le chemin d'accès exact uti lisé par l'application.
●
Liaison à l'URL d'un service Web de rapports [page 174]
● Vous n'avez pas besoin de distribuer les fichiers de rap port, car ils sont compilés dans le projet du service Web de rapports.
●
Liaison à un contrôle CrystalReportSource (sites Web dans Visual Studio) [page 172]
●
Liaison à une classe de rapport incorporé [page 196]
●
Liaison à une classe de rapport incorporé et mis en cache
●
Liaison à Crystal Enterprise (SAP Crystal Reports 10 et versions ultérieures) [page 214]
● Vous n'avez pas besoin de distribuer les fichiers de rap port, car ils sont compilés dans le projet.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
599
Informations associées
Comparaison des rapports incorporés et non incorporés [page 162]
1.6.1.3 Common Language Runtime
Pour déployer des applications Visual Studio .NET, le .NET Framework doit être installé sur l'ordinateur cible avant de procéder à l'installation du projet de déploiement. Lorsque vous créez un projet de déploiement, le .NET Framework n'est pas inclus par défaut.
Remarque
SAP Crystal Reports, version développeur pour Microsoft Visual Studio prend en charge .Net Framework 2.0 et les versions ultérieures, y compris la Framework 4.0.
Vous pouvez télécharger .NET Framework depuis le site Web de Microsoft.
1.6.1.4 Prise en charge des applications 64 bits
Les applications créées à l'aide de .NET 2.0 Framework ou version ultérieure peuvent utiliser des ordinateurs
32 bits ou 64 bits. L'architecture 64 bits est prise en charge dans la version développeur pour Microsoft
Visual Studio 32 bits et x 64 (AMD64) de SAP Crystal Reports.
Génération d'une application 64 bits
Vous pouvez générer une application 64 bits dans les scénarios suivants :
● SAP Crystal Reports, version développeur pour Microsoft Visual Studio 32 bits sur un système d'exploitation
Windows 32 bits.
● SAP Crystal Reports, version développeur pour Microsoft Visual Studio 32 bits sur un serveur
Windows 64 bits. L'administrateur du serveur doit installer les composants d'exécution du package redistribuable en langage courant 64 bits et SAP Crystal Reports 64 bits sur le serveur.
● SAP Crystal Reports, version développeur pour Microsoft Visual Studio 32 bits sous WOW64 (l'émulateur x86 qui exécute les applications 32 bits sur un ordinateur 64 bits) sur un serveur ou une station de travail
Windows 64 bits. Les packages redistribuables d'exécution SAP Crystal Reports 32 bits et 64 bits doivent être installés sur le même ordinateur.
600
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.6.1.5 Package redistribuable du programme d'exécution de
SAP Crystal Reports
Le package redistribuable du programme d'exécution de SAP Crystal Reports contient les assemblys nécessaires pour exécuter les applications .NET développées avec les SDK de SAP Crystal Reports.
Si SAP Crystal Reports, version développeur pour Microsoft Visual Studio n'est pas installé sur l'ordinateur cible, le package redistribuable doit être installé séparément.
1.6.1.5.1 Modules d'installation
SAP Crystal Reports, version développeur pour Microsoft Visual Studio offre les types de modules d'installation redistribuables suivants :
● modules redistribuables de type MSI qui sont destinés à ClickOnce, la stratégie du groupe et les déploiements similaires.
● modules de fusion de type MSM qui sont destinés aux développeurs créant leurs propres programmes d'installation, qui incorporeront le programme d'exécution CR.NET au programme d'installation hôte.
Remarque
Le package MSI possède les mêmes composants que les modules MSM mais n'offre pas les mêmes options de configuration. Le package MSI n'est utilisé que pour les déploiements complets de la structure de reporting intégrée de SAP Crystal Reports .NET.
Table 11 :
Module d'installation
Structure de reporting intégrée de
SAP Crystal Reports .NET, Multilin gue
Nom du fichier :
● CRRuntime_32bit_13_x.msi
● CRRuntime_64bit_13_x.msi
Type
MSI
Utilisation cible
Déploiement Clic kOnce, de stratégie de groupe, etc.
Description
Inclut les groupes de composants suivants :
● Programme d'exécution de reporting (par exemple, moteur d'impression, moteur de re quêtes, etc.) natif
● Pilotes d'exportation et de base de données
● Composants SAP Crystal Reports .NET
● Ressources multilingues pour tous les compo sants inclus dans le module dans toutes les langues prises en charge.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
601
Module d'installation
Structure de reporting intégrée de
SAP Crystal Reports .NET, Multilin gue
Nom du fichier :
● CRRuntime_13_0_xx.msm
Type
MSM
Utilisation cible
Incorporé aux pro grammes d'installa tion
Description
Inclut les groupes de composants suivants :
● Programme d'exécution de reporting (par exemple, moteur d'impression, moteur de re quêtes, etc.) natif
● Pilotes d'exportation et de base de données
● Composants SAP Crystal Reports .NET
● Ressources multilingues pour tous les compo sants inclus dans le module dans toutes les langues prises en charge.
Remarque
Vous devez installer les modules de fusion Mi crosoft pour utiliser ce module de fusion. Le package de modules fusionnés (msm) est dis ponible en version 32 bits uniquement.
Informations associées
Fichiers de ressources de langue [page 225]
1.6.1.5.2 Pour réaliser une installation silencieuse du programme d'exécution de SAP Crystal Reports
Contexte
Une installation silencieuse est une procédure qui s'exécute depuis la ligne de commande et ne nécessite aucune intervention de l'utilisateur.
Procédure
1. Lancez l'invite de commande.
2. Localisez le chemin d'accès au fichier Windows Installer.
3. Exécutez le fichier exécutable CRRuntime_32bit_13_x.msi ou CRRuntime_64bit_13_x.msi.
Remplacez "C:\install.msi" par le chemin d'accès au fichier Windows Installer.
msiexec.exe /i "C:\install.msi" /qn
602
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Résultats
Le programme d'exécution de SAP Crystal Reports est installé en mode silencieux.
1.6.1.5.3 Options d'installation de modules de fusion
(facultatif)
Dans SAP Crystal Reports, version développeur pour Microsoft Visual Studio, les modules de fusion que vous avez ajoutés au projet de déploiement vous permettent d'inclure ou d'exclure des pilotes d'exportation et de base de données SAP Crystal Reports spécifiques. Dans cette tâche, vous apprendrez à configurer les options d'installation.
1.6.1.5.3.1 Pour modifier une option d'installation spécifique
Procédure
1. Dans Visual Studio, ouvrez votre projet de déploiement.
2. Dans l'
Explorateur de solutions
, développez le nœud du projet d'installation. Sélectionnez le module de fusion que vous avez ajouté à votre projet de déploiement en fonction du type de déploiement utilisé sur l'ordinateur.
3. Dans la fenêtre
Propriétés
, développez le nœud
(MergeModuleProperties)
. Un tableau contenant les pilotes disponibles pour l'installation s'affiche.
4. Définissez la valeur d'un pilote spécifique.
○ Attribuez la valeur
1
pour inclure le pilote dans le projet de déploiement.
○ Attribuez la valeur
0
pour exclure le pilote du projet de déploiement.
1.6.1.5.3.2 Options d'installation de SAP Crystal Reports
Pilotes de base de données
Table 12 :
Nom de la propriété du pilote de base de données
InstallACT
InstallBTRIEVE
InstallCDO32
Description
Pilote de base de données de Crystal Reports pour les bases de données PC
Pilote de base de données de Crystal Reports pour la base de données Pervasive
Pilote de base de données de Crystal Reports pour Crystal
Data Object
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
603
InstallIBM_DB2
InstallINFORMIX
InstallP2BBDE
InstallP2BXBSE
InstallP2IXBSE_DLL
InstallP2SACL
InstallP2SEVT
InstallP2SEXSR
InstallP2SMAPI
InstallP2SMSIIS
InstallP2SOUTLK
Nom de la propriété du pilote de base de données
InstallCRDB_ADO
InstallCRDB_ADOPLUS
InstallCRDB_CDO
InstallCRDB_COM
InstallCRDB_DATASET
InstallCRDB_ODBC
InstallCRDB_ORACLE
InstallCRDB_QUERY
InstallDAO
InstallFIELDDEF
InstallFILESYSTEM
Description
Pilote de base de données de Crystal Reports pour Microsoft
ActiveX Data Objects/OLE DB
Pilote de base de données de Crystal Reports pour Microsoft
ADO.NET
Pilote de base de données de Crystal Reports pour Crystal
Data Object
Pilote de base de données de Crystal Reports pour le fournis seur de données COM
Pilote de base de données de Crystal Reports pour le fournis seur de DataSet
Pilote de base de données de Crystal Reports pour ODBC
Pilote de base de données de Crystal Reports pour Oracle
Pilote de base de données de Crystal Reports pour les don nées de requête
Pilote de base de données de Crystal Reports pour Microsoft
Data Access Objects (DAO)
Pilote de base de données de Crystal Reports pour les défini tions de champs
Pilote de base de données de Crystal Reports pour les don nées du système de fichiers
Pilote de base de données de Crystal Reports pour le serveur
DB2
Pilote de base de données de Crystal Reports pour le serveur en ligne Informix
Pilote de base de données de Crystal Reports pour IDAPI
Pilote de base de données de Crystal Reports pour xBase
DLL de base de données physique de Crystal Reports pour xBase
Pilote de base de données de Crystal Reports pour ACL Dos siers publics
Pilote de base de données de Crystal Reports pour le journal des événements NT
Pilote de base de données de Crystal Reports pour l'adminis tration du serveur Exchange
Pilote de base de données de Crystal Reports pour les dos siers Exchange et le carnet d'adresses
Pilote de base de données de Crystal Reports pour les fichiers journaux IIS
Pilote de base de données de Crystal Reports pour les don nées Outlook
604
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Nom de la propriété du pilote de base de données
InstallP2SREPL
InstallP2STRACK
InstallP2SWBLG
InstallSYBASE
Pilotes d'exportation
Table 13 :
Nom de la propriété du pilote d'exportation
InstallBTRIEVE
InstallU2DMAPI
InstallU2DNOTES
InstallU2DVIM
InstallU2FCR
InstallU2FHTML
InstallU2FODBC
InstallU2FPDF
InstallU2FREC
InstallU2FRTF
InstallU2FSEPV
InstallU2FTEXT
InstallU2FXLS
InstallU2FXML
Autre
Table 14 :
Propriétés des modules fusionnés
ForceLargerFonts
Description
Pilote de base de données de Crystal Reports pour le réplica des dossiers publics Exchange
Pilote de base de données de Crystal Reports pour les jour naux de suivi des messages du serveur Exchange
Pilote de base de données de Crystal Reports pour les fichiers journaux Web
Pilote de base de données de Crystal Reports pour Sybase
Description
Pilote d'exportation pour le format BTRIEVE
Pilote d'exportation au format MAPI
Pilote d'exportation au format de base de données de Lo tus Notes
Pilote d'exportation au format de messagerie de Lotus Notes
Pilote d'exportation au format utilisé pour exporter les rap ports
Pilote d'exportation au format HTML 4.0
Pilote d'exportation au format ODBC
Pilote d'exportation au format PDF
Pilote d'exportation au format utilisé pour exporter les enre gistrements
Pilote d'exportation au format RTF
Pilote d'exportation au format CSV
Pilote d'exportation au format Texte
Pilote d'exportation au format Microsoft Excel (97-2003)
Pilote d'exportation au format XML
Description
Les polices ne sont pas réduites lorsqu'un rapport Crystal est exporté
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
605
Propriétés des modules fusionnés
InstallWebViewer
Keycode
Description
Visualiseur Web de SAP Crystal Reports
Code clé de SAP Crystal Reports
1.6.2 Déploiement pour Visual Studio
Il existe deux façons de déployer un projet qui utilise SAP Crystal Reports, version développeur pour Microsoft
Visual Studio :
● Déploiement ClickOnce
● Déploiement Windows Installer
Déploiement Windows Installer
Le déploiement Windows Installer est la méthode recommandée pour déployer des projets utilisant des composants SAP Crystal Reports, version développeur pour Microsoft Visual Studio. Avec le déploiement
Windows Installer, vous pouvez déployer vos projets et serveurs Web sur des ordinateurs uniques.
Avantages :
● Permet de mettre à jour le programme d'exécution SAP Crystal Reports avec les derniers Service Packs ou correctifs sans qu'il soit nécessaire de redéployer l'application.
● Les fichiers d'exécution de SAP Crystal Reports ne sont installés qu'une seule fois.
● Permet à l'utilisateur final d'effectuer des installations silencieuses.
Limites :
● Installations distinctes de l'application et des composants d'exécution SAP Crystal Reports.
● Tous les pilotes d'exportation et de base de données sont installés.
Déploiement ClickOnce
Un déploiement ClickOnce simplifie le déploiement d'applications Windows sur un réseau. Avec un déploiement
ClickOnce, l'utilisateur final peut désormais installer la dernière version de l'application à partir d'une page Web commune au lieu de déployer l'application Windows sur chacun des ordinateurs cibles.
Avantages :
● Permet à l'utilisateur final d'installer à la fois l'application et toutes les éventuelles dépendances, telles que .NET Framework ou SAP Crystal Reports, d'un seul clic.
● Détecte automatiquement la disponibilité d'une nouvelle version de l'application, puis télécharge et installe la mise à jour.
Limites :
606
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
● Ne fonctionne pas avec le .NET Framework 1.x.
● Durée d'installation du programme d'exécution SAP Crystal Reports accrue.
Déploiement des modules de fusion
Le déploiement des modules de fusion peut être utilisé pour déployer à la fois des applications Windows et des projets Web. Grâce au déploiement des modules de fusion, vous pouvez joindre un ensemble de composants qui
élimineront les conflits de version et d'autres problèmes courants liés à l'installation. Ces composants peuvent inclure un fichier .dll, des ressources, des entrées de registre, des données logiques de configuration et des fichiers connexes.
Avantages :
● Vous permet de choisir la base de données et les pilotes d'exportation à installer.
● Une installation de l'application et des composants d'exécution Crystal Reports.
● La clé du produit n'est pas demandée aux utilisateurs finaux au moment de l'installation. La clé du produit est intégrée au programme d'installation.
● Permet à l'utilisateur final d'installer les fichiers requis pour l'affichage des cartes géographiques dans le rapport.
● Aucune interface utilisateur indiquant l'ID de la marque Crystal Reports ou Business Objects ne s'affiche pour l'utilisateur final.
Limites :
● La mise à jour des composants d'exécution Crystal Reports nécessite la reconstruction du programme d'installation avec les modules de fusion les plus récents et le redéploiement de votre application sur l'ordinateur cible.
● Déploie un package d'installation de grande taille à destination des utilisateurs finaux, même si les composants d'exécution Crystal Reports sont déjà installés sur les ordinateurs cibles.
1.6.2.1 Conditions requises
Vérifiez que les conditions suivantes sont remplies :
● Visual Studio est installé.
● Applications Web ou Windows utilisant SAP Crystal Reports.
Remarque
Windows Installer fournit les fichiers d'exécution SAP Crystal Reports requis par un projet de déploiement.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
607
Informations associées
Versions de Visual Studio prises en charge [page 10]
1.6.2.2 Déploiement ClickOnce pour Visual Studio
Dans cette section, vous allez apprendre à déployer des projets qui utilisent un déploiement ClickOnce.
Un déploiement ClickOnce réduit le temps et les efforts nécessaires pour déployer des applications Windows sur un réseau. Plutôt que de distribuer un fichier exécutable distinct sur chaque disque dur, le déploiement ClickOnce place ce fichier sur une page Web commune, à partir de laquelle les utilisateurs peuvent l'exécuter. Au moment du processus d'exécution, une copie est placée sur le disque dur de l'utilisateur qui pourra être utilisée pour un redémarrage de l'application en local. Cette copie en local recherche régulièrement les mises à jour du fichier exécutable source sur la page Web.
Les mises à jour de l'application Windows peuvent être republiées sur le serveur Web. Les fichiers d'application les plus récents sont ainsi à la disposition des clients. Si une version antérieure de l'application Windows est ouverte en local sur un ordinateur client, une boîte de dialogue propose de rechercher les mises à jour sur le serveur Web.
1.6.2.2.1 Pour définir les options du déploiement ClickOnce
Prérequis
Vous devez avoir créé une application Windows qui utilise SAP Crystal Reports.
Contexte
Vous devez définir les propriétés de sécurité et de publication dans la fenêtre Propriétés de l'application.
● La propriété
Sécurité
définit les autorisations de votre application. Par défaut, le déploiement ClickOnce comporte un nombre limité d'autorisations. Vous pouvez définir les droits d'accès pour effectuer un déploiement uniquement sur les ordinateurs clients d'un réseau Intranet ou Internet, ou accorder des droits d'accès total.
● La propriété
Publier
définit l'emplacement de déploiement, correspondant à l'URL d'un site Web, un serveur
FTP ou un chemin d'accès de fichier. Cette propriété définit également les composants requis et les mises à jour nécessaires pour l'application déployée.
Procédure
1. Dans l'
Explorateur de solutions
, cliquez avec le bouton droit de la souris sur le nom du projet affiché en gras, puis cliquez sur
Propriétés
.
608
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
2. Cliquez sur l'onglet
Sécurité
.
3. Sélectionnez
Activer les paramètres de sécurité ClickOnce
.
Par défaut, les droits d'accès de sécurité ClickOnce ont pour valeur
Il s'agit d'une application de confiance totale
.
4. Cliquez sur l'onglet
Publier
, puis sur
Composants requis
.
5. Dans la boîte de dialogue
Composants requis
, dans la liste
Choisir les composants requis à installer
, sélectionnez la version de .NET Framework et la version de SAP Crystal Reports qui conviennent. Pour en savoir plus, voir ci-dessous.
Remarque
Si vos clients installent la version correcte de SAP Crystal Reports et le fichier d'exécution correct de .NET Framework avant que vous ne déployiez l'application Windows, la durée de l'installation diminue de manière significative.
6. Cliquez sur
OK
.
7. Dans l'onglet
Publier
, cliquez sur
Mises à jour
. Dans la boîte de dialogue
Mises à jour des applications
, vérifiez que les options suivantes sont sélectionnées : a. Activez la case à cocher
L'application doit vérifier la disponibilité de mises à jour
.
b. Dans la liste
Choisissez à quel moment l'application doit vérifier la disponibilité de mises à jour
, sélectionnez
Avant le démarrage de l'application
.
8. Cliquez sur
OK
pour fermer la boîte de dialogue.
9. Dans le menu
Fichier
, cliquez sur
Enregistrer tout
.
1.6.2.2.2 Pour publier l'application Windows
Contexte
Dans cette section, vous allez apprendre à utiliser l'Assistant Publication pour publier l'application Windows sur un site Web.
Remarque
Lorsque vous modifiez l'application sur l'ordinateur de développement, republiez-la et définissez les propriétés de mise à jour. Si vous ouvrez une version antérieure de l'application sur l'ordinateur client, celui-ci est informé qu'il existe une nouvelle version de l'application Windows.
Procédure
1. Dans l'
Explorateur de solutions
, cliquez avec le bouton droit de la souris sur le nom du projet affiché en gras, puis cliquez sur
Publier
.
2. Lorsque la boîte de dialogue
Assistant Publication
s'affiche, spécifiez l'emplacement de publication de l'application, puis cliquez sur
Suivant
.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
609
3. Dans la boîte de dialogue
L'application sera-t-elle disponible hors connexion ?
, sélectionnez
Oui, cette application est disponible en ligne ou hors connexion
, puis cliquez sur
Suivant
.
4. Dans la boîte de dialogue
Prêt pour la publication
, notez l'URL dans laquelle l'application va être publiée, puis cliquez sur
Terminer
.
1.6.2.2.3 Pour installer et exécuter l'application Windows sur un ordinateur client
Contexte
Pour effectuer un déploiement ClickOnce, vous devez ouvrir le site Web publié sur l'ordinateur client et choisir l'option à utiliser lors de l'installation de l'application Windows.
Procédure
1. Sur l'ordinateur client, ouvrez une fenêtre de navigateur Web.
2. Dans la barre d'adresses du navigateur, saisissez l'URL du site Web publié créé lors de la procédure précédente.
http://localhost/ProjectName/publish.htm
Le site Web publié affiche le nom de votre application Windows.
3. Le site Web contient des liens permettant d'installer et d'exécuter l'application Windows avec ou sans les composants requis.
○ Cliquez sur le lien de
lancement
pour exécuter l'application si vous avez déjà installé les composants requis sur l'ordinateur client.
○ Cliquez sur le bouton d'
installation
pour installer les composants requis sur l'ordinateur client et exécuter l'application.
4. Installez l'application, après avoir accepté le contrat de licence si ce dernier s'affiche.
5. Une fois l'installation terminée, vous pouvez accéder à l'application Windows à partir du menu
Démarrer
.
1.6.2.3 Déploiement Windows Installer pour Visual Studio
Dans cette section, vous allez apprendre à déployer des projets qui utilisent SAP Crystal Reports, version développeur pour Microsoft Visual Studio avec la technologie Windows Installer. Windows Installer permet de créer des projets de déploiement plus petits et de réduire la durée de l'installation.
Vous pouvez utiliser le programme Windows Installer lorsque de nombreux projets de déploiement sont installés sur le même ordinateur cible. Dans ce cas, les fichiers d'exécution SAP Crystal Reports sont installés en une fois.
610
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.6.2.3.1 Création d'un projet de déploiement de site Web à l'aide de Windows Installer
Pour déployer votre site Web, suivez les instructions du tutoriel de cette section.
Vous allez d'abord créer un projet d'installation Web pour déployer un site Web utilisant SAP Crystal Reports, version développeur pour Microsoft Visual Studio. Vous allez ensuite ajouter les fichiers de sortie nécessaires à l'exécution de l'application. Enfin, vous allez générer les fichiers d'installation qui déploieront le site Web.
1.6.2.3.1.1 Pour créer un projet d'installation Web pour les sites Web
Prérequis
Vous devez avoir créé un site Web qui utilise SAP Crystal Reports.
Contexte
Dans cet exemple, vous allez créer un projet d'installation Web pour les sites Web à partir des projets de déploiement fournis dans Visual Studio.
Procédure
1. Dans Visual Studio, ouvrez votre site Web.
2. Dans le menu
Fichier
, pointez sur
Ajouter
, puis cliquez sur
Nouveau projet
.
3. Accédez au panneau
Types de projets
de la boîte de dialogue
Ajouter un nouveau projet
nouveau projet.
4. Développez
Autres types de projets
, puis sélectionnez
Projets de configuration et de déploiement
.
5. Dans le panneau
Modèles
, sélectionnez
Projet d'installation Web
.
6. Choisissez un nom approprié pour le projet, spécifiez son emplacement, puis cliquez sur
OK
.
Dans ce tutoriel, on désignera le projet d'installation par son nom par défaut,
WebSetup1
.
7. Dans l'onglet
Système de fichiers
, cliquez sur
Dossier d'application Web
.
8. Dans la fenêtre
Propriétés
, attribuez à la propriété
DefaultDocument
la page de démarrage (fichier ASPX) du site Web.
Le nom du projet a été attribué à la propriété
VirtualDirectory
du projet d'installation Web.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
611
1.6.2.3.1.2 Pour ajouter des fichiers de sortie au projet d'installation Web
Contexte
Cette tâche consiste à ajouter les fichiers de sortie utilisés par le site Web au projet d'installation Web.
Procédure
1. Dans l'
Explorateur de solutions
, cliquez avec le bouton droit de la souris sur
WebSetup1
, pointez sur
Ajouter
, puis cliquez sur
Sortie de projet
.
2. Dans la boîte de dialogue
Ajouter le groupe de sorties du projet
, sélectionnez
Content Files
et
Sortie principale
(si ces options sont disponibles).
Pour le paramètre
Configuration
, conservez la valeur (Actif).
1.6.2.3.1.3 Pour générer le projet d'installation Web
Prérequis
Le .NET Framework exigé est installé sur l'ordinateur cible.
Contexte
La génération du projet d'installation Web crée les fichiers d'installation qui doivent être copiés sur les autres ordinateurs. Vous pouvez exécuter le fichier d'installation de votre choix sur les ordinateurs cibles pour déployer le site Web.
Procédure
1. Dans l'
Explorateur de solutions
, cliquez avec le bouton droit de la souris sur
WebSetup1
et sélectionnez
Propriétés
.
Dans ce tutoriel, on désignera le projet d'installation par son nom par défaut,
WebSetup1
.
2. Modifiez la configuration de solution en attribuant la valeur
Release
.
3. Dans le menu
Générer
, cliquez sur
Générer WebSetup1
.
612
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Résultats
Le processus de génération crée les fichiers de programme d'installation suivants :
● setup.exe
● setup1.msi
1.6.2.3.1.4 Pour déployer le projet d'installation Web
Prérequis
Le serveur d'applications de l'ordinateur cible doit avoir pour valeur le numéro de version du .NET Framework utilisé pour générer le projet d'installation.
Procédure
1. En dehors de Visual Studio, naviguez vers le répertoire dans lequel votre projet de déploiement a été enregistré.
2. Cliquez deux fois sur le dossier WebSetup1.
3. Ouvrez le dossier Release qui contient les fichiers générés par le projet d'installation Web.
4. Copiez tous les fichiers sur l'ordinateur cible.
5. Distribuez les rapports Crystal qui sont utilisés dans le site Web.
Pour en savoir plus sur les scénarios de liaison qui nécessitent la distribution des fichiers de rapport, voir
Fichiers de rapport [page 599]
.
6. Sur l'ordinateur cible, cliquez deux fois sur Setup.exe ou sur WebSetup1.msi pour installer le site Web.
7. Pour visualiser le site Web déployé, ouvrez une fenêtre de navigateur Web sur l'ordinateur cible. Saisissez ensuite http://localhost/WebSetup1 dans la barre d'adresses.
Remplacez localhost par le nom de votre serveur.
1.6.2.3.2 Création d'un projet de déploiement d'application
Windows à l'aide de Windows Installer
Pour déployer vos applications Windows, suivez les instructions du tutoriel de cette section.
Vous allez d'abord créer un projet d'installation pour les applications Windows afin de déployer une application
Windows qui utilise SAP Crystal Reports, version développeur pour Microsoft Visual Studio. Vous allez ensuite ajouter les fichiers de sortie nécessaires à l'exécution de l'application. Enfin, vous allez générer les fichiers d'installation qui déploieront votre application Windows.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
613
1.6.2.3.2.1 Pour créer un projet d'installation pour les applications Windows
Prérequis
Vous devez avoir créé une application Windows qui utilise SAP Crystal Reports.
Contexte
Dans cet exemple, vous allez créer un projet d'installation Web pour les sites Web à partir des projets de déploiement fournis dans Visual Studio.
Procédure
1. Dans Visual Studio, ouvrez votre application Windows.
2. Dans le menu
Fichier
, pointez sur
Ajouter
, puis cliquez sur
Nouveau projet
.
3. Accédez au panneau
Types de projets
de la boîte de dialogue
Ajouter un nouveau projet
nouveau projet.
4. Développez
Autres types de projets
, puis sélectionnez
Projets de configuration et de déploiement
.
5. Dans le panneau
Modèles
, sélectionnez
Projet d'installation
.
6. Choisissez un nom approprié pour le projet, spécifiez son emplacement, puis cliquez sur
OK
.
Dans ce tutoriel, on désignera le projet d'installation par son nom par défaut,
Setup1
.
1.6.2.3.2.2 Pour ajouter des fichiers de sortie au projet d'installation Windows
Contexte
Dans cet exemple, vous allez ajouter les fichiers de sortie utilisés par l'application Windows au projet d'installation.
Procédure
1. Dans l'Explorateur de solutions, cliquez avec le bouton droit de la souris sur
Setup1
, pointez sur
Ajouter
, puis cliquez sur
Sortie de projet
.
2. Dans la boîte de dialogue
Ajouter le groupe de sorties du projet
, sélectionnez
Sortie principale
. Pour le paramètre
Configuration
, conservez la valeur (Actif).
614
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.6.2.3.2.3 Pour générer le projet d'installation Windows
Prérequis
.NET Framework doit être installé sur l'ordinateur cible.
Contexte
La génération du projet d'installation crée les fichiers d'installation qui doivent être copiés sur les autres ordinateurs. Vous pouvez exécuter le fichier d'installation de votre choix sur les ordinateurs cibles pour déployer l'application Web.
Procédure
1. Dans l'
Explorateur de solutions
, cliquez avec le bouton droit de la souris sur
Setup1
et sélectionnez
Propriétés
.
2. Modifiez la configuration de solution en attribuant la valeur
Release
.
3. Dans le menu
Générer
, cliquez sur
Générer Setup1
.
Résultats
Le processus de génération crée les fichiers de programme d'installation suivants :
● setup.exe
● setup1.msi
1.6.2.3.2.4 Pour déployer le projet d'installation Windows
Procédure
1. En dehors de Visual Studio, naviguez vers le répertoire dans lequel votre projet de déploiement a été enregistré.
2. Cliquez deux fois sur le dossier Setup1.
3. Ouvrez le dossier Release qui contient les fichiers générés par le projet d'installation.
4. Copiez tous les fichiers sur l'ordinateur cible.
5. Distribuez les rapports Crystal utilisés dans l'application Windows.
Pour en savoir plus sur les scénarios de liaison qui nécessitent la distribution des fichiers de rapport, voir
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
615
Fichiers de rapport [page 599] .
6. Sur l'ordinateur cible, cliquez deux fois sur
Setup.exe
ou sur
Setup1.msi
pour installer l'application Windows.
7. Pour visualiser l'application Windows, accédez à l'emplacement où elle a été installée (C:\Program Files
\Business Objects\Setup1), puis cliquez deux fois sur le fichier .exe de l'application Windows.
1.6.2.3.3 Exécution d'une installation silencieuse à l'aide de
Windows Installer
Contexte
Windows Installer permet d'effectuer une installation silencieuse sur un ordinateur client. Une installation silencieuse est une procédure qui s'exécute depuis la ligne de commande et ne nécessite aucune intervention de l'utilisateur.
Procédure
1. Lancez l'invite de commande.
2. Localisez le chemin d'accès au fichier Windows Installer.
3. Exécutez le fichier exécutable msiexec.exe.
Remplacez "C:\install.msi" par le chemin d'accès au fichier Windows Installer.
msiexec.exe /i "C:\install.msi" /qn
L'application s'installe.
1.6.2.4 Déploiement des modules de fusion pour
Visual Studio
Les procédures décrites dans les sections suivantes permettent de créer des projets de déploiement de modules de fusion pour des sites Web ou des applications Windows utilisant SAP Crystal Reports, version développeur pour Microsoft Visual Studio.
Lorsque vous utilisez des scénarios de liaison de rapports pour les services Crystal, vous devez suivre des procédures de déploiement légèrement différentes qui ne sont pas décrites dans ce tutoriel.
Remarque
Le déploiement Windows Installer est la méthode recommandée pour déployer des projets utilisant
SAP Crystal Reports, version développeur pour Microsoft Visual Studio.
616
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Informations associées
Déploiement Windows Installer pour Visual Studio [page 610]
1.6.2.4.1 Création d'un projet de déploiement de site Web à l'aide des modules de fusion
Pour déployer votre site Web, suivez les instructions du tutoriel de cette section.
Vous allez d'abord créer un projet d'installation Web pour déployer un site Web utilisant SAP Crystal Reports, version développeur pour Microsoft Visual Studio. Vous allez ensuite ajouter les fichiers de sortie et les modules de fusion nécessaires à l'exécution de l'application. Enfin, vous allez générer les fichiers d'installation qui déploieront le site Web.
1.6.2.4.1.1 Pour créer un projet d'installation Web pour les sites Web
Prérequis
Vous devez avoir créé un site Web qui utilise SAP Crystal Reports.
Contexte
Dans cet exemple, vous allez créer un projet d'installation Web pour les sites Web à partir des projets de déploiement fournis dans Visual Studio.
Procédure
1. Dans Visual Studio, ouvrez votre site Web.
2. Dans le menu
Fichier
, pointez sur
Ajouter
, puis cliquez sur
Nouveau projet
.
3. Accédez au panneau
Types de projets
de la boîte de dialogue
Ajouter un nouveau projet
nouveau projet.
4. Développez
Autres types de projets
, puis sélectionnez
Projets de configuration et de déploiement
.
5. Dans le panneau
Modèles
, sélectionnez
Projet d'installation Web
.
6. Choisissez un nom approprié pour le projet, spécifiez son emplacement, puis cliquez sur
OK
.
Dans ce tutoriel, on désignera le projet d'installation par son nom par défaut,
WebSetup1
.
7. Dans l'onglet
Système de fichiers
, cliquez sur
Dossier d'application Web
.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
617
8. Dans la fenêtre
Propriétés
, attribuez à la propriété
DefaultDocument
la page de démarrage (fichier ASPX) du site Web.
Le nom du projet a été attribué à la propriété
VirtualDirectory
du projet d'installation Web.
1.6.2.4.1.2 Pour ajouter des fichiers de sortie au projet d'installation Web
Contexte
Cette tâche consiste à ajouter les fichiers de sortie utilisés par le site Web au projet d'installation Web.
Procédure
1. Dans l'
Explorateur de solutions
, cliquez avec le bouton droit de la souris sur
WebSetup1
, pointez sur
Ajouter
, puis cliquez sur
Sortie de projet
.
2. Dans la boîte de dialogue
Ajouter le groupe de sorties du projet
, sélectionnez
Content Files
et
Sortie principale
(si ces options sont disponibles).
Pour le paramètre
Configuration
, conservez la valeur (Actif).
1.6.2.4.1.3 Pour ajouter des modules de fusion au projet d'installation Web
Procédure
1. Dans l'
Explorateur de solutions
, cliquez avec le bouton droit de la souris sur
WebSetup1
, sélectionnez
Ajouter
, puis cliquez sur
Module de fusion
.
2. Dans la boîte de dialogue
Ajouter des modules
, accédez au dossier de votre ordinateur qui contient le package de modules de fusion.
3. Sélectionnez les modules de fusion nécessaires à votre application de site Web et ajoutez-les à celle-ci.
4. Dans l'Explorateur de solutions, vérifiez que les modules de fusion sélectionnés ont été ajoutés sous Setup1.
1.6.2.4.1.4 Pour générer le projet d'installation Web
Prérequis
Le .NET Framework exigé est installé sur l'ordinateur cible.
618
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Contexte
La génération du projet d'installation Web crée les fichiers d'installation qui doivent être copiés sur les autres ordinateurs. Vous pouvez exécuter le fichier d'installation de votre choix sur les ordinateurs cibles pour déployer le site Web.
Procédure
1. Dans l'
Explorateur de solutions
, cliquez avec le bouton droit de la souris sur
WebSetup1
et sélectionnez
Propriétés
.
Dans ce tutoriel, on désignera le projet d'installation par son nom par défaut,
WebSetup1
.
2. Modifiez la configuration de solution en attribuant la valeur
Release
.
3. Dans le menu
Générer
, cliquez sur
Générer WebSetup1
.
Résultats
Le processus de génération crée les fichiers de programme d'installation suivants :
● setup.exe
● setup1.msi
1.6.2.4.1.5 Pour déployer le projet d'installation Web
Prérequis
Le serveur d'applications de l'ordinateur cible doit avoir pour valeur le numéro de version du .NET Framework utilisé pour générer le projet d'installation.
Procédure
1. En dehors de Visual Studio, naviguez vers le répertoire dans lequel votre projet de déploiement a été enregistré.
2. Cliquez deux fois sur le dossier WebSetup1.
3. Ouvrez le dossier Release qui contient les fichiers générés par le projet d'installation Web.
4. Copiez tous les fichiers sur l'ordinateur cible.
5. Distribuez les rapports Crystal qui sont utilisés dans le site Web.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
619
Pour en savoir plus sur les scénarios de liaison qui nécessitent la distribution des fichiers de rapport, voir
Fichiers de rapport [page 599] .
6. Sur l'ordinateur cible, cliquez deux fois sur Setup.exe ou sur WebSetup1.msi pour installer le site Web.
7. Pour visualiser le site Web déployé, ouvrez une fenêtre de navigateur Web sur l'ordinateur cible. Saisissez ensuite http://localhost/WebSetup1 dans la barre d'adresses.
Remplacez localhost par le nom de votre serveur.
1.6.2.4.2 Création d'un projet de déploiement d'application
Windows à l'aide des modules de fusion
Pour déployer vos applications Windows, suivez les instructions du tutoriel de cette section.
Vous allez d'abord créer un projet d'installation pour les applications Windows afin de déployer une application
Windows qui utilise SAP Crystal Reports, version développeur pour Microsoft Visual Studio. Vous allez ensuite ajouter les fichiers de sortie et les modules de fusion nécessaires à l'exécution de l'application. Enfin, vous allez générer les fichiers d'installation qui déploieront votre application Windows.
1.6.2.4.2.1 Pour créer un projet d'installation pour les applications Windows
Prérequis
Vous devez avoir créé une application Windows qui utilise SAP Crystal Reports.
Contexte
Dans cet exemple, vous allez créer un projet d'installation Web pour les sites Web à partir des projets de déploiement fournis dans Visual Studio.
Procédure
1. Dans Visual Studio, ouvrez votre application Windows.
2. Dans le menu
Fichier
, pointez sur
Ajouter
, puis cliquez sur
Nouveau projet
.
3. Accédez au panneau
Types de projets
de la boîte de dialogue
Ajouter un nouveau projet
nouveau projet.
4. Développez
Autres types de projets
, puis sélectionnez
Projets de configuration et de déploiement
.
5. Dans le panneau
Modèles
, sélectionnez
Projet d'installation
.
6. Choisissez un nom approprié pour le projet, spécifiez son emplacement, puis cliquez sur
OK
.
620
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Dans ce tutoriel, on désignera le projet d'installation par son nom par défaut,
Setup1
.
1.6.2.4.2.2 Pour ajouter des fichiers de sortie au projet d'installation Windows
Contexte
Dans cet exemple, vous allez ajouter les fichiers de sortie utilisés par l'application Windows au projet d'installation.
Procédure
1. Dans l'Explorateur de solutions, cliquez avec le bouton droit de la souris sur
Setup1
, pointez sur
Ajouter
, puis cliquez sur
Sortie de projet
.
2. Dans la boîte de dialogue
Ajouter le groupe de sorties du projet
, sélectionnez
Sortie principale
. Pour le paramètre
Configuration
, conservez la valeur (Actif).
1.6.2.4.2.3 Pour ajouter des modules de fusion au projet d'installation Windows
Procédure
1. Dans l'
Explorateur de solutions
, cliquez avec le bouton droit de la souris sur
WebSetup1
, sélectionnez
Ajouter
, puis cliquez sur
Module de fusion
.
2. Dans la boîte de dialogue
Ajouter des modules
, accédez au dossier de votre ordinateur qui contient le package de modules de fusion.
3. Sélectionnez les modules de fusion nécessaires à votre application Windows et ajoutez-les à celle-ci.
4. Dans l'Explorateur de solutions, vérifiez que les modules de fusion sélectionnés ont été ajoutés sous Setup1.
1.6.2.4.2.4 Pour générer le projet d'installation Windows
Prérequis
.NET Framework doit être installé sur l'ordinateur cible.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
621
Contexte
La génération du projet d'installation crée les fichiers d'installation qui doivent être copiés sur les autres ordinateurs. Vous pouvez exécuter le fichier d'installation de votre choix sur les ordinateurs cibles pour déployer l'application Web.
Procédure
1. Dans l'
Explorateur de solutions
, cliquez avec le bouton droit de la souris sur
Setup1
et sélectionnez
Propriétés
.
2. Modifiez la configuration de solution en attribuant la valeur
Release
.
3. Dans le menu
Générer
, cliquez sur
Générer Setup1
.
Résultats
Le processus de génération crée les fichiers de programme d'installation suivants :
● setup.exe
● setup1.msi
1.6.2.4.2.5 Pour déployer le projet d'installation Windows
Procédure
1. En dehors de Visual Studio, naviguez vers le répertoire dans lequel votre projet de déploiement a été enregistré.
2. Cliquez deux fois sur le dossier Setup1.
3. Ouvrez le dossier Release qui contient les fichiers générés par le projet d'installation.
4. Copiez tous les fichiers sur l'ordinateur cible.
5. Distribuez les rapports Crystal utilisés dans l'application Windows.
Pour en savoir plus sur les scénarios de liaison qui nécessitent la distribution des fichiers de rapport, voir
Fichiers de rapport [page 599] .
6. Sur l'ordinateur cible, cliquez deux fois sur
Setup.exe
ou sur
Setup1.msi
pour installer l'application Windows.
7. Pour visualiser l'application Windows, accédez à l'emplacement où elle a été installée (C:\Program Files
\Business Objects\Setup1), puis cliquez deux fois sur le fichier .exe de l'application Windows.
622
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.6.2.5 Migration d'un projet utilisant un déploiement de modules de fusion vers un projet utilisant un déploiement Windows Installer
Suivez les instructions indiquées dans cette section pour faire migrer un projet SAP Crystal Reports, version développeur pour Microsoft Visual Studio existant utilisant un déploiement de modules de fusion vers un déploiement Windows Installer.
Vous devez supprimer les modules de fusion du projet d'installation. Vous devez ensuite régénérer le projet d'installation. Enfin, utilisez le fichier.msi de Windows Installer pour déployer votre application.
Dans ce tutoriel, on désignera le projet d'installation par son nom par défaut,
Setup1
.
Remarque
Si vous utilisez un projet Visual Studio .NET généré avec une version plus ancienne de Visual Studio, vous devez tout d'abord convertir l'application Windows ou le site Web en projet Visual Studio 2010 ou version ultérieure.
1.6.2.5.1 Pour supprimer les modules de fusion du projet d'installation
Procédure
1. Dans Visual Studio, ouvrez votre projet.
2. Dans l'
Explorateur de solutions
, développez
Setup1
et pointez sur un module de fusion ayant été ajouté au projet d'installation. Cliquez sur
Supprimer
.
3. Répétez l'étape 2 pour supprimer tous les modules de fusion SAP Crystal Reports, version développeur pour
Microsoft Visual Studio.
1.6.2.5.2 Pour générer et déployer le projet d'installation
Après avoir supprimé les modules de fusion de votre projet d'installation, vous devez générer et déployer le projet d'installation. Pour en savoir plus, voir
Pour générer le projet d'installation Windows [page 621]
.
1.7 Création des rapports
Cette section fournit des informations détaillées sur l'utilisation du SAP Crystal Reports Designer incorporé dans
Visual Studio. Elle présente également la syntaxe qui peut être utilisée pour créer des formules dans un rapport
Crystal ainsi qu'une interface utilisateur pour référence.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
623
Le SAP Crystal Reports Designer incorporé comprend des tutoriels pour vous aider à découvrir et comprendre
SAP Crystal Reports :
● Pour accéder à des instructions détaillées sur l'utilisation de fonctionnalités spécifiques du SDK
familiarisé avec les concepts de création de rapports.
Informations associées
Utilisation du SAP Crystal Reports Designer incorporé [page 624]
1.7.1 Utilisation du SAP Crystal Reports Designer incorporé
SAP Crystal Reports permet d'ajouter des fonctionnalités de création de rapports à votre application ou service
Web. Vous pouvez créer un rapport de toutes pièces ou utiliser un des
Assistants de création de rapports Crystal
[page 635] pour vous aider tout au long du processus de conception.
Les rapports que vous créez peuvent être utilisés aussi bien dans des applications Web que dans des applications
Windows. Vous pouvez également publier un rapport Crystal en tant que service Web de rapports sur un serveur
Web.
Quoi que vous décidiez de faire de votre rapport, vous devez créer et modifier le rapport dans le
SAP Crystal Reports Designer incorporé. Le SAP Crystal Reports Designer incorporé vous permet de concevoir et de modifier des rapports dans l'environnement de développement intégré (IDE) de Visual Studio. Vous pouvez le programmer directement à partir de l'environnement de développement intégré de Visual Studio. Il n'est pas nécessaire de distribuer le concepteur avec le rapport.
1.7.1.1 Aperçu du SAP Crystal Reports Designer incorporé
Présente la disposition et les outils du SAP Crystal Reports Designer incorporé.
Utilisez le SAP Crystal Reports Designer incorporé pour définir la source de données du rapport, pour sélectionner et regrouper les enregistrements de données que vous voulez utiliser, et pour mettre en forme les objets et la
pour vous aider tout au long du processus de conception.
Le SAP Crystal Reports Designer incorporé utilise une méthode glisser-déplacer similaire à celle de Visual Studio : vous faites glisser un objet de rapport dans le concepteur (champ de base de données ou objet texte, par exemple) et vous utilisez la fenêtre de propriétés ou le menu contextuel pour mettre l'objet en forme.
624
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.7.1.1.1 Accès au SAP Crystal Reports Designer incorporé
Lorsque vous cliquez deux fois sur un objet de rapport Crystal existant dans votre projet ou lorsque vous ajoutez un nouvel objet rapport à votre projet, le SAP Crystal Reports Designer incorporé se lance automatiquement.
Informations associées
Accès aux données et ajout des données [page 643]
1.7.1.1.1.1
Procédure
Pour créer un nouveau rapport
1. Dans l'
Explorateur de solutions
, cliquez avec le bouton droit de la souris sur le nom du projet affiché en gras pour faire apparaître le menu contextuel.
2. Pointez sur
Ajouter
, puis cliquez sur
Ajouter un nouvel élément
.
3. Dans la boîte de dialogue Ajouter un nouvel élément, sélectionnez
Rapport
Crystal dans la zone Modèles.
Cliquez sur
Ajouter
.
4. Dans la Galerie de rapports Crystal, sélectionnez une des options suivantes :
○
en utilisant l'Assistant de création de rapports
– vous guide tout au long du processus de création de rapport et ajoute vos choix au SAP Crystal Reports Designer incorporé.
○
à partir d'un rapport vide
– ouvre le SAP Crystal Reports Designer incorporé.
○
à partir d'un rapport existant
– crée un rapport avec la même conception qu'un autre rapport que vous spécifiez.
Remarque
La Galerie de rapports contient un certain nombre d'experts qui peuvent vous aider tout au long de la création de types de rapports spécifiques. Vous pouvez créer vos premiers rapports à l'aide des experts, afin de déterminer quelle méthode de construction de rapport répond le mieux à vos besoins.
5. Cliquez sur
OK
.
6. Enregistrez le rapport en cliquant sur
Enregistrer
dans la barre d'outils Standard.
Résultats
Si vous choisissez d'utiliser l'Assistant de création de rapports, la boîte de dialogue Assistant de création de rapports standard s'affiche avec l'écran Données actif. Sélectionnez les données requises pour chaque dossier, renseignez tous les champs de l'Assistant de création de rapports standard, puis cliquez sur Terminer pour accéder au SAP Crystal Reports Designer incorporé et à votre rapport.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
625
1.7.1.1.2 Présentation du SAP Crystal Reports Designer incorporé
Lorsque vous créez un rapport, vous effectuez la plupart des tâches de conception de rapport dans le
SAP Crystal Reports Designer incorporé. Celui-ci est divisé en sections de rapport auxquelles ont été affectées des étiquettes. Vous pouvez placer des objets de rapport, tels que des champs de base de données, de formule, de paramètre et de total cumulé, dans la section où vous souhaitez les voir apparaître.
Le SAP Crystal Reports Designer incorporé fournit un environnement extrêmement performant pour la conception d'un rapport car, bien que vous utilisiez des données de base de données, vous travaillez dans un environnement de conception où ces données n'ont pas besoin d'être actualisées lorsque vous apportez des modifications au rapport. Lorsque vous placez un champ sur le rapport, le SAP Crystal Reports Designer incorporé utilise une trame pour identifier le champ dans l'onglet, au lieu d'extraire les données. Ainsi, vous pouvez ajouter ou supprimer des champs et d'autres objets, les déplacer, et configurer des formules complexes sans avoir à attendre que les données soient actualisées.
Le diagramme suivant montre le SAP Crystal Reports Designer incorporé affichant un exemple de rapport nommé
World Sales.
L'
Explorateur de champs [page 632] et les
Barres d'outils de Crystal Reports [page 633] (boutons de la barre
d'outils) font partie du SAP Crystal Reports Designer incorporé. Les sections de rapport du
SAP Crystal Reports Designer incorporé montrent les objets de rapport inclus dans chaque section.
Dans l'exemple ci-dessous, "En-tête du rapport a" contient le logo de la société et "En-tête du rapport c" contient un diagramme montrant les ventes de l'année précédente par pays. Le logo et le diagramme sont des objets de rapport qui ont été amenés par glisser-déplacer sur la page, puis mis en forme. Le logo et le diagramme faisant partie de l'en-tête du rapport, ils n'apparaîtront que dans le rapport final.
L'
Explorateur de champs [page 632] répertorie tous les champs disponibles pour ce rapport. Les coches
indiquent les champs qui sont actuellement insérés dans le rapport.
626
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Informations associées
Conception de nouveaux rapports [page 639]
1.7.1.1.2.1 Présentation des sections de rapport
Pour un nouveau rapport, le SAP Crystal Reports Designer incorporé est divisé en cinq sections de rapport. Vous pouvez choisir de créer des sections supplémentaires ou de masquer certaines sections.
● En-tête du rapport
● En-tête de page
● Détails
● Pied de page du rapport
● Pied de page
Les données qui apparaissent dans le rapport final dépendent de vos choix de conception : en particulier, les données du rapport varient en fonction des sections dans lesquelles vous choisissez d'insérer des objets de rapport spécifiques. Par exemple, si vous insérez un objet diagramme dans la section En-tête du rapport, le diagramme n'apparaîtra qu'une seule fois au début du rapport et va résumer les données contenues dans le
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
627
rapport. Par contre, si un objet diagramme est ajouté à la section En-tête de groupe, un diagramme distinct apparaîtra au début de chaque groupe de données et va résumer les données relatives à ce groupe uniquement.
Informations associées
Détermination des caractéristiques de la zone d'impression [page 642]
Modèle de traitement des rapports [page 637]
Masquage des sections de rapport [page 754]
Conception de nouveaux rapports [page 639]
1.7.1.1.2.1.1 En-tête du rapport
Les objets placés dans la section En-tête du rapport s'impriment une seule fois, au début du rapport.
La section En-tête du rapport contient généralement le titre du rapport et les autres informations que vous ne souhaitez voir apparaître qu'au début du rapport.
● Les diagrammes et les tableaux croisés placés dans cette section contiennent les données concernant l'ensemble du rapport.
● Les formules placées dans cette section ne sont évaluées qu'une seule fois, au début du rapport.
Informations associées
Détermination des caractéristiques de la zone d'impression [page 642]
Aperçu du SAP Crystal Reports Designer incorporé [page 624]
1.7.1.1.2.1.2 En-tête de page
Les objets placés dans la section En-tête de page s'impriment au début de chaque nouvelle page.
La section En-tête de page contient généralement les informations que vous voulez voir apparaître en haut de chaque page. Cela peut inclure des champs de texte tels que les noms de chapitre, le nom du document ou toute autre information similaire. Cette section peut également contenir des titres de champ, qui s'afficheront ensuite dans le rapport sous forme d'étiquettes au-dessus des colonnes contenant les données de champ.
● Les diagrammes et les tableaux croisés ne peuvent pas être placés dans cette section.
● Les formules placées dans cette section sont évaluées une fois par page, au début de chaque nouvelle page.
628
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Informations associées
Détermination des caractéristiques de la zone d'impression [page 642]
Aperçu du SAP Crystal Reports Designer incorporé [page 624]
1.7.1.1.2.1.3 Détails
Les objets placés dans la section Détails s'impriment avec chaque nouvel enregistrement.
La section Détails contient les données concernant le corps du rapport. La majeure partie des données du rapport apparaît généralement dans cette section. Lorsque le rapport est exécuté, la section Détails est réimprimée pour chaque enregistrement. Par exemple, si vous ajoutez un objet de base de données à la section Détails et que cet objet de base de données contient 100 enregistrements, le rapport imprimera 100 sections de détail individuelles au moment de l'exécution.
● Les diagrammes et les tableaux croisés ne peuvent pas être placés dans cette section.
● Les formules placées dans cette section sont évaluées une fois pour chaque enregistrement.
Informations associées
Détermination des caractéristiques de la zone d'impression [page 642]
Aperçu du SAP Crystal Reports Designer incorporé [page 624]
1.7.1.1.2.1.4 Pied de page du rapport
Les objets placés dans la section Pied de page du rapport s'impriment une seule fois à la fin du rapport.
Cette section contient les informations que vous ne voulez voir apparaître qu'une seule fois à la fin du rapport, telles que les totaux généraux.
● Les diagrammes et les tableaux croisés placés dans cette section contiennent les données concernant l'ensemble du rapport.
● Les formules placées dans cette section ne sont évaluées qu'une seule fois, à la fin du rapport.
Informations associées
Détermination des caractéristiques de la zone d'impression [page 642]
Aperçu du SAP Crystal Reports Designer incorporé [page 624]
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
629
1.7.1.1.2.1.5 Pied de page
Les objets placés dans la section Pied de page s'impriment au bas de chaque page.
Cette section contient généralement le numéro de page et toute autre information que vous voulez voir apparaître au bas de chaque page.
● Les diagrammes et les tableaux croisés ne peuvent pas être placés dans cette section.
● Les formules placées dans cette section sont évaluées une fois par page, à la fin de chaque nouvelle page.
Informations associées
Détermination des caractéristiques de la zone d'impression [page 642]
Aperçu du SAP Crystal Reports Designer incorporé [page 624]
1.7.1.1.2.1.6 Sections de rapport supplémentaires
Si vous ajoutez un groupe, un résumé ou un sous-total au rapport, le programme crée deux sections supplémentaires : En-tête de groupe et Pied de page de groupe.
Lorsqu'un groupe, un résumé ou un sous-total est ajouté, la section En-tête de groupe apparaît directement audessus de la section Détails, et la section Pied de page de groupe apparaît directement au-dessous de la section
Détails. Comme les sections de rapport d'origine, chacune de ces nouvelles sections peut contenir une ou plusieurs sous-sections. Par défaut, elle est composée d'une seule section.
En-tête de groupe
Les objets placés dans la section En-tête de groupe s'impriment au début de chaque nouveau groupe.
Cette section contient généralement le champ Nom du groupe, et elle peut également être utilisée pour afficher des diagrammes ou des tableaux croisés qui contiennent des données spécifiques du groupe. La section En-tête de groupe est imprimée une fois au début de chaque groupe.
● Les diagrammes et les tableaux croisés placés dans cette section contiennent des données concernant uniquement le groupe.
● Les formules placées dans cette section sont évaluées une fois pour chaque groupe, au début du groupe.
Pied de page de groupe
Les objets placés dans la section Pied de page de groupe s'impriment à la fin de chaque groupe.
630
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Cette section contient généralement la valeur de résumé, s'il y en a une, et elle peut être utilisée pour afficher des diagrammes ou des tableaux croisés. La section Pied de page de groupe est imprimée une fois à la fin de chaque groupe.
● Les diagrammes et les tableaux croisés placés dans cette section contiennent des données concernant uniquement le groupe.
● Les formules placées dans cette section sont évaluées une fois pour chaque groupe, à la fin du groupe.
Informations associées
Détermination des caractéristiques de la zone d'impression [page 642]
Conception de nouveaux rapports [page 639]
1.7.1.1.2.2 Caractéristiques des sections de rapport
Un rapport comporte plusieurs sections : l'En-tête du rapport, l'En-tête de page et l'En-tête de groupe, les Détails, le Pied de page de groupe, le Pied de page et le Pied de page du rapport.
Chaque section d'un rapport comporte une série de lignes. Lorsqu'un objet texte est inséré dans une section, il est placé sur une ligne pour que le texte s'aligne sur la ligne de base. La hauteur de la ligne est donc ajustée par le pilote d'imprimante pour que la ligne d'impression s'adapte à l'objet.
Donc, la hauteur d'une ligne sera déterminée par l'objet texte dont la police est la plus grande.
● Si un autre objet texte est positionné sur la même ligne et que sa taille de police est plus grande que le premier objet, la hauteur de la ligne est modifiée pour s'adapter au deuxième objet.
● Si un autre objet texte est placé sur la même ligne et sa taille de police est encore plus grande que les deux premières, la hauteur de la ligne est modifiée pour s'adapter au troisième objet.
En insérant des objets texte dans un rapport, soit dans la même section, soit dans d'autres sections, la hauteur de la ligne est ajustée pour s'adapter aux polices différentes. Puisque l'espacement vertical (interligne) est déterminé par le pilote d'imprimante, la création de rapports conçus pour les formulaires pré-imprimés est difficile s'ils sont imprimés dans des environnements variés.
Lors de la conception des rapports, procédez comme suit :
● gardez la même dimension pour toutes les polices.
● imprimez tous les formulaires pré-imprimés sur le même ordinateur.
Informations associées
Objets champ et texte [page 651]
Modèle de traitement des rapports [page 637]
Masquage des sections de rapport [page 754]
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
631
1.7.1.1.2.3 Mise en forme des sections de rapport
Utilisez les commandes des menus contextuels pour mettre en forme les sections d'un rapport. Par exemple :
● Pour mettre en forme une section d'un rapport, cliquez avec le bouton droit de la souris dans le
SAP Crystal Reports Designer incorporé, pointez sur
Rapport
et cliquez sur
Expert Section
.
● Pour modifier les marges de page, cliquez avec le bouton droit de la souris dans le
SAP Crystal Reports Designer incorporé, pointez sur
Conception
et cliquez sur
Mise en page
.
● Pour afficher ou masquer la règle, cliquez avec le bouton droit de la souris dans le
SAP Crystal Reports Designer incorporé, pointez sur
Conception
et cliquez sur
Règle
.
● Pour afficher ou masquer la grille, cliquez avec le bouton droit de la souris dans le
SAP Crystal Reports Designer incorporé, pointez sur
Conception
et cliquez sur
Grille
.
Informations associées
Mise en forme des données [page 713]
1.7.1.1.2.4 Explorateur de champs
L'Explorateur de champs vous permet d'insérer, de modifier ou de supprimer des champs dans votre rapport
Crystal.
L'Explorateur de champs, qui fait partie du SAP Crystal Reports Designer incorporé, affiche une arborescence des champs de base de données et des champs spéciaux disponibles pour être ajoutés à votre rapport. L'Explorateur de champs affiche également les champs Formule, Paramètre, Nom du groupe, Total cumulé, Expression SQL et
Non relié dont vous avez défini l'utilisation dans votre rapport.
L'Explorateur de champs affiche des coches en regard des champs qui sont déjà ajoutés directement au rapport, et en regard des champs que vous avez référencés ou utilisés de quelque manière que ce soit dans d'autres champs et dans des calculs (tels que des champs de formule, des groupes, des totaux cumulés et des résumés).
1.7.1.1.2.4.1 Pour afficher l'Explorateur de champs depuis le
SAP Crystal Reports Designer incorporé
Procédure
1. Dans le menu
Crystal Reports
, cliquez sur l'
Explorateur de champs
.
2. Cliquez avec le bouton droit de la souris sur n'importe quel champ pour afficher les options de menu correspondantes.
632
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Résultats
Remarque
Il existe un autre moyen d'accéder à l'explorateur de champs. Cliquez sur le menu
Affichage
, pointez sur
Autres fenêtres
, puis cliquez sur
Structure du document
.
Informations associées
Accès aux données et ajout des données [page 643]
Aperçu du SAP Crystal Reports Designer incorporé [page 624]
1.7.1.1.2.5 Barres d'outils de Crystal Reports
Lorsque vous ouvrez le SAP Crystal Reports Designer incorporé pour créer ou modifier un rapport, deux barres d'outils de Crystal Reports s'affichent automatiquement dans votre barre d'outils :
Barre d'outils de
Crystal Reports –
Principale
Barre d'outils de
Crystal Reports –
Insertion
Cette barre d'outils contient des raccourcis vers les boîtes de dialogue Explorateur de champs, Expert Sélection, Expert Tri de groupes, Expert Tri d'enregistrements et Editeur de mise en forme. Elle contient également les options de mise en forme de base pour les objets texte et une liste déroulante Zoom.
Cette barre d'outils contient des raccourcis vers les boîtes de dialogue Insérer un résumé,
Insérer un groupe, Insérer un sous-rapport, Expert Diagramme. Cette barre d'outils contient également un raccourci permettant d'ajouter une image à votre rapport.
Pour afficher/masquer les barres d'outils de Crystal Reports :
● Dans le menu
Affichage
, pointez sur
Barres d'outils
, puis cliquez sur
Crystal Reports – Insérer
ou sur
Crystal
Reports – Principale
.
Informations associées
Présentation du SAP Crystal Reports Designer incorporé [page 626]
Explorateur de champs [page 632]
Personnalisation du contrôle CrystalReportViewer [page 220]
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
633
1.7.1.1.2.6 Menu Crystal Reports
Lorsque vous ouvrez le SAP Crystal Reports Designer incorporé pour créer ou modifier un rapport, le menu
Crystal Reports s'affiche automatiquement dans la barre d'outils de l'environnement de développement intégré
Visual Studio :
Le menu Crystal Reports fournit les mêmes options que le menu qui apparaît lorsque vous cliquez avec le bouton droit de la souris sur le SAP Crystal Reports Designer incorporé.
Ce menu contient les sous-menus Insérer, Base de données, Rapport et Conception. Il existe en outre des options permettant de fermer le sous-rapport, d'afficher un aperçu du rapport, de définir la classe de la feuille de style en cascade (CSS), de passer à la vue du rapport précédent ou suivant, de rechercher les mises à jour et d'enregistrer
SAP Crystal Reports.
Le sous-menu Insérer permet d'insérer des objets dans le rapport, tels que des champs de bases de données, des objets texte, des résumés, des groupes, des sections, des tableaux croisés, des sous-rapports, des diagrammes et des images.
Le sous-menu Base de données contient les options suivantes :
●
Boîte de dialogue Expert Base de données [page 964]
●
Boîte de dialogue Définir l'emplacement de la source de données [page 926]
● Se connecter au serveur ou se déconnecter (voir
Boîte de dialogue Explorateur de données [page 866] )
● Vérifier la base de données
● Vérifier à chaque impression
●
Boîte de dialogue Afficher la requête SQL [page 929]
Le sous-menu Rapport contient les options suivantes :
●
Boîte de dialogue Expert Sélection [page 979]
● Formule de sélection (voir
Boîte de dialogue Editeur de formule [page 899] )
●
Boîte de dialogue Atelier de formules [page 904]
●
●
Boîte de dialogue Expert Groupe [page 970]
●
Boîte de dialogue Expert Tri de groupes [page 971]
●
Boîte de dialogue Options de groupe hiérarchique [page 905]
●
Expert Tri d'enregistrements [page 919]
●
Boîte de dialogue Options du rapport [page 921]
●
Boîte de dialogue Définir la date et l'heure d'impression [page 929]
● Propriétés du rapport (voir
Boîte de dialogue Propriétés du document [page 877]
)
Le sous-menu Conception contient les options suivantes :
●
Boîte de dialogue Configuration de l'imprimante [page 918]
●
Boîte de dialogue Mise en page [page 917]
●
Boîte de dialogue Paramètres par défaut [page 867]
● Règle
● Grille
●
Explorateur de champs [page 632]
634
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Informations associées
Présentation du SAP Crystal Reports Designer incorporé [page 626]
Interface utilisateur - Référence [page 828]
1.7.1.1.2.7 Onglet Aperçu
L'onglet Aperçu affiche une version en lecture seule du rapport Crystal (fichier .rpt) au moyen du visualiseur de rapports ActiveX. Le rapport ne peut pas être modifié dans la fenêtre d'aperçu.
Le rapport actuel est affiché avec ses données par défaut. Si la connexion à la base de données a échoué ou si le rapport contient des données d'application de création de rapports (DataSets ou collections d'objets par exemple), les données sont générées de manière temporaire. Un rapport qui contient des données enregistrées affiche les données enregistrées au lieu d'accéder à la base de données. Cliquez sur le bouton d'actualisation en mode Aperçu pour générer les nouvelles données. Pour enregistrer des données en mode Aperçu, sélectionnez l'option
Enregistrer les données dans le rapport
en haut de l'écran d'aperçu du rapport. Pour définir un rapport afin qu'il enregistre toujours les données lors de son enregistrement, vous devez utiliser le concepteur autonome.
Remarque
L'onglet Aperçu n'est pas disponible dans le SAP Crystal Reports Designer pour Visual Studio .NET 2003 incorporé.
L'onglet Aperçu se trouve au bas du SAP Crystal Reports Designer incorporé sous le nom "Aperçu Rapport principal".
1.7.1.1.3 Assistants de création de rapports Crystal
Vous pouvez utiliser le SAP Crystal Reports Designer incorporé pour créer un rapport de toutes pièces ou faire appel à l'un des assistants de création SAP Crystal Reports pour vous aider tout au long du processus de conception. Les Assistants de création de rapports suivants sont inclus dans SAP Crystal Reports :
● Standard
● Tableau croisé
● Etiquette de publipostage
Chaque assistant de ce type est composé de plusieurs écrans contenant chacun des instructions détaillées que vous suivez pour procéder à la création du rapport spécifié. Les assistants de création de rapports comprennent souvent des onglets propres à un type de rapport spécifique. Par exemple, l'
Assistant de création de rapports
publipostage que vous souhaitez utiliser.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
635
1.7.1.1.3.1 Assistant de création de rapports standard
L'Assistant de création de rapports standard est le plus générique des experts. Il vous aide à choisir une source de données et à relier les tables de base de données. Il vous aide également à ajouter des champs et à spécifier les critères de regroupement, de résumé (totaux) et de tri que vous voulez utiliser. Enfin, il décrit les modalités de création des diagrammes et de sélection des enregistrements.
L'écran Modèle contient des dispositions prédéfinies que vous pouvez appliquer à votre rapport pour lui donner davantage d'impact.
L'Assistant de création de rapports standard contient les écrans suivants :
●
Ecran Données (Assistant de création de rapports) [page 941]
●
Ecran Mise en relation (Assistant de création de rapports) [page 941]
●
Ecran Champs (Assistant de création de rapports) [page 942]
●
Ecran Regroupement (Assistant de création de rapports) [page 942]
●
Ecran Résumés (Assistant de création de rapports) [page 943]
●
Ecran Tri de groupes (Assistant de création de rapports) [page 944]
●
Ecran Diagramme (Assistant de création de rapports) [page 945]
●
Ecran Sélection d'enregistrements (Assistant de création de rapports) [page 945]
●
Style de rapport (Assistant de création de rapports) [page 946]
1.7.1.1.3.2 Assistant de création de tableaux croisés
L'Assistant de création de tableaux croisés vous guide dans la création d'un rapport dans lequel vos données sont affichées sous forme de
Objets tableau croisé [page 744]
. Deux écrans spéciaux (Tableau croisé et Style du quadrillage) vous aident à créer et à mettre en forme le tableau croisé.
L'Assistant de création de rapports tableau croisé contient les écrans suivants :
●
Ecran Données (Assistant de création de rapports) [page 941]
●
Ecran Mise en relation (Assistant de création de rapports) [page 941]
●
Ecran Tableau croisé (Assistant de création de tableaux croisés) [page 947]
●
Ecran Diagramme (Assistant de création de rapports) [page 945]
●
Ecran Sélection d'enregistrements (Assistant de création de rapports) [page 945]
●
Ecran Style du quadrillage (Assistant de création de tableaux croisés) [page 948]
Informations associées
Objets tableau croisé [page 744]
Assistants de création de rapports Crystal [page 635]
Conception de nouveaux rapports [page 639]
Objets tableau croisé [page 744]
636
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.7.1.1.3.3 Assistant de création de rapports étiquette de publipostage
L'Assistant de création de rapports étiquette de publipostage vous permet de créer un rapport qui est mis en forme pour s'imprimer sur une étiquette de publipostage de n'importe quelle taille. Vous pouvez utiliser l'écran
Etiquette pour sélectionner un type d'étiquette disponible dans le commerce ou vous pouvez définir votre propre disposition des lignes et des colonnes pour obtenir un rapport de style multicolonnes.
L'Assistant de création de rapports étiquette de publipostage contient les écrans suivants :
●
Ecran Données (Assistant de création de rapports) [page 941]
●
Ecran Mise en relation (Assistant de création de rapports) [page 941]
●
Ecran Champs (Assistant de création de rapports) [page 942]
●
Ecran Etiquette (Assistant de création de rapports étiquette de publipostage) [page 948]
●
Ecran Sélection d'enregistrements (Assistant de création de rapports) [page 945]
Informations associées
Assistants de création de rapports Crystal [page 635]
Conception de nouveaux rapports [page 639]
1.7.1.1.4 Modèle de traitement des rapports
SAP Crystal Reports effectue trois passages pour créer des rapports. Un passage est un procédé que
SAP Crystal Reports utilise à chaque lecture et manipulation des données. En fonction de la complexité des rapports, SAP Crystal Reports peut effectuer 1, 2 ou 3 passages sur les données. Cette fonctionnalité permet la manipulation de rapports et de formules complexes.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
637
Pré-passage 1
Lorsque vous affichez l'aperçu d'un rapport, les premiers éléments à évaluer sont les formules "constantes". Ces formules conservent une valeur constante pour l'ensemble du rapport. Elles ne changent pas d'un enregistrement
à un autre. Par exemple, 100* 30 représente une formule constante. Les formules constantes sont évaluées une fois pour toutes au début de la procédure de génération d'impression. Cette phase est appelée
"BeforeReadingRecords" (avant la lecture des enregistrements). Si vous placiez un champ de formule constante
(par exemple 100*30) dans la section Détails, le résultat serait 3000 pour chaque enregistrement affiché.
Passage 1
Une fois le processus "BeforeReadingRecords" effectué, SAP Crystal Reports commence la lecture des enregistrements de base de données. Voici ce qui se produit pendant cette opération :
● Extraction des enregistrements. Lorsque c'est possible, la sélection et le tri des enregistrements sont empilés dans la base de données.
● Evaluation des formules récurrentes. Ces formules contiennent les champs de la base de données, mais pas les références relatives aux sous-totaux et aux résumés. Cette phase d'évaluation est appelée
"WhileReadingRecords" (lors de la lecture des enregistrements). Les formules qui contiennent des références
à des sous-totaux ou à des résumés sont traitées lors du second passage.
● Application locale de la sélection d'enregistrements. Si la sélection d'enregistrements est trop complexe pour
être empilée dans la base de données, elle est appliquée par SAP Crystal Reports durant cette étape.
● Tri, regroupement et calculs des totaux. Durant cette étape, SAP Crystal Reports trie les enregistrements, les sépare en groupes et calcule les sous-totaux et résumés nécessaires pour chaque groupe.
● Génération des tableaux croisés, diagrammes et cartes. Seuls les tableaux croisés, les diagrammes et les cartes basés entièrement sur des champs de base de données et des formules récurrentes sont générés dans le passage 1. Si ces objets incluent des sommes cumulatives et/ou des formules PrintTime, ils ont été générés dans le passage 2.
● Stockage des données enregistrées. Une fois la totalisation terminée, tous les enregistrements et les totaux sont stockés en mémoire et dans des fichiers temporaires. SAP Crystal Reports ne procède pas à la relecture de la base de données, mais utilise directement ces données enregistrées pour tout traitement ultérieur.
● Application de la formule de sélection des données enregistrées sur les données enregistrées Si un nouveau paramètre est défini à l'aide de cette formule, il ne permettra d'accéder à la base de données.
Pré-passage 2
Durant le pré-passage 2, SAP Crystal Reports trie les groupes du rapport pour le regroupement N premiers/ derniers ou le regroupement hiérarchique. Les enregistrements ne sont pas lus au cours de ce processus. Au lieu de cela, SAP Crystal Reports ne regarde que les instances de groupes du passage n° 1 et prend les N premiers comme il convient, ou trie les groupes selon les paramètres de Regroupement hiérarchique spécifiés.
638
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Passage 2
SAP Crystal Reports effectue un second passage sur les données pour mettre en forme les pages. Les pages sont mises en forme à la demande. Ceci signifie que SAP Crystal Reports ne mettra pas en forme une page tant que cela ne sera pas demandé par l'utilisateur ou requis par le comptage du nombre total de pages lors du passage 3.
Au cours de la mise en forme des pages, SAP Crystal Reports effectue ceci :
● Formules de sélection de groupes
● Totaux cumulés
● Calcul des formules marquées "WhilePrintingRecords" (lors de l'impression des enregistrements).
Ce sont les formules qui contiennent des références à des sous-totaux ou des informations de résumé, connues aussi sous le nom de formules "HeureImpression". Cette phase d'évaluation est appelée
"WhilePrinting Records".
● Tableaux croisés, diagrammes et cartes
Les tableaux croisés, les diagrammes et les cartes qui incluent des sommes cumulatives et/ou des formules
PrintTime, et les diagrammes basés sur des tableaux croisés sont générés dans le passage 2.
● Grilles OLAP
● Sous-rapports
● Génération de pages à la demande
Remarque
Les sous-totaux, les totaux généraux et les résumés peuvent être incorrects si le rapport comprend une formule de sélection de groupes. Cette situation se produit car les totaux généraux et les résumés sont calculés lors du passage 1, mais la formule de sélection de groupes filtre de nouveau les données dans le passage 2. Utilisez des champs de total cumulé plutôt que des résumés pour calculer les totaux des données de rapports comportant une formule de sélection de groupes.
Passage 3
Durant le troisième et dernier passage, le nombre total de pages est calculé. Ceci s'applique aux rapports qui utilisent les champs de variable correspondant au nombre total de pages, ou Page N/M.
1.7.1.2 Conception de nouveaux rapports
Explique comment accéder au SAP Crystal Reports Designer incorporé et présente les étapes détaillées du processus de conception d'un rapport.
Vous créez des rapports dans le SAP Crystal Reports Designer incorporé. Ce dernier se lance automatiquement lorsque vous ajoutez un objet SAP Crystal Reports à votre projet, ou lorsque vous cliquez deux fois sur un objet
SAP Crystal Reports existant dans votre projet.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
639
Informations associées
Présentation des sections de rapport [page 627]
1.7.1.2.1 Planification du contenu du rapport
Avant tout, nous vous conseillons de noter toutes les informations que vous souhaitez voir apparaître dans un rapport. Les sections suivantes peuvent vous servir de guide pour définir ces informations.
Informations associées
Accès aux données et ajout des données [page 643]
1.7.1.2.1.1 Définition du but du rapport
Les rapports sont des outils de gestion. Leur but est de vous aider à identifier rapidement les relations et les
éléments essentiels présents dans les données brutes afin que vous puissiez prendre des décisions efficaces.
Pour éviter ce genre de mésaventure, nous vous conseillons de commencer par décrire en une ou deux phrases l'objectif de votre rapport. Cet effort de réflexion vous aidera à ne pas disperser vos efforts. Votre rapport aura un point de départ bien identifié et un but clairement défini.
Exemples de définitions du but
● Le but de ce rapport est d'afficher les ventes mensuelles et annuelles par vendeur, de comparer les chiffres de cette année avec ceux de l'année dernière, et de signaler les vendeurs dont les chiffres de vente ne correspondent pas aux normes de l'entreprise.
● afficher le détail des ventes par produit et suggérer en conséquence une nouvelle politique de réapprovisionnement,
Il est essentiel de définir l'objectif d'un rapport avant de commencer le travail de création.
Réponse aux besoins de nombreux utilisateurs
Un rapport est souvent utilisé par plusieurs personnes. Un rapport détaillé des ventes d'une entreprise peut, par exemple, être envoyé aux agents commerciaux eux-mêmes, mais également aux directeurs régionaux, au directeur des ventes et au directeur général de la société.
Ces individus seront intéressés par des aspects différents du rapport. Un rapport bien pensé doit contenir les informations qui satisferont les intérêts de tous ceux qui seront amenés à le consulter.
640
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Vous devez envisager l'incorporation des options suivantes dans un rapport :
● Des
Insertion des diagrammes [page 730]
qui affichent des informations de haut niveau, mais qui permettent aux utilisateurs de les explorer pour obtenir des informations plus détaillées.
● Des
informations inutiles soient éliminées par filtrage avant la visualisation du rapport.
1.7.1.2.1.2 Familiarisation avec votre source de données
Cette étape suppose que vous regardiez quelles sont les tables de base de données disponibles.
SAP Crystal Reports vous permet de combiner des données provenant de différentes bases de données lorsque vous créez des rapports, de sorte que vous bénéficiez d'une très grande flexibilité dans votre travail.
● La plupart des données d'un rapport typique sont généralement extraites directement des champs de données. Quels champs allez-vous utiliser et quel est leur emplacement ?
● D'autres données seront calculées sur la base des champs de données. Quels champs de données utiliser dans ce cas ?
● D'autres données seront placées directement dans le rapport à l'aide d'objets texte (par exemple des entêtes, remarques et étiquettes).
Remarque
SAP Crystal Reports peut créer des informations telles que la date courante ou les numéros de page courants.
Informations associées
Sélection d'une base de données [page 645]
Pour insérer des champs de base de données [page 651]
1.7.1.2.1.3 Manipulation des données
Organiser les données en groupes
SAP Crystal Reports offre plusieurs options de
Sélection des enregistrements [page 665]
et de Regroupement des données [page 682]
dans un rapport.
Vous pouvez baser un rapport sur tous les enregistrements d'une base de données particulière, ou sur un nombre limité d'enregistrements de la base de données. SAP Crystal Reports vous permet de sélectionner des enregistrements en fonction de comparaisons ou de plages de dates simples, ou de créer des formules complexes pour identifier les enregistrements à inclure.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
641
Résumer les données
Voulez-vous calculer le sous-total, la moyenne, le compte, ajouter des pourcentages ou déterminer la valeur maximale ou minimale incluse dans toutes les valeurs de n'importe quelle colonne du rapport ?
SAP Crystal Reports vous permet d'exécuter tous ces calculs, et également de placer le total général (ou la moyenne générale, le compte général, etc.) en bas de la colonne sélectionnée.
Signaler les données
Les indicateurs vous permettent de mettre en valeur certaines données de votre rapport. Par exemple, les stocks morts sont souvent indiqués pour recevoir une attention toute particulière. Vous pouvez, par exemple, repérer les produits qui ne se sont pas vendus au cours du mois précédent, des trois derniers mois ou au cours d'une période définie. Faites la liste des informations à signaler avec les conditions associées.
Mettre en forme les données signalées
SAP Crystal Reports vous donne la possibilité de souligner des éléments du rapport et de modifier le type, la taille ou la couleur de la police utilisée pour des éléments donnés du rapport. Il vous permet également de placer des bordures autour des éléments, de tracer des lignes et des zones (pour diviser le rapport en sections), de désactiver les en-têtes, etc. Tous ces outils de mise en forme peuvent être utilisés pour faire ressortir des données importantes dans un rapport.
Informations associées
Sélection des groupes N premiers ou N derniers [page 688]
Ajout des pourcentages à un rapport [page 694]
Pour calculer les sous-totaux des données [page 693]
1.7.1.2.1.4 Détermination des caractéristiques de la zone d'impression
Chaque section de rapport a ses propres caractéristiques d'impression. Il est important de comprendre ces caractéristiques car elles ont une incidence sur le moment et le nombre de fois où différents objets du rapport seront imprimés.
Les sections s'impriment de haut en bas, dans l'ordre où elles apparaissent dans le SAP Crystal Reports Designer incorporé. Si une section donnée contient plusieurs sous-sections, ces sous-sections s'impriment dans leur ordre d'apparition. Par exemple, si vous avez trois sections de type En-tête du rapport, ces trois sections s'imprimeront, dans l'ordre, avant que la section En-tête de page commence à s'imprimer.
642
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Le mode d'impression des objets révèle le mode de conception de votre rapport. La compréhension des caractéristiques de la zone d'impression vous aide à décider où placer les diagrammes, les tableaux croisés et les formules pour obtenir des résultats spécifiques.
1.7.1.2.2 Accès aux données et ajout des données
Dans le SAP Crystal Reports Designer incorporé, sélectionnez tout d'abord la source de données à laquelle renvoie votre rapport. Vous pouvez utiliser plusieurs sources de données dans un rapport.
Ensuite, sélectionnez les tables de base de données que vous souhaitez utiliser dans le rapport.
SAP Crystal Reports peut relier automatiquement les tables, ou vous pouvez spécifier la manière dont celles-ci doivent être reliées. Les tables de base de données sont reliées de sorte que des enregistrements de l'une correspondent aux enregistrements homologues de l'autre.
Informations associées
Définition de la source de données [page 149]
1.7.1.2.2.1 Sources de données prises en charge
SAP Crystal Reports se connecte à des bases de données par le biais des pilotes de base de données. Chaque pilote est rédigé de manière à gérer un type de base de données ou une technologie d'accès aux bases de données spécifique.
Toutes les versions de SAP Crystal Reports, version développeur pour Microsoft Visual Studio permettent d'accéder aux sources de données suivantes et de les utiliser pour créer des rapports :
● Toute base de données possédant un pilote ODBC
● Toute base de données possédant un fournisseur OLEDB
● Bases de données Microsoft Access
Remarque
Il n'y a aucun pilote 64 bits pour les bases de données Microsoft Access. Vous ne pourrez pas vous connecter à une base de données Microsoft Access si vous concevez votre rapport sur un ordinateur
64 bits.
● Classeurs Microsoft Excel (97-2003)
● ADO.NET (DataSets)
● Datatables ADO.NET
● RecordSets ADO
● RecordSets CDO
● IDataReader
● Collections d'objets
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
643
● RecordSets DAO
● RecordSets RDO
● XML dans SQL Server 2005
● Les types de données définies par l'utilisateur dans SQL Server 2005
Les autres versions de SAP Crystal Reports, version développeur pour Microsoft Visual Studio comprennent des pilotes natifs et une prise en charge pour des sources de données supplémentaires comme JDBC, Teradata et
OLAP.
1.7.1.2.2.2 Création de rapports à partir de DataSets
ADO.NET
Explique comment connecter votre rapport à un DataSet ADO.NET.
SAP Crystal Reports prend en charge les rapports qui ont accès à des DataSets
ADO.NET.
Un objet DataSet ADO.NET est une collection de classes de DataSets créées en mémoire. Vous pouvez créer un
DataSet ADO.NET à partir de diverses sources de données (y compris à partir de bases de données Access,
Oracle et SQL Server) à l'aide du concepteur de DataSets ADO.NET de Visual Studio. Le concepteur de DataSets
ADO.NET affiche une vue graphique de la base de données avec ses tables, ses champs et les types correspondants. Vous pouvez faire glisser des tables de l'Explorateur de serveurs vers un fichier de schéma dans l'onglet Schéma du concepteur.
Génération de DataSets ADO.NET
Un objet DataSet ADO.NET fournit une description des données à partir de laquelle vous pouvez ajouter des tables à votre rapport Crystal. L'Expert Base de données du SAP Crystal Reports Designer incorporé permet d'ajouter des tables à partir de l'objet DataSet ADO.NET.
d'un rapport qui est déjà configuré avec ADO.NET, cliquez avec le bouton droit de la souris dans le
SAP Crystal Reports Designer incorporé, pointez sur Base de données et cliquez sur Expert Base de données.
Visualisation de rapports à l'aide des DataSets ADO.NET
Un objet DataSet généré à l'aide du concepteur de DataSets ADO.NET contient uniquement la description des données, et non les données réelles. Par conséquent, lorsque vous travaillez avec un rapport connecté à un objet
DataSet de ce type, vous ne pouvez pas parcourir les données de champ dans le SAP Crystal Reports Designer incorporé au moment de la conception.
644
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Pour que le rapport affiche les données réelles à l'exécution, vous devez d'abord transmettre les données à l'objet
DataSet à l'aide du modèle d'objet ADO.NET, puis transmettre le DataSet rempli au moteur de rapport à l'aide du modèle d'objet du moteur de rapport. Vous devez également lier le rapport par objet de rapport dans le fichier source correspondant du Web Form ou Windows Form.
Informations associées
Tutoriel : Connexion aux DataSets ADO.NET [page 529]
1.7.1.2.2.3 Sélection d'une base de données
Explique comment vous connecter à une base de données ou à un DataSet, et sélectionner les tables à utiliser dans votre rapport.
Pour apporter des modifications à la source de données d'un rapport, cliquez avec le bouton droit de la souris dans le SAP Crystal Reports Designer incorporé, pointez vers Base de données, puis sélectionnez Expert Base de données dans le menu contextuel.
Vous pouvez ensuite manipuler une source de données en remettant en relation les tables, en ajoutant et en supprimant une base de données, en définissant l'emplacement d'une base de données, en vérifiant une base de données et en effectuant une conversion vers un autre pilote de base de données.
1.7.1.2.2.3.1 Pour sélectionner une base de données
Procédure
1. Cliquez avec le bouton droit de la souris sur
Champs de base de données
dans l'Explorateur de champs et cliquez sur
Expert Base de données
.
Conseil
Pour afficher l'Explorateur de champs, cliquez sur le menu
Crystal Reports
, puis cliquez sur
Explorateur de champs
.
2. Dans la boîte de dialogue
Expert Base de données
, parcourez les dossiers pour rechercher vos tables de sources de données.
3. Sélectionnez les tables qui contiennent les données que vous voulez intégrer dans le rapport, puis cliquez sur
OK
.
Remarque
Au lieu de sélectionner les tables, cliquez deux fois sur le nœud
Ajouter une commande
pour saisir une requête SQL.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
645
4. Dans l'onglet
Liens
, cliquez sur
Mise en relation
pour relier automatiquement les tables de base de données ou cliquez et faites glisser un champ de base de données d'une table vers une autre table pour effectuer une mise en relation manue
5. Si vous avez relié plus de deux tables, cliquez sur
Ordonner les liens
pour réorganiser les liens dans l'ordre dans lequel vous souhaitez les traiter.
6. Cliquez sur
OK
.
Résultats
Les tables de base de données que vous avez sélectionnées apparaissent maintenant sous les Champs de la base de données dans l'Explorateur de champs.
Informations associées
Connexion aux DataSets ADO.NET [page 156]
Définition des tables virtuelles basée sur une commande/requête SQL [page 647]
Mise en relation des tables de base de données [page 650]
Pour insérer des champs de base de données [page 651]
1.7.1.2.2.3.2 Pour modifier l'emplacement de la source de données
Contexte
Utilisez la commande Définir un emplacement pour indiquer le nouveau nom ou le nouvel emplacement des tables actives dans un rapport. Cette commande est particulièrement utile si vous recevez un rapport qui utilise une base de données située à un emplacement différent sur votre système ou si votre base de données a changé de répertoire ou de disque. De plus, la commande Définir un emplacement convertit automatiquement votre pilote de base de données vers la source de données que vous avez choisie. Vous pouvez par exemple convertir automatiquement une source de données à accès direct en source de données ODBC en utilisant la commande
Définir l'emplacement.
La procédure est la même que vous remplaciez toutes les tables d'une source de données particulière par des tables du même nom provenant d'une autre source de données ou que vous remplaciez une table individuelle par une autre table.
646
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Procédure
1. Cliquez avec le bouton droit de la souris dans le SAP Crystal Reports Designer incorporé, pointez sur
Base de données
, puis cliquez sur
Définir l'emplacement de la source de données
.
2. Dans la liste
Source de données en cours
, choisissez la table de source de données que vous ne souhaitez plus utiliser.
3. Dans la liste
Remplacer par
, recherchez la nouvelle source de données.
4. Sélectionnez la table que vous souhaitez utiliser.
5. Cliquez sur
Mettre à jour
.
6. Cliquez sur
Fermer
une fois que vous avez modifié toutes les tables souhaitées ; sinon répétez ces étapes pour toutes les tables ou sources de données non modifiées.
1.7.1.2.2.3.3 Définition des tables virtuelles basée sur une commande/requête SQL
Si la base de données que vous utilisez prend en charge un langage de requête tel que SQL, vous pouvez écrire votre propre commande qui sera représentée dans SAP Crystal Reports comme objet table. Cela permet aux utilisateurs expérimentés de garder le contrôle total sur le traitement de données empilé sur le serveur de base de données. Un utilisateur expérimenté peut écrire une commande optimisée qui peut réduire considérablement la taille du jeu de données renvoyé par le serveur.
Vous pouvez écrire votre propre commande à l'aide du nœud Ajouter une commande de l'Expert Base de données pour créer une table virtuelle qui représentera les résultats du traitement de la commande.
Lorsque vous utilisez une table virtuelle qui a été créée en tant que commande, SAP Crystal Reports ne modifie pas la syntaxe du code SQL soumis au serveur (en d'autres termes, il n'ajoute pas automatiquement de guillemets ou de caractères d'échappement). Ce comportement s'applique également aux paramètres utilisés dans les commandes. Vous devez par conséquent ajouter les guillemets et les caractères d'échappement nécessaires à votre pilote de base de données.
Informations associées
Pour insérer des champs de base de données [page 651]
1.7.1.2.2.3.3.1 Pour créer votre propre objet commande
Procédure
1. Cliquez avec le bouton droit de la souris sur
Champs de base de données
dans l'Explorateur de champs et cliquez sur
Expert Base de données
.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
647
Conseil
Pour afficher l'Explorateur de champs, cliquez sur le menu
Crystal Reports
, puis cliquez sur
Explorateur de champs
.
2. Dans la boîte de dialogue Expert Base de données, parcourez les dossiers pour rechercher votre source de données.
3. Dans votre source de données, cliquez deux fois sur le nœud
Ajouter une commande
.
4. Dans la boîte de dialogue Ajouter une commande au rapport, saisissez une requête/commande appropriée pour la source de données que vous avez ouverte.
Par exemple :
SELECT
Customer.`Customer ID`,
Customer.`Customer Name`,
Customer.`Last Year's Sales`,
Customer.`Region`,
Customer.`Country`,
Orders.`Order Amount`,
Orders.`Customer ID`,
Orders.`Order Date`
FROM
Customer Customer INNER JOIN Orders Orders ON
Customer.`Customer ID` = Orders.`Customer ID`
WHERE
(Customer.`Country` = 'USA' OR
Customer.`Country` = 'Canada') AND
Customer.`Last Year's Sales` < 10000.
ORDER BY
Customer.`Country` ASC,
Customer.`Region` ASC
5. Cliquez sur
OK
.
Vous revenez alors au SAP Crystal Reports Designer incorporé. Dans l'Explorateur de champs, sous les champs de la base de données, la table Commandes qui s'affiche répertorie les champs de base de données que vous avez spécifiés.
Remarque
Par défaut, votre commande se nomme command. Vous pouvez modifier son alias en le sélectionnant et en appuyant sur F2.
1.7.1.2.2.3.3.2 Pour modifier un objet commande
Procédure
1. Dans la zone Tables sélectionnées de l'Expert Base de données, sélectionnez la commande que vous souhaitez modifier.
2. Cliquez avec le bouton droit de la souris sur
Modifier la commande
dans le menu contextuel.
3. Effectuez les modifications souhaitées dans la boîte de dialogue Modifier la commande, puis cliquez sur
OK
lorsque vous avez terminé.
648
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Résultats
Vous pouvez créer un champ de paramètre dans les boîtes de dialogue Ajouter une commande au rapport ou
Modifier la commande.
1.7.1.2.2.3.3.3 Pour créer un paramètre pour un objet commande
Procédure
1. Dans la zone Liste des paramètres de la boîte de dialogue Ajouter une commande au rapport ou Modifier la commande, cliquez sur Créer.
2. Dans la boîte de dialogue Paramètre de commande, saisissez les informations suivantes dans les champs fournis :
Nom du paramètre Saisissez le nom que vous souhaitez affecter à votre paramètre.
Texte de l'invite Saisissez le texte que vous voulez voir apparaître dans l'invite du programme.
Type de valeur Saisissez le type de données du champ de paramètre.
Valeur par défaut Saisissez la valeur que vous voulez que le programme utilise si vous n'en fournissez aucune.
3. Cliquez sur
OK
.
Votre paramètre est ajouté à la Liste des paramètres. Vous pouvez le modifier ou le supprimer en revenant dans la boîte de dialogue Modifier la commande.
1.7.1.2.2.3.3.4 Pour ajouter un paramètre à un objet commande
Procédure
1. Placez le curseur dans le texte de la requête.
2. Cliquez deux fois sur le nom du paramètre dans la
Liste des paramètres
.
Le paramètre est ajouté à l'endroit où se trouve le curseur. Votre paramètre doit ressembler à ceci :
WHERE
Customer.`Country` = '{?CountryParam}'
Si vous voulez modifier le champ de paramètre que vous avez créé, accédez à l'Explorateur de champs et sélectionnez-le dans le nœud Champs de paramètre.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
649
1.7.1.2.2.4 Mise en relation des tables de base de données
Explique comment relier des tables de base de données afin que les enregistrements d'une table correspondent à ceux d'une autre.
Créer un lien entre deux tables permet d'établir une correspondance entre leurs enregistrements respectifs.
Lorsque vous effectuez une mise en relation, vous utilisez un champ commun aux deux tables.
SAP Crystal Reports utilise la mise en relation pour mettre les enregistrements d'une table en correspondance avec ceux d'une autre. Par exemple, il est possible de relier les tables Commandes et Clients de sorte que chaque commande puisse être associée au client qui l'a passée. Dans notre exemple, la mise en relation permet de vérifier que toutes les données d'une ligne du rapport se réfèrent à la même commande.
Utilisez l'onglet Liens de la boîte de dialogue Expert Base de données pour relier des tables de base de données.
Le moyen le plus simple de relier des tables entre elles est de sélectionner Mise en relation automatique. Cette fonction établit automatiquement les mises en relation entre les tables basées sur les champs communs ou sur les champs indexés (si votre base de données gère les champs indexés).
Vous pouvez également relier les tables de base de données manuellement. Aucune restriction n'est imposée à votre structure de mise en relation, à condition que les bases de données répondent aux exigences du fournisseur. Si vous disposez de plusieurs liens, vous pouvez utiliser la fonction Ordonner les liens pour réorganiser les liens dans l'ordre dans lequel vous souhaitez qu'ils soient traités.
1.7.1.2.2.4.1 Pour accéder à l'Expert Base de données
Procédure
1. Dans l'Explorateur de champs, cliquez avec le bouton droit de la souris sur
Champs de base de données
et sélectionnez
Expert Base de données
.
Conseil
Pour afficher l'Explorateur de champs, cliquez sur le menu
Crystal Reports
, puis cliquez sur
Explorateur de champs
.
2. Dans la boîte de dialogue Expert Base de données, cliquez sur l'onglet
Liens
.
3. Dans l'onglet
Liens
, cliquez sur
Mise en relation
pour relier automatiquement les tables de base de données ou cliquez et faites glisser un champ de base de données d'une table vers une autre table pour effectuer une mise en relation manue
4. Si vous disposez de plus de deux tables, cliquez sur
Ordonner les liens
pour réorganiser les liens dans l'ordre dans lequel vous souhaitez les traiter.
5. Cliquez sur
OK
.
Informations associées
Pour insérer des champs de base de données [page 651]
650
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.7.1.2.2.5 Pour insérer des champs de base de données
Explique comment ajouter un champ de base de données à votre rapport.
Contexte
Tous les champs de base de données disponibles sont répertoriés dans l'Explorateur de champs.
Procédure
1. Dans l'
Explorateur de champs
, développez
Champs de base de données
pour afficher les tables de base de données.
Conseil
Pour afficher l'Explorateur de champs, cliquez sur le menu
Crystal Reports
, puis cliquez sur
Explorateur de champs
.
2. Développez une table de base de données et sélectionnez un champ de base de données.
Lorsque vous sélectionnez un nom de champ, vous pouvez consulter les valeurs disponibles pour ce champ
(ainsi que la taille et le type du champ) en cliquant avec le bouton droit de la souris et en sélectionnant
Parcourir les données dans le menu contextuel. La boîte de dialogue Parcourir répertorie un sous-ensemble de valeurs de champ, ainsi que le nom du champ, son type et sa longueur.
3. Faites glisser le champ sélectionné sur la section
Détails
ou sur toute autre section du rapport. Vous ne pouvez pas ajouter plusieurs champs au rapport simultanément.
Résultats
Lorsque vous faites glisser le champ sur le rapport, notez le cadre d'objet qui s'attache au pointeur de la souris. Ce cadre d'objet représente l'objet que vous venez de sélectionner en vue de son déplacement. La taille du cadre d'objet correspond approximativement à la longueur des données de champ.
1.7.1.2.3 Objets champ et texte
Le SAP Crystal Reports Designer incorporé utilise une méthode glisser-déplacer similaire à celle de
Visual Studio .NET : vous faites glisser un objet de rapport dans le concepteur (champ de base de données ou objet texte, par exemple) et vous utilisez la fenêtre de propriétés ou le menu contextuel pour mettre l'objet en forme.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
651
Objets champ
● Insertion et déplacement des champs
● Redimensionnement des champs
● Suppression des champs
● Affichage des noms de champ
● Ajout des en-têtes de champ
Objets texte
● Insertion des objets texte
● Insertion des champs de base de données dans des objets texte
● Rotation du texte
Champs spéciaux
● Insertion des champs spéciaux
Dépannage
● Dépannage des objets champ et texte
1.7.1.2.3.1 Insertion et déplacement des champs
Pour insérer des champs, faites glisser le champ voulu sur le rapport depuis l'Explorateur de champs. Utilisez le menu contextuel pour insérer des objets champ et d'autres objets de rapport qui ne sont pas disponibles dans l'Explorateur de champs (par exemple, des objets texte, des champs de résumé, des diagrammes, des sousrapports, des images, etc.).
Informations associées
Redimensionnement des champs [page 653]
652
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.7.1.2.3.1.1 Pour insérer des champs et des objets de rapport supplémentaires
Procédure
1. Cliquez avec le bouton droit de la souris dans le SAP Crystal Reports Designer incorporé, pointez sur
Insérer
et sélectionnez un champ ou un autre objet dans le sous-menu.
2. Si vous y êtes invité, renseignez les boîtes de dialogue nécessaires.
3. Faites glisser le cadre de l'objet sur la section voulue du rapport.
1.7.1.2.3.1.2 Sélection des objets champ
Pour faire quelque opération que ce soit avec un champ (changer la police, le déplacer, etc.), vous devez commencer par le sélectionner. Lorsqu'un champ est sélectionné, le cadre d'objet affiche des poignées sur ses bords droit, gauche, supérieur et inférieur. Ces poignées indiquent que le champ est sélectionné ou actif.
● Positionnez le pointeur de la souris à l'intérieur du cadre d'objet et cliquez une fois. Les poignées de redimensionnement apparaissent, ce qui indique que vous avez sélectionné l'objet.
● Eloignez le pointeur du cadre d'objet et cliquez sur une partie vide de la fenêtre. Les poignées de sélection disparaissent.
1.7.1.2.3.2 Redimensionnement des champs
Procédure
1. Sélectionnez le champ que vous voulez redimensionner.
Conseil
Redimensionnez simultanément un champ et son en-tête de champ en utilisant la combinaison CTRL-clic pour sélectionner les deux objets.
2. Pointez sur une des poignées de redimensionnement du cadre d'objet.
3. Lorsque le pointeur devient une flèche de redimensionnement, faites glisser la poignée de redimensionnement pour redimensionner le champ.
Informations associées
Eviter la troncature du texte [page 661]
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
653
1.7.1.2.3.3 Suppression des champs
Procédure
1. Sélectionnez le champ que vous voulez supprimer.
Conseil
Supprimez simultanément un champ et son en-tête de champ en utilisant la combinaison CTRL-clic pour sélectionner les deux objets.
2. Appuyez sur
Supprimer
.
Informations associées
Objets champ et texte [page 651]
1.7.1.2.3.4 Affichage des noms de champ
Lorsque vous ajoutez des champs à votre rapport, vous pouvez choisir le type d'informations sur le champ que vous voulez voir apparaître, lorsque vous concevez le rapport.
Options de champ
Table 15 :
Option de champ
Afficher les noms des champs
Afficher les noms d'objet
Afficher les symboles de format
Explication
Affiche le nom du champ.
Affiche le nom d'objet du champ.
Affiche le format de sortie du champ.
Exemple
ID client
PrintDate
Field1
Field2
5,555,555
01:23:45
Informations associées
Mise en forme des données [page 713]
654
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Eviter la troncature du texte [page 661]
1.7.1.2.3.4.1 Pour afficher les noms de champ ou modifier les paramètres des options de champ
Procédure
1. Cliquez avec le bouton droit de la souris dans le SAP Crystal Reports Designer incorporé, pointez sur
Conception, puis cliquez sur Paramètres par défaut.
2. Dans l'onglet Disposition de la boîte de dialogue Options, activez la case à cocher Afficher les noms des champs (ou toute autre option).
3. Cliquez sur OK.
1.7.1.2.3.5 Ajout des en-têtes de champ
Lorsque vous ajoutez un champ de base de données à un rapport, le programme ajoute automatiquement un entête basé sur le nom du champ de base de données.
1.7.1.2.3.5.1 Pour ajouter un en-tête de champ
Procédure
1. Cliquez avec le bouton droit de la souris dans le SAP Crystal Reports Designer incorporé, pointez sur
Insérer
, puis cliquez sur
Objet texte
.
Remarque
Une fois que vous avez cliqué sur
Objet texte
et déplacé le curseur dans le rapport, un cadre d'objet vide apparaît en regard du pointeur de la souris.
2. Placez l'objet texte dans la section
En-tête de page
et alignez le cadre d'objet au-dessus de l'objet champ voulu.
3. Cliquez deux fois sur l'objet texte pour placer le point d'insertion dans le cadre d'objet.
4. Tapez le nom de l'en-tête dans l'objet texte.
5. Pour mettre en forme l'en-tête, cliquez avec le bouton droit de la souris sur l'objet texte, puis cliquez sur
Mettre en forme l'objet
.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
655
Informations associées
Eviter la troncature du texte [page 661]
1.7.1.2.3.6 Insertion des objets texte
La fonction principale d'un objet texte consiste à contenir du texte utilisé pour créer des titres, des en-têtes, des résumés d'étiquettes, etc.
Cependant, les objets texte peuvent également contenir des champs de base de données ; cette caractéristique les rend idéals pour la création de lettres types personnalisées.
Informations associées
Mise en forme des données [page 713]
Eviter la troncature du texte [page 661]
1.7.1.2.3.6.1 Pour insérer un objet texte
Procédure
1. Cliquez avec le bouton droit de la souris dans le SAP Crystal Reports Designer incorporé, pointez sur
Insérer
, puis cliquez sur
Objet texte
.
2. Positionnez l'objet texte à l'endroit de votre choix dans le rapport.
○ Sélectionnez l'objet texte et faites glisser ses poignées pour le redimensionner.
○ Faites glisser l'objet texte pour le déplacer.
○ Cliquez deux fois à l'intérieur de l'objet texte pour le sélectionner à des fins de modification de texte.
○ Evitez la conception de rapports où l'espacement entre les objets est très étroit. Prévoyez de l'espace en
étendant la largeur de l'objet d'approximativement 5 pour cent. Si ce n'est pas possible, vous pouvez
également diminuer la taille de la police.
○ Si vous visualisez votre rapport dans un Web Forms Viewer, utilisez des espaces au lieu de tabulations afin de conserver un espacement cohérent.
656
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.7.1.2.3.6.2 Insertion des champs de base de données dans des objets texte
Procédure
1. C'est pourquoi les objets texte sont idéaux pour la création de lettres types personnalisées.
2. Cliquez deux fois sur l'objet texte et tapez le texte que vous voulez voir apparaître avant le premier champ de base de données (le cas échéant).
3. Dans l'
Explorateur de champs
, localisez le champ de base de données que vous voulez insérer dans l'objet texte.
Conseil
Pour afficher l'Explorateur de champs, cliquez sur le menu
Crystal Reports
, puis cliquez sur
Explorateur de champs
.
4. Faites glisser le champ de base de données dans l'objet texte depuis l'
Explorateur de champs
.
5. Faites glisser l'objet jusqu'à ce que le point d'insertion se trouve à l'intérieur de l'objet texte, à l'endroit où vous voulez que le champ de base de données apparaisse, puis déposez le champ dans l'objet texte.
1.7.1.2.3.7 Rotation du texte
Contexte
Dans l'onglet Commun de l'Editeur de mise en forme, vous pouvez utiliser les options de rotation de texte pour aligner les champs et les objets texte verticalement dans votre document. Vous pouvez faire pivoter le texte de 90 ou 270 degrés.
Procédure
1. Cliquez avec le bouton droit de la souris sur l'objet du rapport et sélectionnez
Mettre en forme l'objet
.
2. Dans l'onglet
Commun
, sélectionnez le degré de rotation dans le champ
Rotation du texte
.
○ Lorsque vous sélectionnez une rotation de 90 degrés, le texte se décale de 90 degrés dans le sens inverse des aiguilles d'une montre.
○ Si la rotation est définie sur 0 degré, votre rapport est mis en forme horizontalement.
○ En ce qui concerne la rotation des objets texte, l'option Taille modulable qui évite la troncature du texte à l'intérieur d'un objet est automatiquement désactivée. Pour en savoir plus sur l'option Taille modulable, voir
Eviter la troncature du texte [page 661]
.
○ Un texte mis en forme verticalement qui déborde de la page ne peut pas être affiché dans le cadre de votre rapport.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
657
1.7.1.2.3.8 Utilisation des champs spéciaux
Les champs spéciaux contiennent les types d'informations qui ne sont pas dérivés d'une table de base de données sous-jacente ou d'une formule de rapport. Le SAP Crystal Reports Designer incorporé fournit une liste de champs spéciaux parmi lesquels vous pouvez faire votre choix.
Date d'impression
Heure d'impression
Date de modification Utilisez le champ Date de modification pour inclure un champ contenant la date de la dernière modification du rapport. Cette date fait référence à toute modification, y compris quelque chose d'aussi simple que le déplacement d'un champ. Lorsque vous modifiez le rapport et que vous l'imprimez, le programme imprime la date de modification même si vous n'avez pas enregistré le rapport avant l'impression. Ce champ peut être placé dans n'importe quelle section du rapport, selon la fréquence d'impression souhaitée.
Heure de modification Utilisez le champ Heure de modification pour inclure un champ contenant l'heure de la dernière modification du rapport. Ce champ fonctionne de la même façon que le champ
Date de modification. Ce champ peut être placé dans n'importe quelle section du rapport, selon la fréquence d'impression souhaitée.
Date des données Utilisez le champ Date des données pour inclure un champ contenant la date de la dernière extraction (actualisation) des données. Ce champ peut être placé dans n'importe quelle section du rapport, selon la fréquence d'impression souhaitée.
Heure des données
Utilisez le champ Date d'impression pour inclure la date d'impression de votre rapport.
Ce champ peut être placé dans n'importe quelle section du rapport, selon la fréquence d'impression souhaitée. La date peut être modifiée dans la boîte de dialogue Définir la date et l'heure d'impression.
Utilisez le champ Heure d'impression pour inclure un champ contenant l'heure d'impression du rapport. Ce champ peut être placé dans n'importe quelle section du rapport, selon la fréquence d'impression souhaitée.
Numéro d'enregistrement
Numéro de page
Utilisez le champ Heure des données pour inclure un champ contenant l'heure de la dernière extraction (actualisation) des données. Ce champ peut être placé dans n'importe quelle section du rapport, selon la fréquence d'impression souhaitée.
Utilisez le champ Numéro d'enregistrement pour numéroter chaque enregistrement imprimé dans la section Détails du rapport.
Utilisez le champ Numéro de page pour inclure un champ qui imprime le numéro de la page en cours. Ces champs sont le plus souvent placés dans les sections En-tête de page ou Pied de page.
Numéro de groupe Utilisez le champ Numéro de groupe pour numéroter chaque groupe du rapport. Vous pouvez placer ce champ dans la section En-tête de groupe ou Pied de page de groupe du rapport.
Nombre total de pages Utilisez le champ Nombre total de pages pour imprimer le nombre total de pages du rapport. Vous pouvez utiliser ce champ dans diverses instances. Par exemple, vous pouvez l'utiliser en combinaison avec le champ Numéro de page pour créer un objet texte "Page x sur y" où x correspond à la valeur du champ numéro de page et y à la valeur du champ Nombre total de pages. Ces champs peuvent être placés dans n'importe quelle section du rapport, selon la fréquence d'impression souhaitée.
658
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Titre du rapport
Commentaires de rapport
Utilisez le champ Titre du rapport pour inclure un champ contenant le titre que vous avez défini dans la boîte de dialogue Propriétés du document. Ce champ peut être placé dans n'importe quelle section du rapport, selon la fréquence d'impression souhaitée.
Utilisez le champ Commentaires de rapport pour inclure un champ contenant les commentaires que vous avez définis dans la boîte de dialogue Propriétés du document.
Ce champ peut être placé dans n'importe quelle section du rapport, selon la fréquence d'impression souhaitée.
Remarque
Seuls les 256 premiers caractères des commentaires saisis sous l'onglet Résumé de la boîte de dialogue Propriétés du document sont affichés.
Formule de sélection des enregistrements
Formule de sélection des groupes
Utilisez le champ Formule de sélection des enregistrements pour insérer un champ contenant une formule de sélection d'enregistrements dans le rapport. (Utilisez l'Expert
Sélection pour créer une formule de sélection d'enregistrements pour le rapport.)
Utilisez le champ Formule de sélection des groupes pour insérer un champ contenant une formule de sélection de groupes dans le rapport. (Utilisez l'Expert Sélection pour créer une formule de sélection de groupes pour le rapport.)
Nom et chemin d'accès du fichier
Utilisez le champ Nom et chemin d'accès du fichier pour inclure un champ affichant le nom de fichier et le chemin d'accès du rapport.
Auteur du fichier
Date de création du fichier
Page N sur M
Utilisez le champ Auteur du fichier pour inclure un champ affichant le nom de l'auteur du rapport (tel qu'indiqué dans la boîte de dialogue Propriétés du document).
Utilisez le champ Date de création du fichier pour inclure un champ affichant la date de création du rapport.
Utilisez le champ Page N sur M pour insérer un champ indiquant le numéro de page et le nombre total de pages du rapport. Par exemple, la valeur de champ Page 1 sur 8 indiquerait la première page d'un rapport de huit pages.
Remarque
Si vous incluez les champs spéciaux "Page N sur M" ou "Nombre total de pages" dans le rapport, cette valeur n'est calculée qu'après le traitement complet du rapport. Evitez d'utiliser ces champs spéciaux dans votre rapport, à moins que ce dernier soit très petit ou que vous ayez absolument besoin de cette valeur.
1.7.1.2.3.8.1 Insertion des champs spéciaux
Contexte
Pour afficher des informations spéciales, telles que les numéros de page, la date d'impression et les commentaires de rapport, utilisez les champs disponibles dans le nœud Champs spéciaux de l'Explorateur de champs.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
659
Conseil
Pour afficher l'Explorateur de champs, cliquez sur le menu
Crystal Reports
, puis cliquez sur
Explorateur de champs
.
Procédure
1. Dans l'
Explorateur de champs
, développez le nœud
Champs spéciaux
.
2. Depuis la liste
Champs spéciaux
, faites glisser le champ requis dans la section voulue de votre rapport.
Remarque
Pour les commandes Champs spéciaux qui impriment des informations de résumé du rapport (telles que le nom de l'auteur ou les commentaires), assurez-vous que les informations pertinentes sont saisies dans la boîte de dialogue Propriétés de document. Cliquez avec le bouton droit de la souris dans le
SAP Crystal Reports Designer incorporé, pointez sur Rapport et cliquez sur Propriétés du rapport.
Informations associées
Présentation générale des formules [page 700]
1.7.1.2.3.9 Dépannage des objets champ et texte
Cette section fournit des informations sur les problèmes courants relatifs aux objets champ et texte.
1.7.1.2.3.9.1 Pour éviter que le texte ne soit tronqué à l'intérieur d'un objet
Procédure
1. Cliquez avec le bouton droit de la souris sur l'objet à mettre en forme, puis cliquez sur
Mettre en forme l'objet
.
2. Dans la boîte de dialogue Editeur de mise en forme, cliquez sur l'onglet
Commun
, puis activez la case à cocher
Taille modulable
.
3. Cliquez sur
OK
pour enregistrer vos modifications.
L'objet est ainsi mis en forme pour s'imprimer sur plusieurs lignes. Si le texte s'imprime à l'extérieur de l'objet, il passera automatiquement aux lignes suivantes.
660
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.7.1.2.3.9.1.1 Eviter la troncature du texte
Lors du placement d'un objet texte dans un rapport, l'objet est représenté par un cadre d'objet. La hauteur du cadre est basée sur la hauteur de la police. Cependant, la largeur est déterminée de façon différente selon l'objet texte avec lequel vous travaillez.
Même si les largeurs par défaut sont acceptées ou si la taille des objets texte est modifiée, une difficulté peut se présenter si le texte à l'intérieur d'un objet s'imprime jusqu'au bord du cadre de champ. Alors que le rapport apparaît bien placé sur l'ordinateur où il a été conçu, le texte peut être coupé ou tronqué lors de l'impression si on utilise un autre pilote d'imprimante qui mesure plus largement la police employée, la longueur du texte s'étant agrandie alors que le cadre est resté fixe. Le texte obtenu est coupé ou tronqué.
Champs de base de données
Pour les champs de base de données qui ne sont pas des champs mémo, la largeur est déterminée initialement par la largeur du champ comme définie par la base de données ainsi que par la largeur moyenne des caractères selon la police et la taille de police sélectionnée.
Par exemple, vous avez un champ de base de données appelé {clients. NOM} et votre base de données affecte une longueur de 35 caractères à ce champ de texte. Lorsque vous insérez ce champ dans votre rapport, sa largeur sera 35 fois égale à celle de la largeur moyenne des caractères et de la taille de la police avec laquelle le texte est mis en forme. Ceci constitue la largeur initiale par défaut. La largeur peut toutefois être étendue ou diminuée selon vos besoins.
Objets texte
Pour les objets texte, la largeur par défaut est approximativement 17 largeurs de caractères. Les objets texte sont différents des champs de base de données du fait que leur largeur s'étend automatiquement lorsque vous y insérez un texte et/ou un champ de base de données. Comme avec tout autre objet texte, la largeur peut être modifiée par l'utilisateur.
Champs numériques
Pour les différents champs numériques, tels que double, simple, entier, entier long et octet, les largeurs par défaut sont toutes différentes. Encore une fois, comme avec les objets texte, la largeur peut être modifiée par l'utilisateur.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
661
1.7.1.2.3.9.2 Eviter le chevauchement du texte
Evitez la conception de rapports où l'espacement entre les objets est très étroit. Prévoyez de l'espace en étendant la largeur de l'objet d'approximativement 5 pour cent. Si ce n'est pas possible, vous pouvez également diminuer la taille de la police.
Objets texte à plusieurs lignes
Si le pilote d'imprimante élargit ou rétrécit l'espacement du texte, le passage à la ligne s'effectuera différemment et le nombre de lignes nécessaires pour imprimer l'objet s'adaptera à l'augmentation ou au rétrécissement résultant.
Vous pouvez rencontrer des difficultés lors du placement d'objets texte à plusieurs lignes si d'autres objets se trouvent directement en dessous.
Contrairement au cas des objets texte à ligne unique, il n'est pas recommandé d'élargir le cadre de champ d'un objet texte à lignes multiples. La largeur de la ligne s'étendrait uniquement selon l'agrandissement du champ.
Donc, si possible, insérez des objets texte sur plusieurs lignes en bas d'une section. S'ils ont besoin de plus de lignes lors de leur impression, la section s'élargira vers le bas pour s'adapter à l'agrandissement et ne gênera pas l'impression d'autres objets.
1.7.1.2.3.9.3 Augmentation des espaces entre les sections
L'espace entre les lignes dans une section est directement fonction de la hauteur de la section par rapport aux objets qui en font partie.
Pour ajouter des espaces vides entre les lignes dans le rapport, pointez avec votre souris sur la bordure inférieure de la section. Le pointeur se transforme en curseur de redimensionnement. Avec le curseur de redimensionnement, descendez la limite inférieure de la section pour ajouter un espace vide.
Pour corriger les problèmes d'incohérence au niveau de l'espacement dans les objets texte, utilisez des espaces au lieu de tabulations. Cela permet de conserver un espacement cohérent si vous visualisez votre rapport dans un
Web Forms Viewer.
1.7.1.2.3.9.4 Eviter la troncature des nombres
Contexte
SAP Crystal Reports se sert de la représentation du dépassement de champ pour aider les utilisateurs lorsqu'ils travaillent avec des valeurs numériques ou monétaires dans les cellules de rapport. Normalement, si une valeur numérique ou monétaire est plus grande que le champ la contenant, cette valeur sera tronquée ou "découpée".
Par exemple, les valeurs telles que 100 000 000 pourraient apparaître dans le rapport en tant que 1 000 ou bien
662
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
000 (suivant les propriétés que vous avez définies). Ceci pourrait provoquer une confusion lorsque vous lisez le rapport.
Chaque fois que vous désactivez le découpage du champ (option Permettre le découpage de champs), les valeurs de champ numériques/monétaires qui débordent la taille du champ seront représentées par les signes numériques (######), vous faisant ainsi savoir immédiatement si le champ est trop petit.
Procédure
1. Cliquez avec le bouton droit de la souris sur le champ monétaire ou numérique à mettre en forme, puis cliquez sur
Mettre en forme l'objet
.
La boîte de dialogue Editeur de mise en forme s'ouvre sur l'onglet Nombre.
2. Cliquez sur le bouton
Personnaliser
.
La boîte de dialogue Style personnalisé s'ouvre sur l'onglet Nombre.
3. Pour permettre la représentation du dépassement de champ, décochez la case
Permettre le découpage des champs
.
Vous pouvez également cliquer sur le bouton Mettre en forme pour saisir une formule dans l'Editeur de mise en forme de formule. Vous pouvez spécifier la désactivation du découpage de champs seulement quand certaines conditions sont remplies.
4. Cliquez sur
OK
pour enregistrer vos modifications.
Résultats
Si vous avez désactivé le découpage de champs, toutes les valeurs de champ numérique/monétaire plus grandes que les champs qui les contiennent seront représentées par les signes numériques (######).
1.7.1.2.3.10 Utilisation des langues se lisant de droite à gauche
Contexte
SAP Crystal Reports prend en charge l'affichage des langues se lisant de droite à gauche pour les rapports ayant déjà été formatés comme affiché ici. Une fois formaté pour les langues se lisant de droite à gauche, l'ordre de lecture du texte sera converti en fonction des paramètres de langue du navigateur.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
663
Procédure
1. Cliquez sur un champ de rapport avec le bouton droit de la souris, puis cliquez sur
Mettre en forme le champ
.
La boîte de dialogue
Editeur de mise en forme
apparaît.
2. Sur l'onglet
Commun
, modifiez les paramètres situés en regard de l'étiquette
Alignement horizontal
.
○ Si le rapport contient des données dans une seule langue se lisant de droite à gauche, sélectionnez
Droite
dans la boîte de dialogue.
○ Si le rapport contient des données dans plusieurs langues, cliquez sur le bouton
Formule de condition
et appliquez une formule vérifiant le format de la langue.
if {UnicodeData.Right_to_Left} then crRightAligned else crLeftAligned
Remarque
L'exemple référence un champ de base de données intitulé Right_to_Left à partir d'une table intitulée UnicodeData
3. A partir de l'onglet
Paragraphe
de la boîte de dialogue
Editeur de mise en forme
, modifiez les paramètres de l'étiquette
Sens de la lecture
.
○ Si le rapport contient des données dans une seule langue se lisant de droite à gauche, sélectionnez
De droite à gauche
.
○ Si le rapport contient des données dans plusieurs langues, sélectionnez le bouton Formule de condition et appliquez une formule vérifiant le format de la langue.
if {UnicodeData.Right_to_Left} then crRightToLeftTextReadingOrder else crLeftToRightTextReadingOrder
Remarque
L'exemple référence un champ de base de données intitulé Right_to_Left d'une table intitulée
UnicodeData.
4. Cliquez sur
OK
.
Résultats
Les langues se lisant de droite à gauche s'afficheront correctement dans le rapport.
664
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.7.1.2.4 Filtrage des données
Cette section explique comment filtrer les enregistrements que vous voulez inclure dans un rapport. Vous filtrez les données à l'aide des paramètres et des formules de sélection d'enregistrements.
En utilisant les outils de sélection d'enregistrements, par exemple, vous pouvez limiter les enregistrements dans votre rapport à ceux qui ne contiennent qu'un groupe spécifique de clients, une plage spécifique de numéros de compte ou une plage de dates particulière.
1.7.1.2.4.1 Sélection des enregistrements
Lorsque vous sélectionnez un champ, le logiciel imprime par défaut les valeurs de champ de tous les enregistrements de la table active. Mais il arrive fréquemment que vous ne soyez intéressé que par un sousensemble de ces enregistrements.
SAP Crystal Reports comprend un langage de formule très sophistiqué que vous pouvez utiliser pour spécifier n'importe quel type de sélection d'enregistrements. Toutefois, il se peut que vous n'ayez pas toujours besoin de la souplesse du langage de formule pour la sélection d'enregistrements. L'Expert Sélection est prévu dans cas là.
Vous pouvez sélectionner des enregistrements de deux façons :
●
Sélection des enregistrements de base [page 668]
●
Personnalisation des formules de sélection d'enregistrements [page 671]
Choix des champs à utiliser
Lorsque vous sélectionnez des enregistrements, le rapport est basé uniquement sur les enregistrements qui remplissent les conditions que vous avez définies. Ces conditions dépendent du type d'informations que vous souhaitez inclure dans le rapport final.
Supposons que vous ne vous intéressiez qu'aux enregistrements concernant la Californie. Il faut déterminer comment sélectionner seulement les enregistrements voulus.
● Si l'un des champs de la table contient directement l'indication de la région, le plus simple est de ne garder que les enregistrements dont la valeur, pour le champ concerné, est "la région est égale à Californie".
● Si ce n'est pas le cas, vous n'avez pas de champs Région et si vous voulez quand même faire un rapport seulement pour la Californie, il y a peut-être d'autres moyens de sélectionner les enregistrements.
● Si la table contient un champ Code postal, vous pourrez baser la sélection sur les codes postaux relatifs à la
Californie (Code postal entre n et N).
● Si la table contient un champ indicatif téléphonique, vous pourrez baser la sélection sur les indicatifs téléphoniques de la Californie (indicatif x, y....z).
Remarque
○ Si l'indicatif téléphonique fait partie du champ contenant le numéro de téléphone, l'expert ne peut pas s'en servir comme critère de sélection. Vous devez créer une formule pour extraire l'indicatif du numéro de téléphone et baser la sélection sur celui-ci.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
665
○ Si, comme dans notre exemple, vous pouvez baser la sélection sur différents champs, choisissez un champ indexé de préférence à un champ non indexé.
1.7.1.2.4.1.1 Empilage de la sélection d'enregistrements sur le serveur de base de données
Si vous voulez accélérer le traitement des rapports, 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.
Les pilotes fournis avec SAP Crystal Reports pour les sources de données SQL permettent "l'empilage" de la sélection d'enregistrements sur le serveur de base de données. Lorsque vous définissez une formule de sélection d'enregistrements dans un rapport basé sur une source de données SQL, SAP Crystal Reports l'analyse, génère la requête SQL correspondante et transmet cette requête au serveur de la base de données. La sélection s'effectue ensuite en deux étapes :
● la première étape correspond au traitement de la requête SQL par le serveur de la base de données et au renvoi d'un ensemble d'enregistrements à SAP Crystal Reports,
● la seconde étape consiste en l'évaluation locale dans SAP Crystal Reports de la formule de sélection des enregistrements pour les données reçues du serveur.
Comme les serveurs de base de données sont généralement plus rapides que les stations de travail, nous vous recommandons de définir des formules de sélection dont la première étape du traitement peut s'effectuer sur le serveur. Vous limitez ainsi la sélection des enregistrements sur votre ordinateur lors de la seconde étape. Vous pouvez empiler sur le serveur les types de sélection d'enregistrements suivants :
● Sélections avec champs indexés ou non indexés (le temps de réponse est plus court pour les champs indexés).
● Requêtes SQL avec clauses AND (et) et OR (ou).
● Champs d'expression SQL qui exécutent des calculs basés sur des formules pour la sélection d'enregistrements. (Pour connaître les types d'expressions SQL pris en charge par votre SQL Server, consultez la documentation appropriée.)
Exemple
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 compte 2 192 enregistrements, parmi lesquels
181 ont une date de commande antérieure à 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 transmet l'ensemble des 2 192 enregistrements à SAP Crystal Reports, puis la formule de sélection d'enregistrements réduit ce total à 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 SAP Crystal Reports ne peut pas empiler la fonction Year ( ) dans la clause WHERE.
666
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
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 SAP Crystal Reports. Ainsi, lorsque la formule de sélection d'enregistrements est évaluée par SAP 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.
1.7.1.2.4.1.1.1 Astuces de performances pour 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, vous devez sélectionner "Utiliser les index ou les serveurs pour un traitement rapide" dans la boîte de dialogue Options du rapport (cliquez avec le bouton droit de la souris dans le SAP Crystal Reports Designer incorporé, pointez sur Rapport et sélectionnez Options du rapport).
● 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 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.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
667
● 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.
1.7.1.2.4.1.2 Sélection des enregistrements de base
L'Expert Sélection vous permet de spécifier, d'une manière simple, les enregistrements que vous voulez faire figurer dans le rapport. Vous n'avez qu'à indiquer le champ sur lequel sera basée la sélection puis à préciser le critère.
L'Expert Sélection permet également de baser la sélection sur plusieurs champs et critères. Par exemple :
● clients résidant en Arizona,
● commandes du premier trimestre, ou
● ventes de plus de 10 000$.
Avec l'expert, vous pouvez aussi préparer des requêtes plus élaborées :
● clients dont les noms commencent par "A", "M", ou "S", ou
● clients de Californie ou de Floride ayant commandé en juillet.
Ce sont tous des critères portant sur des plages limitées. Une ou plusieurs constantes définissent la plage. Pour chaque enregistrement, L'Expert compare la valeur du champ aux constantes et rejette les enregistrements dont les valeurs ne figureront pas dans la plage. Le rapport est limité aux valeurs comprises dans la plage déterminée.
Vous pouvez élaborer ces types de requêtes sans connaissance préalable du langage des formules.
Remarque
L'Expert Sélection permet de définir des requêtes de sélection d'enregistrements et de sélection de groupes. Il n'est pas nécessaire de connaître le langage de formule de Crystal Reports pour définir ce genre de critères de sélection d'enregistrements. Dans tous les autres cas, le programme reconnaît la mise en place d'une sélection d'enregistrements.
1.7.1.2.4.1.2.1 Pour définir une sélection d'enregistrements
à l'aide de l'Expert Sélection
Procédure
1. Cliquez avec le bouton droit de la souris dans le SAP Crystal Reports Designer incorporé, pointez sur
Rapport
, puis cliquez sur
Expert Sélection
.
2. Dans la boîte de dialogue Sélectionner un champ, mettez en surbrillance le champ sur lequel vous souhaitez baser votre sélection, puis cliquez sur
OK
.
3. Dans la boîte de dialogue Expert Sélection, utilisez les listes déroulantes pour entrer vos critères de sélection pour le champ indiqué.
668
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Conseil
Pour effectuer la sélection d'enregistrements sur plusieurs champs, cliquez sur l'onglet Nouveau.
Sélectionnez le champ suivant dans la boîte de dialogue Sélectionner un champ.
4. Confirmez en cliquant sur
OK
.
Remarque
Pour afficher la formule de sélection, cliquez sur le bouton Afficher la formule. L'Expert Sélection se développe pour afficher la formule. Cliquez sur le bouton Editeur de formule pour modifier la formule.
Résultats
Une formule de sélection est créée en fonction de vos spécifications, en limitant le rapport aux enregistrements que vous avez indiqués.
1.7.1.2.4.1.3 Filtrage des données à l'aide des formules de sélection
Les formules de sélection spécifient et filtrent les enregistrements et les groupes qui apparaissent dans un rapport. Les trois formules de sélection suivantes permettent de filtrer les données :
● Formule de sélection d'enregistrement
● Formule de sélection des données enregistrées
● Formule de sélection de groupe
Le tableau suivant montre les types de champs autorisés dans différents filtres de rapports :
Table 16 :
Paramètres
Résumés
Formules d'heure d'impres sion/totaux cumulés
-
-
Formule de sélection d'enre gistrement
X
Formule de sélection des données enregistrées
X
-
-
X
Formule de sélection de groupe
X
Le tableau suivant montre les différents comportements associés aux différents filtres de rapports :
Table 17 :
Peut-on se référer au ré sumé ?
Formule de sélection d'enre gistrement
Formule de sélection des données enregistrées
Non.
Oui.
Formule de sélection de groupe
Oui.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
669
Quand la formule est-elle éva luée ?
Formule de sélection d'enre gistrement
Formule de sélection des données enregistrées
Pendant la lecture des enre gistrements.
Si un résumé est utilisé, à l'heure d'impression ; sinon, pendant la lecture des enre gistrements.
Quand le rapport est-il actua lisé ?
Le calcul du résumé est-il af fecté ?
Si le résultat de l'évaluation est faux, lorsque les enregis trements sont abandonnés.
Oui, les enregistrements fil trés ne sont pas comptabili sés.
Si les enregistrements sont lus, lors de l'évaluation. Si le résultat de l'évaluation est faux, lorsque les enregistre ments sont abandonnés.
Si le filtre est évalué pendant la lecture des enregistre ments, alors non ; sinon, oui.
Formule de sélection de groupe
A l'heure d'impression.
N/A
Non, les enregistrements sont comptabilisés même lors qu'ils sont filtrés.
Vous pouvez appliquer la formule de sélection des données enregistrées au résultat de la formule de sélection d'enregistrement. Le diagramme suivant décrit le flux d'utilisation des formules de sélection d'enregistrement et de sélection des données enregistrées :
Formule de sélection d'enregistrement
La formule de sélection d'enregistrement spécifie les enregistrements qui formeront les données enregistrées du rapport. Cette formule de sélection autorise deux niveaux de filtrage :
● filtrage par la base de données ;
● filtrage par le moteur de traitement du rapport.
Formule de sélection des données enregistrées
SavedDataFilter permet aux utilisateurs de visualiser un sous-ensemble des données enregistrées dans un rapport. En cas de modification de SavedDataFilter, les données enregistrées dans le rapport ne sont pas ignorées et la base de données n'est pas sollicitée.
Formule de sélection de groupe
La formule de sélection de groupe spécifie les enregistrements qui seront pris en compte lors du rendu des pages du rapport. Cette formule utilise généralement les valeurs produites à des étapes antérieures de traitement du rapport, comme les résumés.
670
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Remarque
La formule de sélection de groupe filtre les enregistrements et pas les groupes.
1.7.1.2.4.1.4 Personnalisation des formules de sélection d'enregistrements
Utilisez la syntaxe Crystal pour créer une formule de sélection d'enregistrements.
Informations associées
Dépannage des formules de sélection d'enregistrements [page 674]
Empilage de la sélection d'enregistrements sur le serveur de base de données [page 666]
Boîte de dialogue Editeur de formule [page 703]
1.7.1.2.4.1.4.1 Pour définir une sélection d'enregistrements
à l'aide d'une formule
Procédure
1. Cliquez avec le bouton droit de la souris dans le Crystal Reports Designer incorporé, pointez sur
Rapport
, sélectionnez
Formule de sélection
, puis cliquez sur
Enregistrements
.
2. Dans l'Editeur de formule de sélection d'enregistrements, saisissez la formule en tapant ses composants ou en les sélectionnant depuis les arborescences des composants.
Remarque
La formule résultante doit être booléenne ; c'est-à-dire qu'elle ne doit renvoyer que la valeur True (Vrai) ou
False (Faux).
3. Cliquez sur le bouton
Vérifier
pour identifier les éventuelles erreurs de la formule.
4. Résolvez les erreurs de syntaxe que le Vérificateur de Formule a trouvées.
5. Lorsque la syntaxe de la formule est correcte, cliquez sur le bouton
Enregistrer et fermer
.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
671
1.7.1.2.4.1.5 Modèles de formules de sélection d'enregistrements
Vous pouvez utiliser les exemples de formules suivants pour vous aider à créer vos propres formules de sélection
à l'aide de l'Editeur de formule de sélection d'enregistrements. Attention, il ne s'agit que d'exemples de ce que vous pouvez faire, les formules proposées ne sont pas forcément les mieux adaptées à vos besoins.
Sélection d'enregistrements à l'aide de chaînes de caractères
{file.FIELD} startswith "C"
Sélectionne les enregistrements dont la valeur du champ {fichier.CHAMP} commence par la lettre "C" (c'est-àdire Cyclope S.A. et Chambon père et fils, mais pas Automatique générale ni Sirius, Corp.).
not ({file.FIELD} startswith "C")
Sélectionne les enregistrements dont la valeur du champ {fichier.CHAMP} ne commence pas par la lettre "C"
(c'est-à-dire Automatique générale et Sirius, Corp., mais pas Cyclope S.A. ni Chambon père et fils).
"999" in {file.FIELD}[3 to 5]
Sélectionne les enregistrements dont les troisième, quatrième et cinquième caractères dans le champ
{fichier.CHAMP} sont "999" (c'est-à-dire des valeurs comme 10999, 70999, et 00999, mais pas 99901 ni 19990).
"Cycle" in {file.FIELD}
Sélectionne les enregistrements dont le champ {fichier.CHAMP} contient la chaîne de caractères "Cycle" (c'est-àdire des valeurs comme CycleAmoi & Co. et CycleSporin mais pas Tricycle et Bicycle).
Sélection d'enregistrements à l'aide de valeurs numériques uniques
{file.FIELD} > 99999
Sélectionne les enregistrements dans lesquels la valeur du champ {fichier.CHAMP} est supérieure à 99999.
{file.FIELD} < 99999
Sélectionne les enregistrements dans lesquels la valeur du champ {fichier.CHAMP} est inférieure à 99999.
Sélection d'enregistrements à l'aide d'une plage de valeurs numériques
{file.FIELD} > 11111 and {file.FIELD} < 99999
672
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Sélectionne les enregistrements dans lesquels la valeur du champ {fichier.CHAMP} est supérieure à 11111 mais inférieure à 99999 (les valeurs 11111 et 99999 sont exclues de la plage de valeurs).
{file.FIELD} >= 11111 and
{file.FIELD} <= 99999
Sélectionne les enregistrements dans lesquels la valeur du champ {fichier.CHAMP} est supérieure à 11111 mais inférieure à 99999 (les valeurs 11111 et 99999 sont incluses dans la plage de valeurs).
Sélection d'enregistrements à l'aide de dates
Vous pouvez également utiliser les fonctions MONTH, DAY, et YEAR (respectivement mois, jour, année) :
Year ({file.DATE}) < 1999
Sélectionne les enregistrements dans lesquels l'année du champ {fichier.DATE} est antérieure à 1999.
Year ({file.DATE}) > 1992 and
Year ({file.DATE}) < 1996
Sélectionne les enregistrements dans lesquels l'année du champ {fichier.DATE} est située entre 1992 et 1996 (les années 1992 et 1996 ne sont pas incluses).
Year({file.DATE}) >= 1992 and
Year({file.DATE}) <= 1996
Sélectionne les enregistrements dans lesquels l'année du champ {fichier.DATE} est située entre 1992 et 1996 (les années 1992 et 1996 sont incluses).
Month({file.DATE}) in 1 to 4
Sélectionne les enregistrements dont le mois du champ (champ {fichier.DATE}) est l'un des quatre premiers de l'année (janvier à avril).
Month({file.DATE}) in [1,4]
Sélectionne les enregistrements dans lesquels le mois du champ {fichier.DATE} est le premier ou le quatrième mois de l'année (janvier ou avril, mais ni février ni mars).
Sélection d'enregistrements à l'aide de plages de dates prédéfinies
Les plages de dates prédéfinies permettent de créer des formules de sélection du type :
{file.DATE} in LastFullMonth
Sélectionne les enregistrements dont le champ {fichier.CHAMP} contient une date appartenant au mois précédent. (Si le mois courant est le mois de mai, tous les enregistrements datés du mois d'avril sont sélectionnés.)
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
673
not({file.DATE} in LastFullMonth)
Sélectionne tous les enregistrements sauf ceux du mois précédent (si le mois est le mois de mai, tous les enregistrements sont sélectionnés sauf ceux d'avril).
{file.DATE} < CurrentDate
Sélectionne tous les enregistrements dont le champ {fichier.CHAMP} contient une date antérieure à la date courante.
Sélection d'enregistrements à l'aide de combinaisons de dates/nombres/ caractères
"C" in {file.FIELD}[1] and Month({file.DATE}) in [1,4]
Sélectionne les enregistrements dont la valeur du champ {fichier.DATE} commence par "C" et dont le mois est janvier ou avril. Vous utiliserez une formule de ce genre si, à partir d'une base de données de commandes, vous cherchez à obtenir la liste des clients dont le nom commence par "C" et qui ont passé des commandes en janvier et en avril.
"AOK" in {file.HISTORY}[3 to 5] and
{file.OPENCRED} >= 5000
Sélectionne les fichiers dont le champ {fichier.HISTORIQUE} contient les caractères "TOM" en troisième, quatrième et cinquième positions et dont la valeur du champ {fichier.CREDIT} est supérieure ou égale à 5 000.
Vous pouvez utiliser ces modèles tels quels (avec vos propres données), ou les combiner pour créer des formules plus complexes.
1.7.1.2.4.1.6 Dépannage des formules de sélection d'enregistrements
Pour dépanner votre formule de sélection, vous devez d'abord vous assurer que tous les champs auxquels la formule de sélection fait référence se trouvent dans le rapport. Supprimez ensuite la formule de sélection et testez-la pas à pas lors de sa recréation.
Correction des sélections qui ne génèrent pas de données
Peut-être avez vous créé une formule de sélection d'enregistrements et, les informations de l'en-tête de page et du pied de page du rapport ont été imprimés, mais aucune information de détail n'apparaît. Le problème provient du rejet de tous les enregistrements par la formule. Cela se produit généralement à cause d'une erreur lors de la création de la formule de sélection.
674
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Il existe plusieurs raisons possibles à cette erreur dans la formule de sélection :
● Incohérence majuscules/minuscules
● Espaces supplémentaires
Incohérences majuscules/minuscules
Les formules de sélection d'enregistrements respectent la casse. Par conséquent, "Bob" ne correspond qu'à
"Bob". Il ne correspond pas à "bob", "BOB", "BoB", "bOB", "boB" ou "Bob". Si votre formule de sélection est configurée pour n'inclure que les enregistrements avec "BOB" dans le champ {clients.PRENOM DU CONTACT} mais que la casse des valeurs de ce champ est mélangée ("Bob" par exemple), la formule de sélection ne trouve aucune correspondance et n'imprime aucun détail pour le rapport.
Vous pouvez résoudre ce problème en utilisant les fonctions UpperCase (chn) (Majuscule) ou LowerCase (chn)
(Minuscule) dans votre formule de sélection pour convertir les données du champ à une casse identique avant que le logiciel commence sa sélection. Par exemple, si vous utilisiez cette formule :
{customer.CONTACT FIRST NAME} = "BOB" vous pouvez la remplacer par celle-ci :
UpperCase({customer.CONTACT FIRST NAME}) = "BOB"
Cette dernière formule convertit la valeur du champ {clients.PRENOM DU CONTACT} en casse majuscule et puis vérifie que la valeur du champ est égal à "BOB". En utilisant cette formule, les trois lettres "b", "o", "b" correspondent, quelle que soit la casse, car les lettres seront converties en majuscule par cohérence pour avoir des correspondances correctes.
Vous pourriez utiliser la fonction LowerCase de la même manière pour avoir des correspondances avec "bob".
Vérifiez votre formule de sélection et vérifiez que vous avez la casse correcte dans tous les textes que vous essayez de faire correspondre. En cas de doute, utilisez la fonction UpperCase (majuscule) (ou LowerCase
(minuscule)) pour vérifier la cohérence et l'exactitude des correspondances.
La formule ci-dessous produit pratiquement le même résultat que la précédente :
"BOB" in UpperCase({customer.CONTACT FIRST NAME})
Espaces indésirables apparaissent dans la formule de sélection
Les espaces sont des caractères, et lorsque vous mettez des espaces dans la clé de recherche d'une formule de sélection, la formule cherche des enregistrements avec une correspondance exacte dans le champ sélectionné, y compris les espaces et tout autre caractère. Par exemple, la formule suivante :
"Mr . " in {customer.TITLE} ne trouvera aucune correspondance avec la forme d'adresse "M." car il existe un espace de plus dans la clé de recherche entre la lettre "M" et le point. De même, "Ph. D" ne correspondra pas à "Ph.D".
Vérifiez votre formule de sélection minutieusement et vérifiez que les espaces dans la formule de sélection correspondent aux espaces dans les champs que vous essayez de faire correspondre.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
675
1.7.1.2.4.2 Définition des paramètres
Les paramètres invitent l'utilisateur d'un rapport à saisir des informations. Un paramètre peut être considéré comme une question à laquelle l'utilisateur doit répondre avant que le rapport ne puisse être généré. Les informations saisies par l'utilisateur ou la réponse permettent de déterminer ce qui apparaîtra dans le rapport. Un rapport utilisé par le service des ventes utilisera par exemple un paramètre demandant à l'utilisateur de choisir une région. Le rapport renverra alors les résultats pour la région spécifiée, au lieu de renvoyer les résultats pour toutes les régions confondues.
En utilisant les champs de paramètre dans les formules, les formules de sélection et le rapport lui-même, vous pouvez créer un rapport unique pouvant être modifié en fonction de vos besoins. Les champs de paramètre peuvent également être utilisés dans les sous-rapports.
Si un paramètre est manquant ou non valide, le programme renvoie une erreur. Si la propriété
EnableParameterPrompt du SAP Crystal Report Viewer est définie sur "true", le rapport invite l'utilisateur à définir
à nouveau le paramètre.
Considérations pour les champs de paramètre
Plusieurs éléments doivent être pris en compte lors de l'utilisation des champs de paramètre :
● Pour obtenir une invite de paramètre, vous devez inclure ce paramètre n'importe où dans le rapport, que ce soit dans une sélection d'enregistrements ou de groupes, dans une formule, ou en tant que champ.
● Il n'est pas nécessaire de placer un champ de paramètre dans un rapport pour qu'il soit utilisé dans une formule de sélection d'enregistrements ou de groupes. Les champs de paramètre sont créés et saisis dans les formules de manière identique aux autres champs.
● Un champ de paramètre doit appartenir au même type de données que le champ auquel il est comparé. Par exemple, si un champ {Nom du client} de type chaîne est utilisé dans un rapport qui limite les sélections d'enregistrements à un nom de client spécifique, le champ de paramètre créé à cet effet doit également être de type chaîne.
● Les champs de paramètre prennent en charge les types de données suivants :
Table 18 :
Type de données
Booléen
Devise
Date
DateHeure
Nombre
Chaîne
Explication
Nécessite une réponse oui/non ou vrai/faux.
nécessite un montant en devise.
Exemple de paramètre
Inclure les prévisions de budget dans le résumé ?
Afficher les clients dont les ventes dé passent XXXXX.
Nécessite une réponse au format date. Saisir les dates de début et de fin du trimestre.
nécessite la saisie de la date et de l'heure.
nécessite une valeur numérique.
Afficher les statistiques du
07/04/2000 entre 13h00 et 14h00.
Saisir le numéro d'identification du cli ent.
nécessite une réponse de type texte.
Saisir la région.
676
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Type de données
Heure
Explication
Nécessite une réponse utilisant un for mat d'heure.
Exemple de paramètre
Afficher le nombre total d'appels entre
13h00 et 14h00.
● Il est possible de créer une liste dans laquelle l'utilisateur choisira une valeur de paramètre plutôt que d'avoir à la saisir manuellement.
● Les champs de paramètre affichant du texte peuvent comporter jusqu'à quatre lignes et environ 60 à 70 caractères par ligne (en fonction de la largeur des caractères, jusqu'à une limite de 254 caractères). Les textes comportant plus d'une ligne seront automatiquement renvoyés à la ligne.
Types de paramètres
Dans SAP Crystal Reports 2008, vous avez accès aux types de paramètres suivants :
Paramètres statiques
Paramètres dynamiques
Extraient les valeurs de paramètres stockées dans le rapport.
Extraient les valeurs de paramètres d'une source de données extérieure au rapport.
Remarque
Les invites dynamiques sont prises en charge par tous les visualiseurs à l'exception du visualiseur Java Applet.
Paramètres en cascade
Paramètres facultatifs
Guident l'utilisateur à travers une séquence d'invites dynamiques pour déterminer une valeur de paramètre finale.
Ne requièrent pas de valeur de paramètre et peuvent être laissés vides. Aucun signal visuel dans la boîte de dialogue des paramètres n'indique qu'un paramètre est facultatif ; toutefois, le concepteur du rapport peut ajouter un texte personnalisé au texte d'invite pour indiquer qu'il est facultatif.
Remarque
Les invites statiques s'affichent si le service d'invite ne parvient pas à extraire la liste des valeurs, si la session
Enterprise est inaccessible ou si la source de données est inaccessible.
1.7.1.2.4.2.1 Conception des champs de paramètre
Contexte
Pour obtenir une invite de paramètre, vous devez inclure ce paramètre n'importe où dans le rapport, que ce soit dans une sélection d'enregistrements ou de groupes, dans une formule, ou en tant que champ.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
677
Procédure
1. Dans l'Explorateur de champs, cliquez avec le bouton droit de la souris sur
Champs de paramètre
, puis cliquez sur
Nouveau
.
Conseil
Pour afficher l'Explorateur de champs, cliquez sur le menu
Crystal Reports
, puis cliquez sur
Explorateur de champs
.
2. Saisissez le nom du paramètre dans le champ
Nom
en utilisant jusqu'à 255 caractères alphanumériques.
3. Saisissez le texte d'invite voulu dans le champ
Texte de l'invite
(255 caractères alphanumériques au maximum).
Il s'agit du texte qui apparaît dans la boîte de dialogue Saisir des valeurs de paramètre lors de l'actualisation du rapport.
4. Saisissez le
Type de valeur
.
5. Cliquez sur
Valeurs par défaut
si vous souhaitez limiter ou spécifier les options de l'utilisateur.
6. Dans la boîte de dialogue
Définir les valeurs par défaut
, spécifiez la table et le champ de la valeur de paramètre.
7. Cliquez sur le bouton
>>
pour placer les valeurs dans la zone Valeurs par défaut.
L'utilisateur pourra choisir les valeurs que vous avez placées dans la zone Valeurs par défaut. Pour limiter la sélection, déplacez uniquement les valeurs parmi lesquelles l'utilisateur doit effectuer son choix.
Conseil
Pour un champ de paramètre de type chaîne dont les valeurs par défaut doivent être spécifiées, vous pouvez choisir de saisir un masque d'édition dans le champ Masque d'édition plutôt que de spécifier une plage.
8. Cliquez sur
OK
.
La boîte de dialogue Créer un champ de paramètre apparaît.
9. Cliquez sur
OK
.
10. Placez le paramètre dans le rapport à l'aide d'une opération glisser-déplacer.
Informations associées
Restriction du type et du format d'entrée dans les paramètres [page 679]
1.7.1.2.4.2.2 Paramètres de données et paramètres non relatifs à des données
En fonction de leur utilisation, les paramètres sont marqués comme paramètres de données ou paramètres non relatifs à des données. Les paramètres de données sont stockés dans une base de données. Les paramètres non
678
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
relatifs à des données, tels que le titre du rapport, sont stockés avec le rapport. En fonction de la manière dont ces paramètres sont utilisés dans le rapport, les données du rapport peuvent être actualisées automatiquement lorsque les valeurs de paramètre sont modifiées. Le nombre de paramètres actualisés influe sur la demande de traitement sur la base de données.
Les paramètres de données sont utilisés dans les éléments suivants :
● Formules de sélection d'enregistrements (directement ou indirectement par encapsulage dans la formule)
● Objets de commande
● Procédures stockées
● Paramètres d'univers
Les modifications apportées à la valeur d'un paramètre de données requièrent une actualisation du rapport pour extraire les nouvelles données de la base de données. Par exemple, un rapport est automatiquement actualisé lorsqu'un paramètre de données est utilisé pour générer une requête.
Les paramètres non relatifs à des données sont utilisés dans les éléments suivants :
● Formules de sélection de données enregistrées
● Formules conditionnelles
● Paramètres placés dans le rapport
Les modifications apportées à la valeur d'un paramètre non relatif à des données filtrent les données enregistrées du rapport et ne requièrent pas d'actualisation. Ce processus minimise la demande de traitement sur la base de données. Par exemple, un titre est un paramètre non relatif à des données.
Remarque
Les paramètres non relatifs à des données modifient la présentation des données existantes. Il est recommandé de les utiliser uniquement d'une manière cohérente avec le rapport. Par exemple, ne filtrez pas à l'aide d'une formule de sélection des données enregistrées pour afficher des valeurs inférieures à 100 000 si vous disposez d'une formule de sélection d'enregistrements qui sélectionne uniquement les valeurs supérieures à 100 000 dans la base de données. Une utilisation incorrecte des formules de sélection peut se traduire par des résultats peu clairs, voire des pages vides.
Informations associées
Filtrage des données à l'aide des formules de sélection [page 146]
Panneau des paramètres [page 137]
1.7.1.2.4.2.3 Restriction du type et du format d'entrée dans les paramètres
Pour un champ de paramètre de type chaîne dont les valeurs par défaut doivent être spécifiées, vous pouvez choisir de saisir un masque d'édition dans le champ Masque d'édition plutôt que de spécifier une plage. Un masque d'édition peut être constitué d'un ensemble de caractères utilisés pour restreindre les valeurs pouvant
être saisies comme valeurs de paramètre (il permet également de restreindre les valeurs pouvant être saisies comme valeurs d'invite par défaut).
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
679
Vous pouvez saisir l'un des caractères suivants ou toute combinaison de ces caractères :
Caractère de masque
"A"
"a"
"0"
"9"
"#"
"L"
"?"
"&"
"C"
". , : ; - /"
"<"
">"
"\"
Résultat du masque
Autorise tout caractère alphanumérique et requiert la saisie d'un caractère comme valeur du paramètre.
Autorise tout caractère alphanumérique et ne requiert pas la saisie d'un caractère comme valeur du paramètre.
Autorise un chiffre [0 à 9] et requiert la saisie d'un caractère comme valeur du paramètre.
Autorise un chiffre ou un espace et ne requiert pas la saisie d'un caractère comme valeur du paramètre.
Autorise un chiffre, un espace ou un signe plus/moins et ne requiert pas la saisie d'un caractère comme valeur du paramètre.
Autorise une lettre [A à Z] et requiert la saisie d'un caractère comme valeur du paramètre.
Autorise une lettre et ne requiert pas la saisie d'un caractère comme valeur du paramètre.
Autorise tout caractère ou espace et requiert la saisie d'un caractère comme la valeur du paramètre.
Autorise un caractère ou un espace et ne requiert pas la saisie d'un caractère comme valeur du paramètre.
Séparateurs. L'insertion de séparateurs dans un masque d'édition est similaire au codage en dur de la mise en forme d'un champ de paramètre. Lorsque le champ est placé dans le rapport, le séparateur apparaît dans le cadre de l'objet champ, comme dans l'exemple suivant : LLLL/0000. Cet exemple correspond à un masque d'édition nécessitant la saisie de quatre lettres suivies de quatre nombres.
Entraîne la conversion en minuscules des caractères qui suivent ce signe.
Entraîne la conversion en majuscules des caractères qui suivent ce signe.
Entraîne l'affichage littéral du caractère qui suit ce signe. Par exemple, le masque d'édition "\A" afficherait une valeur de paramètre égale à "A". Si le masque d'édition est "00\A00", les valeurs de paramètres valides seraient alors composées de deux chiffres, la lettre "A" et deux chiffres supplémentaires.
680
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Caractère de masque Résultat du masque
"Mot de passe" Vous permet de définir le masque d'édition comme "Mot de passe" et de créer des formules conditionnelles spécifiant que certaines sections du rapport ne sont visibles que lorsque certains mots de passe utilisateur sont saisis.
Certains caractères du masque d'édition nécessitent la saisie d'un caractère à leur place (lors de la saisie d'une valeur de paramètre), alors que d'autres vous permettent de laisser un blanc si nécessaire. Si le masque d'édition est par exemple 000099, vous pouvez saisir une valeur de paramètre avec quatre chiffres, cinq chiffres, ou six chiffres, puisque le caractère de masque d'édition "9" ne requiert pas la saisie d'un caractère. Toutefois, puisque
"0" requiert la saisie d'un caractère, il n'est pas possible de saisir une valeur comportant moins de quatre chiffres.
Informations associées
Incorporation des paramètres dans des formules [page 681]
Définition des paramètres [page 676]
1.7.1.2.4.2.4 Incorporation des paramètres dans des formules
Il n'est pas nécessaire de placer un champ de paramètre dans un rapport pour qu'il soit utilisé dans une formule de sélection d'enregistrements ou de groupes. Les champs de paramètre sont créés et saisis dans les formules de manière identique aux autres champs.
Sélection des enregistrements à l'aide de formules
Pour diminuer la quantité de données transférées du serveur de base de données et améliorer les performances, intégrez ces champs de paramètre dans votre formule de sélection d'enregistrements.
Cette formule de sélection d'enregistrements invite les utilisateurs à saisir un quota de ventes et n'affiche que les clients dont les ventes de l'année précédente ont dépassé ce quota de vente.
{Clients.Ventes de l'année dernière} > {?QuotaDeVentes}
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
681
Tri et regroupement à l'aide de champs de paramètre
Cette formule à syntaxe Crystal intègre le paramètre ?groupe, qui invite les utilisateurs à choisir Client ou Groupe comme option de groupe. La fonction UpperCase convertit la valeur du paramètre en majuscules pour plus de cohérence.
WhileReadingRecords; If UpperCase ({?groupe})= "CLIENTS" then {Clients.Nom du client} Else if UpperCase ({?groupe}) = "REGION" then {Clients.Région}
Mise en forme conditionnelle à l'aide de champs de paramètre
Les champs de paramètre peuvent être utilisés pour créer des formules de mise en forme conditionnelle. Vous pouvez utiliser une formule de mise en forme conditionnelle pour colorer des données répondant à certaines conditions. Si les conditions de marquage de ces éléments ne sont jamais modifiées, n'utilisez pas les champs de paramètre, mais utilisez les formules ou la mise en forme conditionnelle.
Cette formule à syntaxe Crystal intègre le paramètre ?PrévisionDesVentes, qui invite les utilisateurs à saisir une valeur de prévision des ventes. Tous les clients qui dépassent cette valeur apparaîtront en rouge dans le rapport.
If {Clients.Ventes de l'année dernière} > {?PrévisionDesVentes} Then Red Else Black
1.7.1.2.5 Regroupement, tri et calcul de totaux des données
Quand vous insérez tout d'abord un champ de base de données dans votre rapport, les données contenues dans les champs s'affichent dans l'ordre dans lequel elles ont été saisies initialement dans la base de données. Le groupement, le tri et le calcul de totaux permettent de transformer des données désorganisées en informations utiles dans un rapport.
1.7.1.2.5.1 Regroupement des données
Explique comment regrouper et résumer les données de rapport en fonction d'un champ de rapport. Explique
également comment sélectionner les groupes N premiers ou N derniers.
Dans de nombreux rapports, vous devez répartir les données en groupes pour en faciliter la lecture et l'analyse.
Cette section vous montre comment regrouper des données dans un rapport.
682
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.7.1.2.5.1.1
Procédure
Pour regrouper des données de rapport
1. Cliquez avec le bouton droit de la souris dans le SAP Crystal Reports Designer incorporé, pointez sur
Insérer
, puis cliquez sur
Groupe
.
2. Dans la boîte de dialogue
Insérer un groupe
, sélectionnez dans la liste déroulante supérieure le champ selon lequel vous voulez trier et regrouper les données.
3. Dans la deuxième liste déroulante, sélectionnez le sens du tri.
4. Si vous souhaitez afficher une valeur différente dans l'en-tête de groupe, cliquez sur l'onglet
Options
.
Conseil
Par défaut, l'en-tête de groupe du rapport affichera la valeur du champ sur lequel vous effectuez le regroupement.
5. Cochez la case
Personnaliser le champ de nom de groupe
, puis choisissez un nouveau nom de groupe.
Par exemple, si vous avez effectué un groupement par {Clients.IDclient}, vous verrez, à chaque changement de groupe, l'ID client correspondant. Si vous souhaitez afficher une valeur différente (ID client et nom du client), personnalisez le champ de nom de groupe en sélectionnant un autre champ de données ou en créant une formule.
6. Cliquez sur
OK
.
Notez que deux nouvelles sections apparaissent dans l'onglet Conception : En-tête de groupe n° 1 et Pied de page de groupe n° 1. Elles indiquent que le rapport a fait l'objet d'un regroupement.
Conseil
Pour masquer le nom de l'en-tête de groupe, cliquez sur l'en-tête avec le bouton droit de la souris, sélectionnez Mettre en forme l'objet, puis cliquez sur Supprimer dans l'onglet Commun de l'Editeur de mise en forme.
Informations associées
Résumé des données regroupées [page 685]
Sélection des groupes N premiers ou N derniers [page 688]
1.7.1.2.5.1.2 Regroupement hiérarchique des données
Vous pouvez regrouper les données d'un rapport afin de mettre en évidence leurs relations hiérarchiques.
Lorsque vous regroupez les données hiérarchiquement, SAP Crystal Reports trie les informations en fonction des relations existant entre deux champs. Une relation hiérarchique doit être inhérente aux données utilisées dans le rapport :
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
683
● Les champs parent et enfant doivent être du même type de données pour que le programme puisse identifier une relation entre eux.
● Les données du champ parent doivent être un sous‑ensemble des données du champ enfant.
● Pour que le niveau supérieur d'une hiérarchie apparaisse dans un rapport, la valeur doit apparaître dans les données enfant tandis que la ligne correspondante dans les données parent doit être vide.
● Il ne peut pas exister de logique circulaire entre les données (en d'autres termes, A ne peut pas être lié à B, tandis que B est lié à C et C à A).
Par exemple, si vous voulez montrer la structure hiérarchique d'un service, vous pouvez regrouper les données par ID employé et spécifier les relations hiérarchiques avec les champs de données contenant les supérieurs hiérarchiques des employés.
1.7.1.2.5.1.2.1 Pour regrouper les données de façon hiérarchique
Procédure
1. Cliquez avec le bouton droit de la souris dans le SAP Crystal Reports Designer incorporé, pointez sur
Insérer
, puis cliquez sur
Groupe
.
2. Dans la boîte de dialogue Insérer un groupe, sélectionnez le champ sur lequel sera basée votre hiérarchie (le champ enfant).
Par exemple, pour afficher la structure hiérarchique des employés d'une société, sélectionnez le champ employé.
3. Sélectionnez
dans l'ordre croissant
.
Par défaut, l'en-tête de groupe du rapport affichera la valeur du champ sur lequel vous effectuez le regroupement.
4. Cliquez sur l'onglet
Options
, puis activez la case à cocher
Personnaliser le nom de champ de groupe
si vous souhaitez afficher une valeur différente dans l'en-tête de groupe.
Par exemple, si vous avez effectué un regroupement par employé, vous verrez à chaque changement de groupe le nom de l'employé correspondant. Pour afficher une autre valeur (Nom de l'employé au lieu de ID employé), personnalisez le champ de nom de groupe en sélectionnant un autre champ de données ou en créant une formule.
5. Cliquez sur
OK
.
Le groupe que vous avez créé est ajouté au rapport.
6. Cliquez avec le bouton droit de la souris dans le SAP Crystal Reports Designer incorporé, pointez sur
Rapport
et cliquez sur
Options de Hierarchical Grouping
.
7. Dans la liste
Groupes disponibles
de la boîte de dialogue Options de regroupement hiérarchique, sélectionnez le groupe à organiser de manière hiérarchique.
8. Cochez la case
Tri hiérarchique des données
.
9. Dans la liste
Champ ID parent
, sélectionnez le champ selon lequel vous voulez organiser le champ ID instance.
Par exemple, dans le cas d'un organigramme, vous pouvez sélectionner le champ contenant le supérieur hiérarchique de l'employé.
684
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Remarque
Les champs ID instance et ID parent doivent avoir le même type. Par exemple, si le champ ID instance contient des données de type chaîne, alors le champ ID parent doit également en contenir.
10. Dans le champ
Retrait du groupe
, saisissez la valeur de l'indentation souhaitée pour chaque sous-groupe.
Remarque
La valeur que vous saisissez dans le champ Retrait du groupe affecte tous les autres objets contenus dans la même zone que le groupe hiérarchique. Par exemple, si votre rapport contient un champ Salaire sur la même ligne que le nom de l'employé, le champ Salaire est lui aussi mis en retrait si vous utilisez le champ
Employé pour créer un groupe hiérarchique.
11. Cliquez sur
OK
.
Les données du rapport sont désormais regroupées hiérarchiquement.
Remarque
Le niveau auquel un nom apparaît dans la hiérarchie du dépend du nombre d'employés qui sont sous sa responsabilité. Les employés qui n'ont personne sous leur responsabilité se trouvent au plus bas niveau de la hiérarchie.
Informations associées
Calcul de totaux des données [page 693]
1.7.1.2.5.1.3 Résumé des données regroupées
Le principal objectif de la répartition des données en groupes est l'exécution de calculs séparés pour les enregistrements de chaque groupe. Lorsque le programme résume les données, il les trie puis les répartit en groupes et ensuite il résume les valeurs de chaque groupe. Il s'agit d'une procédure automatique.
Le programme propose plusieurs options de résumé. Selon le type de données du champ que vous souhaitez résumer, vous pouvez :
● calculer la somme des valeurs de chaque groupe
● compter toutes les valeurs ou uniquement les valeurs qui sont différentes les unes des autres
● déterminer la valeur maximale, minimale, moyenne ou Nième plus grand.
● calculer jusqu'à deux types d'écarts-type et de variances.
Par exemple :
● Les rapports Liste des clients déterminent le nombre de clients dans chaque département. Le résumé calcule le nombre de clients différents dans chaque groupe Région.
● Les rapports Commandes déterminent la commande moyenne placée chaque mois. Le résumé calcule le volume de la commande moyenne pour chaque groupe correspondant à un mois.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
685
● Les rapports Ventes déterminent les ventes totales par vendeur. Le résumé calcule le total ou le sous-total des montants des commandes réalisées par chaque groupe de représentants.
Informations associées
Masquage des détails dans des rapports de résumé [page 688]
Classement des groupes par valeurs résumées [page 687]
Pour calculer les sous-totaux des données [page 693]
Ajout des pourcentages à un rapport [page 694]
Sélection des groupes N premiers ou N derniers [page 688]
1.7.1.2.5.1.3.1
Procédure
Pour résumer des données regroupées
1. Cliquez avec le bouton droit de la souris dans le SAP Crystal Reports Designer incorporé pour accéder au menu contextuel.
2. Pointez sur
Insérer
et cliquez sur
Résumé
.
3. Dans la boîte de dialogue Insérer un résumé, sélectionnez le champ à résumer dans la liste "Choisir le champ
à résumer".
4. Dans la liste
Calculer ce résumé
, sélectionnez une opération de résumé.
5. Dans la liste Emplacement du résumé, sélectionnez un emplacement pour le résumé.
Conseil
Vous pouvez créer un groupe pour votre rapport en cliquant sur le bouton Insérer un groupe.
6. Pour afficher la valeur de résumé sous la forme d'un pourcentage du total, sélectionnez
Afficher sous forme de pourcentage
de dans la zone Options, puis choisissez un champ de total dans la liste.
7. Pour obtenir le résumé d'une hiérarchie, sélectionnez
Résumer toute la hiérarchie
.
Pour en savoir plus sur les hiérarchies, voir Regroupement hiérarchique des données [page 683] .
8. Cliquez sur
OK
.
Par exemple, si vous voulez compter le nombre de clients dans chaque pays, vous devez créer un champ de compte basé sur le champ Client et regroupé par pays.
686
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.7.1.2.5.1.4 Classement des groupes par valeurs résumées
Contexte
Vous avez la possibilité de classer les groupes par ordre croissant ou décroissant sur la base des valeurs de résumé. Vous voulez, par exemple, imprimer les sous-totaux des commandes de vos clients par région. Vous pourriez classer les groupes de la façon suivante :
● du montant des commandes le plus bas vers le plus élevé (ordre croissant)
● du montant des commandes le plus élevé vers le plus bas (ordre décroissant).
Vous classez les groupes par valeur de résumé à l'aide de l'Expert Tri de groupes.
Procédure
1. Cliquez avec le bouton droit de la souris dans le SAP Crystal Reports Designer incorporé, pointez sur
Rapport
, puis cliquez sur
Expert Tri de groupes
.
Remarque
Pour que l'Expert Tri de groupes soit disponible, votre rapport doit contenir un champ de résumé. Voir
Résumé des données regroupées [page 685] .
La boîte de dialogue Expert Tri de groupes s'affiche avec un onglet pour chacun des groupes résumés dans le rapport.
2. Sélectionnez l'onglet correspondant au groupe à trier.
3. Sélectionnez
Tout
dans la liste déroulante figurant à gauche de l'écran.
4. Choisissez le résumé sur lequel vous voulez baser votre sélection dans la liste déroulante des résumés à droite.
La liste déroulante des résumés concerne les cas de plusieurs résumés dans une seule section de groupe. Par exemple, dans un rapport des commandes, vous pouvez calculer les totaux des commandes de chaque client et en faire la moyenne, puis afficher la somme et la moyenne dans la même section de groupe. Vous sélectionnerez alors la somme ou la moyenne dans cette liste déroulante.
5. Spécifiez le sens du tri en cliquant sur
Croissant
ou
Décroissant
.
6. Pour sélectionner un second tri de groupe, répétez les étapes 2 à 5.
7. Confirmez en cliquant sur
OK
.
Résultats
Lorsque vous exécutez le rapport, le programme va classer les données en fonction des valeurs de résumé spécifiées.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
687
Informations associées
Ajout des pourcentages à un rapport [page 694]
Amélioration de la présentation des rapports [page 730]
1.7.1.2.5.1.5 Masquage des détails dans des rapports de résumé
Contexte
En masquant la section Détails d'un rapport de résumé, vous évitez d'encombrer les utilisateurs de données dont ils n'ont peut-être pas besoin dans l'immédiat. Lorsque la section Détails est masquée, les utilisateurs naviguent d'abord avec l'arborescence des groupes pour trouver les données souhaitées. Ensuite, en explorant le rapport, ils peuvent demander des données spécifiques qui sont rapidement renvoyées sans enregistrements superflus.
Pour faciliter ainsi la navigation, vous devez d'abord regrouper les données et insérer les champs de résumé que vous voulez inclure dans votre rapport.
Procédure
Cliquez avec le bouton droit de la souris sur la section de rapport Détails et sélectionnez
Masquer (avec exploration)
.
Informations associées
Sélection des groupes N premiers ou N derniers [page 688]
Ajout des pourcentages à un rapport [page 694]
Amélioration de la présentation des rapports [page 730]
1.7.1.2.5.1.6 Sélection des groupes N premiers ou N derniers
Contexte
Il peut arriver que vous ayez besoin d'afficher uniquement les "premiers" ou "derniers" groupes dans un rapport : les gammes de produits qui se vendent le plus rapidement, les régions de vente les moins productives, les
688
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
départements qui génèrent le plus d Etant donné que ce type de sélection de groupes est très apprécié, le programme inclut l'Expert Tri de groupes qui permet de configurer la sélection très facilement :
● Avec un regroupement N premiers, vous demandez au programme d'afficher les groupes qui ont les valeurs de résumé les plus élevées.
● Avec un regroupement N derniers, vous demandez au programme d'afficher les groupes qui ont les valeurs de résumé les moins élevées.
Lorsque vous sélectionnez les groupes N premiers ou N derniers, vous devez prendre en compte un autre
élément : qu'allez-vous faire des enregistrements des autres groupes (c'est-à-dire des groupes qui ne correspondent pas aux critères N premiers ou N derniers) ? Vous devez décider si vous voulez éliminer totalement ces enregistrements de votre rapport, ou si vous voulez les réunir dans un seul groupe. Le programme vous permet de choisir l'une ou l'autre de ces options.
Remarque
Cette procédure explique comment sélectionner N groupes premiers ou derniers. La méthode des pourcentages supérieurs ou inférieurs fonctionne de la même manière, à ceci près que vous spécifiez un pourcentage au lieu d'un nombre de groupes.
Procédure
1. Cliquez avec le bouton droit de la souris dans le SAP Crystal Reports Designer incorporé, pointez sur
Rapport
, puis cliquez sur
Expert Tri de groupes
.
Remarque
Pour pouvoir effectuer une sélection de type N premiers ou N derniers, il faut que le rapport contienne une
valeur de résumé. Voir Résumé des données regroupées [page 685]
.
L'Expert Tri de groupes s'affiche et contient un onglet pour le groupe. Si vous avez plusieurs groupes, le programme affichera un onglet pour chaque groupe.
2. Sélectionnez
N premiers
ou
N derniers
dans la première liste déroulante.
3. Choisissez le résumé sur lequel vous voulez baser votre sélection dans la liste déroulante des résumés à droite.
La liste déroulante des résumés concerne les cas de plusieurs résumés dans une seule section de groupe. Par exemple, dans un rapport des commandes, vous pouvez calculer les totaux des commandes de chaque client et en faire la moyenne, puis afficher la somme et la moyenne dans la même section de groupe. Vous sélectionnerez alors la somme ou la moyenne dans cette liste déroulante.
4. Dans la zone de texte "N", saisissez le nombre de groupes que vous voulez afficher.
Par exemple :
○ Pour créer un rapport sur les trois lignes de produits qui se vendent le plus rapidement, sélectionnez l'option N premiers dans l'Expert N premiers/Tri de groupes et définissez N comme étant égal à trois.
○ Pour créer un rapport sur les cinq régions de vente les moins productives, sélectionnez l'option
N derniers dans l'Expert N premiers/Tri de groupes et définissez N comme étant égal à cinq.
5. Si vous voulez regrouper tous les enregistrements restants dans une seule entité, sélectionnez l'option
Inclure les autres enregistrements sous le nom
et saisissez un nom approprié.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
689
6. Sélectionnez
Inclure les valeurs égales
pour intégrer les groupes dont les valeurs résumées sont égales.
Par exemple, supposons que vous disposiez des groupes suivants :
○ Tri 1 = 100
○ Tri 2 = 90
○ Tri 3 = 80
○ Tri 4 = 80
Si vous affectez la valeur 3 au champ N premiers et que vous ne sélectionnez pas "Inclure les valeurs égales", votre rapport affiche les commandes 1, 2 et 3.
Dans le même scénario, si vous sélectionnez "Inclure les valeurs égales", votre rapport affiche les commandes 1, 2, 3 et 4 même si N a la valeur 3. Ainsi, le programme prend en compte les valeurs égales des tris 3 et 4.
7. Cliquez sur
OK
.
Résultats
Lorsque le programme exécutera le rapport, seuls les groupes que vous avez spécifiés seront désormais inclus.
Informations associées
Ajout des pourcentages à un rapport [page 694]
Amélioration de la présentation des rapports [page 730]
1.7.1.2.5.2 Tri des données
Explique comment trier les données sur un champ spécifié. Présente également les diverses options de tri.
Lorsque vous ajoutez pour la première fois un champ de base de données à votre rapport, les valeurs des données du champ apparaissent dans l'ordre dans lequel elles ont été initialement entrées dans la base de données. En triant les enregistrements, vous pouvez organiser les données dans un ordre particulier afin de faciliter la recherche et l'évaluation des informations.
1.7.1.2.5.2.1 Pour trier vos données
Procédure
1. Cliquez avec le bouton droit de la souris dans le SAP Crystal Reports Designer incorporé pour accéder au menu contextuel.
690
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
2. Pointez sur
Rapport
et cliquez sur
Expert Tri d'enregistrements
pour accéder à ce dernier.
3. Mettez en surbrillance le champ à trier dans la zone Champs disponibles.
4. Cliquez sur la flèche
>
.
Le champ sélectionné sera ajouté à la zone de liste Champs sélectionnés.
5. Dans la zone Sens du tri de la boîte de dialogue, cliquez sur
Croissant
ou sur
Décroissant
.
6. Si le tri est effectué sur plusieurs champs, sélectionnez le deuxième champ sur lequel vous voulez trier les données pour l'ajouter à la liste Champs sélectionnés.
Remarque
L'ordre dans lequel les champs sont répertoriés dans la liste Champs sélectionnés est l'ordre dans lequel les données seront triées.
7. Confirmez en cliquant sur
OK
.
1.7.1.2.5.2.2 Familiarisation avec les options de tri
Lors du tri, le programme vous demande deux choses :
● le champ sur lequel vous voulez baser le tri (le champ de tri) ;
● la direction du tri.
Champ de tri
Le champ de tri détermine l'ordre dans lequel les données apparaissent dans le rapport. Presque tout champ peut
être utilisé comme champ de tri. Le type de données d'un champ détermine la méthode selon laquelle les données de ce champ sont triées.
Remarque
Vous ne pouvez pas faire de tri sur des champs mémo ou sur des champs BLOB.
Table 19 :
Type de champ
Champs de type chaîne d'un seul caractère
Ordre de tri
Blancs
Ponctuation
Nombres
Lettres majuscules
Lettres minuscules
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
691
Type de champ
Champs chaîne de plusieurs caractères
Champs monétaires
Champs numériques
Champs de date
Champs de type date/heure
Champs d'heure
Champs de comparaison booléens
Valeurs Null
Ordre de tri
Deux lettres
Trois lettres
Quatre lettres, etc.
Par exemple :
● "BOB" vient avant "bob"
● "123" vient avant "124"
● " " (blanc) vient avant "aaa"
Ordre numérique
Ordre numérique
Ordre chronologique
Ordre chronologique
Les valeurs ayant une date identique sont triées par heure.
Ordre chronologique
Valeurs fausses (0)
Valeurs vraies (1)
Valeurs Null
Valeurs non NULL
Sens du tri
Le sens de tri correspond à l'ordre dans lequel les valeurs sont affichées, une fois qu'elles ont été triées.
Croissant L'ordre croissant signifie du plus petit au plus grand (1 à 9, A à Z, Faux à Vrai). Le programme trie les enregistrements par ordre croissant sur la base des valeurs dans le champ de tri que vous sélectionnez.
Décroissant L'ordre décroissant signifie du plus grand au plus petit (9 à 1, Z à A, Vrai à Faux). Le programme trie les enregistrements par ordre décroissant sur une base des valeurs dans le champ de tri que vous sélectionnez.
1.7.1.2.5.2.3 Contrôles de tri
SAP Crystal Reports 2008 permet aux utilisateurs de modifier un champ de tri ou un sens de tri sans actualiser les informations de la base de données. Pour ce faire, utilisez un
Contrôle de tri
. L'ajout d'un contrôle de tri à un champ de texte place deux flèches de tri en regard du champ lors de l'affichage de l'aperçu du rapport. Les
692
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
utilisateurs peuvent trier les champs que vous avez sélectionnés en cliquant sur les flèches de tri qui apparaissent en regard de l'objet texte.
Les contrôles de tri sont disponibles dans tous les visualiseurs SAP Crystal Reports ; toutefois, il n'est pas possible d'ajouter de contrôle de tri depuis le concepteur incorporé. Vous devez utiliser le concepteur autonome si vous souhaitez ajouter un contrôle de tri à votre rapport.
Le contrôle de tri est particulièrement utile pour plusieurs raisons :
● Il permet aux utilisateurs de trier les données du rapport pour une analyse plus approfondie sans quitter la zone de dessin du rapport.
● Il élimine la demande de traitement sur la base de données.
● Il réduit le temps d'attente des utilisateurs pendant le tri des données.
● Il permet aux utilisateurs de trier les champs du rapport, même s'ils ne disposent pas d'une connexion ou des droits d'accès à la base de données au moment de l'affichage.
Si vous avez l'intention d'inclure un contrôle de tri à votre rapport, il est important de prendre en compte les points suivants :
● Les contrôles de tri s'appliquent à tout un ensemble d'enregistrements ; vous ne pouvez pas trier uniquement un seul groupe.
● Les contrôles de tri ne peuvent pas être utilisés dans les sous-rapports.
● L'utilisation des contrôles de tri entraîne la fermeture de tous les onglets d'exploration avant (un avertissement alerte les utilisateurs).
● Les contrôles de tri doivent être ajoutés à un rapport avec le concepteur autonome.
1.7.1.2.5.3 Calcul de totaux des données
Explique comment calculer le sous-total des données groupées, ajouter des pourcentages à un rapport et créer des totaux cumulés.
Pour aider les utilisateurs à analyser les données du rapport, vous pouvez ajouter des totaux à vos rapports. Le calcul des totaux peut être très simple, comme fournir le total général en bas d'une liste d'enregistrements, ou très complexe, comme afficher un total cumulé en fonction de conditions spécifiées par une formule. Utilisez les experts fournis pour calculer les totaux de vos données.
Informations associées
Exécution des calculs dans un rapport [page 700]
1.7.1.2.5.3.1 Pour calculer les sous-totaux des données
Contexte
Un sous-total est un type de résumé qui additionne les valeurs numériques d'un groupe.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
693
Procédure
1. Cliquez avec le bouton droit de la souris dans le SAP Crystal Reports Designer incorporé pour accéder au menu contextuel.
2. Pointez sur
Insérer
et cliquez sur
Résumé
.
3. Dans la boîte de dialogue Insérer un résumé, cliquez sur la liste déroulante supérieure et sélectionnez le champ dont vous voulez calculer le sous-total.
4. Cliquez sur
Insérer un groupe
.
La boîte de dialogue Insérer un groupe s'affiche et vous permet de spécifier le groupe à ajouter à votre rapport.
5. Choisissez le champ par lequel vous souhaitez trier et regrouper les données, spécifiez le sens du tri, puis cliquez sur
OK
.
6. Dans la zone de liste Emplacement du résumé de la boîte de dialogue Insérer un résumé, sélectionnez le groupe que vous venez de créer, puis cliquez sur
OK
.
Un sous-total est calculé pour les valeurs de chaque groupe.
7. Cliquez sur
OK
.
Informations associées
Regroupement des données [page 682]
Ajout des pourcentages à un rapport [page 694]
1.7.1.2.5.3.2 Ajout des pourcentages à un rapport
Contexte
Vous pouvez calculer le pourcentage d'un groupe au sein d'un regroupement plus large. Par exemple, vous pouvez afficher les ventes dans chaque ville sous la forme d'un pourcentage des ventes totales pour chaque pays.
Vous pouvez également afficher le pourcentage de chaque pays par rapport au total général des ventes.
Procédure
1. Cliquez avec le bouton droit de la souris dans le SAP Crystal Reports Designer incorporé pour accéder au menu contextuel.
2. Pointez sur
Insérer
et cliquez sur
Résumé
.
3. Dans la boîte de dialogue
Insérer un résumé
, sélectionnez le champ dont vous voulez calculer la somme.
4. Sélectionnez
somme
dans la deuxième liste déroulante.
694
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Remarque
L'opération de calcul "somme" n'apparaît dans la liste que lorsqu'un champ contenant des données numériques est affiché dans la deuxième liste déroulante.
5. Sélectionnez l'emplacement du résumé.
Remarque
Celui-ci ne peut pas correspondre à
Total général (pied de page du rapport)
lorsque vous calculez un pourcentage.
6. Activez la case à cocher
Afficher sous forme de pourcentage de
.
7. Dans la liste
Afficher sous forme de pourcentage de
, sélectionnez le groupe sur lequel vous voulez que le pourcentage soit basé.
Vous pouvez choisir d'afficher le pourcentage d'un groupe au sein d'un autre groupe ou d'afficher un pourcentage du total général.
8. Cliquez sur
OK
.
Le champ de pourcentage de résumé est ajouté à votre rapport.
Informations associées
Regroupement des données [page 682]
Amélioration de la présentation des rapports [page 730]
1.7.1.2.5.3.3 Création des totaux cumulés
Les champs de total cumulé, bien que similaires aux champs de résumé, offrent plus de contrôle sur la façon dont le total est calculé et sur le moment où il est réinitialisé. Les champs de total cumulé sont particulièrement bien adaptés pour exécuter les fonctions de totalisation suivantes :
● Afficher les valeurs d'un total calculé enregistrement par enregistrement.
● Calculer le total d'une valeur indépendante des groupes du rapport.
● Calculer le total d'une valeur avec des conditions.
● Calculer le total d'une valeur après application d'une formule de sélection de groupes.
Il est possible d'utiliser un champ de total cumulé sur des champs de base de données et des formules de première exécution, mais pas sur des formules de deuxième exécution, ni sur des formules qui font référence à d'autres formules de deuxième exécution.
1.7.1.2.5.3.4 Positionnement des champs de total cumulé
Le calcul d'un champ de total cumulé est déterminé par les paramètres sélectionnés dans l'Expert Total cumulé.
Cependant, le positionnement du total cumulé affecte la valeur réelle qui apparaît dans le rapport. Par exemple, si
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
695
vous placez un total cumulé qui évalue chaque enregistrement et ne se réinitialise jamais (un total général) dans la section En-tête de rapport, seule la valeur du premier enregistrement apparaîtra. En plaçant le même total cumulé dans la section Pied de page du rapport, vous obtiendrez la valeur voulue. Le total cumulé est calculé correctement dans les deux cas, mais il est affiché trop tôt dans le premier cas.
La liste suivante répertorie les sections du rapport et les enregistrements utilisés par le total cumulé.
Table 20 :
Section de rapport
En-tête du rapport
En-tête de page
En-tête de groupe
Détails
Pied de page de groupe
Pied de page
Pied de page du rapport
Total cumulé calculé pour
Premier enregistrement dans le rapport.
Tous les enregistrements jusqu'au premier enregistrement de la page en cours (cet enregistrement compris).
Tous les enregistrements jusqu'au premier enregistrement du groupe en cours (cet enregistrement compris)
Tous les enregistrements jusqu'à l'enregistrement en cours
(cet enregistrement compris).
Tous les enregistrements jusqu'au dernier enregistrement du groupe en cours (cet enregistrement compris).
Tous les enregistrements jusqu'au dernier enregistrement de la page en cours (cet enregistrement compris).
Tous les enregistrements du rapport.
Informations associées
Création des totaux cumulés dans une liste [page 696]
Création des totaux cumulés pour un groupe [page 697]
Création des totaux cumulés conditionnels [page 698]
1.7.1.2.5.3.5 Création des totaux cumulés dans une liste
Les totaux cumulés sont des totaux qui sont généralement affichés enregistrement par enregistrement. Ils additionnent tous les enregistrements (dans le rapport, le groupe, etc.) jusqu'à l'enregistrement courant inclus. La forme la plus courante est le total cumulé simple géré par l'intermédiaire d'une liste.
Vous créez des champs de total cumulé à l'aide de l'Expert Total cumulé, qui vous permet de sélectionner le champ à résumer, l'opération de résumé à utiliser, une condition sur laquelle baser l'évaluation et une condition sur laquelle réinitialiser l'évaluation.
Remarque
Il est possible d'utiliser un champ de total cumulé sur des champs de base de données et des formules de première exécution, mais pas sur des formules de deuxième exécution, ni sur des formules qui font référence à d'autres formules de deuxième exécution. Voir
Modèle de traitement des rapports [page 637] .
696
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.7.1.2.5.3.5.1 Pour créer des totaux cumulés dans une liste
Procédure
1. Dans l'Explorateur de champs, cliquez avec le bouton droit de la souris sur
Champs de total cumulé
, puis cliquez sur
Nouveau
.
Conseil
Pour afficher l'Explorateur de champs, cliquez sur le menu
Crystal Reports
, puis cliquez sur
Explorateur de champs
.
2. Dans la boîte de dialogue
Créer un champ de total cumulé
, saisissez un nom pour l'objet total cumulé dans le champ
Nom du total cumulé
.
3. Dans la zone Tables et champs disponibles, sélectionnez le champ que vous voulez résumer.
4. Cliquez sur le premier bouton fléché pour ajouter le champ à la zone
Champ à résumer
.
5. Dans la section
Evaluer
de la boîte de dialogue, choisissez le moment où vous voulez que le total cumulé s'exécute.
Pour un total cumulé dans une liste, cliquez sur "Au changement de champ".
6. Dans la zone
Tables et champs disponibles
, sélectionnez votre champ "au changement de".
7. Cliquez sur le deuxième bouton fléché pour ajouter le champ à la zone
Au changement de champ
.
8. Dans la section
Réinitialiser
de la boîte de dialogue, cliquez sur l'option
Jamais
.
Vous obtenez ainsi un total cumulé qui ne se réinitialise jamais, c'est-à-dire que le total cumulé continue jusqu'à la fin du rapport et fournit un total général.
9. Cliquez sur
OK
pour enregistrer le champ de total cumulé.
Votre total cumulé apparaît maintenant dans l'Explorateur de champs, sous Champs de total cumulé.
10. Faites glisser votre champ de total cumulé dans la section
Détails
du rapport.
Remarque
Un total cumulé qui est placé dans un rapport est indiqué par le préfixe # (par exemple, #Total1).
Informations associées
Positionnement des champs de total cumulé [page 695]
Création des totaux cumulés [page 695]
1.7.1.2.5.3.6 Création des totaux cumulés pour un groupe
Les totaux cumulés sont généralement utilisés pour compter les éléments d'un groupe. Le total cumulé démarre au premier élément du groupe et se termine avec le dernier. Ensuite, il recommence à nouveau pour le groupe suivant, et ainsi de suite.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
697
Pour pouvoir créer un total cumulé pour un groupe, vous devez avoir des données groupées. Pour regrouper des données, voir
Regroupement des données [page 682]
.
1.7.1.2.5.3.6.1 Pour créer un total cumulé pour un groupe
Procédure
1. Dans l'Explorateur de champs, cliquez avec le bouton droit de la souris sur
Champs de total cumulé
, puis cliquez sur
Nouveau
.
Conseil
Pour afficher l'Explorateur de champs, cliquez sur le menu
Crystal Reports
, puis cliquez sur
Explorateur de champs
.
2. Dans la boîte de dialogue Créer un champ de total cumulé, saisissez un nom pour l'objet total cumulé dans le champ
Nom du total cumulé
.
3. Dans la zone
Tables et champs disponibles
, sélectionnez le champ que vous voulez résumer.
4. Cliquez sur le premier bouton fléché pour ajouter le champ à la zone
Champ à résumer
.
5. Dans la section
Evaluer
de la boîte de dialogue, cliquez sur l'option
Pour chaque enregistrement
.
6. Dans la section
Réinitialiser
de la boîte de dialogue, cliquez sur l'option
Au changement du groupe
et acceptez le nom de groupe par défaut.
7. Cliquez sur
OK
pour enregistrer le champ de total cumulé.
Votre total cumulé apparaît maintenant dans l'Explorateur de champs, sous Champs de total cumulé.
8. Faites glisser le champ de total cumulé dans la section
Détails
du rapport ou, si vous voulez afficher un total général de chaque groupe, faites glisser le champ de total cumulé dans la section
Pied de page de groupe
.
Remarque
Un total cumulé qui est placé dans un rapport est indiqué par le préfixe # (par exemple, #Total1).
Informations associées
Positionnement des champs de total cumulé [page 695]
Création des totaux cumulés [page 695]
1.7.1.2.5.3.7 Création des totaux cumulés conditionnels
Il peut arriver que vous ayez à calculer la somme d'un certain nombre de valeurs ne formant pas un groupe.
Supposons que :
698
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
● Vous avez une liste qui contient des clients canadiens et américains.
● Vous voulez que les enregistrements client soient triés dans l'ordre alphabétique selon le nom du client.
● Vous ne voulez pas répartir les données en groupes en fonction du pays.
● Vous voulez le total des valeurs des enregistrements canadiens uniquement.
● Vous voulez également le total des valeurs des enregistrements américains uniquement.
Pour ce faire, créez deux totaux cumulés : un pour suivre les enregistrements des E.-U. et un pour suivre les enregistrements canadiens.
●
E.-U.Total
Gère le total cumulé des enregistrements américains.
●
CanadaTotal
Gère le total cumulé des enregistrements canadiens.
1.7.1.2.5.3.7.1 Pour créer un total cumulé conditionnel
Procédure
1. Dans l'Explorateur de champs, cliquez avec le bouton droit de la souris sur
Champs de total cumulé
, puis cliquez sur
Nouveau
.
Conseil
Pour afficher l'Explorateur de champs, cliquez sur le menu
Crystal Reports
, puis cliquez sur
Explorateur de champs
.
2. Dans la boîte de dialogue Créer un champ de total cumulé, saisissez un nom pour l'objet total cumulé dans le champ
Nom du total cumulé
.
3. Dans la zone
Tables et champs disponibles
, sélectionnez le premier champ que vous voulez résumer.
4. Cliquez sur le premier bouton fléché pour ajouter le champ à la zone
Champ à résumer
.
5. Dans la liste
Type de résumé
, cliquez sur
somme
.
6. Dans la section
Evaluer
de la boîte de dialogue, cliquez sur
Utiliser une formule
, puis sur le bouton
Formule
(intitulé
x+2
).
7. Dans la boîte de dialogue Formule de condition de total cumulé, saisissez la formule dans la zone de formule.
Par exemple, si vous utilisez la syntaxe Crystal pour créer un total cumulé des ventes américaines, vous devez saisir :
{Clients.Pays} = "E.-U."
Si vous utilisez la syntaxe Basic, vous devez saisir :
Formula = {Clients.Pays} = "E.-U."
Cela indique au programme qu'il doit évaluer le total cumulé chaque fois qu'il arrive à un enregistrement où
{Clients.PAYS} est égal à "E.-U.". Le total cumulé ignorera tous les autres enregistrements.
8. Cliquez sur le bouton
Enregistrer et fermer
.
9. Dans la section
Réinitialiser
de la boîte de dialogue Créer un champ de total cumulé, cliquez sur
Jamais
.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
699
10. Cliquez sur
OK
pour enregistrer le champ de total cumulé.
11. Créez un autre total cumulé en répétant les étapes ci-dessus. La seule différence sera la valeur de la formule.
12. Retournez dans l'Explorateur de champs et recherchez vos Champs de total cumulé.
13. Faites glisser vos champs de total cumulé dans la section
Détails
du rapport ou, si vous voulez afficher un total général, faites-les glisser dans la section
Pied de page du rapport
de votre rapport.
Remarque
Un total cumulé qui est placé dans un rapport est indiqué par le préfixe # (par exemple, #Total1).
Informations associées
Positionnement des champs de total cumulé [page 695]
Création des totaux cumulés [page 695]
1.7.1.2.6 Exécution des calculs dans un rapport
Dans de nombreux cas, les données nécessaires pour un rapport existent déjà dans les champs d'une base de données. Toutefois, il est parfois nécessaire d'ajouter à un rapport des données qui ne se trouvent pas dans les champs de données. Lorsque ce cas se présente, il est nécessaire de créer une formule.
1.7.1.2.6.1 Présentation générale des formules
Explique comment créer des formules et les intégrer dans les rapports.
Il existe différents types de formules dans SAP Crystal Reports : les formules de rapport, de mise en forme conditionnelle, de sélection, de recherche, et la condition de total cumulé. La majorité des formules sont des formules de rapport et des formules de mise en forme conditionnelle.
Formules de rapport
Les formules de rapport sont des formules que vous créez et qui sont indépendantes dans un rapport. Par exemple, une formule calculant le nombre de jours entre la date de commande et la date d'expédition constitue une formule de rapport.
700
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Formules de mise en forme conditionnelle
Les formules de mise en forme modifient la disposition et la conception d'un rapport, ainsi que l'apparence du texte, des champs de base de données, des objets ou de sections de rapport entières. La mise en forme du texte est effectuée au moyen de l'Editeur de mise en forme. Si vous devez créer une formule de mise en forme, utilisez l'Editeur de formules dans l'Editeur de mise en forme.
Formules de sélection
Les formules de sélection spécifient et limitent les enregistrements et les groupes apparaissant dans un rapport.
Ces formules ne sont habituellement pas entrées directement. Au lieu de cela, la sélection est spécifiée au moyen de l'Expert Sélection. SAP Crystal Reports génère alors les formules de sélection d'enregistrements et de groupe.
Vous pouvez également modifier manuellement ces formules, mais vous devez utiliser la syntaxe Crystal.
Formules de recherche
Les formules de recherche vous aident à rechercher les données dans un rapport. Comme les formules de sélection, vous n'entrez normalement pas ces formules directement, mais vous spécifiez les critères de recherche
à l'aide de l'Expert Recherche. SAP Crystal Reports génère la formule. Vous pouvez également modifier manuellement ces formules, mais vous devez utiliser la syntaxe Crystal.
Si vous connaissez déjà la syntaxe Basic, vous n'aurez besoin que d'un minimum de connaissance de la syntaxe
Crystal pour pouvoir modifier la plupart des formules de recherche et de sélection.
Formules de condition de total cumulé
Les formules de condition de total cumulé vous permettent de définir la condition selon laquelle le total cumulé sera évalué ou réinitialisé. Pour en savoir plus, voir
Création des totaux cumulés conditionnels [page 698] .
Informations associées
Insertion des formules [page 702]
Tutoriel : Filtrage des données à l'aide des formules de sélection [page 282]
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
701
1.7.1.2.6.1.1 Insertion des formules
Lors de la création de formules, vous pouvez utiliser la syntaxe Crystal ou la syntaxe Basic. Presque toutes les formules écrites avec une syntaxe peuvent l'être avec l'autre syntaxe. Les rapports peuvent contenir des formules utilisant la syntaxe Basic ou la syntaxe Crystal.
Informations associées
Tutoriel : Filtrage des données à l'aide des formules de sélection [page 282]
1.7.1.2.6.1.1.1
Procédure
Pour insérer une formule dans un rapport
1. Dans l'Explorateur de champs, cliquez avec le bouton droit de la souris sur
Champs de formule
, puis cliquez sur
Nouveau
.
Conseil
Pour afficher l'Explorateur de champs, cliquez sur le menu
Crystal Reports
, puis cliquez sur
Explorateur de champs
.
2. Dans la boîte de dialogue Nom de la formule, saisissez un nom pour votre formule.
3. Cliquez sur
Utiliser l'éditeur
.
4. Dans la boîte de dialogue Editeur de formule, choisissez
Syntaxe Crystal
ou
Syntaxe Basic
.
5. Saisissez la formule en saisissant du texte et en sélectionnant des composants dans les arborescences de composants.
Conseil
Les arborescences de champs, de fonctions et d'opérateurs situées en haut de l'Editeur de formule contiennent les principaux composants de formule. Cliquez deux fois sur un composant pour l'ajouter à
votre formule. Voir Boîte de dialogue Editeur de formule [page 703] .
6. Cliquez sur le bouton
Vérifier
pour identifier les éventuelles erreurs de la formule.
7. Corrigez les éventuelles erreurs syntaxiques identifiées par le
Vérificateur de formule
.
8. Lorsque la syntaxe de la formule est correcte, cliquez sur le bouton
Enregistrer et fermer
.
Votre formule apparaît maintenant dans l'Explorateur de champs, sous Champs de formule.
9. Faites glisser la formule pour la placer à l'endroit où vous voulez qu'elle apparaisse dans votre rapport.
702
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Remarque
Une formule qui est placée dans un rapport est indiquée par le préfixe @ (par exemple @ProcessTime).
1.7.1.2.6.1.2 Boîte de dialogue Editeur de formule
En dehors des formules de sélection et de recherche, que vous pouvez définir en utilisant l'Expert Sélection et l'Expert Recherche, toutes les formules sont créées dans l'Editeur de formule de SAP Crystal Reports.
Accès à l'Editeur de formule
1. Dans l'Explorateur de champs, cliquez avec le bouton droit de la souris sur
Champs de formule
, puis cliquez sur
Nouveau
.
Conseil
Pour afficher l'Explorateur de champs, cliquez sur le menu
Crystal Reports
, puis cliquez sur
Explorateur de champs
.
2. Dans la boîte de dialogue Nom de la formule, saisissez le nom devant identifier la formule.
3. Cliquez sur
Utiliser l'éditeur
.
L'éditeur de formule apparaît.
Sections de l'Editeur de formule
L'Editeur de formule contient quatre fenêtres principales.
Fenêtre
Champs du rapport
Fonctions
Opérateurs
Description du contenu
Les champs du rapport comprennent tous les champs de base de données accessibles pour votre rapport. Ils incluent
également tous les groupes et formules déjà créés pour le rapport.
Les fonctions sont des procédures intégrées qui renvoient des valeurs. Elles permettent d'effectuer des calculs comme la moyenne, la somme, le comptage, le sinus, la suppression de blancs ou la mise en majuscules.
Les opérateurs sont en quelque sorte les "verbes" des formules. Ils décrivent une action ou une opération devant
être effectuée avec deux valeurs ou plus.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
703
Fenêtre
Fenêtre de texte de formule
Description du contenu
Exemples d'opérateurs : addition, soustraction, inférieur à et supérieur à.
Zone dans laquelle vous créez une formule.
Options syntaxiques
L'angle supérieur droit de l'Editeur de formule contient une liste déroulante dans laquelle vous pouvez choisir entre la syntaxe Crystal et la syntaxe Basic pour la formule que vous créez.
Le passage de la syntaxe Crystal à la syntaxe Basic, ou vice versa, entraînera la modification de la liste de fonctions dans la fenêtre Fonctions et de la liste des opérateurs dans la fenêtre Opérateurs. Les fonctions et les opérateurs sont différents d'une syntaxe à l'autre.
Les champs disponibles pour le rapport restent inchangés, puisque ceux-ci sont disponibles pour les deux syntaxes.
Saisie des composants de formule
Les arborescences de champs de rapport, de fonctions et d'opérateurs situées en haut de l'Editeur de formule contiennent les principaux composants de formule. Cliquez deux fois sur un composant pour l'ajouter à votre formule.
Informations associées
Personnalisation des formules de sélection d'enregistrements [page 671]
Tutoriel : Filtrage des données à l'aide des formules de sélection [page 282]
1.7.1.2.6.2 Fonctions personnalisées
Explique comment créer des fonctions personnalisées auxquelles vous pourrez faire référence dans des formules.
Les fonctions personnalisées sont des procédures que vous créez dans SAP Crystal Reports pour évaluer, calculer ou transformer des données. Lorsque vous utilisez une fonction personnalisée dans une formule, le programme exécute toutes les opérations incluses dans sa définition, sans qu'il soit nécessaire de les spécifier individuellement dans la formule proprement dite.
704
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Remarque
Vous ne pouvez pas insérer une fonction personnalisée directement dans un rapport ; vous devez l'utiliser dans une formule.
Informations associées
Avantages des fonctions personnalisées [page 705]
Fonctionnement des fonctions personnalisées [page 705]
Création des fonctions personnalisées [page 706]
Syntaxe Basic des fonctions personnalisées [page 708]
Syntaxe Crystal des fonctions personnalisées [page 710]
1.7.1.2.6.2.1 Avantages des fonctions personnalisées
Pour déterminer si vous allez utiliser une fonction personnalisée, examinez les avantages de ces fonctions :
● Les fonctions personnalisées peuvent remplacer des sections de logique de formule communes à de nombreuses formules différentes.
● Il est possible de convertir une formule existante en fonction personnalisée à l'aide de la
Extraire une fonction personnalisée d'une formule [page 883]
.
● Les fonctions personnalisées peuvent utiliser des arguments, d'où une grande souplesse d'emploi.
● Vous pouvez définir un texte d'aide et des valeurs d'argument par défaut pour vos fonctions personnalisées en vue de faciliter leur utilisation.
● A la différence des bibliothèques de fonctions utilisateur (UFL - User Function Libraries) auxquelles elles sont reliées, les fonctions personnalisées sont enregistrées dans le fichier de rapport (.rpt) et ne sont soumises à aucune dépendance externe.
● Les fonctions personnalisées sont sans statut : la même entrée produit toujours le même résultat.
1.7.1.2.6.2.2 Fonctionnement des fonctions personnalisées
Vous pouvez utiliser les fonctions personnalisées de différentes manières dans SAP Crystal Reports ; l'explication qui suit vise uniquement à vous familiariser avec leur manipulation.
Informations associées
Création des fonctions personnalisées [page 706]
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
705
1.7.1.2.6.2.2.1 Pour ajouter une fonction personnalisée à un rapport
Procédure
2. Créer une fonction personnalisée directement dans l'Editeur de fonction personnalisée.
1.7.1.2.6.2.2.2 Pour inclure une fonction personnalisée dans une formule de rapport
Procédure
1. Saisir la fonction personnalisée directement comme partie intégrante de la logique de la formule dans l'Editeur de formule.
2. Choisir une fonction personnalisée comme logique de formule dans la
1.7.1.2.6.2.3 Création des fonctions personnalisées
Lorsque vous créez une nouvelle fonction personnalisée, vous pouvez taper sa logique directement dans l'Editeur de fonction personnalisée ou l'extraire d'une formule qui existe déjà dans un rapport.
1.7.1.2.6.2.3.1 Utilisation de l'Editeur de fonction personnalisée
Procédure
1. Dans l'Atelier de formules, cliquez sur
Nouvelle
, puis sélectionnez
Fonction personnalisée
dans la liste.
2. Saisissez nom de votre fonction personnalisée dans la boîte de dialogue
Nom de la fonction personnalisée
.
3. Cliquez sur
Utiliser l'éditeur
.
4. Définissez votre fonction personnalisée dans l'Editeur de fonction personnalisée.
Vous utilisez l'Editeur de fonction personnalisée comme vous utiliseriez l'Editeur de formule pour créer une formule dans un rapport. Pour en savoir plus sur l'utilisation de l'Editeur de formules, voir
. Pour en savoir plus sur la syntaxe à utiliser pour écrire une fonction personnalisée, voir
Syntaxe Basic des fonctions personnalisées [page 708] ou
Syntaxe Crystal des fonctions personnalisées [page 710] .
706
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Conseil
La combinaison de touches Ctrl+Espace permet d'afficher la liste des fonctions disponibles. Si vous avez commencé à taper votre syntaxe, la liste des mots clés correspondant à la saisie déjà effectuée s'affiche.
5. Vérifiez et enregistrez votre fonction personnalisée.
Résultats
Une fois qu'une fonction personnalisée est enregistrée, vous pouvez la modifier ou l'utiliser à votre guise dans les formules que vous ajoutez à vos rapports.
1.7.1.2.6.2.3.2 Utilisation de la boîte de dialogue Extraire une fonction personnalisée d'une formule
Contexte
L'extraction d'une fonction personnalisée à partir d'une formule existante consiste à copier la formule et à remplacer ses champs par des arguments. Une fonction personnalisée créée à l'aide de l'extracteur ne peut renvoyer que des types simples, tels que des chaînes et des nombres entiers. Elle ne peut pas renvoyer des tableaux. Pour créer une fonction personnalisée qui renvoie des tableaux, utilisez l'Editeur de fonction personnalisée. Pour en savoir plus sur les types de données renvoyées par les fonctions personnalisées et les règles de syntaxe associées, voir
Syntaxe Basic des fonctions personnalisées [page 708]
ou
Syntaxe Crystal des fonctions personnalisées [page 710] .
Procédure
1. Dans l'
Atelier de formules
, cliquez sur
Nouvelle
, puis sélectionnez
Fonction personnalisée
dans la liste.
2. Saisissez nom de votre fonction personnalisée dans la boîte de dialogue
Nom de la fonction personnalisée
.
3. Cliquez sur
Utiliser l'extracteur
.
4. Dans la liste
Formule
sélectionnez la formule dont vous souhaitez utiliser la logique dans votre fonction personnalisée.
Conseil
Vous aurez probablement envie de créer des noms évocateurs pour les arguments de votre fonction personnalisée. Par défaut, le programme leur affecte des noms génériques (v1, v2, v3, etc.).
Une fois que vous avez sélectionné une formule, les champs Type de renvoi, Arguments et Texte de la formule sont renseignés en conséquence. Vous ne pouvez pas modifier ces champs sans sélectionner une formule
.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
707
5. Cliquez sur
OK
pour enregistrer la fonction personnalisée sous le nœud Fonctions personnalisées du rapport de l'Atelier de formules.
Résultats
Une fois qu'une fonction personnalisée est extraite et enregistrée, vous pouvez la modifier ou l'utiliser à votre guise dans les formules que vous ajoutez à vos rapports.
Remarque
Vous ne pouvez pas ajouter de nouveaux arguments à une fonction personnalisée pendant sa création dans la boîte de dialogue Extraire une fonction personnalisée d'une formule. Pour ajouter des arguments, enregistrez la fonction personnalisée et modifiez-la dans l'Editeur de fonction personnalisée.
1.7.1.2.6.2.4 Syntaxe Basic des fonctions personnalisées
La syntaxe Basic des fonctions personnalisées est très semblable à celle des fonctions Visual Basic.
Nom_de_fonction [(listeArg)] [ As type]
[instructions]
[nom=expression]
[Exit Function]
...
End Function nom type
Obligatoire. Il s'agit du nom de la fonction. Ce nom doit être identique à celui affecté à la fonction lors de sa création. Il ne peut pas commencer par un chiffre, ni contenir des espaces ou des signes de ponctuation (sauf le caractère de soulignement). D'autre part, il ne peut pas être identique à un mot clé, que ce soit dans la syntaxe Basic ou Crystal.
Facultatif. Représente le type de données de la valeur renvoyée par la fonction. Il peut s'agir d'un type SAP Crystal Reports simple (Nombre, Devise, Chaîne, Booléen, Date, Heure ou Date/heure) ou d'une plage (plage de nombres, plage de devises, plage de chaînes, plage de dates, plage d'heures ou plage de valeurs de type date/heure). Si le type de la valeur de retour n'est pas spécifié, il est déduit du type de l'expression affectée à nom (saisie implicite).
Remarque
Si vous souhaitez une valeur de retour de type tableau, vous devez utiliser la saisie implicite dans la mesure où il n'existe pas de notation explicite à cet effet.
708
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
expression Affectez à nom une expression qui spécifie la valeur renvoyée par la fonction. Si le type de valeur est précisé, cela est facultatif ; dans le cas contraire, vous devez obligatoirement l'indiquer pour permettre à SAP Crystal Reports de savoir le type de retour de la fonction via la saisie implicite.
L'instruction
Exit Function
force SAP Crystal Reports à quitter immédiatement la fonction. Vous pouvez utiliser cette instruction autant de fois que vous le souhaitez et n'importe où dans le corps de la fonction.
Remarque
Les seules instructions qui peuvent figurer avant le début de la fonction ou après la fin de la déclaration de la fonction sont les commentaires (précédés d'une apostrophe ou du mot clé Rem).
Syntaxe de listeArg
[Facultatif] nomVar [()] As typeVar [= valeurDéfaut]
● Facultatif
Facultatif. Indique que l'argument peut être omis lorsque la fonction personnalisée est appelée. Si un argument est facultatif, tous les arguments suivants doivent être également facultatifs. Si vous fournissez une valeur pour un argument facultatif, vous devez spécifier tous les arguments précédents.
● nomVar
Obligatoire. Spécifie le nom de la variable qui représente l'argument.
● ()
Facultatif. S'il est spécifié, cet argument indique que l'argument est une variable de type tableau.
● typeVar
Obligatoire. Indique le type de données de la variable représentant l'argument. Il peut s'agir de l'un des sept types simples ou des six types de plages mentionnés ci-dessus dans la description de listeArg. Si les parenthèses sont indiquées, le type de valeur est un tableau dont les éléments sont de type typeVar.
● = valeurDéfaut
Obligatoire pour les arguments facultatifs. valeurDéfaut est une constante ou une expression constante, c'est-à-dire une expression qui ne contient pas de variables et peut être simplifiée en valeur constante au moment de la compilation. Si aucun argument facultatif n'est spécifié et que la fonction est appelée, c'est la valeur par défaut de cet argument qui est utilisée.
Remarque
Contrairement à ce qui se passe en Visual Basic, si un argument est facultatif, vous devez fournir une valeur par défaut.
Arguments passés par valeur
Tous les arguments sont passés par valeur. En Visual Basic, les arguments sont passés soit par valeur ou par référence ; par défaut, ils sont passés par référence. Toutefois, les fonctions personnalisées ne prennent pas en charge les arguments de référence.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
709
1.7.1.2.6.2.5 Syntaxe Crystal des fonctions personnalisées
Les fonctions personnalisées de syntaxe Crystal sont orientées expression, comme les formules de syntaxe
Crystal. Vous pouvez utiliser n'importe lequel des formats de syntaxe illustrés ci-dessous.
Fonction
([listeArg]) expressions
Fonction
([listeArg])
( expressions
)
Syntaxe de listeArg
Facultatif. Liste de variables représentant les arguments passés dans la fonction lorsque cette dernière est appelée. Si plusieurs variables sont mentionnées, elles doivent être séparées par une virgule. L'argument listeArg peut être vide ; toutefois, les parenthèses ne sont pas facultatives et doivent être utilisées même si listeArg est vide.
[
Facultatif
] typeSimple [
Plage
] [
Tableau
] nomVar [:=valeurDéfaut]
● Facultatif
Facultatif. Indique si l'argument peut être omis lorsque la fonction personnalisée est appelée. Si un argument est facultatif, tous les arguments suivants doivent être également facultatifs. Si vous fournissez une valeur pour un argument facultatif lorsque vous appelez la fonction, vous devez fournir des valeurs pour tous les arguments précédents.
● typeSimple
Obligatoire. Vous pouvez utiliser les types suivants :
○ NumberVar
○ CurrencyVar
○ StringVar
○ BooleanVar
○ DateVar
○ TimeVar
○ DateTimeVar
● Plage
Facultatif. Indique si l'argument est une variable de type plage de valeurs.
Remarque vous ne pouvez pas utiliser des plages booléennes.
● Tableau
Facultatif. Indique si l'argument est une variable de type tableau.
● nomVar
710
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Obligatoire. Nom de la variable qui représente l'argument.
● :=valeurParDéfaut
Obligatoire pour les arguments facultatifs. valeurDéfaut est une constante ou une expression constante, c'est-à-dire une expression qui ne contient pas de variables et peut être simplifiée en valeur constante au moment de la compilation. Si un argument facultatif est omis lors de l'appel d'une fonction personnalisée, la valeur par défaut de cet argument est utilisée.
● expressions
Obligatoire. La valeur renvoyée par la fonction personnalisée écrite à l'aide de la syntaxe Crystal est la valeur de la dernière expression évaluée dans la séquence. La syntaxe est identique à celle des formules de syntaxe
Crystal.
Etendue
Les variables déclarées dans le cadre d'une fonction personnalisée ont par défaut une étendue locale. Dans les formules de syntaxe Crystal, au contraire, les déclarations de variables ont par défaut une étendue globale.
1.7.1.2.6.2.6 Règles de syntaxe des fonctions personnalisées
Dans la mesure où les fonctions personnalisées sont par nature indépendantes, elles sont soumises à certaines contraintes :
● Vous ne pouvez pas utiliser dans une fonction personnalisée des champs provenant d'un rapport ou d'une base de données (y compris des champs de résumé).
● Vous ne pouvez pas utiliser dans une fonction personnalisée des variables partagées ou globales. En revanche, vous pouvez passer une variable globale ou partagée en tant qu'argument lorsque vous appelez une fonction personnalisée à partir d'une formule.
● Vous ne pouvez pas utiliser la récurrence (directe ou indirecte) dans une fonction personnalisée.
● Vous ne pouvez pas utiliser directement des bibliothèques de fonctions utilisateur (UFL) dans une fonction personnalisée.
● Vous ne pouvez pas appeler des fonctions de moment d'évaluation, de statut de l'impression ou de propriétés de document. Par ailleurs, vous ne pouvez pas utiliser les fonctions Rnd, CurrentFieldValue, DefaultAttribute et GridRowColumnValue.
Ces restrictions visent à préserver l'indépendance des fonctions personnalisées par rapport au rapport dans lequel elles sont utilisées.
Variables
Vous pouvez utiliser dans les fonctions personnalisées des variables locales et des variables d'argument. Si vous devez utiliser une variable partagée ou globale dans une fonction personnalisée, vous pouvez la passer en tant qu'argument.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
711
1.7.1.2.6.2.7 Evaluation des fonctions personnalisées
Les formules ne sont pas évaluées "à la demande" ou appelées (autrement dit, une formule donnée ne peut pas appeler une autre formule pour effectuer un traitement particulier, même par le biais de variables globales).
Rem Formula PrintSquare
Global x As Number x = 5 formula = "Le carré de " & CStr(x,0) & " est " & ToText ({@carré},0) & "."
Rem Formula Square
Global x As Number formula = x * x
En utilisant la formule ImprimerCarré dans un rapport, vous obtenez :
Le carré de 5 est 0.
Dans cet exemple, la formule ImprimerCarré utilise la formule Carré ; SAP Crystal Reports doit donc ordonner l'évaluation des deux formules. La formule Carré est évaluée avant la formule ImprimerCarré. Lorsque la formule
Carré est évaluée, la valeur de la variable globale x est 0 car elle représente une variable numérique non initialisée.
Les fonctions personnalisées sont au contraire évaluées à la demande ou appelées. Utilisons une fonction personnalisée dans l'exemple précédent :
Rem Formula PrintSquare formula = "Le carré de " & CStr (5,0) & " est " &
CStr(cf9Square (5),0) + "."
Rem Custom Function cf9Square
Function cf9Square (x As Number) cf9Square = x * x
End Function
Si vous utilisez la formule ImprimerCarré dans votre rapport, vous obtenez :
Le carré de 5 est 25.
1.7.1.2.6.3 Expressions SQL
Explique quand utiliser des expressions SQL dans des rapports.
Les expressions SQL ressemblent à des formules, mais elles sont écrites en SQL (Structured Query Language).
Les expressions SQL permettent d'extraire de la base de données des ensembles de données spécifiques. Il est possible de trier, regrouper et sélectionner ces données à partir de champs d'expression SQL.
Les expressions SQL sont utiles dans l'optimisation des performances de rapports parce que les tâches qu'elles exécutent sont normalement effectuées sur le serveur de base de données (par opposition à une formule standard, qui est parfois exécutée sur l'ordinateur local).
N'utilisez pas exclusivement les expressions SQL, car SAP Crystal Reports inclut son propre langage de formule qui est beaucoup plus puissant que le langage SQL standard. Les syntaxes Crystal et Basic vous permettent tous deux d'améliorer et d'affiner vos formules ce qui est difficile voire impossible avec SQL. Dans certaines circonstances, toutefois, la création et l'utilisation de champs d'expression SQL peut accélérer le traitement de vos rapports.
712
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Informations associées
Boîte de dialogue Editeur de formule [page 703]
Optimisation des performances des rapports [page 758]
1.7.1.2.6.3.1 Pour créer un champ d'expression SQL
Procédure
1. Dans l'Explorateur de champs, cliquez avec le bouton droit de la souris sur
Champs d'expression SQL
, puis cliquez sur
Nouveau
.
Remarque
Lorsqu'une source de données SQL/ODBC est utilisée dans la conception d'un rapport, le logiciel ajoute un
Champ d'expression SQL dans l'Explorateur de champs.
2. Saisissez un nom dans la zone Nom, puis cliquez sur
OK
.
L'Editeur d'expression SQL s'affiche. L'Editeur d'expression SQL fonctionne de la même manière que l'Editeur de formule.
3. Saisissez l'expression dans l'Editeur d'expression SQL.
4. Cliquez sur le bouton
Enregistrer et fermer
.
1.7.1.2.7 Mise en forme des données
Outre les modifications apportées à la mise en page et à la conception des rapports, la mise en forme fait
également référence à l'aspect du texte, des objets ou des sections complètes.
Les instructions de mise en forme vous permettent :
● d'attirer l'attention sur des données particulières,
● de donner un aspect professionnel à votre rapport,
● de modifier l'aspect des nombres, dates, expressions booléennes, signes monétaires et textes (chaînes),
Les commandes des menus contextuels permettent de mettre en forme les données. Par exemple :
● Pour mettre en forme un objet, cliquez dessus avec le bouton droit de la souris, puis cliquez sur
Mettre en forme l'objet
.
● Pour mettre en forme un objet diagramme, cliquez sur le diagramme avec le bouton droit de la souris, puis cliquez sur
Expert Diagramme
.
● Pour mettre en forme une section de rapport, cliquez dessus avec le bouton droit de la souris, puis cliquez sur
Expert Section
.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
713
Conseil
Vous pouvez également utiliser la fenêtre
Propriétés
de Visual Studio pour mettre en forme les objets ou les sections.
1.7.1.2.7.1 Mise en forme absolue
Une mise en forme absolue s'applique dans n'importe quelle condition. Ce type de propriété de mise en forme suit toujours une procédure "sélectionner-puis-appliquer". Par exemple, vous sélectionnez l'élément que vous voulez mettre en forme (objet ou section), puis vous appliquez la mise en forme à la sélection à l'aide de paramètres de propriété.
Pour mettre en forme un objet, cliquez sur ce dernier avec le bouton droit de la souris et sélectionnez Mettre en forme ou utilisez la fenêtre Propriétés de Visual Studio.
1.7.1.2.7.1.1 Mise en forme des nombres et des dates
Afin de prendre en charge les règles utilisées dans la profession comptable, SAP Crystal Reports vous laisse prendre les décisions quant à l'affichage des symboles monétaires, des nombres négatifs et des valeurs nulles dans vos rapports financiers. Il vous est même possible d'inverser les signes des montants de crédit et de débit.
Remarque
Vous pouvez choisir parmi plusieurs formats de date à utiliser dans votre rapport, mais si vous envoyez un rapport vers un système japonais, des problèmes de mise en forme peuvent se produire. Tous les formats de date occidentaux ne peuvent être affichés sur un système japonais et vice versa. Par exemple, les mois de format anglais abrégés et les ères japonaises sous forme courte ne peuvent pas être affichés, respectivement, sur un système japonais et sur un système anglais.
1.7.1.2.7.1.1.1 Pour mettre en forme des nombres et des dates
Procédure
1. Cliquez avec le bouton droit de la souris sur le champ monétaire, numérique ou de date et sélectionnez
Mettre en forme l'objet
.
2. Sélectionnez une option de format ou cliquez sur
Personnaliser
pour spécifier un autre format.
714
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.7.1.2.7.1.2 Ajout des bordures, des couleurs et d'un ombrage aux champs
SAP Crystal Reports vous permet de spécifier les bordures, la couleur et l'ombrage des champs de votre rapport, afin d'attirer l'attention sur des informations importantes et de créer un document professionnel.
1.7.1.2.7.1.2.1 Pour ajouter des bordures, des couleurs et un ombrage
Procédure
1. Cliquez avec le bouton droit de la souris sur l'objet et sélectionnez
Mettre en forme l'objet
.
2. Cliquez sur l'onglet Bordure et sélectionnez le style des lignes, leur couleur et la couleur d'arrière-plan du champ.
3. Cliquez sur
OK
pour enregistrer vos modifications.
1.7.1.2.7.1.3 Insertion des formes
Contexte
Lorsque vous mettez en forme des rapports dans SAP Crystal Reports, vous pouvez insérer un certain nombre de formes telles que des cercles, des ellipses, ainsi que des cadres pourvus de coins arrondis, dans votre document.
Procédure
1. Pour ajouter un cadre à votre rapport, cliquez avec le bouton droit de la souris dans le
SAP Crystal Reports Designer incorporé, pointez sur
Insérer
et cliquez sur
Cadre
.
Conseil
Vous pouvez également utiliser la boîte à outils pour sélectionner et déplacer un cadre.
2. Dessinez le cadre à l'endroit voulu avec le pointeur-curseur.
3. Cliquez avec le bouton droit de la souris sur le cadre et sélectionnez
Mettre en forme l'objet
.
4. Cliquez sur l'onglet
Arrondi
.
5. Déplacez le curseur vers la droite pour augmenter la courbure des coins du cadre.
6. Cliquez sur
OK
.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
715
Informations associées
Mise en forme absolue [page 714]
Mise en forme conditionnelle [page 716]
1.7.1.2.7.2 Mise en forme conditionnelle
Une mise en forme conditionnelle s'applique uniquement sous certaines conditions. Il se peut que vous vouliez par exemple :
● imprimer en rouge les comptes clients dont les dates d'échéance sont dépassées,
● imprimer les dates dans l'ordre mois, jour, année pour vos clients Canadiens ;
● faire apparaître une couleur d'arrière-plan sur une ligne sur deux.
Vous spécifiez les mises en forme conditionnelles à l'aide de formules. Lorsque vous définissez une formule de mise en forme conditionnelle, elle remplace toutes les instructions déjà spécifiées dans l'Editeur de mise en forme. Par exemple, si vous sélectionnez l'option Supprimer, puis que vous configurez une formule conditionnelle pour cette option, la propriété ne continuera de s'appliquer que si la condition de la formule est remplie.
Vous pouvez activer ou désactiver des propriétés et des propriétés d'attribut de façon conditionnelle. Cependant, chacun de ces types de propriétés nécessite un type de formule différent.
1.7.1.2.7.2.1 Pour ajouter une mise en forme conditionnelle à un objet
Procédure
1. Cliquez avec le bouton droit de la souris sur l'objet et sélectionnez
Mettre en forme l'objet
.
2. Cliquez sur le bouton
Formule
approprié, situé sur le côté droit de la boîte de dialogue.
3. Dans la boîte de dialogue Editeur de mise en forme, saisissez la formule.
4. Cliquez sur
Enregistrer et fermer
.
○ En cas d'erreur dans la formule, Crystal Reports affiche un message d'erreur lors de la compilation de la formule. Si une erreur est présente dans votre formule, le compilateur des formules affichera les détails de l'erreur.
○ Si aucune erreur n'existe dans votre formule, vous retournez à l'Editeur de mise en forme. Notez que le bouton Formule a été modifié. Ceci indique qu'une formule a été saisie pour cette propriété.
5. Cliquez sur
OK
pour revenir au rapport que vous exploitiez.
716
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.7.1.2.7.2.2 Propriétés conditionnelles de type "activé ou désactivé"
Une propriété conditionnelle de type "activé ou désactivé" effectue un test pour voir si une condition a été remplie.
La propriété est activée si la condition est remplie, ou désactivée si la condition n'est pas remplie. Utilisez dans ce cas des formules booléennes.
Le programme analyse chaque valeur pour savoir si elle satisfait à la condition et renvoie la valeur "oui" ou "non".
La propriété est ensuite appliquée à toute valeur pour laquelle la réponse est "oui".
Exemple
Exemple de syntaxe Crystal condition
Exemple
Exemple de syntaxe Basic formula = condition
Informations associées
Fonctions de mise en forme conditionnelle (syntaxe Basic) [page 783]
Fonctions de mise en forme conditionnelle (syntaxe Crystal) [page 814]
1.7.1.2.7.2.3 Propriétés d'attribut conditionnelles
Une propriété d'attribut conditionnelle effectue un test pour voir quelle condition est remplie parmi deux ou plus.
Le logiciel applique alors la mise en forme correspondante. Par exemple, supposons que vous voulez que les valeurs inférieures au quota soient imprimées en rouge, et que toutes les autres valeurs soient imprimées en noir.
Le logiciel compare les résultats aux objectifs. Si la valeur est inférieure au quota, le programme applique l'attribut rouge ; si la valeur n'est pas inférieure au quota, le programme applique l'attribut noir.
Utilisez une formule If-Then-Else pour ce type de mise en forme conditionnelle.
Exemple de syntaxe Crystal
If Condition A Then
crRed
Else
crBlack
Exemple de syntaxe Basic
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
717
If Condition A Then
formula = crRed
Else
formula = crBlack
End If
Lorsque vous définissez des propriétés d'attributs conditionnelles, le programme en charge certains dans la liste
Fonctions de l'Editeur de formule. Cliquez deux fois sur un de ces attributs pour l'ajouter à une formule. Par exemple, si vous affectez une définition conditionnelle à l'alignement horizontal, la liste Fonctions propose des attributs du type DefaultHorAligned, LeftAligned et Justified. Si vous affectez des définitions conditionnelles aux bordures, cette liste comporte des attributs tels que NoLine, SingleLine, DashedLine, etc.
Remarque
Incluez toujours le mot clé Else dans les formules conditionnelles ; sinon, les valeurs qui ne satisfont pas la condition If peuvent perdre leur format d'origine. Pour que les valeurs conservent leur format d'origine dans ce cas, utilisez la fonction DefaultAttribute.
Exemple de syntaxe Crystal
If Condition A Then
crRed
Else If Condition B Then
crBlack
Else If Condition C Then
crGreen
Else
crBlue
Exemple de syntaxe Basic
If Condition A Then
formula = crRed
ElseIf Condition B Then
formula = crBlack
ElseIf Condition C Then
formula = crGreen
Else
formula = crBlue
End If
Informations associées
Fonctions de mise en forme conditionnelle (syntaxe Basic) [page 783]
Fonctions de mise en forme conditionnelle (syntaxe Crystal) [page 814]
718
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.7.1.2.7.3 Mise en forme de rapports à l'aide de feuilles de style en cascade
Contexte
Au lieu de mettre en forme des objets de rapport ou des sections de rapport dans le SAP Crystal Reports Designer incorporé, vous pouvez utiliser des classes dans une feuille de style en cascade (CSS) pour appliquer des attributs de mise en forme à des rapports visualisés sur le Web.
En général, lorsque vous créez un rapport, vous mettez en forme un objet de rapport particulier (par exemple, un champ de base de données ou un objet texte) dans le SAP Crystal Reports Designer incorporé. Lorsque le rapport est converti au format HTML et visualisé dans un Web Forms Viewer, ces options de mise en forme sont automatiquement converties au format HTML. Pour changer la mise en forme de la page HTML, vous devrez modifier le rapport Crystal lui-même.
L'option Définir la classe CSS permet d'appliquer des classes CSS à des objets de rapport et sections de rapport au lieu de modifier manuellement la mise en forme du rapport. Vous indiquez le nom de la classe et sa portée dans le SAP Crystal Reports Designer incorporé, puis précisez la valeur de la classe dans le fichier .aspx de votre projet ou par le biais d'une feuille de style externe. La feuille de style externe ou les options de mise en forme indiquées dans le fichier .aspx sont ensuite appliquées au rapport lorsque ce dernier est converti au format HTML.
Procédure
1. Cliquez avec le bouton droit de la souris dans le SAP Crystal Reports Designer incorporé et sélectionnez
Définir la classe CSS
.
2. Dans le champ
Portée d'objet
, sélectionnez les objets ou les sections auxquels vous souhaitez appliquer la classe.
3. Saisissez le nom de la classe dans le champ
Nom de la classe CSS
.
Conseil
Utilisez CssClass dans la fenêtre Propriétés pour afficher, modifier ou supprimer les valeurs de classe pour un objet rapport ou une section de rapport spécifique.
4. Cliquez sur
OK
.
5. Enregistrez le rapport.
6. Ouvrez le fichier .aspx dans votre projet.
7. Dans l'onglet HTML du fichier .aspx, référencez une feuille de style externe dans laquelle la classe est déjà définie ou saisissez la valeur de la classe.
<HTML>
<STYLE>
.classname
{
background-color:808080; border-color:000000; color:000000; font-family:Arial; font-weight:bold; font-style:italic; }
<STYLE>
</HTML>
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
719
1.7.1.2.8 Exploration des parties de rapport et personnalisation des liens hypertexte
En général, les contrôles CrystalReportViewer affichent des pages entières de vos rapports Crystal. Toutefois, la classe CrystalReportPartsViewer vous permet de visualiser des objets de rapport spécifiques sans afficher toute la page. Les objets de rapport affichés de cette manière sont appelés des parties de rapport.
La navigation entre parties de rapport (à l'aide du contrôle CrystalReportViewer) se différencie de la navigation classique (entre pages) par le fait qu'elle affiche uniquement les objets identifiés en tant que parties de rapport.
Les outils de navigation classiques permettent d'accéder aux objets identifiés, mais ils affichent la page entière.
1.7.1.2.8.1 Présentation générale des parties de rapport
Les parties de rapport sont les objets de rapport qui s'affichent indépendamment du reste de la page d'un rapport dans un visualiseur. Plus précisément, ce sont des objets qui utilisent des liens hypertexte pour pointer d'un objet de rapport de base vers un objet de destination.
Les parties de rapport fonctionnent avec le sous-ensemble de visualiseurs DHTML des visualiseurs de rapports
SAP Crystal Report, en vue d'étendre les possibilités de navigation au sein des rapports et entre eux. Les liens hypertexte Partie du rapport permettent d'établir un lien avec d'autres objets du rapport ou avec des objets d'un autre rapport. Ce type de lien vous permet de créer un itinéraire guidé à travers vos rapports, qui montre uniquement les informations spécifiques à chaque point d'arrêt de cet itinéraire.
Visualiseur de parties de rapport
Le visualiseur de parties de rapport permet d'afficher des parties de rapport sans le reste de la page du rapport.
Vous pouvez intégrer ce visualiseur dans vos applications Web de sorte que les utilisateurs voient uniquement les objets de rapport spécifiques, sans qu'il soit nécessaire de visualiser le reste du rapport.
Les liens hypertextes des parties de rapport sont définis dans le SAP Crystal Reports Designer incorporé ou par code ; leurs fonctionnalités sont exploitées dans les visualiseurs de rapports.
Différences entre les modes d'affichage des liens hypertexte des différents visualiseurs
Table 21 :
Visualiseurs de page
Un autre objet de rapport :
● Navigue vers les objets de destination et affiche le con tenu de la page entière.
Visualiseur de parties de rapport
Un autre objet de rapport :
● Navigue vers les objets de destination et affiche unique ment ces objets.
720
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Visualiseurs de page
Exploration des parties du rapport :
● Navigue (explore) vers le groupe et affiche le contenu complet de ce dernier.
Visualiseur de parties de rapport
Exploration des parties du rapport :
● Navigue vers les objets de destination et affiche unique ment ces objets.
Exploration par défaut (aucun lien hypertexte) :
● L'exploration de groupe à partir d'un en-tête ou d'un pied de page de groupe, d'un diagramme ou d'une carte per met d'afficher la vue regroupée.
● L'exploration d'un sous-rapport permet d'afficher la vue de sous-rapport.
Exploration par défaut (aucun lien hypertexte) :
● Non disponible.
1.7.1.2.8.2 Présentation générale de la navigation par liens hypertexte
La fonctionnalité de navigation de SAP Crystal Reports vous permet d'atteindre d'autres objets du même rapport ou des objets d'un autre rapport, avec un contexte de données spécifié. Ce type de navigation n'est disponible que dans les visualiseurs DHTML (visualiseurs côté serveur client zéro). Il offre la possibilité de relier directement un objet à un autre ; le contexte de données requis est transféré automatiquement, de sorte que le lien mène à un objet et à des données pertinents.
Les parties de rapport utilisent cette fonctionnalité de navigation lors de la mise en relation entre des objets partie de rapport. La navigation entre les parties de rapport (qui utilise l'Afficheur de parties de rapport) se différencie de la navigation classique (entre les pages) par le fait qu'elle affiche uniquement les objets identifiés en tant que parties de rapport. Les outils de navigation classiques permettent d'accéder aux objets identifiés, mais ils affichent la page entière.
Configuration de la navigation
La navigation (par page ou par partie de rapport) est configurée dans l'onglet Lien hypertexte de la
Boîte de dialogue Editeur de mise en forme [page 886]
.
Dans la zone Visualiseur DHTML uniquement de l'onglet Lien hypertexte, vous pouvez sélectionner l'une des deux options suivantes :
●
Exploration des parties du rapport
L'option Exploration des parties du rapport est disponible pour les champs de résumé, les diagrammes et les cartes de groupe et les champs d'en-tête ou de pied de page de groupe de votre rapport. Cette option s'applique uniquement aux parties du rapport. La navigation classique (visualisation de pages entières) effectue une exploration par défaut. Pour en savoir plus, voir
Navigation entre parties de rapport spécifiques
.
●
Un autre objet de rapport
Vous pouvez utiliser l'option Un autre objet de rapport pour la navigation entre les parties de rapport et entre les pages. Elle vous permet de spécifier les objets de destination vers lesquels vous voulez naviguer et le contexte de données à transférer.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
721
Lorsque vous sélectionnez l'option Exploration des parties du rapport, la zone "Informations sur le lien hypertexte" contient les options suivantes :
●
Champs disponibles
La zone Champs disponibles répertorie, sous la forme d'une arborescence, toutes les sections de votre rapport contenant des objets de rapport que vous pouvez utiliser pour l'exploration des parties du rapport.
Vous sélectionnez des objets dans cette zone et les ajoutez à la zone Champs à afficher.
●
Champs à afficher
La zone Champs à afficher répertorie, sous la forme d'une arborescence, la section et les objets que vous avez sélectionnés pour l'exploration.
.
Lorsque vous sélectionnez l'option Un autre objet de rapport, la zone "Informations sur le lien hypertexte" contient les options suivantes :
●
Coller le lien vers la partie du rapport
Utilisez le bouton Coller le lien pour ajouter des informations détaillées concernant un objet de rapport que vous avez sélectionné et copié au préalable. Les informations collées dépendent en partie de l'option que vous sélectionnez dans la liste associée au bouton.
●
Sélectionner dans
Une fois que vous avez collé les informations de mise en relation, le champ Sélectionner dans contient le chemin d'accès et le nom de fichier du rapport que vous avez sélectionné et à partir duquel vous avez effectué la copie (ce champ est vide lorsqu'il fait référence au rapport actuel). Pour ajouter des informations dans ce champ, vous devez y coller un lien vers la partie de rapport, faute de quoi il est inaccessible.
●
Titre du rapport
Le champ Titre du rapport contient par défaut le titre du rapport spécifié dans le champ Sélectionner dans (il contient le texte <Rapport actuel> lorsqu'il fait référence au rapport actuel). Si aucun titre n'a été défini dans la boîte de dialogue Propriétés du rapport, le champ contient par défaut le nom de fichier du rapport. Pour ajouter des informations dans ce champ, vous devez y coller un lien vers la partie de rapport, faute de quoi il est inaccessible.
●
Nom de l'objet
En ajoutant un ou plusieurs objets à ce champ, vous identifiez les objets de destination pour la navigation.
Lors de la navigation entre les pages, cette information détermine l'objet à atteindre dans la page. Lors de la navigation entre les parties de rapport, cette information détermine les objets affichés par le visualiseur au cours de la navigation (le visualiseur affiche uniquement les objets identifiés).
Vous pouvez sélectionner l'un des types d'objet de rapport suivants dans le champ Nom de l'objet (plusieurs objets de la même section de rapport peuvent être sélectionnés) :
○ objets champ
○ diagrammes ou cartes
○ Bitmaps
○ Tableaux croisés
○ Objets texte
Vous ne pouvez pas sélectionner les types d'objet de rapport suivants en tant que destinations :
○ objets se trouvant dans l'en-tête ou le pied de page
○ lignes ou cadres
○ sous-rapports et objets d'un sous-rapport
○ sections complètes (vous devez sélectionner les objets un par un dans la section)
722
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Vous pouvez ajouter des informations spécifiques de deux façons :
○ en tapant le nom de l'objet tel qu'il apparaît dans l'Explorateur de rapports
○ en copiant des objets se trouvant dans le rapport en cours ou dans un autre rapport et en collant les informations dans le champ de l'objet.
●
Contexte des données
Le programme complète normalement le champ Contexte des données lorsque vous collez les informations des objets de destination. Vous pouvez également personnaliser cette option à l'aide du bouton Formule conditionnelle. Pour en savoir plus, voir
Formats de contexte des données [page 729] .
1.7.1.2.8.2.1 Navigation entre parties de rapport spécifiques
Les parties de rapport utilisent la fonctionnalité de navigation de SAP Crystal Reports. Certains cas spéciaux s'appliquent toutefois uniquement aux parties de rapport :
● Le visualiseur affiche uniquement l'objet identifié comme objet de destination.
● Vous devez utiliser l'option Exploration des parties du rapport pour pouvoir spécifier les objets de destination.
● Vous devez spécifier les paramètres d'origine des parties de chaque rapport représentant le premier point d'arrêt du chemin de navigation des parties de rapport.
1.7.1.2.8.3 Implémentation de l'exploration de parties de rapport
Utilisez l'option Exploration des parties du rapport uniquement pour naviguer entre les objets d'un même rapport.
Si vous voulez naviguer vers d'autres rapports, reportez-vous à la section
Option Un autre objet de rapport [page
.
L'option Exploration des parties du rapport, dans l'onglet Lien hypertexte de l'Editeur de mise en forme, permet de définir un lien hypertexte grâce auquel l'Afficheur de parties de rapport peut émuler la fonctionnalité d'exploration de SAP Crystal Reports. L'Afficheur de parties de rapport affiche uniquement les objets de destination. Pour que l'exploration fonctionne, vous devez donc définir un chemin de navigation à partir d'un objet de base vers un ou plusieurs objets de destination. Lorsque vous avez plusieurs objets de destination, tous doivent résider dans la même section du rapport.
L'option Exploration des parties du rapport n'affecte pas les visualiseurs de page DHTML car elle émule le comportement d'exploration par défaut de SAP Crystal Reports (que les visualiseurs de page prennent toujours en charge). Toutefois, les visualiseurs de pages ne limitent pas l'affichage : ils affichent toujours tous les objets de rapport.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
723
1.7.1.2.8.3.1 Définition de l'objet de base
Contexte
Dans la mesure où l'Afficheur de parties de rapport montre uniquement les objets de destination, vous devez définir des paramètres d'origine des parties du rapport (c'est-à-dire un objet de base par défaut dans le rapport) pour permettre le fonctionnement des liens hypertexte d'exploration des parties de rapport. Les paramètres d'origine des parties du rapport définissent l'objet qui apparaît en premier dans l'Afficheur de parties de rapport. Il s'agit en quelque sorte du point de départ du chemin d'exploration défini par les liens hypertexte.
Procédure
1. Ouvrez le rapport dont vous souhaitez définir l'objet de base par défaut.
2. Cliquez sur l'objet que vous souhaitez définir comme objet de base par défaut et copiez son nom dans le champ Nom de la fenêtre Propriétés (par exemple, Texte1, Champ1, Graphique1, etc.).
3. Cliquez avec le bouton droit de la souris dans le SAP Crystal Reports Designer incorporé, pointez sur Rapport et sélectionnez Options du rapport.
4. Dans la zone
Paramètres d'origine des parties du rapport
de la boîte de dialogue Options du rapport, cliquez sur le bouton
Coller le lien
.
Conseil
Insérez un autre objet de la même section du rapport en saisissant un point-virgule (;) et en tapant le nom de l'objet.
Le nom et le contexte de données de l'objet de rapport que vous avez sélectionné en tant qu'objet de base sont collés dans les champs appropriés.
5. Cliquez sur OK.
1.7.1.2.8.3.2 Définition de l'objet de destination
Prérequis
pour vous familiariser avec les contraintes associées à la création de ce type de lien hypertexte.
Contexte
Pour définir l'objet de destination, vous devez créer un lien hypertexte d'exploration des parties d'un rapport.
724
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Procédure
1. Ouvrez un rapport et cliquez avec le bouton droit de la souris sur l'objet de destination voulu, puis sélectionnez
Mettre en forme
l'objet dans le menu contextuel.
2. Dans l'
Editeur de mise en forme
, cliquez sur l'onglet Lien hypertexte.
3. Dans la zone
Visualiseur DHTML uniquement
, sélectionnez Exploration des parties du rapport.
Remarque
La zone Champs disponibles n'affiche pas les objets de rapport supprimés.
La zone Informations sur le lien hypertexte affiche les champs appropriés à ce type de lien hypertexte.
La zone Champs disponibles affiche uniquement les sections et les objets de rapport pouvant être sélectionnés pour l'exploration. Ces objets englobent généralement les objets champ, les diagrammes, les cartes, les bitmaps, les tableaux croisés et les objets texte contenus dans la section suivante en direction du bas (par exemple les objets du groupe deux lorsque l'objet sélectionné se trouve dans le groupe un).
4. Sélectionnez dans la zone Champs disponibles la section ou les objets de rapport que vous voulez utiliser en tant que destination pour l'exploration.
Conseil
Utilisez la fenêtre Propriétés pour identifier rapidement les noms par défaut affectés aux objets de votre rapport.
5. Utilisez les boutons fléchés pour déplacer la section ou les objets sélectionnés vers la zone Champs à afficher.
Remarque
Pour faciliter l'identification, le programme crée un nœud de section dans la zone Champs à afficher. Ce nœud contient les objets que vous avez sélectionnés dans la zone Champs disponibles.
6. Si vous voulez ajouter un autre objet à la zone Champs à afficher, sélectionnez-le dans la liste Champs disponibles et faites-le glisser à l'emplacement adéquat.
Conseil
La position d'un objet dans la zone Champs à afficher détermine la façon dont il est affiché dans l'Afficheur de parties de rapport : l'orientation de haut en bas dans la zone Champs à afficher équivaut à une orientation de gauche à droite dans l'afficheur. Utilisez les flèches situées au-dessus de la zone Champs à afficher pour modifier l'ordre des objets.
Remarque
La zone Champs à afficher ne peut contenir qu'une section à la fois. Si vous tentez d'ajouter une deuxième section, elle remplace toute section existante dans la zone Champs à afficher.
7. Cliquez sur
OK
.
Vous avez établi un lien hypertexte à partir de l'objet de base de votre rapport vers un ou plusieurs objets de destination. Dans l'Afficheur de parties de rapport, vous verrez d'abord apparaître l'objet de base puis, en cliquant sur cet objet pour poursuivre l'exploration, vous verrez les objets de destination.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
725
1.7.1.2.8.3.3 Option Un autre objet de rapport
L'option
Un autre objet de rapport
située dans l'onglet
Lien hypertexte
de l'
Editeur de mise en forme
vous permet de définir un chemin de lien hypertexte pour relier des objets d'un ou de plusieurs rapports. Si vous définissez un lien hypertexte vers un autre rapport, ce dernier doit être géré dans la plateforme SAP BusinessObjects Business
Intelligence. Le contrôle CrystalReportPartsViewer n'affiche que les objets que vous spécifiez. Comme avec l'option Exploration des parties du rapport, tous les objets de destination doivent provenir de la même section de rapport.
L'option
Un autre objet de rapport
peut également être utilisée par le visualiseur de pages DHTML à des fins de navigation.
1.7.1.2.8.3.3.1 Pour créer un lien hypertexte d'exploration des parties d'un rapport
Contexte
Etant donné que l'option
Un autre objet de rapport
permet de créer des liens hypertextes entre des objets de différents rapports gérés dans SAP Crystal Report Server ou la plateforme SAP BusinessObjects Business
Intelligence, elle requiert des étapes de configuration supplémentaires sous l'onglet
Lien hypertexte
. Pour compléter la configuration de votre lien hypertexte, vous devez effectuer les étapes suivantes :
● Ouvrez le rapport contenant l'objet que vous souhaitez définir comme objet de destination et copiez cet objet.
● Ouvrez le rapport contenant l'objet de base, sélectionnez cet objet, puis ouvrez l'Editeur de mise en forme.
● Dans l'onglet
Lien hypertexte
, collez les informations concernant l'objet de destination dans les champs appropriés.
Remarque
pour vous familiariser avec les contraintes associées à la création de ce type de lien hypertexte.
Procédure
1. Ouvrez vos rapports source et cible.
Le rapport source est celui à partir duquel vous copiez un objet. Le rapport cible est celui auquel vous ajoutez les informations de lien hypertexte.
Lorsque vous visualisez le rapport cible dans l'Afficheur de parties de rapport, ce que vous voyez en premier est son objet de base. Lorsque vous explorez cet objet, vous accédez à l'objet de destination que vous avez sélectionné dans le rapport source.
2. Dans le rapport source, cliquez sur l'objet de destination souhaité et copiez son nom indiqué dans le champ
Nom
de la fenêtre
Propriétés
(par exemple Texte1, Champ1, Graphique1, etc.)
726
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
3. Dans votre rapport cible, cliquez avec le bouton droit de la souris sur l'objet de base souhaité et choisissez
Mettre en forme l'objet
dans le menu contextuel.
4. Dans l'
Editeur de mise en forme
, cliquez sur l'onglet
Lien hypertexte
, puis sélectionnez l'option
Un autre objet de rapport
.
5. Dans la zone "Informations sur le lien hypertexte", cliquez sur le bouton
Coller le lien
.
Remarque
Le bouton
Coller le lien
n'est pas disponible si vous n'avez pas copié d'objet de destination.
6. Le programme colle dans les champs adéquats les informations d'identification de l'objet de destination que vous avez sélectionné dans le rapport source.
Le bouton
Coller le lien
comprend une liste d'options que vous pouvez utiliser lorsque vous collez un lien vers l'objet de destination. Les options suivantes s'affichent selon le type de lien créé (par exemple, un lien vers un contexte de données spécifique plutôt que vers un contexte de données générique) :
○
Partie de rapport contextuelle
Il s'agit de l'option par défaut. Elle est sélectionnée lorsque vous cliquez sur
Coller le lien
sans afficher les autres options de la liste. Utilisez-la pour coller un lien contenant le contexte de données le plus complet
○
Partie de rapport dans l'onglet Conception
Utilisez cette option pour coller un lien contenant un contexte de données générique (en d'autres termes, un contexte qui ne fait pas référence à un enregistrement spécifique). Elle est utile lorsque vous voulez fournir un contexte de données élargi ou lorsque les données ne figurent pas encore dans le rapport source.
○
Partie de rapport dans l'onglet Aperçu
Utilisez cette option pour coller un lien contenant un contexte de données spécifique (en d'autres termes, un contexte qui fait référence à un enregistrement en particulier). Elle est utile lorsque vous voulez fournir un contexte de données limité ou lorsque des données figurent dans le rapport source.
Remarque
Si vous choisissez l'option
Partie de rapport dans l'onglet Conception
(ou si vous choisissez l'option
Partie de rapport contextuelle
pour un objet copié à partir de l'onglet Conception d'un rapport) et que les rapports source et cible ont des structures de données différentes, la boîte de dialogue
Champs de mappage des parties du rapport
s'affiche. Chaque champ figurant dans la zone
Champs démappés
représente un groupe du rapport source. Utilisez cette boîte de dialogue pour mapper ces groupes aux champs de votre rapport cible. Une fois tous les mappages de groupes effectués, le bouton
OK
s'affiche et vous pouvez poursuivre.
7. Si vous souhaitez ajouter d'autres champs de la même section au lien, cliquez sur le champ
Nom de l'objet
et déplacez le curseur jusqu'à la fin du texte existant. Saisissez un point-virgule (;), puis le nom du nouveau champ.
8. Vous pouvez étendre le
Contexte des données
en utilisant un astérisque (*) pour représenter tous les enregistrements d'un groupe.
Par exemple, si le contexte des données est
/Etats-Unis/CA/Changing Gears
(ce qui affichera uniquement cet enregistrement de détail), vous pouvez le remplacer par
/Etats-Unis/CA/*
pour afficher tous les enregistrements de détail de ce grou
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
727
Conseil
Si votre rapport comprend une formule de sélection de groupes, vérifiez que le contexte des données de votre objet de destination contient l'index enfant correct.
9. Cliquez sur
OK
.
Vous avez établi un lien hypertexte à partir d'un objet de base vers un ou plusieurs objets de destination. Dans l'Afficheur de parties de rapport, vous verrez d'abord apparaître l'objet de base puis, en cliquant sur cet objet pour poursuivre l'exploration, vous verrez les objets de destination.
1.7.1.2.8.3.4 Scénarios pour l'option Partie de rapport contextuelle
Lorsque vous collez des informations de mise en relation pour une partie de rapport, l'option Partie de rapport contextuelle a principalement un effet sur le contexte de données du lien. Les champs Sélectionner dans (URI du rapport) et Nom de l'objet sont toujours identiques, quels que soient les choix possibles dans la liste Coller le lien.
Cette section présente différents scénarios et décrit la manière dont le logiciel crée un contexte de données pour chacun d'eux.
Scénario 1
Si votre rapport source contient des données (en d'autres termes, si le rapport est dans l'onglet Aperçu), le contexte de données de la Partie de rapport contextuelle (dans le rapport cible) correspond au contexte de données de l'onglet Aperçu du rapport source pour tous les enfants du champ sélectionné. Par exemple, le champ
Contexte des données peut contenir ceci : /Pays[Etats-Unis]/Région[*]. Autrement, le logiciel utilise le contexte de données de l'onglet Conception du rapport source en tant que contexte de données de la Partie de rapport contextuelle dans le rapport cible.
Scénario 2
Si vos rapports source et cible sont identiques et que l'objet que vous choisissez comme source provient de l'onglet Aperçu, le contexte de données reste vide lorsque l'objet cible vers lequel vous effectuez la mise en relation est situé à un niveau supérieur par rapport à l'objet source. Par exemple, lorsque le contexte de données source est /Pays[Australie]/IndexEnfant[5] et que le contexte de données cible est /Pays[Australie], le contexte de données de la partie de rapport contextuelle reste vide.
Scénario 3
Si vos rapports source et cible sont identiques et que l'objet que vous choisissez comme source provient de l'onglet Aperçu, le contexte de données collé est un contexte de l'onglet Conception (sous la forme d'une formule)
728
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
lorsque l'objet cible vers lequel vous effectuez la mise en relation est situé à un niveau inférieur par rapport à l'objet source. Par exemple, lorsque le contexte de données source est /Pays[Australie] et que le contexte de données cible est /Pays[Australie]/IndexEnfant[5], le contexte de données de la partie de rapport contextuelle est "/"+{Clients.Pays}.
Tableaux croisés
Si l'objet que vous copiez dans le rapport source fait partie d'un tableau croisé, le contexte de données de la partie de rapport contextuelle se base sur l'objet sélectionné incorporé dans le tableau croisé. SAP Crystal Reports crée le contexte de données en regardant si l'objet sélectionné dans le tableau croisé est une ligne, une colonne ou une cellule. Le programme récupère ensuite les noms de ligne et de colonne. Il analyse alors le contexte de données de l'onglet Conception. Enfin, il génère le contexte de données de la partie de rapport contextuelle en ajoutant la fonction GridRowColumnValue si le groupe contenu dans la formule de contexte de données figure dans les noms de ligne ou de colonne récupérés auparavant. Par exemple, vous pouvez avoir un contexte de données de ce type :
"/"+GridRowColumnValue("Customer.Country")+"/"+GridRowColumnValue("Customer.Region")
1.7.1.2.8.3.5 Formats de contexte des données
En principe, une formule de contexte de données se présente sous la forme suivante :
"/" + {Table.Field} + "/" + {Table.Field}
Vous pouvez utiliser d'autres formats :
● format de type Xpath :
/USA/Bicycle
● format Fortement typé :
/Country[USA]/Product Class[Bicycle]
● informations détaillées au format basé sur 0 :
/USA/Bicycle/ChildIndex[4]
● caractère générique pour identifier toutes les instances :
/USA/*
● Pour les objets Tableau croisé, vous pouvez utiliser la navigation sur des cellules, des colonnes ou des lignes.
Pour définir le contexte des données, utilisez la fonction de mise en forme GridRowColumnValue. Par exemple :
"/" + GridRowColumnValue ("Supplier.Country") + "/" +
GridRowColumnValue ("Product.Product Class").
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
729
1.7.1.2.9 Amélioration de la présentation des rapports
Cette section décrit les méthodes que vous pouvez utiliser pour attirer l'attention sur des données, pour modifier la présentation des dates, des nombres et d'autres valeurs, pour masquer les sections inopportunes, et pour effectuer d'autres tâches de mise en forme permettant de donner à votre rapport un aspect très professionnel.
1.7.1.2.9.1 Insertion des diagrammes
Répertorie les diagrammes disponibles et explique comment insérer des diagrammes dans des rapports.
SAP Crystal Reports permet d'intégrer dans les rapports des diagrammes élaborés et en couleur. Les diagrammes sont des outils puissants de présentation et d'analyse des données. Les utilisateurs peuvent explorer un diagramme ou la légende d'un diagramme pour obtenir des informations détaillées.
Vous pouvez utiliser les éléments suivants lors de la création d'un diagramme :
● des champs de résumé et de sous-total,
● des champs de détails, de formule et de total cumulé,
● des résumés de tableau croisé,
Remarque
Vous pouvez créer un diagramme à partir de données OLAP dans d'autres versions de
SAP Crystal Reports. SAP Crystal Reports, version développeur pour Microsoft Visual Studio .NET ne prend pas en charge les grilles OLAP.
Lorsque vous ajoutez un diagramme à votre rapport, vous insérez généralement un diagramme sur les informations de résumé et de sous-total au niveau du groupe.
1.7.1.2.9.1.1 Pour insérer un diagramme
Procédure
1. Cliquez avec le bouton droit de la souris dans le SAP Crystal Reports Designer incorporé, pointez sur
Insérer
, puis cliquez sur
Diagramme
.
2. Dans l'onglet Type, sélectionnez le Types de diagramme [page 732] .
3. Sélectionnez
Définir automatiquement les options du diagramme
si vous souhaitez que l'Expert Diagramme utilise les options par défaut des onglets Axes et Options.
4. Cliquez sur l'onglet
Données
.
5. Dans la zone
Placement
, spécifiez la fréquence d'apparition du diagramme dans le rapport, puis cliquez sur les options
En-tête ou Pied de page
pour préciser l'emplacement exact du diagramme.
6. Dans la zone
Modèle
, sélectionnez
Modèles de diagrammes [page 731] .
7. Dans la zone
Données
, spécifiez les champs de base de données que vous souhaitez utiliser comme conditions.
730
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
8. Lorsque les onglets
Axes et Options
apparaissent, vous pouvez personnaliser certaines propriétés du diagramme, telles que l'échelle des axes, la légende et les points de données.
9. Cliquez sur l'onglet
Texte
. Acceptez le titre proposé par défaut ou saisissez un nouveau titre, le cas échéant.
10. Cliquez sur
OK
.
Informations associées
Modèles de diagrammes [page 731]
1.7.1.2.9.1.2 Placement de votre diagramme
Le placement de votre diagramme détermine les données qui sont affichées et l'endroit où elles sont imprimées.
Par exemple, un diagramme placé dans la section En-tête du rapport inclut les données pour le rapport entier, tandis qu'un diagramme placé dans une section En-tête de groupe ou Pied de page de groupe affiche uniquement les données spécifiques au groupe.
Remarque
● Si votre rapport contient des sous-rapports, vous pouvez également y placer des diagrammes. Pour en
savoir plus sur les sous-rapports, voir Insertion des sous-rapports [page 741] .
● Par défaut, lorsque vous insérez un diagramme, il est placé dans l'en-tête du rapport.
1.7.1.2.9.1.3 Modèles de diagrammes
L'Expert Diagramme offre quatre modèles correspondant à certains jeux de données.
Vous pouvez créer des diagrammes à l'aide des modèles suivants et, selon les données que vous utilisez, vous pouvez modifier le diagramme d'un modèle à l'autre.
Avancés
Utilisez le modèle Avancé lorsque vous avez plusieurs valeurs de diagramme au lieu d'une seule, ou lorsque votre rapport ne contient pas de groupes ou de résumés.
Le modèle de diagramme Avancé accepte un ou deux champs de condition : avec ces champs, vous pouvez créer un diagramme en deux ou trois dimensions. D'autres fonctions spécifiques dans le modèle Avancé comprennent :
● la possibilité de grouper les valeurs par ordre croissant, décroissant ou spécifié et sur la base de totaux N premiers ou Tri,
● la possibilité de tracer les valeurs pour chaque enregistrement,
● la possibilité de tracer les valeurs en tant que total général de tous les enregistrements,
● la possibilité de baser les diagrammes sur des champs de formule et de total cumulé.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
731
Groupe
Tableau croisé
OLAP
Le modèle Groupe est un modèle simplifié dans lequel vous affichez un résumé sur le changement d'un champ géographique tel que Pays.
Pour créer un diagramme sur la base du modèle Groupe, vous devez avoir au moins un groupe et un champ de résumé pour ce groupe dans le rapport.
Utilisez le modèle Tableau croisé pour créer un diagramme sur la base d'un objet tableau croisé. Un diagramme de type Tableau croisé utilise les champs du tableau croisé comme champs de condition et de résumé.
Utilisez le modèle OLAP lorsque vous générez un diagramme sur la base d'une grille OLAP. Un diagramme OLAP utilise les champs de la grille OLAP comme champs de condition et de résumé.
Remarque
Vous pouvez créer un diagramme à partir de données OLAP dans d'autres versions de
SAP Crystal Reports. SAP Crystal Reports, version développeur pour Microsoft Visual Studio ne prend pas en charge les grilles OLAP.
1.7.1.2.9.1.4 Types de diagramme
Certains types de diagramme conviennent mieux à certaines données. Les descriptions suivantes vous donnent un aperçu des principaux types de diagramme et de leurs utilisations les plus courantes.
Barres Un diagramme en barres (également appelé diagramme en colonnes) permet l'affichage ou la comparaison de plusieurs jeux de données. Les deux types de diagrammes en barres les plus utiles sont l'histogramme et le diagramme en barres empilées.
Histogramme
Diagramme en barres empilées
Un histogramme affiche les données sous forme d'une série de barres verticales. Ce type de diagramme est bien adapté à la présentation de données concernant plusieurs groupes différents pendant une durée spécifique de temps (par exemple, les chiffres de vente de l'année passée pour le Morbihan, les côtes d'Armor et le Finistère).
Un diagramme en barres empilées affiche les données sous forme d'une série de barres verticales. Chaque type de données, portant une couleur différente, se trouve empilée dans une seule colonne (affichant par exemple trois couleurs représentant les ventes pour les années 1997, 1998 et 1999).
Courbes
Aire
Un diagramme en courbes affiche les données sous la forme d'un ensemble de points reliés par un trait. Ce type de diagramme est particulièrement indiqué pour présenter de la meilleure façon des données sur plusieurs groupes, par exemple, les chiffres totaux de ventes s'étalant sur plusieurs années consécutives.
Un diagramme en aires affiche des données en tant que zones ou surfaces, chaque zone étant mise en valeur par des couleurs ou motifs différents. Ce type de diagramme s'adapte le mieux aux présentations de données pour un nombre limité de groupes (par exemple, le pourcentage des ventes totales pour l'Arizona, la Californie, l'Orégon et l'état de Washington).
732
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Secteurs
Anneau
Colonnes 3D
Surface 3D
Nuage de points XY
Radar
Appelé également Camembert, il présente les données sous la forme d'un camembert dont les différentes tranches ou sections sont mises en valeur par des couleurs ou des motifs différents.
Ce type de diagramme ne peut montrer qu'un seul groupe de données (par exemple, le pourcentage de ventes pour un seul inventaire). Toutefois, vous avez maintenant l'option de sélectionner plusieurs diagrammes en secteurs pour de multiples groupes de données.
Un diagramme en anneaux ressemble à un diagramme en secteurs qui affiche les données en tant que sections d'un cercle ou d'un anneau. Si, par exemple, vous avez généré un diagramme des ventes par région dans un certain rapport, vous verriez le nombre total des ventes (le chiffre) au centre de l'anneau et les régions en tant que sections colorées de l'anneau. Comme le diagramme en secteurs, vous avez l'option de sélectionner plusieurs diagrammes en anneaux pour de multiples jeux de données.
Un diagramme Colonnes 3D affiche les données en une série d'objets tridimensionnels, rangés côte à côte sur un plan tridimensionnel. Le diagramme Colonnes 3D affiche d'excellente façon les valeurs de rapport extrêmes. Par exemple, les différences de ventes par client et pays sont visuellement dynamiques lorsqu'elles sont présentées dans ce diagramme.
Les diagrammes de surface 3D présentent une vue topographique de plusieurs jeux de données. Si, par exemple, vous avez besoin d'un diagramme qui montre le nombre de ventes par client par pays en format dynamique et visuellement attirant, vous devriez penser à utiliser un diagramme de surface 3D.
Un diagramme Nuage de points XY est en général une collection de points tracés qui représentent des données spécifiques dans une mine d'informations. Ce diagramme permet à l'utilisateur d'étudier une plus grande envergure de données afin de déterminer des tendances.
Par exemple, si vous entrez des informations de client, y compris les ventes, les produits, les pays, les mois et les années, vous aurez comme résultat une collection de points tracés représentant cette mine d'information de client. Afficher toutes ces données dans un diagramme Nuage de points XY vous permettrait de faire des conjectures sur la raison pour laquelle certains produits sont plus achetés que d'autres ou pourquoi les achats dans certaines régions sont plus hauts que dans d'autres.
Un diagramme Radar positionne les données de groupes comme Pays ou Clients au périmètre du radar. Le diagramme Radar insère ensuite des valeurs numériques, augmentant en valeur, du centre du radar au périmètre. De cette manière, l'utilisateur peut déterminer, d'un coup d'œil, comment des données de groupe spécifiques sont liées à l'ensemble de données en entier.
Bulle Un diagramme à bulles affiche les données en tant que série de bulles dont la taille est proportionnelle au montant des données. Un diagramme à bulles serait extrêmement utile pour afficher le nombre de produits vendus dans une région ; plus grande est la bulle, plus grand est le nombre de produits vendus dans la région donnée.
Boursier Un diagramme Boursier présente les valeurs élevées et basses des données. Grâce à cette capacité, un diagramme boursier est un outil excellent pour observer les ventes ou les activités financières.
Axe numérique Un diagramme à axe numérique est un diagramme en barres, en courbes ou en aires dont le champ "Au changement de" est un champ numérique ou un champ de type date/heure. Les diagrammes à axe numérique permettent de définir l'échelle des valeurs de l'axe des X et, ainsi, de créer un véritable axe des X numérique ou date/heure.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
733
Jauge
Gantt
Une jauge présente les valeurs comme des points sur un cadran. En règle générale, les jauges, telles que les diagrammes à secteurs, sont utilisées pour un groupe de données (par exemple, le pourcentage de ventes pour l'ensemble des stocks).
Un diagramme de Gantt est un diagramme en barres horizontales, souvent utilisé pour fournir une illustration graphique d'une planification. L'axe horizontal représente une échelle de temps, tandis que l'axe vertical affiche une série de tâches ou d'événements. Les barres horizontales du diagramme représentent les séquences d'événements et les périodes qui correspondent à chacun des éléments figurant sur l'axe vertical. Vous devez utiliser uniquement des champs de date lorsque vous créez un diagramme de Gantt. Vous devez sélectionner le champ "Pour chaque enregistrement" pour l'axe des données, puis ajouter les champs de date de début et de date de fin à la zone "Afficher les valeurs" de l'onglet Données de l'Expert Diagramme.
Entonnoir En règle générale, un entonnoir permet de représenter les phases d'un processus de vente. Il peut par exemple indiquer le montant du chiffre d'affaires potentiel à chaque phase. Ce type de diagramme permet également d'identifier des zones potentiellement problématiques dans les processus de vente d'une organisation. Un entonnoir est similaire à un diagramme en barres empilées, en ce sens qu'il représente la totalité des valeurs résumées des groupes inclus dans le diagramme.
Histogramme Un histogramme est un type de diagramme en barres utilisé pour décrire la variation des mesures par rapport à une valeur moyenne. Il peut aider à identifier la cause des problèmes dans un processus en examinant la forme de la distribution ainsi que la largeur (écart) de la distribution. Dans un histogramme, la fréquence est représentée par l'aire d'une barre plutôt que par la hauteur de la barre.
Remarque
Les diagrammes de Gantt et entonnoirs sont disponibles dans SAP Crystal Reports pour
Visual Studio 2005 et versions ultérieures, ainsi que dans SAP Crystal Reports Developer.
Les histogrammes ne sont pas disponibles dans SAP Crystal Reports, version développeur pour Microsoft Visual Studio, mais le sont dans l'une des versions mises à niveau.
1.7.1.2.9.1.5 Création de diagrammes
Lorsque vous concevez un rapport, vous insérez généralement un diagramme sur les informations de résumé et de sous-total au niveau du groupe. Cependant, selon le type de données que vous utilisez, vous pouvez créer un diagramme avancé ou de type tableau croisé pour votre rapport.
1.7.1.2.9.1.5.1 Création de diagrammes à l'aide des champs de résumé ou de sous-total
Etant donné que les diagrammes sont un bon moyen de présenter des informations résumées, ils sont souvent basés sur un champ de résumé de votre rapport. Pour créer ces diagrammes, votre rapport doit déjà contenir un résumé ou un sous-total inséré dans un en-tête ou un pied de page de groupe. Pour en savoir plus sur l'insertion
734
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
de résumés et de sous-totaux, voir
Résumé des données regroupées [page 685] et
Pour calculer les sous-totaux des données [page 693]
.
Informations associées
Modèles de diagrammes [page 731]
1.7.1.2.9.1.5.1.1 Pour créer un diagramme sur la base d'un champ de résumé ou de sous-total
Procédure
1. Cliquez avec le bouton droit de la souris dans le SAP Crystal Reports Designer incorporé, pointez sur
Insérer
, puis cliquez sur
Diagramme
.
2. Sous l'onglet
Type
, sélectionnez Types de diagramme [page 732] et cliquez sur le sous-type de diagramme le
mieux adapté aux données à présenter.
3. Sélectionnez
Définir automatiquement les options du diagramme
si vous souhaitez que l'Expert Diagramme utilise les options par défaut des onglets Axes et Options.
4. Cliquez sur l'onglet
Données
.
5. Dans la zone
Placement
, spécifiez la fréquence d'apparition du diagramme dans le rapport, puis cliquez sur les options
En-tête
ou
Pied de page
pour préciser l'emplacement exact du diagramme.
6. Dans la zone
Modèle
, cliquez sur
Groupe
si cette option n'est pas déjà sélectionnée.
7. Dans la zone
Données
, dans la liste
Au changement de
, cliquez sur le champ de groupe sur lequel vous voulez baser le diagramme, puis, dans la liste
Afficher
, cliquez sur le champ de résumé que vous voulez afficher sur le diagramme.
8. Si les onglets
Axes
et
Options
apparaissent, vous pouvez personnaliser certaines propriétés du diagramme, telles que l'échelle des axes, la légende et les points de données.
9. Cliquez sur l'onglet
Texte
. Acceptez le titre proposé par défaut ou saisissez un nouveau titre, le cas échéant.
10. Cliquez sur
OK
.
Résultats
Lorsque le diagramme est inséré, il peut couvrir une partie du rapport. Dans ce cas, déplacez et redimensionnez le diagramme afin qu'il s'ajuste correctement dans le rapport.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
735
1.7.1.2.9.1.5.2 Création de diagrammes sur la base des résumés de tableaux croisés
SAP Crystal Reports vous permet d'inclure un diagramme basé sur des valeurs de résumé dans votre tableau croisé. Par exemple, avec un tableau croisé qui affiche le nombre total d'un produit particulier vendu dans chaque région française, vous avez la possibilité d'inclure un diagramme qui montre le pourcentage des ventes totales de ce produit par région.
Pour pouvoir créer un diagramme de type Tableau croisé, vous devez disposer d'un tableau croisé dans votre
Informations associées
Modèles de diagrammes [page 731]
1.7.1.2.9.1.5.2.1 Pour créer un diagramme sur la base d'un résumé de tableau croisé
Procédure
1. Cliquez avec le bouton droit de la souris dans le SAP Crystal Reports Designer incorporé, pointez sur
Insérer
, puis cliquez sur
Diagramme
.
2. Sous l'onglet
Type
, sélectionnez
et cliquez sur le sous-type de diagramme le mieux adapté aux données à présenter.
3. Sélectionnez
Définir automatiquement les options du diagramme
si vous souhaitez que l'Expert Diagramme utilise les options par défaut des onglets Axes et Options.
4. Cliquez sur l'onglet
Données
.
5. Dans la zone
Placement
, spécifiez la fréquence d'apparition du diagramme dans le rapport, puis cliquez sur les options
En-tête
ou
Pied de page
pour préciser l'emplacement exact du diagramme.
6. Dans la zone
Modèle
, cliquez sur
Tableau croisé
si cette option n'est pas déjà sélectionnée.
7. Dans la zone
Données
, dans la liste
Au changement de
, cliquez sur le champ de groupe sur lequel vous voulez baser le diagramme.
8. Si nécessaire, dans la liste
Subdivisé par
, cliquez sur la ligne ou la colonne secondaire sur laquelle baser le diagramme.
9. Dans la liste
Afficher
, cliquez sur le champ de résumé que vous voulez afficher sur le diagramme.
10. Si les onglets
Axes
et
Options
apparaissent, vous pouvez personnaliser certaines propriétés du diagramme, telles que l'échelle des axes, la légende et les points de données.
11. Cliquez sur l'onglet
Texte
. Acceptez le titre proposé par défaut ou saisissez un nouveau titre, le cas échéant.
12. Cliquez sur
OK
.
736
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Résultats
Lorsque le diagramme est inséré, il peut couvrir une partie du rapport. Dans ce cas, déplacez et redimensionnez le diagramme afin qu'il s'ajuste correctement dans le rapport.
1.7.1.2.9.1.5.3 Création de diagrammes à l'aide des champs de détails ou de formule
Le modèle de diagramme Avancé vous permet de créer un diagramme basé sur des valeurs spécifiques. Etant donné que les diagrammes sont un bon moyen de présenter des informations résumées, ils sont souvent basés sur un champ de résumé de votre rapport. Le modèle Avancé vous donne la possibilité de concevoir un diagramme sans avoir à recourir à un champ de résumé, en utilisant seulement les valeurs se trouvant dans la section Détails de votre rapport.
Pour créer un diagramme basé sur le modèle Avancé, vous devez spécifier deux choses :
Conditions (il peut y en avoir deux)
La condition permet d'indiquer à quel moment placer le point. Par exemple, un diagramme présentant les données sur les ventes de l'année précédente utilise le champ Nom du client comme condition. Chaque fois que la condition change (ici, le nom du client), un point est dessiné.
Vous avez également la possibilité de tracer un point pour chaque enregistrement ou pour tous les enregistrements.
Valeurs (il peut y en avoir plusieurs)
Le diagramme de type Avancé utilise la valeur pour indiquer les informations qui correspondent aux points qui sont dessinés sur votre diagramme. Par exemple, pour créer un diagramme présentant les données sur les ventes de l'année précédente, le champ
Ventes de l'année dernière serait la valeur.
Informations associées
Modèles de diagrammes [page 731]
1.7.1.2.9.1.5.3.1 Pour créer un diagramme sur la base d'un champ de détails ou de formule
Procédure
1. Cliquez avec le bouton droit de la souris dans le SAP Crystal Reports Designer incorporé, pointez sur
Insérer
, puis cliquez sur
Diagramme
.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
737
2. Sous l'onglet
Type
, sélectionnez
et cliquez sur le sous-type de diagramme le mieux adapté aux données à présenter.
3. Sélectionnez
Définir automatiquement les options du diagramme
si vous souhaitez que l'Expert Diagramme utilise les options par défaut des onglets Axes et Options.
4. Cliquez sur l'onglet
Données
.
5. Dans la zone
Placement
, spécifiez la fréquence d'apparition du diagramme dans le rapport, puis cliquez sur les options
En-tête
ou
Pied de page
pour préciser l'emplacement exact du diagramme.
6. Dans la zone
Modèle
, cliquez sur
Avancé
si cette option n'est pas déjà sélectionnée.
7. Dans la zone
Données
, spécifiez les champs de base de données que vous souhaitez utiliser comme conditions.
Vous pouvez sélectionner
Au changement de
dans la liste, puis ajouter jusqu'à deux champs de base de données dans la zone située sous la liste.
8. Ajoutez les champs de base de données à utiliser comme valeurs à la liste
Afficher les valeurs
.
9. Si vous ne voulez pas que le SAP Crystal Reports Designer incorporé résume automatiquement les valeurs de diagramme pour un champ de formule, cochez la case
Ne pas résumer
.
10. Si les onglets
Axes
et
Options
apparaissent, vous pouvez personnaliser certaines propriétés du diagramme, telles que l'échelle des axes, la légende et les points de données.
11. Cliquez sur l'onglet
Texte
. Acceptez le titre proposé par défaut ou saisissez un nouveau titre, le cas échéant.
12. Cliquez sur
OK
.
Résultats
Lorsque le diagramme est inséré, il peut couvrir une partie du rapport. Dans ce cas, déplacez et redimensionnez le diagramme afin qu'il s'ajuste correctement dans le rapport.
1.7.1.2.9.1.6 Utilisation des diagrammes
Une fois que vous avez créé un diagramme, vous pouvez lui ajouter un nouveau titre, des en-têtes ou une légende, modifier les polices ou même changer de type de diagramme. Le SAP Crystal Reports Designer incorporé fournit de nombreuses options permettant d'utiliser les diagrammes existants.
1.7.1.2.9.1.6.1 Modification des diagrammes à l'aide de l'Expert Diagramme
L'Expert Diagramme vous permet de modifier vos diagrammes dans l'expert que vous avez utilisé pour les créer.
Vous pouvez modifier la plupart de vos sélections d'origine, par exemple, le type du diagramme, les données sur lesquelles il est basé, etc.
738
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Informations associées
Modification des diagrammes à l'aide des commandes du menu Options du diagramme [page 739]
1.7.1.2.9.1.6.1.1 Pour modifier un diagramme à l'aide de l'Expert Diagramme
Procédure
1. Cliquez avec le bouton droit de la souris sur le diagramme pour afficher le menu contextuel.
2. Dans le menu contextuel, cliquez sur
Expert Diagramme
.
3. Dans la boîte de dialogue Expert Diagramme, effectuez les modifications souhaitées.
4. Cliquez sur
OK
.
1.7.1.2.9.1.6.2 Modification des diagrammes à l'aide des commandes du menu Options du diagramme
Certaines options de modification disponibles dans l'Expert Diagramme sont également directement accessibles via le menu Options du diagramme. Ce menu, auquel vous accédez lorsque vous cliquez avec le bouton droit de la souris sur un diagramme, permet d'afficher trois boîtes de dialogue contenant des options de mise en forme avancée.
Boîte de dialogue
Choisir un type de diagramme
Utilisez la boîte de dialogue Choisir un type de diagramme pour modifier le type et la disposition du diagramme ou pour appliquer un modèle personnalisé. Cette boîte de dialogue s'affiche lorsque vous cliquez sur un diagramme avec le bouton droit de la souris, pointez sur Options du diagramme, puis cliquez sur Modèle.
Boîte de dialogue
Options du diagramme
Utilisez la boîte de dialogue Options du diagramme pour modifier la mise en forme, la disposition et l'apparence générales d'un diagramme. Cette boîte de dialogue s'affiche lorsque vous cliquez avec le bouton droit de la souris sur un diagramme dans un rapport, pointez sur Options du diagramme, puis cliquez sur Général.
Boîte de dialogue
Titres
Utilisez la boîte de dialogue Titres pour ajouter, modifier ou supprimer un Titre, un Soustitre, une Note en bas de page, un Titre de groupe, un Titre d'axe de données, un Titre d'axe de données2 et un Titre d'axe de série dans votre diagramme. Cette boîte de dialogue s'affiche lorsque vous cliquez sur un diagramme avec le bouton droit de la souris, pointez sur Options du diagramme, puis sélectionnez Titres.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
739
Informations associées
Modification des diagrammes à l'aide de l'Expert Diagramme [page 738]
Mise en forme des diagrammes [page 740]
1.7.1.2.9.1.6.3 Mise en forme des diagrammes
L'Editeur de mise en forme vous permet de modifier l'apparence des diagrammes. Cette boîte de dialogue s'affiche lorsque vous cliquez avec le bouton droit de la souris sur un diagramme, puis que vous cliquez sur Mettre en forme l'objet.
Onglet Commun
Onglet Bordure
Onglet Lien hypertexte
Utilisez cet onglet pour définir des propriétés telles que Nom de l'objet, Supprimer,
Alignement horizontal et Conserver l'unité de l'objet pour le diagramme.
Utilisez cet onglet pour mettre en forme les bordures, le fond et les ombres portées pour le rapport.
Utilisez cet onglet pour créer un lien hypertexte vers un site Web, une valeur de champ, une adresse électronique, un fichier ou un autre fichier SAP Crystal Reports.
Informations associées
Boîte de dialogue Editeur de mise en forme [page 886]
1.7.1.2.9.1.6.4 Utilisation de la fonction de mise en arrièreplan à l'aide des diagrammes
Etant donné que les diagrammes peuvent être imprimés uniquement dans certaines sections de votre rapport, l'option de mise en arrière-plan accroît encore plus que jamais l'efficacité de vos documents. Au lieu d'imprimer un diagramme au-dessus des données qu'il représente, vous pouvez le faire apparaître à côté des données, améliorant ainsi l'intelligibilité de vos informations.
Informations associées
740
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.7.1.2.9.1.6.4.1 Pour mettre un diagramme en arrière-plan
Procédure
1. Créez votre diagramme et placez-le dans la section En-tête du rapport.
Pour en savoir plus sur la création d'un diagramme, voir Création de diagrammes [page 734]
.
2. Dans le menu
Crystal Reports
, pointez sur
Rapport
et cliquez sur
Expert Section
.
La boîte de dialogue Expert Section s'affiche.
3. Dans la zone
Sections
, cliquez sur
En-tête du rapport
, puis cochez la case
Arrière-plan dans sections suivantes
.
4. Cliquez sur
OK
.
5. Cliquez sur l'onglet
Aperçu
pour vérifier votre travail.
Votre diagramme apparaît maintenant en arrière-plan en dessous des sections qui le composent.
6. Si nécessaire, repassez en mode de conception pour déplacer ou redimensionner le diagramme.
1.7.1.2.9.2 Insertion des sous-rapports
Explique comment ajouter des liens hypertexte vers d'autres rapports ou des données de rapport.
Rapport imbriqué dans un rapport. Les rapports non reliés peuvent être combinés dans un seul rapport au moyen des sous-rapports. Vous pouvez coordonner des données qui ne pourraient pas être liées autrement ou vous pouvez présenter différentes vues des mêmes données dans un seul rapport.
Si votre rapport contient une section qui gère un grand nombre d'enregistrements, vous pouvez placer cette section dans un sous-rapport à la demande. Un sous-rapport à la demande apparaît sous la forme d'un lien hypertexte dans le rapport principal. Lorsque vous ouvrez le rapport principal, aucune donnée n'est extraite pour le sous-rapport à la demande tant que vous n'explorez pas le lien hypertexte.
Conseil
Chaque fois que c'est possible, coordonnez vos données de rapport en reliant les tables de la base de données
à l'Expert Mise en relation visuelle, plutôt qu'en reliant des sous-rapports standard, c'est-à-dire les sousrapports qui ne sont pas des sous-rapports à la demande, au rapport principal. Comme chaque sous-rapport est exécuté comme un rapport séparé, les tables reliées présentent souvent un avantage en matière de performances.
1.7.1.2.9.2.1 Pour insérer un sous-rapport
Procédure
1. Cliquez avec le bouton droit de la souris dans le Crystal Reports Designer incorporé, pointez sur
Insérer
, puis cliquez sur
Sous-rapport
.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
741
2. Faites glisser l'objet sous-rapport dans le rapport.
3. Sélectionnez un rapport de votre projet, un autre rapport existant ou créez un nouveau rapport pour le sousrapport.
4. Choisissez
Sous-rapport à la demande
pour avoir la possibilité de récupérer les données dans le sous-rapport le cas échéant. Dans le cas contraire, toutes les données du sous-rapport apparaîtront dans le rapport.
Remarque
L'utilisation de sous-rapports à la demande accroît les performances des rapports qui comportent des sous-rapports.
5. Cliquez sur l'onglet
Mise en relation
si vous souhaitez relier un sous-rapport aux données du rapport principal.
6. Sélectionnez le champ que vous voulez utiliser comme champ de mise en relation dans le rapport principal
(conteneur) à partir de la liste
Champs disponibles
, puis ajoutez-le à la liste
Champs auxquels relier le sousrapport
.
7. Utilisez la section
Lien de champs
, qui n'apparaît que si vous sélectionnez un champ de mise en relation, pour définir la mise en relation pour chaque champ de mise en relation : a. Dans la liste déroulante
Champ de paramètre de sous-rapport à utiliser
, sélectionnez le champ que vous voulez relier au rapport principal.
b. Activez la case à cocher
Sélectionner des données dans le sous-rapport en fonction du champ
, puis sélectionnez un champ dans la liste déroulante voisine pour organiser les données du sous-rapport en fonction d'un champ spécifique (procédure rapide Si vous n'avez rien spécifié ici, le sous-rapport reprendra l'organisation du rapport principal.
8. Cliquez sur
OK
.
Résultats
Le programme coordonnera désormais les données du rapport principal et celles du sous-rapport lorsque vous exécuterez le rapport.
Remarque
Le type de champ dans le rapport conteneur détermine quels sous-rapports sont visibles. Dans la mesure où le
SAP Crystal Reports Designer incorporé lit les dates en tant que champs de chaîne, de date ou de type date/ heure, vous devez vérifier que le type du champ de paramètre du sous-rapport correspond au type de champ défini dans Options du rapport pour le champ que vous voulez relier.
Informations associées
Sous-rapports reliés et non reliés [page 743]
742
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.7.1.2.9.2.2 Sous-rapports reliés et non reliés
Sous-rapports non reliés
Un sous-rapport non relié peut être considéré comme une entité en soi. Il n'existe aucune corrélation entre ses données et celles du rapport principal.
Avec les sous-rapports non reliés, les enregistrements des rapports ne sont pas comparés. Un sous-rapport non relié peut fort bien utiliser les mêmes données que le rapport principal, et il peut également utiliser une source de données totalement différente. Cela ne signifie pas qu'un sous-rapport soit limité à l'utilisation d'une seule table.
Un sous-rapport non relié peut ainsi être basé sur une table unique ou sur plusieurs tables. Quelles que soient les sources de données utilisées, les rapports sont traités de façon indépendante.
Sous-rapport relié
Dans le cas des sous-rapports reliés, au contraire, les données sont associées. Le programme établit une correspondance entre les enregistrements du sous-rapport et ceux du rapport principal. Supposons que vous créiez un rapport principal avec la liste de vos clients et un sous-rapport avec la liste des commandes. Si vous les reliez entre eux, le programme crée un sous-rapport pour chaque client et y inclut la liste des commandes passées par ce client.
Mise en relation des sous-rapports
La mise en relation entre un sous-rapport et un rapport principal s'établit par l'intermédiaire d'un champ de paramètre.
Lorsque vous sélectionnez un champ de mise en relation de sous-rapport :
● le programme crée, dans le sous-rapport, un champ de paramètre qui permet au rapport principal de lui transmettre les valeurs ;
● le logiciel se sert du champ de paramètre pour créer une formule de sélection d'enregistrements du sousrapport ; la formule de sélection limite le sous-rapport aux enregistrements pour lesquels le champ de mise en relation est égal à la valeur du champ de paramètre.
Lors de l'exécution du rapport, le programme recherche le premier enregistrement de champ dont il a besoin dans le rapport principal et, via le champ de mise en relation, transmet sa valeur au champ de paramètre du sousrapport. Le programme crée alors un sous-rapport en sélectionnant les enregistrements sur la base de la valeur du champ de paramètre. Voici un exemple :
● Vous créez un rapport de vos clients et un sous-rapport des commandes passées. Vous décidez de créer un lien entre ces deux rapports sur la base du champ ID client.
● Lors de l'exécution du rapport, le programme prend le premier enregistrement de client, et transmet la valeur de son champ ID client dans le champ de paramètre du sous-rapport.
● Le programme exécute alors le sous-rapport des commandes. La formule de sélection de ce sous-rapport ne sélectionne que les enregistrements dans lesquels l'ID client est égal à la valeur du champ de paramètre. Dans
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
743
la mesure où cette valeur est égale à l'ID client du premier enregistrement du rapport principal, le sousrapport contient uniquement les enregistrements contenant ce même ID client. Autrement dit, les enregistrements obtenus correspondent aux commandes du premier client.
● Lorsque le premier sous-rapport est terminé, le programme recherche le deuxième enregistrement dont il a besoin dans le rapport principal, imprime les données du client et transfère l'ID client correspondant dans le champ de paramètre.
● Le programme exécute un sous-rapport ne comprenant que les enregistrements de commandes concernant le second client.
● Le processus se poursuit jusqu'à la fin du rapport.
● Cette opération se déroule en arrière-plan. Indiquez simplement les champs avec lesquels le rapport principal sera relié au sous-rapport et le programme fait le reste. Les valeurs sont transmises par l'intermédiaire du champ de paramètre sans intervention de l'utilisateur.
1.7.1.2.9.3 Objets tableau croisé
Explique comment ajouter des objets grille de tableau croisé pour organiser les données dans votre rapport.
Un objet tableau croisé est une grille qui renvoie des valeurs en fonction des critères que vous spécifiez. Les données sont présentées dans un format compact sous forme de lignes et de colonnes. Ce format permet aux utilisateurs de comparer les données et d'identifier les tendances.
Un objet tableau croisé est constitué de trois éléments :
● Lignes
● Colonnes
● Champs de résumé
1.7.1.2.9.3.1 Création de tableaux croisés
Vous pouvez créer un objet tableau croisé dans un nouveau rapport ou ajouter un objet tableau croisé à un rapport existant. La liste suivante répertorie les éléments à prendre en compte lors de l'utilisation des objets tableau croisé :
● Vous pouvez avoir plusieurs lignes, colonnes et champs résumés.
744
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
● Vous pouvez utiliser des formules d'heure d'impression comme lignes ou colonnes.
● Vous pouvez utiliser des champs de total cumulé comme champ résumé.
● Vous pouvez inclure un tri de groupes (N premiers ou N derniers) sur les lignes de votre tableau croisé.
● Le tri de groupes ne peut pas être appliqué aux colonnes.
● Vous pouvez insérer autant d'objets tableau croisé que nécessaire dans un rapport.
● Vous pouvez insérer le tableau croisé dans l'en-tête ou le pied de page du rapport, ou dans l'en-tête ou le pied de page de groupe.
● Vous pouvez placer des objets tableau croisé dans des sous-rapports. Cela s'avère utile lorsque vous voulez faire référence aux résultats d'un autre rapport.
1.7.1.2.9.3.1.1 Création d'un rapport de type Tableau croisé
pour vous aider à créer un rapport de type Tableau croisé.
Informations associées
Présentation des sections de rapport [page 627]
1.7.1.2.9.3.1.1.1 Pour créer un rapport de type Tableau croisé
Procédure
1. Dans l'
Explorateur de solutions
, cliquez avec le bouton droit de la souris sur le nom du projet affiché en gras, pointez sur
Ajouter
, puis cliquez sur
Nouvel élément
.
2. Dans la boîte de dialogue
Ajouter un nouvel élément
, dans la vue
Modèles
, sélectionnez le modèle
Rapport
Crystal
.
3. Dans le champ
Nom
, saisissez le nom voulu, puis cliquez sur
Ajouter
.
4. Dans le panneau
Créer un document de rapport Crystal
de la boîte de dialogue
Galerie de rapports Crystal
, sélectionnez
en utilisant l' Assistant de création de rapports
.
5. Dans la liste
Choisir un expert
, sélectionnez
Tableau croisé
, puis cliquez sur
OK
.
L'Assistant de création de tableaux croisés s'affiche.
6. Dans l'écran
Données
, localisez la source de données que vous souhaitez utiliser, ajoutez les tables voulues à la zone
Tables sélectionnées
, puis cliquez sur
Suivant
.
L'écran Mise en relation s'affiche.
7. Modifiez les liens si nécessaire, puis cliquez sur
Suivant
.
L'écran Tableau croisé s'affiche.
8. Ajoutez des champs dans les zones
Lignes
,
Colonnes
et
Champs de résumé
, sélectionnez l'opération de résumé à effectuer dans la liste située en regard de la zone
Champs de résumé
et cliquez sur
Suivant
.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
745
L'écran Diagramme s'affiche.
9. Sélectionnez le type de diagramme, modifiez les informations de création de diagramme par défaut en fonction de votre rapport et cliquez sur
Suivant
.
L'écran Sélection d'enregistrements s'affiche.
10. Utilisez cet écran pour appliquer des conditions de sélection, puis cliquez sur
Suivant
.
L'écran Style du quadrillage s'affiche.
11. Sélectionnez un style prédéfini, puis cliquez sur
Terminer
.
Le rapport de type Tableau croisé est créé et chargé dans la fenêtre principale de Visual Studio.
1.7.1.2.9.3.1.2 Ajout d'un tableau croisé à un rapport existant
Procédure
1. Cliquez avec le bouton droit de la souris dans le SAP Crystal Reports Designer incorporé, pointez sur
Insérer
, puis cliquez sur
Tableau croisé
.
2. Placez l'objet tableau croisé dans votre rapport.
3. Dans la boîte de dialogue
Expert Tableau croisé
, ajoutez des champs dans les zones Lignes, Colonnes et
Champ de résumé.
4. Cliquez sur l'onglet
Style
pour sélectionner une conception de tableau croisé ou cliquez sur l'onglet
Personnalisation du style
pour créer votre propre tableau croisé.
Informations associées
Présentation des sections de rapport [page 627]
Boîte de dialogue Expert Tableau croisé [page 960]
1.7.1.2.9.3.2 Utilisation des tableaux croisés
Cette section explique comment utiliser un tableau croisé une fois que vous l'avez ajouté à un rapport.
746
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.7.1.2.9.3.2.1 Affichage des valeurs sous forme de pourcentages
Procédure
1. Dans le SAP Crystal Reports Designer incorporé, cliquez avec le bouton droit de la souris sur un champ résumé du tableau croisé.
2. Cliquez sur
Changer l'opération de résumé
dans le menu contextuel.
La boîte de dialogue Modifier le résumé s'affiche.
3. Cochez la case
Afficher sous forme de pourcentage de
.
4. Dans le champ
Pour
, choisissez
Ligne
ou
Colonne
selon que vous voulez calculer les valeurs de pourcentage horizontalement (ligne) ou verticalement (colonne).
5. Cliquez sur
OK
, puis sur
Aperçu Rapport principal
pour vérifier la modification.
Résultats
Les valeurs des champs résumés sont maintenant affichées sous forme de pourcentages dans le tableau croisé.
Informations associées
Boîte de dialogue Modifier le résumé [page 878]
1.7.1.2.9.3.2.2 Utilisation des totaux cumulés dans les tableaux croisés
Il peut être utile d'utiliser des champs de total cumulé en tant que champs de résumé dans des objets tableau croisé. Créez un tableau croisé, mais sélectionnez un champ de total cumulé comme Champ de résumé.
Remarque
Vous ne pouvez pas utiliser des champs de total cumulé comme colonnes ou lignes dans un tableau croisé.
Si vous ajoutez un tri de groupes (tri N supérieurs ou inférieurs) basé sur un champ de total cumulé, le tri est effectué sur les valeurs de total cumulé affichées dans les zones Total lignes/colonnes du tableau croisé ; il n'est pas basé sur les totaux de champs de résumé. De plus, dans ce cas, le total cumulé obtenu s'affiche correctement dans les données du total uniquement et non dans les données des cellules.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
747
Informations associées
Création des totaux cumulés [page 695]
1.7.1.2.9.3.2.2.1 Pour effectuer le total des colonnes
Contexte
Pour obtenir un total cumulé de toutes les colonnes du tableau croisé, vous devez trier les enregistrements du tableau croisé par colonne, puis par ligne.
Procédure
1. Cliquez avec le bouton droit de la souris sur le SAP Crystal Reports Designer incorporé, pointez sur
Rapport
, puis sélectionnez
Expert Tri d'enregistrements
.
2. Triez le tableau croisé en fonction du champ désigné comme Colonne dans l'Expert Tableau croisé.
3. Effectuez un deuxième tri en fonction du champ désigné comme Ligne dans l'Expert Tableau croisé.
1.7.1.2.9.3.2.2.2 Pour effectuer le total des lignes
Contexte
Pour obtenir un total cumulé de toutes les lignes du tableau croisé, vous devez trier les enregistrements du tableau croisé par ligne, puis par colonne.
Procédure
1. Cliquez avec le bouton droit de la souris sur le SAP Crystal Reports Designer incorporé, pointez sur
Rapport
, puis sélectionnez
Expert Tri d'enregistrements
.
2. Triez le tableau croisé en fonction du champ désigné comme Ligne dans l'Expert Tableau croisé.
3. Effectuez un deuxième tri en fonction du champ désigné comme Colonne dans l'Expert Tableau croisé.
748
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.7.1.2.9.3.2.3 Impression des tableaux croisés s'étendant sur plusieurs pages
Lorsque vous créez un tableau croisé qui est plus large ou plus long que le format de page spécifié, le programme
étend automatiquement l'impression sur un nombre de pages suffisant pour accepter la taille du tableau croisé.
Dans le but de faciliter la lecture, les en-têtes de colonne seront répétés sur les pages suivantes. Les en-têtes de ligne peuvent également être répétés en utilisant l'option Conserver les colonnes ensemble.
1.7.1.2.9.3.2.3.1 Pour répéter les étiquettes de lignes
Procédure
1. Dans le SAP Crystal Reports Designer incorporé, cliquez avec le bouton droit de la souris sur la zone supérieure gauche vide du tableau croisé.
2. Sélectionnez
Expert Tableau croisé
dans le menu contextuel.
3. Dans l'Expert Tableau croisé, cliquez sur l'onglet
Personnaliser le style
et cochez la case
Répéter les étiquettes de lignes
.
4. Cochez la case
Garder les colonnes ensemble
si elle ne l'est pas déjà.
5. Cliquez sur
Aperçu Rapport principal
pour vérifier votre travail.
1.7.1.2.9.3.3 Mise en forme des tableaux croisés
SAP Crystal Reports possède des capacités de mise en forme puissantes qui peuvent être appliquées aux tableaux croisés.
Pour attirer l'attention sur les données importantes et créer des tableaux croisés professionnels simples à comprendre, vous pouvez utiliser l'Editeur de mise en forme pour appliquer des mises en forme telles qu'une couleur d'arrière-plan, des bordures et des polices spécifiques. Pour accéder à l'Editeur de mise en forme, cliquez avec le bouton droit de la souris sur le tableau croisé, puis cliquez sur Editeur de mise en forme dans le menu contextuel.
Vous pouvez également utiliser l'Expert Mise en relief pour appliquer une mise en forme conditionnelle aux cellules d'un tableau croisé. Pour accéder à l'Expert Mise en relief, cliquez avec le bouton droit de la souris sur la cellule à mettre en forme, puis cliquez sur Expert Mise en relief dans le menu contextuel. Pour en savoir plus, voir
Expert Mise en relief (boîte de dialogue) [page 972]
.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
749
1.7.1.2.9.3.3.1 Mise en forme des champs
Procédure
1. Cliquez avec le bouton droit de la souris sur le champ que vous voulez mettre en forme et sélectionnez
Mettre en forme le champ
dans le menu contextuel.
Si vous devez mettre en forme plusieurs champs, utilisez la méthode de sélection par clic en maintenant la touche Maj enfoncée pour mettre en évidence les champs voulus, cliquez avec le bouton droit de la souris sur l'un d'entre eux et sélectionnez Mettre en forme plusieurs objets dans le menu contextuel.
L'éditeur de Mise en forme s'affiche.
2. Dans
l'Editeur de mise en forme
, choisissez la police, l'arrière-plan, les bordures, la numérotation, les symboles monétaires et les caractéristiques d'impression.
3. Cliquez sur
OK
pour revenir au tableau croisé.
Le champ est mis en forme selon vos spécifications.
1.7.1.2.9.3.3.2 Modification de la largeur, la hauteur et l'alignement des cellules de tableaux croisés
Procédure
1. Cliquez sur une cellule du tableau croisé pour activer les poignées de dimensionnement.
2. Cliquez et faites glisser l'une des poignées afin d'agrandir la largeur ou la hauteur de la cellule.
3. Cliquez sur une option d'alignement de la barre d'outils principale de Crystal Reports pour modifier l'alignement des données dans la cellule.
Remarque
La modification d'une cellule est répercutée sur toutes les autres cellules du même type. Par exemple, la modification de la largeur d'une cellule de champ de résumé entraîne la modification de toutes les autres cellules de champ de résumé.
1.7.1.2.9.3.3.3 Mise en forme de la couleur d'arrière-plan de lignes ou colonnes entières
Contexte
Utilisez les couleurs d'arrière-plan pour mettre en évidence certaines lignes ou colonnes d'un tableau croisé.
750
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Procédure
1. Cliquez avec le bouton droit de la souris sur la zone supérieure gauche vide du tableau croisé et sélectionnez
Expert Tableau croisé
dans le menu contextuel.
L'Expert Tableau croisé s'affiche.
2. Cliquez sur l'onglet
Personnaliser le style
.
3. Cliquez sur la ligne (dans la zone Lignes) ou sur la colonne (dans la zone Colonnes) et sélectionnez une couleur dans la liste déroulante
Couleur d'arrière-plan
.
4. Cliquez sur
OK
pour revenir au tableau croisé.
La ligne ou la colonne est mise en forme selon vos spécifications.
1.7.1.2.9.3.3.4 Suppression des données d'un tableau croisé
Cette section présente les étapes nécessaires pour supprimer des données dans un rapport. Vous pouvez supprimer :
● des lignes et des colonnes vides,
● des totaux de ligne et de colonne,
● des sous-totaux et leurs étiquettes.
1.7.1.2.9.3.3.4.1 Pour supprimer des lignes et des colonnes vides
Procédure
1. Cliquez avec le bouton droit de la souris sur la zone supérieure gauche vide du tableau croisé et sélectionnez
Expert Tableau croisé dans le menu contextuel.
L'Expert Tableau croisé s'affiche.
2. Cliquez sur l'onglet
Personnaliser le style
.
3. Cochez la case
Supprimer les lignes vides
ou
Supprimer les colonnes vides
.
4. Cliquez sur
OK
.
Désormais, lorsque vous imprimez le rapport, les lignes et les colonnes vides n'apparaissent pas.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
751
1.7.1.2.9.3.3.4.2 Pour supprimer des totaux de ligne et de colonne
Procédure
1. Cliquez avec le bouton droit de la souris sur la zone supérieure gauche vide du tableau croisé et sélectionnez
Expert Tableau croisé dans le menu contextuel.
L'Expert Tableau croisé s'affiche.
2. Cliquez sur l'onglet
Personnaliser le style
.
3. Cochez la case
Supprimer les totaux de ligne
ou
Supprimer les totaux de colonne
.
4. Cliquez sur
OK
.
1.7.1.2.9.3.3.4.3 Pour supprimer des sous-totaux et leurs
étiquettes
Contexte
Si votre tableau croisé contient plus de deux groupes, vous pouvez supprimer le sous-total et l'étiquette de l'un d'entre eux.
Procédure
1. Cliquez avec le bouton droit de la souris sur la zone supérieure gauche vide du tableau croisé et sélectionnez
Expert Tableau croisé
dans le menu contextuel.
L'Expert Tableau croisé s'affiche.
2. Cliquez sur l'onglet
Personnaliser le style
.
3. Cliquez sur le champ dont vous voulez supprimer le sous-total.
Les cases à cocher Supprimer le sous-total et Supprimer l'étiquette deviennent actives.
4. Dans la zone Options de groupe, cochez la case
Supprimer le sous-total
.
5. Cochez la case
Supprimer l'étiquette
pour supprimer l'étiquette associée au sous-total et cliquez sur
OK
.
1.7.1.2.9.3.3.5 Affichage horizontal des champs résumés
Contexte
Si votre tableau croisé contient plusieurs champs résumés, vous pouvez choisir d'afficher leurs valeurs horizontalement plutôt que verticalement (affichage par défaut).
752
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Procédure
1. Cliquez avec le bouton droit de la souris sur la zone supérieure gauche vide du tableau croisé et sélectionnez
Expert Tableau croisé
dans le menu contextuel.
L'Expert Tableau croisé s'affiche.
2. Cliquez sur l'onglet
Personnaliser le style
.
3. Dans la zone
Champs résumés
, sélectionnez
Horizontal
.
4. Cochez la case
Afficher les étiquettes
si vous voulez afficher les étiquettes des champs résumés.
Les étiquettes sont affichées dans la direction sélectionnée pour les champs résumés.
5. Cliquez sur
OK
.
1.7.1.2.9.4 Insertion des images en arrière-plan
Explique comment placer des objets en arrière-plan près ou au-dessous (plutôt qu'au-dessus) d'objets placés dans la section de rapport suivante.
Les objets placés en arrière-plan dans une section de rapport apparaissent près ou au-dessous d'objets placés dans la section de rapport suivante.
Remarque
L'option de mise en arrière-plan fonctionne par section de rapport. Tous les objets de cette section se placeront en arrière-plan dans la section suivante.
Vous pouvez utiliser la fonction de mise en arrière-plan pour mettre en forme les rapports pour les formulaires pré-imprimés ou insérer un graphique ou la photo d'un employé en regard des détails correspondant à ce graphique ou à cet employé.
Si vous utilisez des formulaires pré-imprimés, vous pouvez :
● scanner un formulaire,
● l'insérer dans le rapport en tant que bitmap,
● aligner correctement le bitmap sur le rapport en utilisant la fonction de mise en arrière-plan et la possibilité de déplacer les objets n'importe où,
● supprimer le besoin d'imprimer les formulaires séparément en imprimant le rapport et le formulaire en tant qu'une seule unité.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
753
1.7.1.2.9.4.1 Pour mettre en arrière-plan des objets de rapport
Procédure
1. Ajoutez les objets que vous souhaitez placer en arrière-plan dans une section de rapport.
2. Cliquez avec le bouton droit de la souris sur la section de rapport et sélectionnez
Expert Section
.
3. Cochez la case
Arrière-plan dans sections suivantes
.
4. Cliquez sur
OK
.
5. Redimensionnez l'objet verticalement si vous souhaitez qu'il apparaisse en arrière-plan des sections suivantes.
La zone à l'arrière-plan de l'objet est déterminée par :
○ la taille de l'objet,
○ la section dans laquelle l'objet a été initialement placé,
○ la position de l'objet dans la section.
1.7.1.2.9.5 Masquage des sections de rapport
Explique comment masquer ou explorer les informations d'un rapport.
Vous disposez de trois moyens dans SAP Crystal Reports pour empêcher l'impression de certaines parties d'un rapport.
● Masquer (avec exploration)
● Supprimer (sans exploration)
● Supprimer la section vide
1.7.1.2.9.5.1 Pour masquer une section
Contexte
La propriété Masquer cache la section chaque fois que vous exécutez le rapport. Par exemple, vous pouvez utiliser la propriété Masquer dans un rapport de résumé où vous voulez montrer seulement les résumés mais pas les détails des résumés. Lorsque vous appliquez la propriété Masquer à une section, la section peut devenir visible si vous explorez pour voir ce qu'elle contient. Vous pouvez appliquer cette propriété seulement d'une manière absolue. Vous ne pouvez pas l'appliquer conditionnellement à l'aide d'une formule.
754
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Procédure
Cliquez sur la section de rapport avec le bouton droit de la souris et sélectionnez Masquer (avec exploration).
1.7.1.2.9.5.2 Pour supprimer une section
Contexte
La propriété Supprimer masque également une section lorsque vous exécutez le rapport. En revanche, contrairement à la propriété Masquer, il n'est pas possible d'activer la propriété Supprimer, puis d'effectuer une exploration pour découvrir le contenu de la section. Cette propriété peut être appliquée d'une manière absolue, ou d'une manière conditionnelle à l'aide d'une formule. Cette propriété est très pratique pour créer des lettres types.
Par exemple, dans une lettre type, vous pouvez créer deux sections Détails : l'une à supprimer lorsque les ventes dépassent X$ et l'autre lorsqu'elles sont inférieures à X$.
Procédure
Cliquez sur la section de rapport avec le bouton droit de la souris et sélectionnez Supprimer (sans exploration).
1.7.1.2.9.5.3 Pour supprimer une section vide
Contexte
La propriété Supprimer la section vide masque une section qui ne contient aucune donnée. Lorsque vous y placez des objets, elles redeviennent visibles.
Procédure
Cliquez avec le bouton droit de la souris sur la section de rapport et sélectionnez Mettre en forme la section. Dans l'Expert Section, cochez la case Supprimer les sections vides.
1.7.1.2.9.6 Alignement et redimensionnement d'objets
La barre d'outils de mise en page permet d'aligner ou de redimensionner plusieurs objets simultanément. Cliquez sur un objet pour le sélectionner puis cliquez en maintenant la touche Maj ou Ctrl enfoncée pour sélectionner
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
755
d'autres d'objets. Une fois les objets à aligner ou redimensionner sélectionnés, cliquez sur un bouton de la barre d'outils pour les aligner ou les redimensionner.
Les boutons de la barre d'outils de mise en page offrent les fonctions suivantes :
Utilisez le bouton
Aligner sur la grille
pour aligner les objets sélectionnés sur la grille.
Utilisez le bouton
Aligner les côtés gauches
pour aligner le côté gauche des objets sélectionnés sur le côté gauche du dernier objet sélectionné.
Utilisez le bouton
Aligner les centres
pour aligner le centre des objets sélectionnés sur le centre du dernier objet sélectionné.
Utilisez le bouton
Aligner les côtés droits
pour aligner le côté droit des objets sélectionnés sur le côté droit du dernier objet sélectionné.
Utilisez le bouton
Aligner les sommets
pour aligner le sommet des objets sélectionnés sur le sommet du dernier objet sélectionné.
Utilisez le bouton
Aligner les milieux
pour aligner le milieu (vertical) des objets sélectionnés sur le milieu
(vertical) du dernier objet sélectionné.
Utilisez le bouton
Aligner les bases
pour aligner la base des objets sélectionnés sur la base du dernier objet sélectionné.
Redimensionne les objets sélectionnés à la même largeur que le dernier objet que vous avez sélectionné.
Redimensionne les objets sélectionnés à la même hauteur que le dernier objet que vous avez sélectionné.
Redimensionne les objets sélectionnés à la même hauteur que le dernier objet que vous avez sélectionné.
Conseil
Vous pouvez accéder à chacun de ces éléments par le biais du menu contextuel dans le concepteur incorporé.
Sélectionnez deux ou plusieurs objets et cliquez avec le bouton droit de la souris sur l'un des objets pour accéder aux menus
Aligner
ou
Taille
.
1.7.1.3 Personnalisation des rapports existants
Explique comment importer des rapports qui utilisent des formats autres que Crystal Reports, qui contiennent des pilotes non pris en charge ou qui ont été créés avec une version antérieure de SAP Crystal Reports.
Cette section explique comment utiliser, afficher et mettre à jour des versions antérieures de rapports Crystal.
756
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.7.1.3.1 Importation des versions antérieures de
SAP Crystal Reports
Les versions antérieures de rapports Crystal (fichiers .rpt) conservent leurs fonctionnalités lorsqu'elles sont ouvertes dans des versions ultérieures du SAP Crystal Reports Designer. Cependant, les restrictions suivantes s'appliquent lorsque vous ouvrez un rapport dans SAP Crystal Reports, version développeur pour Microsoft
Visual Studio :
Cartes
Grilles OLAP
Dictionnaires,
InfoViews et fichiers
QRY
Les objets carte ne sont pas pris en charge dans SAP Crystal Reports, version développeur pour Microsoft Visual Studio. Les objets carte apparaîtront vides dans le rapport.
Les objets grille OLAP ne sont pas pris en charge dans SAP Crystal Reports, version développeur pour Microsoft Visual Studio. Les rapports conçus avec des grilles OLAP ne s'ouvriront pas.
Les rapports créés à partir de Crystal Dictionaries, InfoViews et de fichiers QRY ne sont pas pris en charge dans SAP Crystal Report, version développeur pour Microsoft
Visual Studio et ne s'ouvriront pas.
Enregistrement des rapports
Les rapports Crystal créés avec les versions précédentes de SAP Crystal Reports seront mis à niveau de la nouvelle version lors de la sauvegarde du fichier.
Remarque
Un rapport enregistré peut toujours être ouvert avec les versions précédentes de SAP Crystal Reports.
Cependant, les nouvelles fonctions ou fonctionnalités ne seront pas disponibles.
1.7.1.3.2 Utilisation des rapports qui utilisent des pilotes non pris en charge
SAP Crystal Reports peut utiliser des rapports créés à partir de pilotes de base de données non pris en charge. Si le rapport contient des données enregistrées, vous pourrez exporter, imprimer ou afficher le rapport, mais la sortie contiendra les données statiques enregistrées dans le rapport. Si le rapport ne contient pas de données ou s'il est actualisé, un message d'erreur du moteur de requête s'affichera. Pour éviter les messages d'erreur, vous pouvez soit désactiver la fonction d'actualisation du rapport (pour les rapports contenant des données enregistrées) soit définir une source de données prise en charge comme emplacement.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
757
1.7.1.4 Optimisation des performances des rapports
Propose des méthodes permettant d'augmenter les performances des rapports.
Cette section vous propose des méthodes pour optimiser vos rapports en leur faisant bénéficier des améliorations apportées à SAP Crystal Reports en matière de performances. Bien que les propositions faites ici soient plus particulièrement adaptées à l'optimisation des performances des rapports diffusés dans un environnement Web à câble coaxial mince, la plupart des directives et des procédures sont applicables à tous vos rapports.
Informations associées
Evolutivité de l'application [page 64]
1.7.1.4.1 Mise à l'échelle avec SAP BusinessObjects
Enterprise
SAP BusinessObjects Enterprise étend la valeur et l'évolutivité de SAP Crystal Reports. Il propose une solution souple et gérée de création de rapports. Il vous permet d'adapter la puissance de conception de rapport de
SAP Crystal Reports sur une infrastructure modulable basée sur le Web pour la gestion d'un référentiel central de rapports, de la sécurité utilisateur et de la planification et du traitement des rapports.
Grâce à Visual Studio .NET, vous pouvez créer des applications qui peuvent accéder aux serveurs de la plateforme
SAP BusinessObjects Business Intelligence. Cela vous permet de créer un client léger que vous pouvez distribuer
à des milliers d'utilisateurs et d'utiliser les serveurs de la plateforme SAP BusinessObjects Business Intelligence pour gérer la gestion, le traitement et la planification des rapports.
Informations associées
Solutions de reporting de SAP BusinessObjects Business Intelligence [page 64]
Comparaison des architectures dans les solutions de reporting SAP Business Intelligence [page 41]
1.7.1.4.2 Transfert de la sélection d'enregistrements vers le serveur de base de données
Si vous voulez accélérer le traitement des rapports, 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.
SAP 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 à
758
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
SAP Crystal Reports. SAP 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 le rapport.
Les enregistrements superflus sont éliminés à deux niveaux : dans la base de données avec la requête SQL et dans SAP 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 à
Champs de paramètre
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'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 [page 681]
.
Champs d'expression SQL
Pour conserver des vitesses de traitement de rapports 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 d'origine 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 d'origine 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 que votre rapport 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 à SAP Crystal Reports de regrouper le rapport sur le serveur. Voir
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
759
Informations associées
1.7.1.4.3 Choix de conception pour optimiser les performances
Lorsque vous concevez vos rapports et en particulier lorsque vous concevez des rapports pour le Web, votre objectif est de permettre aux utilisateurs de ces rapports de manipuler les données qu'ils voient. En d'autres termes, d'afficher les informations sous forme résumée, pour que chaque utilisateur puisse naviguer dans le rapport rapidement puis l'explorer pour accéder à des données supplémentaires. De cette manière, le trafic sur le
Web et les temps de réponse sont réduits, car seules les données demandées par l'utilisateur sont transférées à partir du serveur de base de données.
Ce ne sont là que quelques-uns des avantages de la conception de rapports contrôlée par l'utilisateur :
● Les utilisateurs des rapports disposent d'un contrôle interactif sur le type et la quantité d'informations qu'ils affichent sur le Web.
● Le transfert de données et le trafic du réseau diminuent car seules les informations demandées par les utilisateurs sont renvoyées par le serveur de base de données.
● Lorsque les utilisateurs nécessitent une création de rapports en temps réel avec des données dynamiques sur le Web, les rapports conçus pour répondre aux besoins des utilisateurs répondent rapidement et communiquent efficacement avec le serveur de base de données.
● Les rapports deviennent plus utiles, car chaque utilisateur personnalise le contenu du rapport, créant de ce fait une solution de conception de rapports spécifique à son problème particulier de prise de décision.
Rapports de résumé
La conception et la distribution de rapports de résumé est un moyen relativement rapide de vous assurer que les utilisateurs trouvent rapidement les données dont ils ont besoin sur le Web. Un rapport de résumé peut inclure autant de données que n'importe quel autre rapport. Toutefois, en masquant la section Détails d'un rapport de résumé, vous évitez d'encombrer les utilisateurs de données dont ils n'ont peut-être pas besoin dans l'immédiat.
Lorsque la section Détails est masquée, les utilisateurs naviguent d'abord avec l'arborescence des groupes pour trouver les données souhaitées. Ensuite, en explorant le rapport, ils peuvent demander des données spécifiques qui sont rapidement renvoyées sans enregistrements superflus. Ceci est particulièrement important pour améliorer la navigation de rapports de résumé longs qui peuvent comporter des centaines, des milliers voire des dizaines de milliers de pages.
Sous-rapports à la demande
Si votre rapport contient une section qui gère un grand nombre d'enregistrements, vous pouvez placer cette section dans un sous-rapport à la demande. Un sous-rapport à la demande apparaît sous la forme d'un lien
760
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
hypertexte dans le rapport principal. Lorsque vous ouvrez le rapport principal, aucune donnée n'est extraite pour le sous-rapport à la demande tant que vous n'explorez pas le lien hypertexte.
Par exemple, supposons que lorsque vous concevez un rapport qui affiche les ventes trimestrielles de chaque employé pour chaque produit et chaque type de produit, vous souhaitiez également suivre les résultats de chaque employé en incluant des informations sur les ventes hebdomadaires. Ces données supplémentaires peuvent intéresser de nombreux utilisateurs visualisant le rapport. Dans ce cas, extrayez la portion de ventes hebdomadaires du rapport et attachez-la sous forme de sous-rapport à la demande. Les informations détaillées sur les ventes hebdomadaires sont récupérées de la base de données uniquement lorsqu'un utilisateur explore le sous-rapport à la demande.
Plusieurs objets de rapport, par exemple, de grands tableaux croisés et des diagrammes évolués, sont des candidats idéaux à inclure dans des sous-rapports à la demande, de telle sorte que l'objet ne soit pas traité avant exploration.
Vous pouvez également placer ces objets de rapport dans une section Détails masquée d'un rapport qui utilise l'option Regrouper sur le serveur. Lorsque vous effectuez cette opération, le serveur de base de données effectue la plus grande partie du traitement et seul un sous-ensemble des enregistrements est transféré du serveur sur l'ordinateur local.
Mise en relation de tables plutôt que de sous-rapports
Chaque fois que c'est possible, coordonnez vos données de rapport en reliant les tables de la base de données à l'Expert Mise en relation visuelle, plutôt qu'en reliant des sous-rapports standard, c'est-à-dire les sous-rapports qui ne sont pas des sous-rapports à la demande, au rapport principal. Comme chaque sous-rapport est exécuté comme un rapport séparé, les tables reliées présentent souvent un avantage en matière de performances.
Informations associées
Masquage des détails dans des rapports de résumé [page 688]
Insertion des sous-rapports [page 741]
Mise en relation des tables de base de données [page 650]
1.7.2 Formules - Référence
Lors de la création de formules, vous pouvez utiliser la syntaxe Crystal ou la syntaxe Basic. Presque toutes les formules écrites avec une syntaxe peuvent l'être avec l'autre syntaxe. Les rapports peuvent contenir indifféremment des formules qui utilisent la syntaxe Basic et des formules qui utilisent la syntaxe Crystal, mais une formule donnée ne peut utiliser qu'une seule syntaxe.
Si vous connaissez la syntaxe de Microsoft Visual Basic ou d'autres versions du langage Basic, la syntaxe Basic vous sera plus familière. La syntaxe Basic est en général basée sur celle de Visual Basic, à ceci près qu'elle possède des extensions pour la prise en charge de la création de rapports.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
761
Pour accéder à des descriptions et des exemples de fonctions et opérateurs spécifiques, voir le Guide de
l'utilisateur de SAP Crystal Reports.
1.7.2.1 Syntaxe Basic
Lors de la création de formules, vous pouvez utiliser la syntaxe Crystal ou la syntaxe Basic. Si vous connaissez la syntaxe de Microsoft Visual Basic ou d'autres versions du langage Basic, la syntaxe Basic vous sera plus familière.
La syntaxe Basic est en général basée sur celle de Visual Basic, à ceci près qu'elle possède des extensions pour la prise en charge de la création de rapports.
L'utilisation de la syntaxe Basic ne ralentit pas le traitement du rapport. Les rapports utilisant les formules à syntaxe Basic peuvent être exécutés sur tout ordinateur sur lequel s'exécute SAP Crystal Reports. Par ailleurs, l'utilisation de la syntaxe Basic ne nécessite pas la distribution de fichiers complémentaires avec vos rapports.
1.7.2.1.1 Principes fondamentaux de la syntaxe Basic
Fonctionnalités habituelles
● De nombreuses fonctions en syntaxe Basic fonctionnent de manière identique à leurs équivalentes dans
Visual Basic. Parmi celles-ci, on trouve les fonctions de traitement de chaînes telles que Len, Mid et Filter, les fonctions mathématiques telles que Abs, Rnd et Sin, les fonctions financières comme PV, les fonctions de raccourci de programmation telles que IIF et les fonctions de traitement de dates telles que DateSerial,
DateAdd et DateDiff.
● La plupart des opérateurs pris en charge par Visual Basic sont aussi inclus dans la syntaxe Basic. Parmi ceuxci, les opérateurs de concaténation de chaîne (&) et les littéraux de date-heure (#...#).
● La plupart des instructions et structures de contrôle utilisent la même syntaxe que dans Visual Basic. Parmi celles-ci, on trouve les instructions If, Select, Do While, Do Until, While et For/Next.
● Les commentaires et caractères de continuation de ligne de style Basic sont pris en charge, tout comme l'utilisation de nouvelles lignes, du signe deux-points et du signe égal.
Résultat d'une formule
Le résultat d'une formule, ou la valeur qui s'imprime lorsque la formule est placée dans un rapport, est appelé la valeur renvoyée par la formule. Chaque formule de SAP Crystal Reports doit renvoyer une valeur. La syntaxe
Basic effectue cela en définissant la valeur d'une variable spéciale appelée "formula". Voici par exemple une formule simple en syntaxe Basic, qui renvoie la valeur 10 : formula = 10
La valeur renvoyée par une formule peut appartenir à l'un des sept types de données simples pris en charge :
Nombre, Devise, Chaîne, Booléen, Date, Heure et Date/heure. SAP Crystal Reports prend également en charge les types plage et tableau, mais ces derniers ne peuvent pas être renvoyés par une formule.
762
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Vous devez affecter une valeur à la variable formula.
Si aucune valeur n'est affectée à la variable formula, la syntaxe Basic n'est pas complète.
Il est parfois nécessaire d'écrire une formule n'effectuant que la déclaration et l'initialisation de certaines variables globales. Ces formules sont habituellement insérées dans la section En-tête du rapport d'un rapport. Dans ce cas, affectez une valeur quelconque à la variable spéciale formula. En effet, toute formule doit retourner une valeur, même si le résultat de cette valeur n'est pas utile.
Exemple
Rem Déclaration de quelques variables globales.
Rem Ne pas oublier de définir la valeur de 'formula'.
Global x As String, y As Number, z As DateTime x = "hello" y = 10.5
z = #Aug 6, 1976# formula = 10
Types de données et variable "formula"
La variable formula peut être définie plusieurs fois à l'intérieur d'une même formule. Supposons, par exemple, qu'une société ait une politique d'expédition au titre de laquelle les commandes supérieures à 1 000 € sont couvertes par une assurance tandis que celles inférieures à ce montant ne le sont pas :
Rem Formule renvoyant une valeur de type chaîne
If {Orders.Order Amount} >= 1000 Then
formula = "Expédition assurée"
Else
formula = "Expédition ordinaire"
End If
La variable formula renvoie la valeur de la chaîne de texte "Expédition assurée" si la valeur du champ de base de données {Commandes.Montant commande} est supérieure ou égale à 1 000, et renvoie la valeur de la chaîne de texte "Expédition ordinaire" dans le cas contraire. Notez que cette variable apparaît deux fois dans l'exemple cidessus.
Si une valeur d'un certain type est affectée à la variable formula, elle ne peut pas se voir affectée un type différent dans la même formule. Par exemple, remplacer la chaîne "Expédition ordinaire" dans l'exemple ci-dessous par le nombre 10 provoquerait une erreur, puisque la variable spéciale formula a tout d'abord été affectée à la valeur de chaîne "Expédition assurée".
La raison de cette restriction réside dans le fait que SAP Crystal Reports doit connaître à l'avance le type renvoyé par une formule pour pouvoir allouer un espace suffisant aux valeurs renvoyées. En effet, les différents types possèdent des exigences de stockage différentes. Le fait que les options de mise en forme d'un champ de formule dépendent de son type constitue une autre raison. Un champ numérique possède, par exemple, des options de mise en forme de nombres, telles que le nombre de décimales à afficher, ce qui ne s'applique pas aux champs de type chaîne.
Remarque
La variable spéciale formula ne doit pas être déclarée, contrairement aux autres variables utilisées dans la syntaxe Basic.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
763
Respect de la casse
La syntaxe Basic ne fait pas de différence entre les majuscules et minuscules. Ceci signifie que "formula",
"Formula" et "FORMULA" sont tous considérés comme étant identiques. Ceci est vrai pour tous les noms de variables, fonctions et mots clés utilisés dans les formules en syntaxe Basic.
Remarque
Seules les chaînes échappent à cette règle. La chaîne "Bonjour" est différente de la chaîne "bonjour".
1.7.2.1.1.1 Comparaison des formules à syntaxe Basic avec les fonctions de Visual Basic
L'utilisation de la variable formula est similaire à l'écriture d'une fonction nommée formula dans Visual Basic.
Observez la formule en syntaxe Basic suivante :
Rem Formule renvoyant une valeur de type chaîne.
Rem La fonction Rnd renvoie un nombre aléatoire entre 0 et 1.
Rem between 0 and 1
If Rnd > 0.9 Then
formula = "Vous avez gagné !"
Else
formula = "Désolé. Réessayez."
End If
La formule ci-dessus renvoie la valeur de type chaîne "Vous avez gagné !" si le nombre aléatoire renvoyé par Rnd est supérieur à 0.9 et la valeur de type String "Désolé. Réessayez." dans le cas contraire.
La formule ci-dessus pourrait être écrite comme la fonction Visual Basic suivante :
Rem Les lignes de code suivantes sont en Visual Basic.
Function formula()
If Rnd > 0.9 Then
formula = "Vous avez gagné !"
Else
formula = "Désolé. Réessayez."
End If
End Function
1.7.2.1.2 Commentaires (syntaxe Basic)
Les commentaires de formules sont des notes incluses dans une formule pour en expliquer la conception et le fonctionnement. Les commentaires ne s'impriment pas et n'ont aucune incidence sur la formule, ils ne s'affichent que dans l'Editeur de formule. Vous pouvez utiliser des commentaires pour expliquer le but d'une formule ou les
étapes qui ont été nécessaires pour la créer.
Les commentaires fonctionnent de la même manière que dans Visual Basic. Ils commencent par Rem ou une apostrophe.
764
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Remarque
Un commentaire commençant par Rem est une instruction séparée et doit commencer sur une nouvelle ligne ou être séparé de l'instruction précédente par un signe deux-points.
Rem Voici un commentaire.
Rem Voici un autre commentaire.
formula = 10 'Ainsi que tout texte se trouvant après une apostrophe.
formula = 20 : Rem Voici également un commentaire.
'Les commentaires peuvent être placés après le texte de la formule.
1.7.2.1.3 Champs (syntaxe Basic)
Un grand nombre de champs que vous utilisez lors de la création d'un rapport peuvent également être utilisés dans les formules. Vous pouvez, par exemple, faire référence aux champs de base de données, de paramètre, de total cumulé, d'expression SQL, de résumé et de nom de groupe. Vous pouvez également faire référence à d'autres champs de formule dans votre formule.
Le moyen le plus facile pour insérer un champ dans votre rapport consiste à cliquer deux fois sur un nom de champ dans l'arborescence Champs du rapport. Ceci permet d'être sûr que la syntaxe utilisée pour le champ est correcte.
Aspect des champs dans les formules
Les noms des champs de base de données, de paramètre, de formule, de total cumulé et d'expression SQL sont inclus dans des accolades.
Les noms de champs de base de données sont pris dans la base de données :{Employee.Last Name}
Les noms des champs de paramètre, de formule, de total cumulé et d'expression SQL sont spécifiés au moment de leur création.
● les champs de paramètre incluent un point d'interrogation : {?my parameter field}
● les champs de formule comprennent un signe @ :{@another formula }
● les champs de total cumulé comprennent un signe # :{#my running total}
● les champs d'expression SQL comprennent un signe % :{%my SQL expression}
Les champs de résumé et de nom de groupe ressemblent à des appels de fonction. Toutefois, ils constituent de véritables notations abrégées pour un champ de rapport.
● champ de résumé d'une somme :Sum({Orders.Order Amount}, {Orders.Ship Via})
● champ de nom de groupe :GroupName({Orders.Ship Via})
Exemple
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
765
La formule dans cet exemple utilise la base de données Xtreme.mdb. Pour connaître la durée de la livraison d'un produit à partir de la date de commande, il suffit de soustraire le champ de base de données Date d'expédition du champ de base de données Date de commande : formula = {Orders.Ship Date} - {Orders.Order Date}
Pour trouver le montant total d'un produit commandé, multipliez son prix unitaire par la quantité commandée : formula = {Orders Detail.Unit Price} * _
{Orders Detail.Quantity}
Remarque
Cet exemple utilise le caractère de continuation de ligne " _ " (espace + tiret de soulignement). Voir
.
Pour calculer un prix de vente égal à 80 % du prix unitaire d'origine : formula = {Orders Detail.Unit Price} * 0.80
1.7.2.1.4 Instructions (syntaxe Basic)
Une formule dans la syntaxe Basic est constituée d'une série d'instructions. Chaque instruction doit être séparée de la précédente par une nouvelle ligne ou deux points. En général, chaque commande utilise une ligne, mais il est possible de continuer une instruction sur la ligne suivante en utilisant le caractère de continuation de ligne, qui est constitué d'un espace suivi par un tiret de soulignement.
'Déclarer la variable x pour qu'elle contienne un nombre.
Dim x As Number
'Attribue la valeur 30 à x.
x = 10 + 10 + 10
'Attribue également la valeur 30 à x.
x = 10 + _
10 + 10
'Les caractères de continuation de ligne _ peuvent également être utilisés dans les commentaires.
Dim y as String
'Trois instructions séparées par deux signes deux-points.
y = "Bonjour" : x = 30 : formula = True
1.7.2.1.5 Affectation (syntaxe Basic)
Utilisez le signe égal (=) pour effectuer des affectations. Le mot clé Let peut également être utilisé.
Exemple x = 10
Let y = 20
766
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.7.2.1.6 Types de données simples (syntaxe Basic)
Cette section décrit les types de données simples disponibles dans SAP Crystal Reports.
1.7.2.1.6.1 Nombre (syntaxe Basic)
Saisissez les nombres sans signe de séparation des milliers et sans symbole monétaire. Vous souhaiterez généralement que les nombres soient formatés en tant que résultat d'une formule mais pas dans la formule ellemême.
Voici des exemples de valeurs numériques :
10000
-20
1.23
1.7.2.1.6.2 Devise (syntaxe Basic)
Utilisez la fonction CCur pour créer une valeur Devise. Le premier C de CCur signifie conversion et la fonction peut
être utilisée pour convertir des valeurs numériques en valeurs monétaires.
CCur (10000)
CCur (-20)
CCur (1.23)
1.7.2.1.6.3 Chaîne (syntaxe Basic)
Les chaînes sont utilisées pour contenir du texte. Le texte doit être placé entre des guillemets doubles (") et ne peut pas être réparti sur plusieurs lignes. Si vous voulez inclure des guillemets doubles dans une chaîne, utilisez deux guillemets doubles consécutifs.
"This is a string."
"123"
"The word ""hello"" is quoted."
Vous pouvez extraire des éléments individuels ou sous-chaînes d'une chaîne en précisant la position du caractère ou une plage de positions de caractères. Les valeurs négatives sont permises ; elles indiquent que la position de départ est le dernier caractère de la chaîne.
"hello" (2) 'Equal to "e"
"hello" (-5) 'Equal to "h"
"604-555-1234" (1 to 3) 'Equal to "604"
"abcdef" (-3 to -1) 'Equal to "def"
Vous pouvez également extraire des sous-chaînes d'une chaîne à l'aide des fonctions Left, Right et Mid.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
767
1.7.2.1.6.4 Booléen (syntaxe Basic)
Les valeurs booléennes valables sont :
True
False
Remarque
Yes (oui) peut être utilisé à la place de True et No (non) à la place de False.
1.7.2.1.6.5 Date, Heure et Date/heure (syntaxe Basic)
Le type Date/heure peut contenir des dates-heures, des dates seules ou des heures seules. Le type Date ne prend en compte que les dates et le type Heure ne prend en compte que les heures. Les types Date et Heure sont plus efficaces que le type Date/heure, et peuvent ainsi être utilisés dans des situations dans lesquelles les fonctionnalités et la souplesse supplémentaires du type Date/heure ne sont pas nécessaires.
Visual Basic ne prend pas en charge des types séparés pour le traitement des dates seules ou des heures seules.
La syntaxe Basic de Date/heure est similaire à celle du type Date de Visual Basic.
Vous pouvez créer directement des valeurs de type date/heure en utilisant la construction des littéraux de dateheure. Pour cela, il faut taper les données date-heure entre deux signes (#). De nombreux formats sont pris en charge, tout comme dans Visual Basic.
Remarque
Les littéraux de date-heure ne peuvent pas occuper plusieurs lignes.
Exemples
#8/6/1976 1:20 am#
#August 6, 1976#
#6 Aug 1976 13:20:19#
#6 Aug 1976 1:30:15 pm#
#8/6/1976#
#10:20 am#
Même si #10:20 am# semble être du type Heure et #8/6/1976# semble être du type Date, ce n'est pas le cas.
Ces expressions sont toutes deux au format Date/heure, comme c'est le cas pour tous les littéraux de date-heure.
Vous pourriez, par exemple, penser que l'expression #10:20 am# est une valeur de type date/heure dont la partie date est nulle. Pour la convertir en type Heure, utilisez CTime (#10:20 am#).
Au lieu d'utiliser des littéraux de date-heure, vous pouvez utiliser la fonction CDateTime pour convertir une valeur de type chaîne en une valeur de type date/heure. Par exemple :
CDateTime ("8/6/1976 1:20 am")
CDateTime ("10:20 am")
Il y a cependant une différence fondamentale entre l'utilisation des littéraux de date-heure et l'utilisation faite cidessus de la fonction CDateTime. Les littéraux de date-heure utilisent toujours les formats de date anglo-
768
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
américains et non les paramètres régionaux de l'ordinateur particulier sur lequel s'exécute SAP Crystal Reports.
Ainsi, les exemples de littéraux de date-heure ci-dessus devraient fonctionner sur tous les ordinateurs. D'un autre côté, sur un système français, vous pourriez utiliser des constructions comme :
CDateTime ("22 aout 1997") 'Identique à #Aug 22, 1997#.
Des valeurs de date peuvent être construites à l'aide de CDate et des valeurs d'heure à l'aide de CTime :
CDate ("Aug 6, 1969")
CDate (1969, 8, 6) 'Spécifier l'année, le mois, le jour.
'Convertit l'argument DateHeure en Date.
CDate (#Aug 6, 1969#)
CTime ("10:30 am")
CTime (10, 30, 0) 'Spécifier l'heure, les minutes, les secondes.
CTime (#10:30 am#)
1.7.2.1.7 Types de données plage (syntaxe Basic)
Les plages sont conçues pour prendre en compte un intervalle de valeurs. Les types Plage sont disponibles pour tous les types simples à l'exception du type Booléen. C'est-à-dire : Plage numérique, Plage monétaire, Plage de chaînes, Plage de dates, Plage horaire et Plage de date/heure. Vous pouvez générer des plages en utilisant les mots clés To, _To, To_, _To_, Is >, Is >=, Is < et Is <=. En général, To est utilisé pour les plages limitées aux deux extrémités, et Is est utilisé pour les plages ouvertes d'un côté et fermées de l'autre (limitées à une seule extrémité). Le caractère de soulignement est utilisé pour indiquer si la limite est inclue ou non dans la plage.
Exemples de valeurs de plage de nombres
Plage des nombres compris entre 2 et 5, en incluant ces deux nombres
2 To 5
Plage des nombres compris entre 2 et 5, en excluant 2 et en incluant 5
2 _To 5
Tous les nombres inférieurs ou égaux à 5
Is <= 5
Tous les nombres inférieurs à 5
Is < 5
Exemples de plage de valeurs de type date/heure
#Jan 5, 1999# To #Dec 12, 2000#
Is >= #Jan 1, 2000#
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
769
Plages dans les formules
Il existe vingt-sept fonctions dans SAP Crystal Reports pour spécifier des plages de dates. Par exemple, la fonction LastFullMonth spécifie une plage de valeurs de dates qui comprend toutes les dates allant du premier au dernier jour du mois précédent. Ainsi, si la date d'aujourd'hui est le 15 septembre 1999, LastFullMonth donne le même résultat que la plage de dates CDate (#Aug 1, 1999#) To CDate (#Aug 31, 1999#).
Les plages sont souvent utilisées avec des expressions If ou Select. L'exemple suivant concerne le calcul de la notation des étudiants au moyen de lettres en fonction de la note chiffrée obtenue au test. Les notes supérieures ou égales à 90 obtiennent "A", les notes comprises entre 80 et 90, sans inclure 90 obtiennent "B" et ainsi de suite.
Select Case {Student.Test Scores}
Case Is >= 90
formula = "A"
Case 80 To_ 90
formula = "B"
Case 70 To_ 80
formula = "C"
Case 60 To_ 70
formula = "D"
Case Else
formula = "F"
End Select
L'exemple ci-dessus utilise l'instruction Select, qui est examinée plus en détail dans
l'opérateur In. Par exemple : formula = 5 In 2 To 10 'True formula = 5 In 2 To_ 5 'False formula = 5 In 2 To 5 'True
Les fonctions Maximum et Minimum peuvent être utilisées pour trouver les limites d'une plage : formula = Maximum (2 To 10) 'Returns 10
1.7.2.1.8 Types de données tableau (syntaxe Basic)
Les tableaux dans SAP Crystal Reports sont des listes ordonnées de valeurs de type identique. Ces valeurs portent le nom d'éléments de tableau. Les éléments d'un tableau peuvent être de type simple ou de type plage. La fonction Array permet de créer un tableau.
Les tableaux sont le plus utiles lorsqu'ils sont utilisés avec des variables. Les variables vous permettent de modifier les éléments individuels d'un tableau et de le redimensionner pour qu'il comprenne plus d'éléments.
Cette possibilité permet d'étendre considérablement les possibilités du langage de formules pour effectuer des calculs complexes.
Vous pouvez, par exemple, cumuler des valeurs de champs de base de données dans une variable tableau globale dans une formule de niveau détail, puis utiliser une formule dans un pied de page de groupe pour effectuer un calcul basé sur ces valeurs. Ceci vous permet de réaliser une vaste gamme d'opérations de synthèse personnalisées.
770
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Exemples
Tableau de trois valeurs numériques. Le premier élément est 10, le deuxième est 5 et le troisième est 20.
Array (10, 5, 20)
Tableau de sept valeurs de type chaîne :
Array ("Sun", "Mon", "Tue", "Wed", "Th", "Fri", "Sat")
Tableau de deux valeurs de plage date/heure :
Array (#Jan 1, 1998# To #Jan 31, 1998#, _
#Feb 1, 1999# To #Feb 28, 1999#)
Vous pouvez extraire des éléments individuels d'un tableau en utilisant des parenthèses contenant l'index de l'élément souhaité. Cela s'appelle indicer le tableau :
Array (10, 5, 20) (2) ' = 5
Remarque
Les tableaux dans la syntaxe Basic sont indexés à partir de 1 (ce qui signifie que le premier élément a le numéro d'index 1). Dans Visual Basic, les tableaux sont par contre indexés à partir de 0 par défaut. Les tableaux peuvent toutefois être indexés à partir de 1 dans Visual Basic en utilisant l'instruction Option Base.
Les plages numériques peuvent aussi être utilisées pour indicer les tableaux. Le résultat est un autre tableau. Par exemple :
Array (10, 5, 20) (2 To 3) ' = Array (5, 20)
1.7.2.1.9 Variables (syntaxe Basic)
Une variable représente un élément de données spécifique, ou une valeur, et joue le rôle de place réservée pour cette valeur. Lorsqu'une variable est rencontrée dans une formule, la valeur de cette variable est recherchée puis utilisée dans la formule. Contrairement à une valeur constante qui est fixe et invariable, différentes valeurs peuvent être affectées de manière répétée à une variable. Vous affectez une valeur à une variable, qui la conserve jusqu'à ce vous lui en affectiez une nouvelle. En raison de cette souplesse, vous devez déclarer les variables avant de les utiliser pour que SAP Crystal Reports en ait connaissance et comprenne de quelle manière vous entendez les utiliser.
Cette section décrit les composants clés des variables et vous montre comment créer des variables et leur affecter des valeurs.
Si vous vouliez créer un rapport sur les clients par indicatif régional, vous pourriez créer une variable qui extrait cette information de numéro de fax du client. L'exemple ci-dessous utilise une variable nommée Codezone :
Dim areaCode As String areaCode = Left ({Customer.Fax}, 3)
Rem Vous pouvez également utiliser : areaCode = {Customer.Fax} (1 To 3)
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
771
La première ligne de l'exemple est la déclaration de variable ; un nom et un type sont affectés à la variable. Le champ de base de données {Clients.Fax} est un champ de type chaîne et la fonction Left extrait les trois premiers caractères de sa valeur courante. Cette valeur est ensuite affectée à la variable Codezone.
1.7.2.1.9.1 Déclaration des variables à l'aide de Dim (syntaxe
Basic)
Avant d'utiliser une variable dans une formule, vous devez la déclarer. Une variable peut contenir des valeurs d'un type donné. Les types autorisés sont les sept types simples (Nombre, Devise, Chaîne, Booléen, Date, Heure et
Date/heure), les six types de plages (Plage de nombres, Plage de devises, Plage de chaînes, Plage de dates, Plage d'heures et plage de valeurs de type date/heure) et les variables contenant des tableaux des types déjà mentionnés. En tout, une variable peut donc avoir 26 différents types.
Lorsque vous déclarez une variable, vous spécifiez également son nom. Une variable ne peut pas avoir le même nom qu'une fonction, un opérateur ou un autre mot clé valable dans la syntaxe Basic. Par exemple, votre variable ne peut pas être nommée Sin, Mod ou If car Sin est une fonction intégrée, Mod est un opérateur intégré et If est un mot clé intégré. Lors de la saisie de formules dans l'éditeur, les noms des fonctions intégrées, des opérateurs et autres mots-clés apparaissent dans des couleurs différentes. Ceci permet de remarquer facilement si le nom de variable présente un conflit.
Une fois déclarée, une variable peut être utilisée dans la formule. Vous pouvez, par exemple, souhaiter lui affecter une valeur initiale :
Dim x As Number 'Declare x to be a Number variable x = 10 'Assign the value of 10 to x
Vous pouvez déclarer plus d'une variable par ligne en séparant leurs déclarations par des virgules :
Dim x As Number, y as String, z as DateTime Range x = 10 : y = "hello" z = #Jan 1, 1999# To #Jan 31, 1999#
Déclaration des variables sans spécifier immédiatement leur type
En général, le type d'une variable ne nécessite pas d'être explicitement spécifié lors de sa déclaration. Dans ce cas, le type de la variable est déterminé par sa première assignation. Ceci est similaire à la variable spéciale formula. Ceci diffère de Visual Basic, pour lequel une variable qui ne s'est pas vue assignée un type lors de sa déclaration prend le type Variant. Toutefois, dans la pratique, cela signifie que les formules peuvent être écrites dans un style similaire à celui qui serait utilisé si une variable de type Variant de Visual Basic était utilisée.
Dim p 'The type of p is not known yet p = "bye" 'The type of p is now set to be String
Dim q 'The type of q is not known yet q = Array ("hello", p) 'q is a String Array
'Error- p is a String variable and cannot hold a Number p = 25
Dim r
'r is a Number variable, and holds the value 5 r = (10 + 5) / 3
'The types of a and c are not known yet
772
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Dim a, b As Boolean, c b = False
'The type of a is now set to Boolean
'and its value is False a = b
'The type of c is now set to Number and its value is 17 c = 2 + 3 * 5
Exemples de déclarations et d'initialisations de variables de plages
Dim gradeA, quarter
'The type of gradeA is set to Number Range gradeA = 90 To 100
'The type of quarter is set to Date Range quarter = CDate (1999, 10, 1) To CDate (1999, 12, 31)
1.7.2.1.9.2 Etendue de variables (syntaxe Basic)
Les étendues de variables servent à définir dans quelle mesure les variables d'une formule sont utilisables par les autres formules. Il existe trois niveaux d'étendues dans SAP Crystal Reports :
● Locale
● Globale
● Partagée
Chaque variable a une étendue et celle-ci est spécifiée lors de la déclaration de la variable.
1.7.2.1.9.2.1 Variables locales (syntaxe Basic)
Les variables à étendue locale, appelées également variables locales, sont déclarées à l'aide des mots clés Dim ou
Local. Les expressions ci-dessous sont équivalentes.
Local x As Number
Dim y As Number
Les variables locales sont limitées à une seule formule et à une seule évaluation de cette formule. Ceci signifie que vous ne pouvez pas accéder à la valeur d'une variable locale d'une formule à partir d'une autre formule.
Exemple
Rem Formula A
Local x as Number x = 10 formula = x
Rem Formula B
EvaluateAfter ({@Formula A})
Local x as Number formula = x + 1
L'appel de fonction EvaluateAfter ({@Formule A}) garantit que la formule B sera évaluée après la formule A. La formule A renvoie la valeur 10 et la formule B renvoie la valeur 1. La formule B ne peut pas accéder à la variable x de la formule A et ne peut donc pas utiliser la valeur 10 et lui ajouter 1. Au lieu de cela, elle utilise la valeur par
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
773
défaut, qui est égale à 0, de la variable locale x non initialisée trouvée dans la formule B, et lui ajoute 1, ce qui donne 1.
Vous pouvez aussi créer des variables locales ayant le même nom mais de types différents dans différentes formules. Par exemple, les déclarations de type dans les formules A et B n'entrent pas en conflit avec :
Rem Formula C
Local x as String x = "hello" formula = x
Les variables locales sont les plus efficaces des trois étendues. En outre, elles n'interfèrent pas les unes avec les autres dans différentes formules. C'est pourquoi il est préférable que les variables soient déclarées comme locales chaque fois que possible.
1.7.2.1.9.2.2 Variables globales (syntaxe Basic)
Les variables globales utilisent le même bloc de mémoire pour stocker une valeur sur l'ensemble du rapport principal. Cette valeur est alors utilisable par toutes les formules qui déclarent la variable, à l'exception de celles situées dans les sous-rapports. Vous déclarez une variable globale comme dans l'exemple suivant :
Global y As String
Etant donné que les variables globales partagent leurs valeurs sur l'ensemble du rapport principal, vous ne pouvez pas déclarer une variable globale dans une formule avec un type puis déclarer une variable globale portant le même nom dans une formule différente avec un type différent.
Utilisation des variables globales
Les variables globales sont souvent utilisées pour effectuer des calculs complexes lorsque le résultat d'une formule dépend du groupement et de la disposition de page du rapport imprimé réel. Ceci est obtenu en créant plusieurs formules, en les plaçant dans différentes sections du rapport et en faisant interagir les différentes formules par le biais de variables globales.
Exemple
Rem Formula C
Global x as Number x = 10 formula = x
Rem Formula D
WhileReadingRecords
Global x as Number x = x + 1 formula = x
Si la formule C est placée dans l'en-tête du rapport et que la formule D est placée dans une section Détails, la formule C sera évaluée avant la formule D. La formule C sera évaluée une fois puis la formule D sera évaluée pour chaque enregistrement apparaissant dans la section Détails. La formule C renvoie 10. Pour le premier enregistrement de détail, la formule D renvoie 11. Ceci est dû au fait que la valeur 10 de x est conservée depuis le
774
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
moment où elle a été définie par la formule C. La formule D ajoute alors 1 à cette valeur, en donnant à x la valeur 11, puis renvoie 11. Pour le deuxième enregistrement de détail, la formule D renvoie 12, en ajoutant 1 à la valeur précédente de x qui était 11. Ce processus se poursuit sur les autres enregistrements de détail restants.
L'appel de la fonction WhileReadingRecords demande à SAP Crystal Reports de réévaluer la formule D au fur et à mesure qu'elle est lue dans chaque enregistrement du rapport. Sinon, étant donné que la formule ne contient aucun champ de base de données, le programme l'évalue automatiquement une fois pour toutes avant de lire les enregistrements de la base de données. La formule renverra alors toujours la valeur 11 et non pas 11, 12, 13, ... au fur et à mesure du traitement des enregistrements successifs.
Si l'expression x = x + 1 est remplacée par x = x + {Détails des commandes.Quantité}, vous créez l'effet d'un total cumulé fondé sur {Détails des commandes.Quantité}, bien qu'il commence à 10 et non à 0 à cause de la formule
C. Dans ce cas, vous pouvez omettre l'appel à la fonction WhileReadingRecords, car, étant donné que la formule contient un champ de base de données, l'appel se fera automatiquement.
1.7.2.1.9.2.3 Variables partagées (syntaxe Basic)
Les variables partagées utilisent le même bloc de mémoire pour stocker la valeur d'une variable sur l'ensemble du rapport principal et de ses sous-rapports. Ainsi, les variables partagées sont encore plus générales que les variables globales. Pour utiliser une variable partagée, déclarez-la dans une formule du rapport principal comme dans l'exemple suivant :
Shared x As Number x = 1000 et déclarez-la dans une formule d'un sous-rapport comme dans l'exemple suivant :
Shared x as Number
Pour qu'elles puissent être utilisées, il faut déclarer les variables partagées et leur affecter une valeur avant qu'elles puissent être communiquées entre le rapport principal et le sous-rapport.
1.7.2.1.9.3 Déclaration des variables de tableau (syntaxe
Basic)
Il existe différentes manières de déclarer des variables de tableau. La première manière consiste à utiliser des parenthèses vides et déclarer explicitement le type du tableau :
'Déclarer x comme variable globale de type tableau numérique.
Global x () As Number
'Initialiser x.
x = Array (10, 20, 30)
'Déclarer y comme variable partagée de type tableau de plages de chaînes.
Shared y () As String Range
'Initialiser y.
y = Array ("A" To "C", "H" To "J")
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
775
La seconde manière consiste à déclarer la variable sans spécifier qu'il s'agit d'un tableau et sans donner son type, et attendre la première assignation de la variable pour spécifier complètement son type :
'Déclarer y comme variable locale, mais ne pas spécifier son type.
Dim y
'y est maintenant de type tableau de chaînes y = Array ("Sun", "Mon", "Tue", "Wed", "Th", _
"Fri", "Sat")
La troisième manière consiste à déclarer la variable en tant que tableau sans complètement spécifier son type jusqu'à la première assignation. En prenant compte de la déclaration de y ci-dessus :
'Déclarer z comme variable locale et tableau.
Local z()
'z devient Array ("Lun", "Mar") et est un tableau de chaînes.
z = y(2 to 3)
La quatrième manière consiste à spécifier complètement la taille du tableau durant la déclaration. Si vous utilisez cette technique, le tableau est automatiquement créé et les valeurs par défaut sont utilisées pour le remplir. Par exemple, pour un tableau de nombres, chaque élément est initialisé à 0 et pour un tableau de chaînes, chaque
élément est initialisé comme chaîne vide "". Puisque ce type de déclaration crée le tableau, vous devez spécifier son type avec la clause As pour que SAP Crystal Reports puisse déterminer la taille d'espace de stockage à réserver pour le tableau.
Dim a(2) As String a(1) = "good" a(2) = "bye"
'L'opérateur & peut être utilisé pour concaténer les chaînes ; la formule renvoie la chaîne "au revoir".
formula = a(1) & a(2)
Affectation des valeurs aux éléments d'un tableau
Vous pouvez affecter des valeurs aux éléments d'un tableau et également les utiliser pour d'autres calculs.
Global x() As String x = Array ("hello", "bye", "again")
' x == Array ("hello", "once", "again").
x (2) = "once"
'L'instruction ci-dessous provoque une erreur si elle n'est pas accompagnée d'un commentaire car la taille du tableau est égale à 3.
'x (4) = "zap"
'La formule renvoie la chaîne "BONJOUR".
formula = UCase (x (1))
Les mots clés Redim et Redim Preserve peuvent être utilisés pour redimensionner un tableau si vous voulez lui ajouter des données supplémentaires. Redim efface d'abord le contenu précédent du tableau avant de le redimensionner tandis que Redim Preserve conserve ce contenu.
Dim x () As Number
Redim x (2) ' x = Array (0, 0) x (2) = 20 ' x = Array (0, 20)
Redim x (3) ' x = Array (0, 0, 0) x (3) = 30 ' x = Array (0, 0, 30)
Redim Preserve x (4) ' x = Array (0, 0, 30, 0) formula = "finished"
776
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Tableaux et boucles For/Next
L'exemple suivant crée puis utilise le tableau Array (10, 20, 30, ..., 100) à l'aide d'une boucle For/Next.
La formule ci-dessous renvoie le nombre 20.
Dim b (10) As Number
Dim i
For i = 1 To 10
b(i) = 10 * i
Next i formula = b(2)
Plusieurs variables peuvent être créées dans une instruction unique, en séparant leur déclaration par des virgules.
Informations associées
Boucles For/Next (syntaxe Basic) [page 791]
1.7.2.1.9.4 Valeurs par défaut pour les types simples
(syntaxe Basic)
Une variable non initialisée contient la valeur par défaut de son type. En général, ce n'est pas une bonne habitude de programmation que de s'appuyer sur les valeurs par défaut des types. Par exemple, initialisez toutes les variables locales de votre formule, initialisez toutes les variables globales d'une formule placée dans l'en-tête du rapport et initialisez toutes les variables partagées d'une formule placée dans l'en-tête du rapport principal.
Lorsqu'un tableau est redimensionné à l'aide du mot clé Redim, les entrées sont remplies avec la valeur par défaut du type.
Valeurs par défaut
● Nombre
0
● Devise
CCur (0)
● Chaîne
"" 'Chaîne vide.
● Date
CDate (0, 0, 0) 'Valeur de date nulle.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
777
● Heure
Valeur d'heure nulle. Valeur contenue dans une variable Heure non initialisée.
● DateHeure
Valeur de type date/heure nulle. Valeur contenue dans une variable DateHeure non initialisée.
Remarque
Il n'est pas recommandé que vos formules reposent sur les valeurs de variables de plage ou de tableau non initialisées.
Informations associées
Types de données simples (syntaxe Basic) [page 767]
1.7.2.1.9.5 Conversions de type automatiques (syntaxe
Basic)
Généralement, dans SAP Crystal Reports, les valeurs d'un type ne peuvent pas être utilisées là où les valeurs d'un autre type sont attendues sans fournir explicitement une fonction de conversion de type. Par exemple :
Dim postalCode as String
'Erreur- une valeur numérique est affectée à une variable de type chaîne.
postalCode = 10025
'OK- utiliser la fonction de conversion de type CStr pour créer "10025".
postalCode = CStr (10025, 0)
Cependant, quelques conversions sont effectuées automatiquement :
● nombre en devise
● date en date/heure
● Type simple à valeur de plage du même type simple sous-jacent
Par exemple, les affectations suivantes sont correctes :
Dim cost As Currency
'Identique à : cost = CCur (10) cost = 10
Dim orderDate As DateTime
'Identique à : orderDate = CDateTime (1999, 9, 23, 0, 0, 0) orderDate = CDate (1999, 9, 23)
Dim aRange As Number Range
'Identique à : aRange = 20 To 20 aRange = 20
Dim aRangeArray () As Number Range
'Identique à : aRangeArray = Array (10 To 10, 20 To 25, 2 To 2) aRangeArray = Array (10, 20 To 25, 2)
778
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Remarque
Les conversions dans le sens opposé ne sont pas autorisées. Par exemple :
Dim num As Number num = 5 + CCur (10) 'Ceci produit une erreur.
' Convert to Number type using the CDbl function.
num = CDbl (5 + CCur (10))
5 est converti en CCur (5) et ajouté à CCur (10) pour donner CCur (15). Cependant, cette valeur monétaire ne peut pas être affectée automatiquement à la variable numérique num puisque les conversions automatiques de devise en nombre ne sont pas permises. De même, un argument numérique peut être affecté à des fonctions acceptant un argument monétaire, et l'argument numérique sera converti en argument monétaire alors qu'il n'est pas possible d'affecter un argument monétaire aux fonctions acceptant un argument numérique sans d'abord convertir la valeur monétaire en valeur numérique à l'aide de la fonction CDbl.
1.7.2.1.10 Fonctions (syntaxe Basic)
Les fonctions sont des procédures ou sous-programmes intégrés servant à évaluer, calculer ou transformer des données. Quand vous appelez une fonction, le programme effectue l'ensemble des opérations définies dans celleci sans que vous ayez besoin de spécifier chaque opération séparément.
1.7.2.1.10.1 Présentation générale des fonctions (syntaxe
Basic)
Lorsque vous utilisez une fonction dans une formule, tapez le nom de la fonction et fournissez les arguments requis. Par exemple, la fonction Len requiert un argument de type chaîne et calcule la longueur de la chaîne. La formule ci-dessous renvoie le nombre 5.
Dim x As String x = "hello" formula = Len (x)
Si les arguments requis par la fonction sont fournis dans un type incorrect, une erreur se produit. Par exemple, un appel à la fonction Len (3) produirait une erreur puisque Len n'accepte pas d'argument numérique.
Les fonctions peuvent quelquefois accepter des nombres ou des types d'arguments différents. Par exemple,
CDate pourrait accepter un argument composé d'une chaîne unique pour former une valeur de type date ou composé de 3 valeurs numériques correspondant respectivement à l'année, au mois et au jour pour former
également une valeur de type date. Voir
Date, Heure et Date/heure (syntaxe Basic) [page 768]
.
Exemple avec la fonction Mid
Dim x as String x = "hello"
'Commencer à la position 2, aller à la fin de la chaîne formula = Mid (x, 2) 'formula a maintenant pour valeur "onjour"
'Start at position 2, extract 1 character formula = Mid (x, 2, 1) 'formula a maintenant pour valeur "o"
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
779
Les classes de fonctions sont les suivantes : Mathématiques, Résumé, Finances, Chaîne, Date/heure, Plage de dates, Tableau, Conversion de type, Raccourcis de programmation, Moment d'évaluation, Statut de l'impression,
Propriétés du document et Fonctions s Il existe aussi certaines fonctions spécifiques aux formules de mise en forme conditionnelle.
Fonctions similaires à celles de Visual Basic
Les groupes Mathématique, Finance, Chaîne, Date/heure, Conversions de type et Raccourcis de programmation sont en majorité composés de fonctions familières aux utilisateurs de Visual Basic. La plupart des fonctions sont prévues pour fonctionner de la même manière que les fonctions Visual Basic du même nom.
● Les fonctions possèdent parfois plus de syntaxes d'arguments que celles disponibles dans Visual Basic.
La fonction CDate prend par exemple en charge la forme Visual Basic permettant de créer une valeur de type date depuis une valeur de type chaîne, comme pour CDate ("Sept 18, 1999") mais prend aussi en charge une forme permettant de créer une valeur de type date en fournissant l'année, le mois et le jour en tant qu'arguments numériques comme dans CDate (1999, 9, 18). Les syntaxes d'argument sont indiquées dans l'arborescence des fonctions.
● Certaines fonctions prises en charge par la syntaxe Basic ne sont pas répertoriées dans l'arborescence des fonctions de la syntaxe Basic. C'est parce qu'elles sont équivalentes aux fonctions de la syntaxe Basic déjà présentes dans l'arborescence.
Par exemple, la fonction Length, qui est la fonction traditionnelle de la syntaxe Crystal pour trouver la longueur d'une chaîne, n'est pas répertoriée dans l'arborescence des fonctions de la syntaxe Basic Syntax car elle fonctionne de manière identique à la fonction Len.
1.7.2.1.10.2 Fonctions de résumé (syntaxe Basic et Crystal)
Le groupe de fonctions de résumé fournit des fonctions permettant la création de champs de résumé tels que :
Sum({Orders.Order Amount}, {Orders.Ship Via})
Les champs de résumé sont normalement créés à l'aide des dialogues Insérer un résumé ou Insérer un total général. Vous pouvez aussi créer un champ de résumé destiné à être utilisé exclusivement par votre formule en saisissant les arguments de l'une des fonctions figurant dans la section Fonctions de résumé. Cependant, les groupes du rapport auxquels les champs de résumé font référence doivent déjà exister dans le rapport.
1.7.2.1.10.3 Plages de dates (syntaxe Basic et Crystal)
Les plages de dates produites par ces fonctions dépendent de la date en cours. Par exemple, si nous sommes aujourd'hui le 18 septembre 2000, LastFullMonth a la valeur de plage de dates suivante :
CDate(#Aug 1, 2000#) To CDate(#Aug 31, 2000#)
780
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Cette fonctionnalité est souvent utile, mais que se passe-t-il si vous voulez déterminer une plage de dates reposant sur un champ de base de données tel que {Commandes.Date de commande} ? Il est possible d'utiliser à la place les fonctions Date/heure.
Exemple de syntaxe Basic
Dim d As Date d = CDate ({Orders.Order Date})
Dim dr As Date Range dr = DateSerial (Year(d), Month(d) - 1, 1) To _
DateSerial (Year(d), Month(d), 1 - 1)
'A ce stade, dr est la valeur de plage de dates contenant le dernier mois complet précédent {Commandes.Date de commande}.
Exemple de syntaxe Crystal
Local DateVar d := CDate ({Orders.Order Date});
Local DateVar Range dr; dr := DateSerial (Year(d), Month(d) - 1, 1) To
DateSerial (Year(d), Month(d), 1 - 1);
//A ce stade, dr est la valeur de plage de dates contenant le dernier mois complet précédent {Commandes.Date de commande}.
La fonction DateSerial facilite le travail car vous n'avez pas à vous soucier des cas particuliers. Elle ne vous permet pas de créer une date non valable. Par exemple, DateSerial (1999, 1 - 1, 1) donne le 1er décembre 1998. Notez que dans l'exemple ci-dessus, {Commandes.Date de commande} est en fait un champ DateHeure et, de ce fait, la fonction CDate est utilisée pour convertir la valeur en date en tronquant la partie horaire.
Informations associées
Types de données plage (syntaxe Basic) [page 769]
1.7.2.1.10.4 Fonctions de tableau (syntaxe Basic et Crystal)
Les fonctions de tableau calculent des résumés des éléments d'un tableau. Par exemple, la fonction Sum appliquée à un tableau renvoie la somme des éléments du tableau.
Exemple de syntaxe Basic
La formule suivante renvoie 100 : formula = Sum (Array (10, 20, 30, 40))
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
781
Exemple de syntaxe Crystal
La formule suivante renvoie 100 :
Sum ([10, 20, 30, 40])
Informations associées
Types de données tableau (syntaxe Basic) [page 770]
1.7.2.1.10.5 Fonctions du moment d'évaluation (syntaxe Basic et Crystal)
Les fonctions suivantes sont propres aux rapports : BeforeReadingRecords, WhileReadingRecords,
WhilePrintingRecords et EvaluateAfter. Vous pouvez utiliser ces fonctions pour indiquer à
SAP Crystal Reports à quel moment vos formules doivent être évaluées.
Est-ce que la formule doit être évaluée avant la récupération des enregistrements de la base de données, pendant leur lecture mais avant qu'ils ne soient regroupés, triés et résumés, ou pendant l'impression du rapport, lorsque les enregistrements sont regroupés, triés et résumés ? En général, SAP Crystal Reports définit un moment d'évaluation approprié pour votre formule, en fonction des informations requises par la formule. Par exemple, si une formule utilise un champ de base de données, elle ne peut pas être évaluée avant que les enregistrements soient lus dans la base de données. Cependant, vous aurez souvent besoin de définir un moment d'évaluation plus
Variables globales (syntaxe Crystal) [page 808] pour avoir un exemple.
En temps normal, la valeur renvoyée par une fonction est utilisée plus loin dans une formule. Toutefois, les fonctions de moment d'évaluation sont appelées pour changer le comportement interne de SAP Crystal Reports et la valeur qu'elles renvoient n'est pas utilisée. Elles peuvent être appelées en plaçant leur nom dans une instruction séparée, le mot clé Call pouvant être optionnellement placé avant.
WhilePrintingRecords
Call WhilePrintingRecords
1.7.2.1.10.6 Fonctions de statut de l'impression (syntaxe
Basic et Crystal)
Il s'agit de fonctions spéciales de création de rapports qui prennent en charge le statut d'un rapport dont l'aperçu est affiché.
Par exemple, la notation {Orders.Order Date} fait référence à la valeur du champ de l'enregistrement en cours alors que PreviousValue ({Orders.Order Date}) fait référence à la valeur de l'enregistrement précédent.
782
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
NextValue ({Orders.Order Date}) fait référence à la valeur de l'enregistrement suivant. IsNull
({Orders.Order Date}) vérifie si la valeur du champ est null.
PageNumber et TotalPageCount sont d'autres exemples. Elles permettent d'accéder aux données de pagination d'un rapport.
1.7.2.1.10.7 Fonctions Propriétés de document (syntaxe Basic et Crystal)
Ces fonctions renvoient les valeurs des attributs appartenant à un document. Par exemple, PrintDate et
ReportTitle.
1.7.2.1.10.8 Fonctions supplémentaires (syntaxe Basic et
Crystal)
Il s'agit des fonctions qui se trouvent dans les bibliothèques de fonctions utilisateur (UFL, User Function Libraries - bibliothèques de fonctions utilisateurs). Une UFL est une bibliothèque séparée de liens dynamiques ou un serveur
Automation que vous pouvez créer et que SAP Crystal Reports peut utiliser pour ajouter vos propres fonctions personnalisées au langage de formules. Une UFL est plus complexe à écrire qu'une formule utilisant la syntaxe
Basic ou la syntaxe Crystal.
Remarque
Vos rapports utilisant des UFL seront moins transférables car vous devrez distribuer vos UFL avec vos rapports.
1.7.2.1.10.9 Fonctions de mise en forme conditionnelle
(syntaxe Basic)
Lors de l'écriture d'une formule de mise en forme conditionnelle, il est possible d'utiliser les fonctions supplémentaires apparaissant en haut de l'arborescence des fonctions.
Par exemple, si vous vouliez mettre en forme le champ {Clients.Ventes de l'année dernière} de sorte que les ventes de plus de 100 000 € soient imprimées en vert, que celles de moins de 15 000 € soient imprimées en rouge et que tout le reste soit imprimé en noir.
If {Customer.Last Year's Sales} > 100000 Then
formula = crGreen
ElseIf {Customer.Last Year's Sales} < 15000 Then
formula = crRed
Else
formula = crBlack
End If
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
783
Etant donné qu'il s'agit d'une fonction de mise en forme de couleur de police, la liste des constantes de couleurs s'affiche dans l'arborescence des fonctions. Cet exemple en utilise trois : crGreen, crRed et crBlack. Au lieu de cela, vous pourriez avoir utilisé les valeurs numériques réelles des constantes de couleur. Par exemple, la valeur de crRed est 255 et celle de crGreen est 32 768. Toutefois, la formule est plus lisible lorsque les constantes de couleur sont utilisées. Toutes les fonctions de constantes en syntaxe Basic portent le préfixe "cr".
Remarque
Certains attributs de mise en forme n'utilisent pas les fonctions constantes. Par exemple, si vous ne vouliez pas imprimer les valeurs de {Clients.Ventes de l'année dernière} pour les ventes d'un montant inférieur à 50 000 €, vous pourriez écrire la formule de mise en forme suivante pour l'attribut de suppression :
If {Customer.Last Year's Sales} < 50000 Then
formula = True ' Supprimer la valeur.
Else
formula = False ' Ne pas supprimer la valeur.
End If
Ou plus simplement : formula = {Customer.Last Year's Sales} < 50000
Si le montant des ventes de l'année dernière est inférieur à 50 000 €, l'expression
{Customer.Last Year's Sales} < 50000 est vraie, et la formule renvoie la valeur True. D'un autre côté, si le montant des ventes de l'année dernière est supérieur ou égal à 50 000 €, l'expression
{Customer.Last Year's Sales} < 50000 est fausse et la formule renvoie la valeur False.
1.7.2.1.10.10 Fonctions générales de mise en forme conditionnelle (syntaxe Basic)
Il existe trois fonctions générales de mise en forme conditionnelle :
● CurrentFieldValue
● DefaultAttribute
● GridRowColumnValue
Ces fonctions sont affichées en haut de l'arborescence des fonctions lorsque le contexte s'y prête. Voir
Boîte de dialogue Editeur de formule [page 703]
.
DefaultAttribute peut être utilisée pour toute formule de mise en forme, CurrentFieldValue pour toute formule assurant la mise en forme d'une valeur de champ et GridRowColumnValue pour toute formule dans laquelle vous effectuez une mise en forme de champ dans un tableau croisé ou dans une grille OLAP.
CurrentFieldValue permet d'appliquer une mise en forme conditionnelle aux cellules de tableaux croisés ou de grilles OLAP en fonction de leur valeur. GridRowColumnValue permet d'appliquer une mise en forme conditionnelle aux cellules de tableaux croisés ou de grilles OLAP en fonction des valeurs des en-têtes de lignes ou
784
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
de colonnes. Ces deux fonctions sont primordiales dans cette situation car il n'y a pas d'autre moyen dans le langage de formule de faire référence aux valeurs de ces champs.
Ce serait le cas si vous vouliez, par exemple, supprimer les cellules d'un tableau croisé contenant une valeur inférieure à 50 000 : formula = CurrentFieldValue < 50000
1.7.2.1.11 Opérateurs (syntaxe Basic)
Le terme "opérateur" désigne des symboles ou mots spéciaux décrivant une opération ou une action applicable à au moins deux valeurs. Crystal Reports lit les opérateurs dans une formule et exécute les actions indiquées.
1.7.2.1.11.1 Opérateurs arithmétiques (syntaxe Basic)
Les opérateurs arithmétiques sont utilisés pour combiner des nombres, des variables numériques, des champs et des fonctions numériques pour obtenir un autre nombre.
Les opérateurs arithmétiques sont l'addition (+), la soustraction (-), la multiplication (*), la division (/), la division entière (\), l'opération Modulo (Mod), la négation (-) et l'exponentielle (^).
'Pourcentage d'actions privilégiées extraordinaires par rapport aux actions ordinaires.
formula = ({Financials.Preferred Stock} / _
{Financials.Common Stock}) * 100 formula = 7 + 2 * 3 - 2 + Sqr(6 + 3) * Len("up")
'La formule renvoie la valeur 17.
Ordre de priorité
Le programme évalue en général les expressions dans l'ordre suivant :
● de gauche à droite
● suivant les règles de base de priorité utilisées en mathématiques
Les opérateurs arithmétiques dans SAP Crystal Reports possèdent le même ordre de priorité que leurs
équivalents dans Visual Basic. Liste des opérateurs arithmétiques, dans l'ordre de priorité décroissante :
● Exponentielle (^)
● Négation (-)
● Multiplication et division (*, /)
● Division entière (\)
● Modulo (Mod)
● Addition et soustraction (+, -)
Les multiplications et les divisions s'effectuent d'abord de gauche à droite. Vient ensuite le tour des additions et soustractions. Par exemple, 5 + 10 * 3 = 5 + 30 = 35.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
785
Vous pouvez changer cet ordre de priorité en utilisant des parenthèses. Par exemple, (5 + 10) * 3 = 15 * 3 = 45.
L'utilisation de parenthèses est recommandée lorsque vous n'êtes pas certain de l'ordre de priorité.
1.7.2.1.11.2 Opérateurs de comparaison (syntaxe Basic)
Les opérateurs de comparaison sont habituellement utilisés pour comparer des opérandes à une condition dans une structure de contrôle telle qu'une expression If.
Les opérateurs de comparaison sont : égal à (=), différent de (<>), inférieur à (<), inférieur ou égal à (<=), supérieur à (>) et supérieur ou égal à (>=).
Les opérateurs de comparaison en tant que groupe ont tous une priorité inférieure aux opérateurs arithmétiques.
Ainsi, des expressions comme 2 + 3 < 2 * 9 sont l'équivalent d'expressions telles que (2 + 3) < (2*9).
1.7.2.1.11.3 Opérateurs booléens (syntaxe Basic)
Les opérateurs booléens sont habituellement utilisés avec les opérateurs de comparaison pour créer des conditions pour les structures de contrôle.
Les opérateurs booléens sont, par ordre de priorité décroissant : Not, And, Or, Xor, Eqv et Imp.
Les opérateurs booléens en tant que groupe ont une priorité plus faible que les opérateurs de comparaison. Ainsi par exemple, l'expression 2 < 3 And 4 >=-1 est équivalente à l'expression (2 < 3) And (4 >= -1).
1.7.2.1.11.4 Champs et valeurs NULL (syntaxe Basic)
En général, lorsque SAP Crystal Reports rencontre un champ de valeur nulle dans une formule, il arrête immédiatement l'évaluation de la formule et ne produit pas de valeur. Si vous voulez manipuler des valeurs de champ nulles dans votre formule, vous devez le faire de façon explicite en utilisant l'une des fonctions spéciales conçues pour cela : IsNull, PreviousIsNull ou NextIsNull.
En ce qui concerne les opérateurs, lorsque SAP Crystal Reports évalue la condition :
IsNull({Product.Color}) Or _
InStr({Product.Color}, " ") = 0
L'évaluation de IsNull ({Produits.Couleur}) se fait en premier ; si le résultat est déterminé comme étant vrai
(True), il est certain qu'il en est de même pour l'ensemble de la condition, et il n'est donc pas nécessaire de vérifier si
InStr({Product.Color}, " ") = 0
En d'autres termes, SAP Crystal Reports arrête d'évaluer une expression booléenne quand il peut prévoir le résultat de la totalité de l'expression. Dans l'exemple suivant, la formule surveille les tentatives de division par zéro dans le cas où le dénominateur serait égal à 0 :
Dim num As Number, denom As Number
786
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
...
If denom <> 0 And num / denom > 5 Then
...
Remarque
Visual Basic ne prend pas en charge cette technique, puisque toutes les parties des expressions booléennes dans Visual Basic sont évaluées, même lorsque cela n'est pas nécessaire.
Le champ {Produits.Couleur} contient des couleurs de base comme "rouge" et "noir" et des couleurs fantaisie dont le nom est en deux mots comme "satin acier" et "vert émeraude". Supposons que vous vouliez écrire une formule qui écrive "de base" pour les couleurs de base et "fantaisie" pour les autres.
If InStr({Product.Color}, " ") = 0 Then
formula = "basic"
Else
formula = "fancy"
End If
L'appel de la fonction InStr recherche un espace dans la chaîne {Produits.Couleur}. S'il trouve un espace, il renvoie la position de celui-ci ; sinon il renvoie 0. Les couleurs de base étant représentées par un mot unique ne comportant pas d'espace, InStr renvoie 0 pour chacune de ces couleurs.
Pour certains produits, tels que l'antivol Guardian, aucune couleur n'a été enregistrée de sorte que le champ
{Produits.Couleur} a une valeur nulle dans la base de données pour cet enregistrement. C'est pourquoi aucun mot n'est imprimé devant "antivol Guardian".
Voici comment mettre au point l'exemple ci-dessus à l'aide de IsNull :
If IsNull({Product.Color}) Or _
InStr({Product.Color}, " ") = 0 Then
formula = "basic"
Else
formula = "fancy"
End If
1.7.2.1.12 Structures de contrôle (syntaxe Basic)
Les formules sans structures de contrôle exécutent chaque instruction qu'elles contiennent une seule fois. La formule est alors évaluée. Les instructions sont exécutées de manière séquentielle, de la première à la dernière instruction de la formule. Les structures de contrôle vous permettent de faire varier cette séquence rigide. Selon la structure de contrôle que vous choisissez, vous pouvez sauter certaines instructions ou en évaluer d'autres de manière répétée en fonction de l'existence de certaines conditions. Les structures de contrôle constituent le moyen principal pour exprimer une logique métier, et des formules de rapports habituelles en font un usage extensif.
La syntaxe Basic prend en charge de nombreuses structures de contrôle principales de Visual Basic en utilisant la même syntaxe. L'un des avantages du langage Basic est la facilité de lecture de sa notation pour les structures de contrôle. Ceci simplifie l'écriture et le débogage de formules complexes.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
787
1.7.2.1.12.1 Instructions If (syntaxe Basic)
L'instruction If est l'une des structures de contrôle les plus utiles. Elle permet d'évaluer une séquence d'instructions si une condition est vraie, et d'évaluer une séquence d'instructions différente dans le cas contraire.
Remarque
Lorsque vous procédez à une mise en forme à l'aide de formules conditionnelles, incluez systématiquement le mot clé Else. Les valeurs ne remplissant pas la condition If risquent sinon de perdre leur format initial. Pour
éviter cela, utilisez la fonction DefaultAttribute (If...Else formula = DefaultAttribute).
Exemple
Une société envisage de payer une prime de 4 % à ses employés, à l'exception de ceux travaillant au service des ventes qui recevront une prime de 6 %. Ceci sera effectué par la formule suivante à l'aide d'une expression If :
If {Employee.Dept} = "Sales" Then
formula = {Employee.Salary} * 0.06
Else
formula = {Employee.Salary} * 0.04
End If
Dans cet exemple, si la condition {Employés.Poste occupé} = "Ventes" est évaluée comme vraie, formula = {Employee.Salary} * 0.06
est traitée. Sinon, l'instruction qui suit la clause Else, c'est-à-dire formula = {Employee.Salary} * 0.04
est traitée.
Supposons qu'une autre société ait l'intention d'accorder une prime de 4 % à ses employés et que cette prime ne puisse pas être inférieure à 1 000 €. Remarquez que la clause Else n'est pas incluse ; elle est facultative et n'est pas nécessaire dans ce cas.
formula = {Employee.Salary} * 0.04
If formula < 1000 Then
formula = 1000
End If
Supposons maintenant que la société précédente veuille également que la prime soit au maximum égale à
5 000 €. Vous devez alors utiliser une clause ElseIf. Remarquez que ElseIf est en un seul mot. L'exemple suivant comporte seulement une clause ElseIf, mais vous pouvez en ajouter autant qu'il en faut.
Remarque
Il ne peut y avoir qu'une seule clause Else par instruction If.
La clause Else est exécutée si aucune des expressions If ou ElseIf n'est vraie.
formula = {Employee.Salary} * 0.04
If formula < 1000 Then
formula = 1000
ElseIf formula > 5000 Then
formula = 5000
788
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
End If
Supposons qu'une société souhaite calculer une estimation du montant de l'impôt qu'un employé aura à payer, et
écrire un message en conséquence. Un revenu inférieur à 8 000 € n'est pas imposable, un revenu compris entre
8 000 € et 20 000 € est imposé à 20 %, un revenu compris entre 20 000 € et 35 000 € est imposé à 29 % et un revenu supérieur à 35 000 € est imposé à 40 %.
Dim tax As Currency, income As Currency income = {Employee.Salary}
Dim message As String
If income < 8000 Then
tax = 0
message = "non imposable"
ElseIf income >= 8000 And income < 20000 Then
message = "imposable la plus faible"
tax = (income - 8000)*0.20
ElseIf income >= 20000 And income < 35000 Then
message = "imposable moyenne"
tax = (20000 - 8000)*0.20 + (income - 20000)*0.29
Else
message = "imposable la plus élevée"
tax = (20000 - 8000)*0.20 + (35000 - 20000)*0.29 + _
(income - 35000)*0.40
End If
Dim taxStr As String
Rem Utiliser 2 décimales et l'espace comme séparateur des milliers.
taxStr = CStr (tax, 2, ",") formula = "Vous vous situez dans la tranche " & message & _". " & _ "Votre impôt estimé est de " & impôtStr & "."
Remarquez comment les variables permettent de simplifier la logique de calcul. Deux expressions sont exécutées quand l'une des conditions est remplie ; l'une affecte une valeur à la variable impôt et l'autre affecte une valeur à la variable message. Il est souvent utile que plusieurs instructions soient exécutées en tant que résultat d'une condition.
1.7.2.1.12.1.1 Instructions If sur une seule ligne et sur plusieurs lignes (syntaxe Basic)
Il existe deux types d'instructions If, l'instruction If sur une seule ligne et l'instruction If sur plusieurs lignes.
L'utilisation d'une nouvelle ligne après le premier Then fait de l'instruction If une instruction If sur plusieurs lignes.
Dans le cas contraire, l'instruction If est sur une seule ligne. L'instruction If sur plusieurs lignes comprend une instruction End If, mais ce n'est pas le cas pour l'instruction sur une seule ligne.
Remarque
Grâce aux caractères de continuation de ligne, les instructions If sur une seule ligne ne nécessitent en fait pas d'être écrits sur une seule ligne. Il est en général préférable d'utiliser des instructions If sur plusieurs lignes, car elles sont plus lisibles. Toutefois, dans des cas simples, l'instruction If sur une seule ligne peut être utilisée.
If {Employee.Dept} = "Sales" Then _
formula = {Employee.Salary} * 0.06 _
Else _
formula = {Employee.Salary} * 0.04
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
789
Voici un exemple affichant les diverses formes d'instructions If sur une seule ligne à syntaxe correcte :
Dim per As Number, extra As Boolean per = 2 : extra = False
'Un exemple sans clause Else.
If {Employee.Dept} = "Sales" Then per = 10
'Plusieurs instructions peuvent être incluses dans la partie Then ou Else à condition de les séparer par des signes deux points.
If {Employee.Dept} = "R&D" Then _
per = 5 : extra = True _
Else _
per = 3
1.7.2.1.12.2 Instructions Select (syntaxe Basic)
L'instruction Select est similaire à une instruction If. Quelquefois, cependant, vous pourrez écrire des formules plus claires et moins répétitives à l'aide de l'instruction Select. Par exemple, pour évaluer le champ {Clients.Fax} afin de déterminer si l'indicatif correspond à l'état de Washington (206, 360, 509) ou de la Colombie-Britannique au Canada (604, 250) :
Select Case Left ({Customer.Fax}, 3)
Case "604", "250"
formula = "BC"
Case "206", "509", "360"
formula = "WA"
End Select
L'expression se trouvant juste après le mot clé Select Case est appelée la condition Select. Dans l'exemple cidessus, il s'agit de Left ({Clients.Fax}[1 To 3]). L'instruction Select recherche le premier cas (Case) qui correspond à la condition Select, puis exécute les instructions qui suivent jusqu'au cas (Case) suivant.
Dim areaCode As String areaCode = Left ({Customer.Fax}, 3)
If areaCode In Array ("604", "250") Then
formula = "BC"
ElseIf areaCode In Array ("206", "509", "360") Then
formula = "WA"
End If
Cette formule groupe le nombre de nominations aux Oscars reçues par un film dans l'une des catégories faible, moyen, élevé ou très élevé et montre dans le processus certaines des possibilités pour les listes d'expressions qui suivent les intitulés des cas. Remarquez la clause Case Else, qui est facultative. Si aucune des listes d'expressions
Case ne correspond aux clauses Case précédentes, alors la clause Case Else est choisie. Dans l'exemple suivant, si {movie.NOM} est égal à 11, la formule renvoie "élevée".
Rem Select example 2
Select Case {movie.NOM}
Case 1,2,3, Is < 1
Rem Il est possible d'avoir plusieurs instructions dans les blocs d'instructions.
formula = "faible"
Case 4 To 6, 7, 8, 9
formula = "moyen"
Case 10
formula = "élevé"
Case Else
formula = "très élevé"
790
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
End Select
1.7.2.1.12.3 Boucles For/Next (syntaxe Basic)
Les boucles For/Next vous permettent d'évaluer une suite d'instructions un certain nombre de fois. Le fonctionnement n'est donc pas le même que pour les instructions If et Select que le programme rencontrera une fois pendant l'évaluation de la formule.
Les boucles For/Next sont préférables lorsque vous connaissez à l'avance combien de fois l'instruction doit être
évaluée.
Syntaxe d'une boucle For
Supposons que vous vouliez inverser la chaîne {Clients.Nom du client}. Par exemple, "Cyclistes urbains" devient
"sniabru setsilcyC".
formula = ""
Dim strLen strLen = Len ({Customer.Customer Name})
Dim i
For i = 1 To strLen
Dim charPos
charPos = strLen - i + 1
formula = formula & _
Mid({Customer.Customer Name}, charPos, 1)
Next i
Observez le mode de fonctionnement de cette formule en supposant que la valeur actuelle du champ
{Clients.Nom du client} soit "Air propre". La longueur de "Air propre" est assignée à la variable strLen, à savoir 10.
A ce moment précis, son type de variable est le type numérique. Il s'agit d'une variable de comptage de boucle For car sa valeur change à chaque itération de la boucle For. En d'autres termes, elle est utilisée pour compter les itérations de la boucle. La boucle For va exécuter 7 itérations. La première fois, i est égal à 1, puis i est égal à 2, puis i est égal à 3, et ainsi de suite, jusqu'à ce que i soit égal à 7. Au cours de la première itération, le septième caractère de {Clients.Nom du client} est affecté à la formule de variable spéciale vide. La valeur de la formule est donc "r" après la première itération. Durant la seconde itération, le sixième caractère de {Clients.Nom du client} est ajouté à la formule et la formule est égale à "ru". Ceci continue jusqu'à la septième itération, pour laquelle formula est égale à "rup riA" qui correspond à la chaîne inversée.
Voici une version plus simple de la formule ci-dessus qui utilise une clause Step avec un pas négatif (step) égal à
-1. Dans le cas de l'exemple de "Air propre", i est égal à 10 dans la première itération, à 9 dans la deuxième, à 8 dans la troisième, et ainsi de suite, jusqu'à ce que i soit égal à 1 dans la dernière itération.
formula = ""
Dim i
For i = Len ({Customer.Customer Name}) To 1 Step -1
formula = formula + _
Mid({Customer.Customer Name}, i, 1)
Next i
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
791
La version la plus simple consiste à utiliser la fonction intégrée StrReverse : formula = StrReverse ({Customer.Customer Name})
Les fonctions intégrées de chaîne dans SAP Crystal Reports peuvent manipuler de nombreuses applications de traitement de chaîne qui le seraient habituellement au moyen de boucles For/Next ou d'autres types de boucles.
Cependant, les boucles For/Next offrent plus de souplesse et une meilleure efficacité pour le traitement des chaînes et des tableaux. Elles s'avèrent essentielles lorsque les fonctions intégrées ne couvrent pas l'application souhaitée.
1.7.2.1.12.3.1 Exemple de boucles For/Next (syntaxe Basic)
Voici un exemple plus achevé des capacités de traitement de chaîne de SAP Crystal Reports. Le mode de cryptage César est un code simple qui est traditionnellement attribué à Jules César. Dans ce code, chaque lettre d'un mot est remplacée par la lettre qui est située 5 caractères plus loin dans l'alphabet. Par exemple, "Rive" devient "Wnaj". Remarquez que le "v" a été remplacé par "a". Puisqu'il n'y a pas 5 caractères après le "v" dans l'alphabet, on recommence depuis le début.
Voici une formule qui applique le mode de cryptage de César au champ {Clients.Nom du client} de la base de données Xtreme.mdb.
Dim inputString inputString = {Customer.Customer Name}
Dim shift shift = 5 formula = ""
Dim i
For i = 1 To Len(inputString)
Dim inC, outC
inC = Mid(inputString, i, 1)
Dim isChar, isUCaseChar
isChar = LCase(inC) In "a" To "z"
isUCaseChar = isChar And (UCase (inC) = inC)
inC = LCase(inC)
If isChar Then
Dim offset
offset = (Asc(inC) + shift - Asc("a")) Mod _
(Asc("z") - Asc("a") + 1)
outC = Chr(offset + Asc("a"))
If isUCaseChar Then outC = UCase(outC)
Else
outC = inC
End If
formula = formula & outC
Next i
Dans l'exemple ci-dessus, une instruction If sur plusieurs lignes est imbriquée dans le bloc d'instructions de la boucle For/Next. Cette instruction If est chargée des détails précis relatifs au décalage d'un seul caractère. Par exemple, les lettres sont traitées différemment de la ponctuation et des espaces. En particulier, la ponctuation et les caractères ne sont pas codés. Les structures de contrôle peuvent être imbriquées dans d'autres structures de contrôle. Par ailleurs, il est possible d'inclure plusieurs instructions dans le bloc d'instructions d'une structure de contrôle.
792
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.7.2.1.12.3.2 Sortie de boucles For/Next (syntaxe Basic)
Vous pouvez sortir d'une boucle For à l'aide de la clause Exit For. Dans l'exemple suivant, le nom "Fred" est recherché dans le tableau global de noms. Si le nom est trouvé, l'indice du nom est renvoyé dans le tableau. Sinon, la valeur renvoyée est -1. Par exemple, si le tableau de noms est :
Array ("Frank", "Helen", "Fred", "Linda")
La formule renvoie la valeur 3.
Global names () As String
' Le tableau de noms a été initialisé et rempli dans d'autres formules.
Dim i formula = -1
' La fonction UBound renvoie la taille de son argument de tableau.
For i = 1 to UBound (names)
If names (i) = "Fred" Then
formula = i
Exit For
End If
Next I
1.7.2.1.12.4 Boucles Do (syntaxe Basic)
Une boucle Do peut être utilisée pour exécuter un bloc défini d'instructions un nombre de fois indéterminé.
Les 4 différents types de boucle Do
Table 22 :
Type de boucle Do
Do While … Loop
Do Until ... Loop
Explication
Do While … Loop évalue la condition, et si la condition est vraie, les instructions suivant la condition sont évaluées.
Une fois ceci effectué, la condition est réévaluée, et si la condition est vraie, les instructions sont réévaluées.
Le processus se répète jusqu'à ce que la condition soit fausse.
Exemple
Do While condition
statements
Loop
Do Until ... Loop est similaire à Do
While ... Loop mis à part que les instruc tions sont évaluées jusqu'à (until) ce que la condition soit vraie, plutôt que tant
(while) qu'elle est vraie.
Do Until condition
statements
Loop
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
793
Type de boucle Do
Do ... Loop While
Do ... Loop Until
Explication
Do ... Loop While évalue les instructions une seule fois.
La condition est ensuite évaluée et, si celle-ci est vraie, les instructions sont de nouveau évaluées. Ce processus se poursuit jusqu'à ce que la condition soit fausse.
Exemple
Do
statements
Loop While condition
Similaire à Do ... Loop While mis à part que les instructions sont évaluées jus qu'à ce que la condition soit vraie.
Do
statements
Loop Until condition
Remarque les boucles Do prennent en charge une instruction Exit Do pour sortir immédiatement d'une boucle.
L'instruction Exit Do est similaire à Exit For pour les boucles For/Next.
Exemple de formule Do While ... Loop
Dans l'exemple suivant, la première occurrence d'un chiffre est recherchée dans une chaîne d'entrée. Si un chiffre est trouvé, c'est la position du chiffre qui est renvoyée ; sinon c'est la valeur -1. Dans ce cas, la chaîne d'entrée est définie explicitement comme une constante chaîne, mais elle pourrait également être définie comme égale à un champ de base de données de type chaîne.
Par exemple, pour la chaîne d'entrée, "Les 7 nains", la formule renvoie 5, qui est la position du chiffre 7.
Dim inString inString = "The 7 Dwarves"
Dim i, strLen i = 1 strLen = Len (inString) formula = -1
Do While i <= strLen And formula = -1
Dim c As String
c = Mid (inString, i, 1)
If IsNumeric (c) Then formula = i
i = i + 1
Loop
1.7.2.1.12.5 Boucles While (syntaxe Basic)
La boucle While est similaire à la boucle Do ... While, excepté qu'elle ne prend pas en charge l'instruction Exit. Sa syntaxe est While ... Wend au lieu de Do ... While.
While condition
statements
Wend
794
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.7.2.1.12.6 Eviter les boucles infinies (syntaxe Basic)
Il existe un mécanisme de sécurité pour éviter le blocage du traitement d'un rapport à cause d'une boucle infinie.
Pour chaque évaluation de formule, le nombre maximum d'évaluations de condition de boucle est de 100 000. Par exemple :
Dim i i = 1
Do While i <= 200000
If i > {movie.STARS} Then Exit Do
i = i + 1
Loop formula = 20
Si {movie.STARS} est supérieur à 100 000, la condition de boucle (i <= 200000) sera évaluée un plus grand nombre de fois que le maximum autorisé et un message d'erreur s'affichera. Sinon la boucle est correcte.
Remarque
Le mécanisme de sécurité s'applique au niveau de la formule, et non pour chaque boucle individuelle. Par exemple :
Dim i i = 1
For i = 1 To 40000
formula = Sin (i)
Next i
Do While i <= 70000
i = i + 1
Loop
La formule ci-dessus déclenche aussi le mécanisme de sécurité puisque le nombre de 100 000 fait référence au nombre total d'évaluations de condition de boucle de la formule et cette formule comportera 40001 +70001
évaluations de ce type.
1.7.2.2 Syntaxe Crystal
Lors de la création de formules, vous pouvez utiliser la syntaxe Crystal ou la syntaxe Basic. Presque toutes les formules écrites avec une syntaxe peuvent l'être avec l'autre syntaxe. Les rapports peuvent contenir indifféremment des formules qui utilisent la syntaxe Basic et des formules qui utilisent la syntaxe Crystal, mais une formule donnée ne peut utiliser qu'une seule syntaxe.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
795
1.7.2.2.1 Principes de base de la syntaxe Crystal
Résultat d'une formule
Le résultat d'une formule, ou la valeur qui s'imprime lorsque la formule est placée dans un rapport, est appelé la valeur renvoyée par la formule. Chaque formule de SAP Crystal Reports doit renvoyer une valeur. Par exemple, voici une formule simple utilisant la syntaxe Crystal qui renvoie une valeur de 10 :
10
La valeur renvoyée par une formule peut appartenir à l'un des sept types de données simples pris en charge :
Nombre, Devise, Chaîne, Booléen, Date, Heure et Date/heure.
Remarque
SAP Crystal Reports prend également en charge les types plage et tableau, mais ces derniers ne peuvent pas
être renvoyés par une formule.
Supposons, par exemple, qu'une société ait une politique d'expédition au titre de laquelle les commandes supérieures à 1 000 € sont couvertes par une assurance tandis que celles inférieures à ce montant ne le sont pas :
If {Orders.Order Amount} >= 1000 Then
"Expédition assurée"
Else
"Expédition ordinaire"
La formule renvoie la valeur de la chaîne de texte "Expédition assurée" si la valeur du champ de base de données
{Commandes.Montant commande} est supérieure ou égale à 1 000, et renvoie la valeur de la chaîne de texte
"Expéditon ordinaire" dans le cas contraire.
Syntaxe composée d'expressions
Une formule utilisant la syntaxe Crystal est composée d'une suite d'expressions. Une expression correspond à toute combinaison de mots clés, opérateurs, fonctions et de valeurs constantes dont le résultat est une valeur d'un type donné. La valeur de l'expression finale est la valeur renvoyée par la formule et ce qui a été imprimé.
Chaque expression doit être séparée de la précédente par un point-virgule (;).
Le fait qu'une formule établie avec la syntaxe Crystal soit une suite d'expressions dont le résultat est la valeur de l'expression finale est le concept le plus important pour la compréhension de la syntaxe Crystal. Cette syntaxe reposant sur les expressions vous permet d'écrire des formules très courtes comportant de nombreuses fonctionnalités.
Respect de la casse
Tous les noms de variables, de fonctions et mots clés utilisés dans les formules à syntaxe Crystal ne font pas de différence entre les majuscules et les minuscules. Par exemple, le mot clé Then pourrait être tapé indifféremment then ou THEN.
796
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Seules les chaînes échappent à cette règle. La chaîne "Bonjour" est différente de la chaîne "bonjour".
Entraînement à l'aide de l'exemple de base de données Xtreme.mdb
La plupart des exemples cités dans cette section se réfèrent à la base de données Xtreme.
1.7.2.2.2 Commentaires (syntaxe Crystal)
Les commentaires de formules sont des notes incluses dans une formule pour en expliquer la conception et le fonctionnement. Les commentaires ne s'impriment pas et n'ont aucune incidence sur la formule, ils ne s'affichent que dans l'Editeur de formule. Vous pouvez utiliser des commentaires pour expliquer le but d'une formule ou les
étapes qui ont été nécessaires pour la créer.
Les commentaires commencent par deux barres obliques (//) suivies par le texte du commentaire. Tout ce qui suit les barres obliques sur la même ligne est considéré comme faisant partie du commentaire :
//Cette formule renvoie la chaîne "Bonjour".
//Voici un autre commentaire.
"Hello" //Les commentaires peuvent être ajoutés à la fin d'une ligne.
//Les commentaires peuvent être placés après le texte de la formule.
1.7.2.2.3 Champs (syntaxe Crystal)
Un grand nombre de champs que vous utilisez lors de la création d'un rapport peuvent également être utilisés dans les formules. Vous pouvez, par exemple, faire référence aux champs de base de données, de paramètre, de total cumulé, d'expression SQL, de résumé et de nom de groupe. Vous pouvez également faire référence à d'autres champs de formule dans votre formule.
Le moyen le plus facile pour insérer un champ dans votre rapport consiste à cliquer deux fois sur un nom de champ dans l'arborescence Champs du rapport. Ceci permet d'être sûr que la syntaxe utilisée pour le champ est correcte.
Aspect des champs dans les formules
Les noms des champs de base de données, de paramètre, de formule, de total cumulé et d'expression SQL sont inclus dans des accolades.
Les noms de champs de base de données sont pris dans la base de données :{Employee.Last Name}
Les noms des champs de paramètre, de formule, de total cumulé et d'expression SQL sont spécifiés au moment de leur création.
● les champs de paramètre comprennent également un point d'interrogation :{?my parameter field}
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
797
● les champs de formule comprennent un signe @ :{@another formula}
● les champs de total cumulé comprennent un signe # :{#my running total}
● les champs d'expression SQL comprennent un signe % :{%my SQL expression}
Les champs de résumé et de nom de groupe ressemblent à des appels de fonction. Toutefois, ils constituent de véritables notations abrégées pour un champ de rapport.
● champ de résumé d'une somme :Sum({Orders.Order Amount}, {Orders.Ship Via})
● champ de nom de groupe :GroupName({Orders.Ship Via})
Exemple
La formule dans cet exemple utilise la base de données Xtreme.mdb. Pour connaître la durée de la livraison d'un produit à partir de la date de commande, il suffit de soustraire le champ de base de données Date d'expédition du champ de base de données Date de commande :
{Orders.Ship Date} - {Orders.Order Date}
Pour trouver le montant total d'un produit commandé, multipliez son prix unitaire par la quantité commandée :
{Orders Detail.Unit Price} * {Orders Detail.Quantity}
Pour calculer un prix de vente égal à 80 % du prix unitaire d'origine :
{Orders Detail.Unit Price} * 0.80
1.7.2.2.4 Expressions (syntaxe Crystal)
Une expression correspond à toute combinaison de mots clés, opérateurs, fonctions et de valeurs constantes dont le résultat est une valeur d'un type donné. Par exemple :
//Expression dont le résultat est la valeur numérique 25
10 + 20 - 5
//Expression dont le résultat est la valeur de type chaîne "Voici une chaîne".
"Voici une chaîne."
Une formule utilisant la syntaxe Crystal est composée d'une suite d'expressions. La valeur de l'expression finale est la valeur renvoyée par la formule et ce qui a été imprimé. Chaque expression doit être séparée de la précédente par un point-virgule (;).
1.7.2.2.4.1 Expressions multiples (syntaxe Crystal)
Habituellement, chaque expression occupe une ligne, mais vous pouvez la continuer sur la ligne suivante si vous avez besoin de plus de place.
La formule ci-dessous est composée de cinq expressions. Elle renvoie la valeur numérique 25 car celle-ci correspond à la dernière expression de la formule.
798
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Exemple
//La première expression renvoie le nombre 30.
10 + 20;
//La deuxième expression renvoie la chaîne "Bonjour le monde".
"Hello " +
"World";
//La troisième expression renvoie une valeur numérique.
{Orders Detail.Quantity} * 2 - 5;
//La quatrième expression renvoie une valeur de type chaîne.
If {Orders Detail.Quantity} > 1 Then
"multiple units"
Else
"one unit";
//La cinquième et dernière expression renvoie le nombre 25.
20 + 5
Un point-virgule peut être placé après la dernière expression de la formule, mais c'est facultatif. Par exemple, la formule précédente pourrait se terminer ainsi :
20 + 5;
Certaines formules présentées dans la section
Expressions (syntaxe Crystal) [page 798]
ne comportent pas de point-virgule. C'est parce qu'elles sont composées d'une seule expression et que le point-virgule est facultatif après la dernière expression. Dans la syntaxe Crystal, de nombreuses formules peuvent être écrites sous la forme d'une seule expression.
Remarquez qu'il n'y a pas de point-virgule après la chaîne "plusieurs unités". En fait, si vous placez un point-virgule
à cet endroit, le programme signalera une erreur. C'est parce qu'un point-virgule sépare les expressions, et que le groupe
Else
"one unit"; ne forme pas une expression séparée. Il ne peut pas exister sans le If. En fait, il fait partie intégrante de l'expression If car il décrit la valeur qui sera renvoyée par celle-ci dans certaines circonstances.
Remarque
L'exemple fourni manque d'intérêt pratique car les 4 premières expressions de la formule n'ont aucun effet sur la dernière.
Les expressions précédentes affectent les expressions suivantes
Le fait qu'une formule établie avec la syntaxe Crystal soit une suite d'expressions dont le résultat est la valeur de l'expression finale est le concept le plus important pour la compréhension de la syntaxe Crystal. Cette syntaxe reposant sur les expressions vous permet d'écrire des formules très courtes comportant de nombreuses fonctionnalités.
// Cette expression déclare la variable numérique puis renvoie // la valeur d'une variable numérique non initialisée égale à 0.
NumberVar x;
//Deuxième expression. Elle affecte à x la valeur 30, //puis renvoie 30.
x := 30
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
799
La formule ci-dessus produirait une erreur si la première expression était omise. En effet, la deuxième expression fait référence à la variable numérique x, et le programme exige que la variable x soit déclarée pour pouvoir comprendre les expressions dans lesquelles elle intervient.
En général, vous utilisez des variables pour que les expressions précédentes d'une formule aient une incidence sur l'expression finale.
Informations associées
Variables (syntaxe Crystal) [page 805]
1.7.2.2.5 Affectation (syntaxe Crystal)
L'opérateur d'affectation est composé du caractère deux-points suivi du signe égal (:=).
Par exemple :
//Affecter la valeur numérique 10 à la variable x.
x := 10;
// Affecter la valeur de type chaîne "bonjour" à la variable nommée salutation.
greeting := "hello";
L'opérateur d'égalité (=) est utilisé pour vérifier que deux valeurs sont égales. Une erreur courante consiste à utiliser par erreur l'opérateur d'égalité alors qu'en réalité, c'est l'opérateur affectation qui est attendu. Ceci peut donner lieu à un mystérieux message d'erreur ou à aucun message d'erreur puisqu'il est souvent syntaxiquement correct d'utiliser l'opérateur d'égalité. Par exemple : greeting = "hello";
La formule ci-dessus vérifie si la valeur contenue dans la variable de salutation est égale à la valeur "bonjour". Si c'est le cas, la valeur de l'expression est True (Vrai), sinon, la valeur est False (Faux). Dans tous les cas, c'est une expression parfaitement correcte dans la syntaxe Crystal (en supposant que salutation soit une variable chaîne).
1.7.2.2.6 Types de données simples (syntaxe Crystal)
Cette section décrit les types de données simples disponibles dans SAP Crystal Reports.
1.7.2.2.6.1 Nombre (syntaxe Crystal)
Saisissez les nombres sans signe de séparation des milliers et sans symbole monétaire. Vous souhaiterez généralement que les nombres soient formatés en tant que résultat d'une formule mais pas dans la formule ellemême.
800
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Exemple
10000
-20
1.23
1.7.2.2.6.2 Devise (syntaxe Crystal)
Utilisez le signe dollar ($) pour créer une valeur Devise.
Exemple
$10000
-$20
$1.23
Vous pouvez également utiliser la fonction CCur. Le premier C de CCur signifie conversion et la fonction peut être utilisée pour convertir des valeurs numériques en valeurs monétaires :
CCur (10000)
CCur (-20)
CCur (1.23)
1.7.2.2.6.3 Chaîne (syntaxe Crystal)
Les chaînes sont utilisées pour contenir du texte. Le texte doit être placé entre des guillemets doubles (") ou des apostrophes (') et ne peut pas être réparti sur plusieurs lignes. Si vous voulez inclure des guillemets doubles dans une chaîne délimitée par des guillemets doubles, utilisez deux guillemets doubles consécutifs. De même, si vous voulez inclure une apostrophe dans une chaîne délimitée par des apostrophes, utilisez deux apostrophes consécutives.
Exemple
"This is a string."
"123"
"The word ""hello"" is quoted."
'This is also a string.'
'123'
'Last Year''s Sales'
Si vous utilisez des guillemets doubles pour le côté gauche de la chaîne, vous devez aussi les utiliser pour le côté droit. Il en va de même pour les apostrophes. L'exemple suivant est incorrect :
'Not a valid string."
Vous pouvez extraire des éléments individuels ou sous-chaînes d'une chaîne en précisant la position du caractère ou une plage de positions de caractères. Les valeurs négatives sont permises ; elles indiquent que la position de départ est le dernier caractère de la chaîne.
"hello" [2] //Equal to "e"
"hello" [-5] //Equal to "h"
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
801
"604-555-1234" [1 to 3] //Equal to "604"
"abcdef" [-3 to -1] //Equal to "def"
Vous pouvez également extraire des sous-chaînes d'une chaîne à l'aide des fonctions Left, Right et Mid.
1.7.2.2.6.4 Booléenne (syntaxe Crystal)
Les valeurs booléennes valables sont :
True
False
Remarque
Yes (oui) peut être utilisé à la place de True et No (non) à la place de False.
1.7.2.2.6.5 Date, Heure et Date/heure (syntaxe Crystal)
Le type Date/heure peut contenir des dates-heures, des dates seules ou des heures seules. Le type Date ne prend en compte que les dates et le type Heure ne prend en compte que les heures. Les types Date et Heure sont plus efficaces que le type Date/heure, et peuvent ainsi être utilisés dans des situations dans lesquelles les fonctionnalités et la souplesse supplémentaires du type Date/heure ne sont pas nécessaires.
Vous pouvez créer directement des valeurs de type date/heure en utilisant la construction des littéraux de dateheure. Pour cela, il faut taper les données date-heure entre deux signes (#). De nombreux formats différents sont pris en charge.
Remarque
Les littéraux de date-heure ne peuvent pas occuper plusieurs lignes.
Exemples
#8/6/1976 1:20 am#
#August 6, 1976#
#6 Aug 1976 13:20:19#
#6 Aug 1976 1:30:15 pm#
#8/6/1976#
#10:20 am#
Même si #10:20 am# semble être du type Heure et #8/6/1976# semble être du type Date, ce n'est pas le cas.
Ces expressions sont toutes deux au format Date/heure, comme c'est le cas pour tous les littéraux de date-heure.
Vous pourriez, par exemple, penser que l'expression #10:20 am# est une valeur de type date/heure dont la partie date est nulle. Pour la convertir en type Heure, utilisez CTime (#10:20 am#).
Au lieu d'utiliser les littéraux de date-heure, vous pouvez utiliser la fonction CDateTime pour convertir une valeur de type chaîne en valeur de type date/heure. Par exemple :
CDateTime ("8/6/1976 1:20 am")
802
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
CDateTime ("10:20 am")
Il y a cependant une différence fondamentale entre l'utilisation des littéraux de date-heure et l'utilisation faite cidessus de la fonction CDateTime. Les littéraux de date-heure utilisent toujours les formats de date angloaméricains et non les paramètres régionaux de l'ordinateur particulier sur lequel s'exécute SAP Crystal Reports.
Ainsi, les exemples de littéraux de date-heure ci-dessus devraient fonctionner sur tous les ordinateurs. D'un autre côté, sur un système français, vous pourriez utiliser des constructions comme :
CDateTime ("22 aout 1997") //Identique à #Aug 22, 1997#.
Des valeurs de date peuvent être construites à l'aide de CDate et des valeurs d'heure à l'aide de CTime :
CDate ("Aug 6, 1969")
CDate (1969, 8, 6) //Spécifier l'année, le mois, le jour.
//Convertit l'argument DateHeure en Date.
CDate (#Aug 6, 1969#)
CTime ("10:30 am")
CTime (10, 30, 0) //Spécifier l'heure, les minutes, les secondes.
CTime (#10:30 am#)
1.7.2.2.7 Types de données plage (syntaxe Crystal)
Les plages sont conçues pour prendre en compte un intervalle de valeurs. Les types Plage sont disponibles pour tous les types simples à l'exception du type Booléen. C'est-à-dire : Plage numérique, Plage monétaire, Plage de chaînes, Plage de dates, Plage horaire et Plage de date/heure. Vous pouvez générer des plages en utilisant les mots-clés To, _To, To_, _To_, UpTo, UpTo_, UpFrom et UpFrom_. En général, To est utilisé pour les plages limitées aux deux extrémités, et UpTo et UpFrom sont utilisés pour les plages ouvertes d'un côté et fermées de l'autre
(limitées à une seule extrémité). Le caractère de soulignement est utilisé pour indiquer si la limite est inclue ou non dans la plage.
Exemples de valeurs de plage de nombres
Plage des nombres compris entre 2 et 5, en incluant ces deux nombres
2 To 5
Plage des nombres compris entre 2 et 5, en excluant 2 et en incluant 5
2 _To 5
Tous les nombres inférieurs ou égaux à 5
UpTo 5
Tous les nombres inférieurs à 5
UpTo_ 5
Exemples de valeurs de type date/heure :
#Jan 5, 1999# To #Dec 12, 2000#
UpFrom #Jan 1, 2000#
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
803
Utilisation des plages dans des formules
Il existe vingt-sept fonctions dans SAP Crystal Reports pour spécifier des plages de dates. Par exemple, la fonction LastFullMonth spécifie une plage de valeurs de dates qui comprend toutes les dates allant du premier au dernier jour du mois précédent. Ainsi, si la date d'aujourd'hui est le 15 septembre 1999, LastFullMonth donne le même résultat que la plage de dates CDate (#Aug 1, 1999#) To CDate (#Aug 31, 1999#).
Les plages sont souvent utilisées avec des expressions If ou Select. L'exemple suivant concerne le calcul de la notation des étudiants au moyen de lettres en fonction de la note chiffrée obtenue au test. Les notes supérieures ou égales à 90 obtiennent "A", les notes comprises entre 80 et 90, sans inclure 90 obtiennent "B" et ainsi de suite.
Select {Student.Test Scores}
Case UpFrom 90 :
"A"
Case 80 To_ 90 :
"B"
Case 70 To_ 80 :
"C"
Case 60 To_ 70 :
"D"
Default :
"F";
. Vous pouvez vérifier si une valeur est comprise dans une plage à l'aide de l'opérateur In. Par exemple :
5 In 2 To 10; //True
5 In 2 To_ 5; //False
5 In 2 To 5; //True
Les fonctions Maximum et Minimum peuvent être utilisées pour trouver les limites d'une plage :
Maximum (2 To 10) //Returns 10
Informations associées
Types de données tableau (syntaxe Crystal) [page 804]
Types de données simples (syntaxe Crystal) [page 800]
1.7.2.2.8 Types de données tableau (syntaxe Crystal)
Les tableaux dans SAP Crystal Reports sont des listes ordonnées de valeurs de type identique. Ces valeurs portent le nom d'éléments de tableau. Les éléments d'un tableau peuvent être de type simple ou de type plage.
Les tableaux peuvent être créés à l'aide de crochets ([ ]).
Les tableaux sont le plus utiles lorsqu'ils sont utilisés avec des variables. Les variables vous permettent de modifier les éléments individuels d'un tableau et de le redimensionner pour qu'il comprenne plus d'éléments.
Vous pouvez, par exemple, cumuler des valeurs de champs de base de données dans une variable tableau globale
804
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
dans une formule de niveau détail, puis utiliser une formule dans un pied de page de groupe pour effectuer un calcul basé sur ces valeurs. Ceci vous permet de réaliser une vaste gamme d'opérations de synthèse personnalisées.
Exemples
Tableau de trois valeurs numériques. Le premier élément est 10, le deuxième est 5 et le troisième est 20.
[10, 5, 20]
Tableau de sept valeurs de type chaîne :
["Sun", "Mon", "Tue", "Wed", "Th", "Fri", "Sat"]
Tableau de deux valeurs de plage date/heure :
[#Jan 1, 1998# To #Jan 31, 1998#,
#Feb 1, 1999# To #Feb 28, 1999#]
Vous pouvez extraire des éléments individuels d'un tableau en utilisant des crochets contenant l'indice de l'élément souhaité. Cela s'appelle indicer le tableau :
[10, 5, 20] [2] // = 5
Les plages numériques peuvent aussi être utilisées pour indicer les tableaux. Le résultat est un autre tableau. Par exemple :
[10, 5, 20] [2 To 3] // = [5, 20]
1.7.2.2.9 Variables (syntaxe Crystal)
Une variable représente un élément de données spécifique, ou une valeur, et joue le rôle de place réservée pour cette valeur. Lorsqu'une variable est rencontrée dans une formule, la valeur de cette variable est recherchée puis utilisée dans la formule. Contrairement à une valeur constante qui est fixe et invariable, différentes valeurs peuvent être affectées de manière répétée à une variable. Vous affectez une valeur à une variable, qui la conserve jusqu'à ce vous lui en affectiez une nouvelle. En raison de cette souplesse, vous devez déclarer les variables avant de les utiliser pour que SAP Crystal Reports en ait connaissance et comprenne de quelle manière vous entendez les utiliser.
Si vous vouliez créer un rapport sur les clients par indicatif régional, vous pourriez créer une variable qui extrait cette information de numéro de fax du client. L'exemple ci-dessous utilise une variable nommée Codezone :
Local StringVar areaCode; areaCode := {Customer.Fax} [1 To 3];
La première ligne de l'exemple est la déclaration de variable ; un nom et un type sont affectés à la variable. Le champ de base de données {Clients.Fax} est un champ de type chaîne et le segment [1 To 3] extrait les trois premiers caractères de sa valeur actuelle. Cette valeur est ensuite affectée à la variable Codezone.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
805
1.7.2.2.9.1 Déclarations des variables (syntaxe Crystal)
Avant d'utiliser une variable dans une formule, vous devez la déclarer. Une variable peut contenir des valeurs d'un type donné. Les types autorisés sont les sept types simples (Nombre, Devise, Chaîne, Booléen, Date, Heure et
Date/heure), les six types de plages (Plage de nombres, Plage de devises, Plage de chaînes, Plage de dates, Plage d'heures et plage de valeurs de type date/heure) et les variables contenant des tableaux des types déjà mentionnés. En tout, une variable peut donc avoir 26 différents types.
Lorsque vous déclarez une variable, vous spécifiez également son nom. Une variable ne peut pas avoir le même nom qu'une fonction, un opérateur ou un autre mot clé valable de la syntaxe Crystal. Par exemple, votre variable ne peut pas être nommée Sin, Mod ou If car Sin est une fonction intégrée, Mod est un opérateur intégré et If est un mot clé intégré. Lorsque vous saisissez des formules dans l'Editeur de formule, le nom des fonctions, opérateurs et autres mots clés intégrés est mis en évidence à l'aide de couleurs différentes et il est ainsi facile de repérer l'existence de conflits avec les noms de variables.
Une fois déclarée, une variable peut être utilisée dans la formule. Vous pouvez, par exemple, souhaiter lui affecter une valeur initiale :
Local NumberVar x; x := 10;
Remarque
Le mot clé pour déclarer la variable numérique se termine par Var. Ceci s'applique à tous les types de variable de la syntaxe Crystal.
Les valeurs contenues dans une variable ne peuvent être que d'un seul type. Si, par exemple, une variable contient une valeur numérique, vous ne pouvez pas l'utiliser plus tard pour contenir une chaîne.
Local StringVar y; y := "hello";
//OK- la fonction Length attend un argument de type chaîne.
Length (y);
//Erreur- y peut uniquement contenir des valeurs de type chaîne.
y := #Jan 5, 1993#;
//Erreur- y peut uniquement contenir des valeurs de type chaîne.
y := ["a", "bb", "ccc"];
//Erreur- la fonction Sin attend un argument numérique.
Sin (y);
Vous pouvez déclarer une variable et lui affecter une valeur dans une seule expression. Par exemple :
Local NumberVar x := 10 + 20;
Local StringVar y := "Hello" + " " + "World";
Local DateVar z := CDate (#Sept 20, 1999#);
Local NumberVar Range gradeA := 90 To 100;
C'est une bonne méthode car elle est plus efficace et permet d'éviter de faire l'erreur courante qui consiste à initialiser les variables de façon incorrecte.
Les exemples ci-dessous concernent la déclaration et l'initialisation de variables plages :
Local NumberVar Range gradeA;
Local DateVar Range quarter; gradeA := 90 To 100; quarter := CDate (1999, 10, 1) To CDate (1999, 12, 31);
806
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Informations associées
Etendue de variables (syntaxe Crystal) [page 807]
1.7.2.2.9.2 Etendue de variables (syntaxe Crystal)
Les étendues de variables servent à définir dans quelle mesure les variables d'une formule sont utilisables par les autres formules. Il existe trois niveaux d'étendues dans SAP Crystal Reports :
● Locale
● Globale
● Partagée
Chaque variable a une étendue et celle-ci est spécifiée lors de la déclaration de la variable.
1.7.2.2.9.2.1 Variables locales (syntaxe Crystal)
Les variables à portée locale sont déclarées à l'aide du mot clé Local suivi du nom de type (avec le suffixe Var) et du nom de la variable.
Les variables locales sont limitées à une seule formule et à une seule évaluation de cette formule. Ceci signifie que vous ne pouvez pas accéder à la valeur d'une variable locale d'une formule à partir d'une autre formule.
Exemple
//Formula A
Local NumberVar x; x := 10;
//Formula B
EvaluateAfter ({@Formula A})
Local NumberVar x; x := x + 1;
L'appel de fonction EvaluateAfter ({@Formule A}) garantit que la formule B sera évaluée après la formule A. La formule A renvoie la valeur 10 et la formule B renvoie la valeur 1. La formule B ne peut pas accéder à la variable x de la formule A et ne peut donc pas utiliser la valeur 10 et lui ajouter 1. Au lieu de cela, elle utilise la valeur par défaut, qui est égale à 0, de la variable locale x non initialisée trouvée dans la formule B, et lui ajoute 1, ce qui donne 1.
Vous pouvez aussi créer des variables locales ayant le même nom mais de types différents dans différentes formules. Par exemple, les déclarations de type dans les formules A et B n'entrent pas en conflit avec :
//Formula C
Local StringVar x := "hello";
Les variables locales sont les plus efficaces des trois étendues. En outre, elles n'interfèrent pas les unes avec les autres dans différentes formules. C'est pourquoi il est préférable que les variables soient déclarées comme locales chaque fois que possible.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
807
1.7.2.2.9.2.2 Variables globales (syntaxe Crystal)
Les variables globales utilisent le même bloc de mémoire pour stocker une valeur sur l'ensemble du rapport principal. Cette valeur est alors utilisable par toutes les formules qui déclarent la variable, à l'exception de celles situées dans les sous-rapports. Vous déclarez une variable globale comme dans l'exemple suivant :
Global StringVar y;
Vous pouvez également omettre le mot clé Global, car, par défaut, la variable créée est globale :
StringVar y; //Identique à : Global StringVar y;
Cependant, même si les variables globales sont faciles à déclarer, il est préférable de ne les utiliser que lorsque les variables locales ne sont pas suffisantes.
Etant donné que les variables globales partagent leurs valeurs sur l'ensemble du rapport principal, vous ne pouvez pas déclarer une variable globale dans une formule avec un type puis déclarer une variable globale portant le même nom dans une formule différente avec un type différent.
Exemple
//Formula A
Global DateVar z; z := CDate (1999, 9, 18)
//Formula B
NumberVar z; z := 20
Dans ce cas, si vous entrez et enregistrez la formule A en premier, SAP Crystal Reports émettra un message d'erreur lorsque vous vérifierez ou essaierez d'enregistrer la formule B. Ceci est dû au fait que la déclaration de la variable globale z en tant que valeur numérique entre en conflit avec sa précédente déclaration dans la formule A en tant que date.
Utilisation des variables globales
Les variables globales sont souvent utilisées pour effectuer des calculs complexes lorsque le résultat d'une formule dépend du groupement et de la disposition de page du rapport imprimé réel. Ceci est obtenu en créant plusieurs formules, en les plaçant dans différentes sections du rapport et en faisant interagir les différentes formules par le biais de variables globales.
Exemple
//Formula C
Global NumberVar x; x := 10;
//Formula D
WhileReadingRecords;
Global NumberVar x; x := x + 1
Si la formule C est placée dans l'en-tête du rapport et que la formule D est placée dans une section Détails, la formule C sera évaluée avant la formule D. La formule C sera évaluée une fois puis la formule D sera évaluée pour
808
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
chaque enregistrement apparaissant dans la section Détails. La formule C renvoie 10. Pour le premier enregistrement de détail, la formule D renvoie 11. Ceci est dû au fait que la valeur 10 de x est conservée depuis le moment où elle a été définie par la formule C. La formule D ajoute alors 1 à cette valeur, en donnant à x la valeur 11, puis renvoie 11. Pour le deuxième enregistrement de détail, la formule D renvoie 12, en ajoutant 1 à la valeur précédente de x qui était 11. Ce processus se poursuit sur les autres enregistrements de détail restants.
L'appel de la fonction WhileReadingRecords demande à SAP Crystal Reports de réévaluer la formule D au fur et à mesure qu'elle est lue dans chaque enregistrement du rapport. Sinon, étant donné que la formule ne contient aucun champ de base de données, le programme l'évalue une fois pour toutes avant de lire les enregistrements de la base de données. La formule renverra alors toujours la valeur 11 et non pas 11, 12, 13, ... au fur et à mesure du traitement des enregistrements successifs.
Si l'expression x := x + 1 est remplacée par x := x + {Détails des commandes.Quantité}, vous créez l'effet d'un total cumulé fondé sur {Détails des commandes.Quantité}, bien qu'il commence à 10 et non à 0 à cause de la formule
C. Dans ce cas, vous pouvez omettre l'appel à la fonction WhileReadingRecords, car, étant donné que la formule contient un champ de base de données, l'appel se fera automatiquement.
1.7.2.2.9.2.3 Variables partagées (syntaxe Crystal)
Les variables partagées utilisent le même bloc de mémoire pour stocker la valeur d'une variable sur l'ensemble du rapport principal et de ses sous-rapports. Ainsi, les variables partagées sont encore plus générales que les variables globales. Pour utiliser une variable partagée, déclarez-la dans une formule du rapport principal comme dans l'exemple suivant :
Shared NumberVar x := 1000; et déclarez-la dans une formule d'un sous-rapport comme dans l'exemple suivant :
Shared NumberVar x;
Pour qu'elles puissent être utilisées, il faut déclarer les variables partagées et leur affecter une valeur avant qu'elles puissent être communiquées entre le rapport principal et le sous-rapport.
Informations associées
Variables globales (syntaxe Crystal) [page 808]
Insertion des sous-rapports [page 741]
1.7.2.2.9.3 Déclaration des variables de tableau (syntaxe
Crystal)
Vous pouvez déclarer les variables de tableau en faisant suivre le nom du type du mot clé tableau.
//Déclarer x en tant que variable globale de type Tableau numérique
Global NumberVar Array x := [10 , 20, 30];
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
809
//Prix est une variable globale de type Tableau de devises.
//Il s'agit automatiquement d'une variable globale car l'identificateur d'étendue
(Local, Global ou Partagé) a été omis.
CurrencyVar Array cost := [$19.95, $79.50, $110.00,
$44.79, $223.99];
//jourdepaye est une variable globale d'un tableau de type date.
Global DateVar Array payDays := [CDate(1999, 5, 15),
CDate(1999, 5, 31)];
//y est une variable partagée de type tableau de plages de chaînes.
Shared StringVar Range Array y := ["A" To "C",
"H" To "J"];
//jours est une variable locale de type tableau de chaînes.
Local StringVar Array days; days := ["Sun", "Mon", "Tue", "Wed", "Th", "Fri", "Sat"];
Affectation des valeurs aux éléments d'un tableau
Vous pouvez affecter des valeurs aux éléments d'un tableau et également les utiliser pour d'autres calculs.
StringVar Array x := ["hello", "bye", "again"]; x [2] := "once"; // x == ["hello", "once", "again"]
L'expression ci-dessous entraîne une erreur si elle n'est pas accompagnée d'un commentaire car la taille du tableau est égale à 3.
//La formule renvoie la chaîne "BONJOUR".
UpperCase (x [1])
Les mots clés Redim et Redim Preserve peuvent être utilisés pour redimensionner un tableau si vous voulez lui ajouter des données supplémentaires. Redim efface d'abord le contenu précédent du tableau avant de le redimensionner tandis que Redim Preserve conserve ce contenu.
Local NumberVar Array x;
Redim x [2]; // x = [0, 0] x [2] := 20; // x = [0, 20]
Redim x [3]; // x = [0, 0, 0] x [3] := 30; // x = [0, 0, 30]
Redim Preserve x [4]; // x = [0, 0, 30, 0]
"finished"
Local StringVar Array a;
Redim a [2]; a[1] := "good"; a[2] := "bye"; a[1] & a[2] //La formule renvoie la chaîne "au revoir"
Tableaux et boucles For
Les tableaux sont couramment utilisés avec des boucles For. L'exemple suivant crée puis utilise le tableau [10, 20,
30, ..., 100] à l'aide d'une boucle For. La formule ci-dessous renvoie le nombre 20.
Local NumberVar Array b;
Redim b[10];
Local NumberVar i;
For i := 1 To 10 Do
(
b[i] := 10 * i
);
810
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
b [2]
1.7.2.2.9.4 Valeurs par défaut pour les types simples
(syntaxe Crystal)
Une variable non initialisée contient la valeur par défaut de son type. En général, ce n'est pas une bonne habitude de programmation que de s'appuyer sur les valeurs par défaut des types. Par exemple, initialisez toutes les variables locales de votre formule, initialisez toutes les variables globales d'une formule placée dans l'en-tête du rapport et initialisez toutes les variables partagées d'une formule placée dans l'en-tête du rapport principal.
Lorsqu'un tableau est redimensionné à l'aide du mot clé Redim, les entrées sont remplies avec la valeur par défaut du type.
1.7.2.2.9.4.1 Valeurs par défaut
Number
0
Devise
$0
Chaîne
"" //Chaîne vide.
Date
Date (0, 0, 0) //Valeur de date nulle.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
811
Heure
Valeur d'heure nulle. Valeur contenue dans une variable Heure non initialisée.
DateHeure
Valeur de type date/heure nulle. Valeur contenue dans une variable DateHeure non initialisée.
Remarque
Il n'est pas recommandé que vos formules reposent sur les valeurs de variables de plage ou de tableau non initialisées.
1.7.2.2.9.5 Conversions de type automatiques (syntaxe
Crystal)
Généralement, dans SAP Crystal Reports, les valeurs d'un type ne peuvent pas être utilisées là où les valeurs d'un autre type sont attendues sans fournir explicitement une fonction de conversion de type. Par exemple :
Local StringVar postalCode;
//Erreur- une valeur numérique est affectée à une chaîne.
postalCode := 10025;
//OK - utiliser la fonction de conversion de type CStr pour créer "10025".
postalCode := CStr (10025, 0);
Cependant, quelques conversions sont effectuées automatiquement :
● nombre en devise
● date en date/heure
● Type simple à valeur de plage du même type simple sous-jacent
Par exemple, les affectations suivantes sont correctes :
Local CurrencyVar cost;
//Identique à : cost := $10 cost := 10;
Local DateTimeVar orderDate;
//Identique à : orderDate := CDateTime (1999, 9, 23, 0, 0, 0) orderDate := CDate (1999, 9, 23);
Local NumberVar Range aRange;
//Identique à : aRange := 20 To 20 aRange := 20;
Local NumberVar Range Array aRangeArray;
//Identique à : aRangeArray := [10 To 10, 20 To 25, 2 To 2] aRangeArray := [10, 20 To 25, 2];
812
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Remarque
Les conversions dans le sens opposé ne sont pas autorisées. Par exemple :
Local NumberVar num; num := 5 + $10;
//OK- convertir en valeur de type numérique à l'aide de la fonction CDbl num := CDbl (5 + $10)
5 est converti en 5 dollars et ajouté aux 10 dollars pour donner 15 dollars. Cependant, cette valeur monétaire ne peut pas être affectée automatiquement à la variable numérique num puisque les conversions automatiques de devise en nombre ne sont pas permises. De même, un argument numérique peut être affecté à des fonctions acceptant un argument monétaire, et l'argument numérique sera converti en argument monétaire alors qu'il n'est pas possible d'affecter un argument monétaire aux fonctions acceptant un argument numérique sans d'abord convertir la valeur monétaire en valeur numérique à l'aide de la fonction CDbl.
1.7.2.2.10 Fonctions (syntaxe Crystal)
Les fonctions sont des procédures ou sous-programmes intégrés servant à évaluer, calculer ou transformer des données. Quand vous appelez une fonction, le programme effectue l'ensemble des opérations définies dans celleci sans que vous ayez besoin de spécifier chaque opération séparément.
1.7.2.2.10.1 Présentation des fonctions (syntaxe Crystal)
Lorsque vous utilisez une fonction dans une formule, tapez le nom de la fonction et fournissez les arguments requis. Par exemple, la fonction Length requiert un argument de type chaîne et calcule la longueur de la chaîne. La formule ci-dessous renvoie le nombre 5.
Local StringVar x := "hello";
Length (x)
Si les arguments requis par la fonction sont fournis dans un type incorrect, une erreur se produit. Par exemple, un appel à la fonction Length (3) produirait une erreur puisque Length n'accepte pas d'argument numérique.
Les fonctions peuvent quelquefois accepter des nombres ou des types d'arguments différents. Par exemple,
CDate qui pourrait accepter un argument composé d'une chaîne unique pour former une valeur de type date ou composé de trois valeurs numériques correspondant respectivement à l'année, au mois et au jour pour former
également une valeur de type date. Voir
Date, Heure et Date/heure (syntaxe Crystal) [page 802] .
Exemple avec la fonction Mid
Local StringVar x := "hello";
Local StringVar y;
//Commencer à la position 2, aller à la fin de la chaîne.
y := Mid (x, 2); //y a maintenant pour valeur "onjour".
//Start at position 2, extract 1 character y := Mid (x, 2, 1) //y a maintenant pour valeur "o".
Ces classes de fonctions sont : Mathématique, Résumé, Finance, Chaîne, Date/heure, Plage de dates, Tableau,
Conversion de type, Raccourcis de programmation, Moment d'évaluation, Statut de l'impression, Propriétés de
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
813
document et Fonctions supplémentaires. Il existe aussi certaines fonctions spécifiques aux formules de mise en forme conditionnelle.
1.7.2.2.10.2 Fonctions non spécifiques à la création de rapports (Syntaxe Crystal)
Les groupes Mathématique, Finance, Chaîne, Date/heure, Conversion de type et Raccourcis de programmation sont principalement composés de fonctions qui ne sont pas spécifiques à la création de rapports mais qui pourraient être rencontrées dans un environnement de programmation doté de fonctionnalités étendues. Un grand nombre de ces fonctions ont des fonctionnalités similaires aux fonctions de Visual Basic portant le même nom ou un nom similaire.
Remarque certaines fonctions prises en charge par la syntaxe Crystal ne sont pas répertoriées dans l'arborescence des fonctions de la syntaxe Crystal. C'est parce qu'elles sont équivalentes aux fonctions de la syntaxe Crystal déjà présentes dans l'arborescence.
Par exemple, la fonction Length est la fonction traditionnelle de la syntaxe Crystal pour trouver la longueur d'une chaîne. La syntaxe Crystal prend également en charge Len en tant que synonyme. Len est cette fonction exprimée dans la syntaxe Basic ou Visual Basic et elle est incluse pour permettre aux utilisateurs du Basic et de Visual Basic d'écrire ou de modifier commodément des formules écrites dans la syntaxe Crystal.
1.7.2.2.10.3 Fonctions de mise en forme conditionnelle
(syntaxe Crystal)
Lors de l'écriture d'une formule de mise en forme conditionnelle, certaines fonctions supplémentaires s'affichent en haut de l'arborescence des fonctions pour vous aider sur ce point. Par exemple, vous pouvez mettre en forme le champ {Clients.Ventes de l'année dernière} de sorte que les ventes de plus de 100 000 € soient imprimées en vert, que celles de moins de 15 000 € soient imprimées en rouge et que tout le reste soit imprimé en noir.
Exemple
If {Customer.Last Year's Sales} > 100000 Then
crGreen
Else If {Customer.Last Year's Sales} < 15000 Then
crRed
Else
crBlack
Etant donné qu'il s'agit d'une fonction de mise en forme de couleur de police, la liste des constantes de couleurs s'affiche dans l'arborescence des fonctions. Cet exemple en utilise trois : crGreen, crRed et crBlack. Au lieu de cela, vous pourriez avoir utilisé les valeurs numériques réelles des constantes de couleur. Par exemple, la valeur de crRed est 255 et celle de crGreen est 32 768. Toutefois, la formule est plus lisible lorsque les constantes de couleur sont utilisées. Toutes les fonctions de constantes en syntaxe Crystal peuvent porter le préfixe "cr".
814
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
La syntaxe Crystal prend toujours en charge les fonctions constantes des versions précédentes qui n'ont pas le préfixe "cr". Vous pouvez, par exemple, utiliser "Red" au lieu de "crRed". Toutefois, l'utilisation du préfixe "cr" permet d'organiser les fonctions constantes et est recommandée.
Remarque
Certains attributs de mise en forme n'utilisent pas les fonctions constantes. Par exemple, si vous ne vouliez pas imprimer les valeurs de {Clients.Ventes de l'année dernière} pour les ventes d'un montant inférieur à 50 000 €, vous pourriez écrire la formule de mise en forme suivante pour l'attribut de suppression :
If {Customer.Last Year's Sales} < 50000 Then
True // Supprimer la valeur.
Else
False // Ne pas supprimer la valeur.
Ou plus simplement :
{Customer.Last Year's Sales} < 50000
Si le montant des ventes de l'année dernière est inférieur à 50 000 €, l'expression
{Customer.Last Year's Sales} < 50000 est vraie, et la formule renvoie la valeur True. D'un autre côté, si le montant des ventes de l'année dernière est supérieur ou égal à 50 000 €, l'expression
{Customer.Last Year's Sales} < 50000 est fausse et la formule renvoie la valeur False.
1.7.2.2.10.4 Fonctions générales de mise en forme conditionnelle (syntaxe Crystal)
Il existe trois fonctions générales de mise en forme conditionnelle :
● CurrentFieldValue
● DefaultAttribute
● GridRowColumnValue
DefaultAttribute peut être utilisée pour toute formule de mise en forme, CurrentFieldValue pour toute formule assurant la mise en forme d'une valeur de champ et GridRowColumnValue pour toute formule dans laquelle vous effectuez une mise en forme de champ dans un tableau croisé ou dans une grille OLAP.
CurrentFieldValue permet d'appliquer une mise en forme conditionnelle aux cellules de tableaux croisés ou de grilles OLAP en fonction de leur valeur. GridRowColumnValue permet d'appliquer une mise en forme conditionnelle aux cellules de tableaux croisés ou de grilles OLAP en fonction des valeurs des en-têtes de lignes ou de colonnes. Ces deux fonctions sont primordiales dans cette situation car il n'y a pas d'autre moyen dans le langage de formule de faire référence aux valeurs de ces champs.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
815
Ce serait le cas si vous vouliez, par exemple, supprimer les cellules d'un tableau croisé contenant une valeur inférieure à 50 000 :
CurrentFieldValue < 50000
1.7.2.2.11 Opérateurs (syntaxe Crystal)
Le terme "opérateur" désigne des symboles ou mots spéciaux décrivant une opération ou une action applicable à au moins deux valeurs. Crystal Reports lit les opérateurs dans une formule et exécute les actions indiquées.
1.7.2.2.11.1 Opérateurs arithmétiques (syntaxe Crystal)
Les opérateurs arithmétiques sont utilisés pour combiner des nombres, des variables numériques, des champs et des fonctions numériques pour obtenir un autre nombre.
Les opérateurs arithmétiques sont l'addition (+), la soustraction (-), la multiplication (*), la division (/), la division entière (\), le pourcentage (%), l'opération Modulo (Mod), la négation (-) et l'exponentielle (^).
//Pourcentage d'actions privilégiées extraordinaires par rapport aux actions ordinaires.
{Financials.Preferred Stock} %
{Financials.Common Stock};
7 + 2 * 3 - 2 + Sqr(6 + 3) * Length("up");
//La formule renvoie la valeur 17.
Ordre de priorité
Le programme évalue en général les expressions dans l'ordre suivant :
● de gauche à droite
● suivant les règles de base de priorité utilisées en mathématiques
Liste des opérateurs arithmétiques, dans l'ordre de priorité décroissante
● Exponentielle (^)
● Négation (-)
● Multiplication, division et pourcentage (*, /, %)
● Division entière (\)
● Modulo (Mod)
● Addition et soustraction (+, -)
Les multiplications et les divisions s'effectuent d'abord de gauche à droite. Vient ensuite le tour des additions et soustractions. Par exemple, 5 + 10 * 3 = 5 + 30 = 35.
816
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Vous pouvez changer cet ordre de priorité en utilisant des parenthèses. Par exemple, (5 + 10) * 3 = 15 * 3 = 45.
L'utilisation de parenthèses est recommandée lorsque vous n'êtes pas certain de l'ordre de priorité.
1.7.2.2.11.2 Opérateurs de comparaison (syntaxe Crystal)
Les opérateurs de comparaison sont habituellement utilisés pour comparer des opérandes à une condition dans une structure de contrôle telle qu'une expression If.
Les opérateurs de comparaison sont : égal à (=), différent de (<>), inférieur à (<), inférieur ou égal à (<=), supérieur à (>) et supérieur ou égal à (>=).
Les opérateurs de comparaison en tant que groupe ont tous une priorité inférieure aux opérateurs arithmétiques.
Ainsi, des expressions comme 2 + 3 < 2 * 9 sont l'équivalent d'expressions telles que (2 + 3) < (2*9).
1.7.2.2.11.3 Opérateurs booléens (syntaxe Crystal)
Les opérateurs booléens sont habituellement utilisés avec les opérateurs de comparaison pour créer des conditions pour les structures de contrôle.
Les opérateurs booléens sont, par ordre de priorité décroissant : Not, And, Or, Xor, Eqv et Imp.
Les opérateurs booléens en tant que groupe ont une priorité plus faible que les opérateurs de comparaison. Ainsi par exemple, l'expression 2 < 3 And 4 >=-1 est équivalente à l'expression (2 < 3) And (4 >= -1).
1.7.2.2.11.4 Champs et valeurs NULL (syntaxe Crystal)
En général, lorsque SAP Crystal Reports rencontre un champ de valeur nulle dans une formule, il arrête immédiatement l'évaluation de la formule et ne produit pas de valeur. Si vous voulez manipuler des valeurs de champ nulles dans votre formule, vous devez le faire de façon explicite en utilisant l'une des fonctions spéciales conçues pour cela : IsNull, PreviousIsNull ou NextIsNull.
En ce qui concerne les opérateurs, lorsque SAP Crystal Reports évalue la condition :
IsNull({Product.Color}) Or
InStr({Product.Color}, " ") = 0
L'évaluation de IsNull ({Produits.Couleur}) se fait en premier; si le résultat est déterminé comme étant vrai (True), il est certain qu'il en est de même pour l'ensemble de la condition, et il n'est donc pas nécessaire de vérifier si
InStr({Product.Color}, " ") = 0
En d'autres termes, SAP Crystal Reports arrête d'évaluer une expression booléenne quand il peut déduire le résultat de la totalité de l'expression. Dans l'exemple suivant, la formule surveille les tentatives de division par zéro dans le cas où le dénominateur serait égal à 0 :
Local NumberVar num;
Local NumberVar denom;
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
817
...
If denom <> 0 And num / denom > 5 Then
...
Le champ {Produits.Couleur} contient des couleurs de base comme "rouge" et "noir" et des couleurs fantaisie dont le nom est en deux mots comme "satin acier" et "vert émeraude". Imaginez vouloir écrire une formule indiquant "base" pour les couleurs de base et "fantaisie" pour les autres.
If InStr({Product.Color}, " ") = 0 Then
"basic"
Else
"fancy"
L'appel de la fonction InStr recherche un espace dans la chaîne {Produits.Couleur}. S'il trouve un espace, il renvoie la position de celui-ci ; sinon il renvoie 0. Les couleurs de base étant représentées par un mot unique ne comportant pas d'espace, InStr renvoie 0 pour chacune de ces couleurs.
Pour certains produits, tels que l'antivol Guardian, aucune couleur n'a été enregistrée de sorte que le champ
{Produits.Couleur} a une valeur nulle dans la base de données pour cet enregistrement. C'est pourquoi aucun mot n'est imprimé devant "antivol Guardian".
Voici comment mettre au point l'exemple précédent à l'aide de IsNull :
If IsNull({Product.Color}) Or
InStr({Product.Color}, " ") = 0 Then
"basic"
Else
"fancy"
Informations associées
Boîte de dialogue Editeur de formule [page 703]
1.7.2.2.12 Structures de contrôle (syntaxe Crystal)
Les formules dépourvues de structures de contrôle exécutent chaque expression de la formule au moment exact où la formule est évaluée. Les expressions sont exécutées de manière séquentielle, de la première à la dernière expression de la formule. Les structures de contrôle vous permettent de faire varier cette séquence rigide. Selon la structure de contrôle que vous choisissez, vous pouvez sauter certaines expressions ou en évaluer d'autres de manière répétée en fonction de l'existence de certaines conditions. Les structures de contrôle constituent le moyen principal pour exprimer une logique métier, et des formules de rapports habituelles en font un usage extensif.
1.7.2.2.12.1 Expressions If (syntaxe Crystal)
L'expression If est l'une des structures de contrôle les plus utiles. Elle vous permet d'évaluer une expression si une condition est vraie et d'évaluer une expression différente dans le cas contraire.
818
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Remarque
Lorsque vous procédez à une mise en forme à l'aide de formules conditionnelles, incluez systématiquement le mot clé Else. Les valeurs ne remplissant pas la condition If risquent sinon de perdre leur format initial. Pour
éviter cela, utilisez la fonction DefaultAttribute (If...Else DefaultAttribute).
Exemple
Une société envisage de payer une prime de 4 % à ses employés, à l'exception de ceux travaillant au service des ventes qui recevront une prime de 6 %. Ceci sera effectué par la formule suivante à l'aide d'une expression If :
If {Employee.Dept} = "Sales" Then
{Employee.Salary} * 0.06
Else
{Employee.Salary} * 0.04
Dans cet exemple, si la condition {Employés.Poste occupé} = "Ventes" est évaluée comme vraie,
{Employee.Salary} * 0.06
l'expression est traitée. Sinon, l'expression qui suit la clause Else, c'est-à-dire
{Employee.Salary} * 0.04
est traitée.
Supposons qu'une autre société ait l'intention d'accorder une prime de 4 % à ses employés et que cette prime ne puisse pas être inférieure à 1 000 €. Remarquez que la clause Else n'est pas incluse ; elle est facultative et n'est pas nécessaire dans ce cas.
Local CurrencyVar bonus := {Employee.Salary} * 0.04;
If bonus < 1000 Then
bonus := 1000;
//L'expression finale est uniquement la variable 'bonus'.
//La valeur de la variable est renvoyée et constitue le résultat de la formule.
bonus
Une autre façon d'effectuer l'exemple 2 consiste à utiliser une clause Else :
Local CurrencyVar bonus := {Employee.Salary} * 0.04;
If bonus < 1000 Then
1000
Else
bonus
Supposons maintenant que la société précédente veuille également que la prime soit au maximum égale à
5 000 €. Vous devez alors utiliser une clause Else If. L'exemple suivant comporte seulement une clause Else If, mais vous pouvez en ajouter autant qu'il en faut.
Remarque
Il ne peut y avoir qu'une seule clause Else par instruction If.
La clause Else est exécutée si aucune des expressions If ou Else If n'est vraie.
Local CurrencyVar bonus := {Employee.Salary} * 0.04;
If bonus < 1000 Then
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
819
1000
Else If bonus > 5000 Then
5000
Else
bonus;
Exemple
Supposons qu'une société souhaite calculer une estimation du montant de l'impôt qu'un employé aura à payer, et
écrire un message en conséquence. Un revenu inférieur à 8 000 € n'est pas imposable, un revenu compris entre
8 000 € et 20 000 € est imposé à 20 %, un revenu compris entre 20 000 € et 35 000 € est imposé à 29 % et un revenu supérieur à 35 000 € est imposé à 40 %.
Local CurrencyVar tax := 0;
Local CurrencyVar income := {Employee.Salary};
Local StringVar message := "";
If income < 8000 Then
(
message := "no";
tax := 0
)
Else If income >= 8000 And income < 20000 Then
(
message := "lowest";
tax := (income - 8000)*0.20
)
Else If income >= 20000 And income < 35000 Then
(
message := "middle";
tax := (20000 - 8000)*0.20 + (income - 20000)*0.29
)
Else
(
message := "highest";
tax := (20000 - 8000)*0.20 + (35000 - 20000)*0.29 +
(income - 35000)*0.40
);
//Utiliser 2 décimales et un espace comme séparateur des milliers.
Local StringVar taxStr := CStr (tax, 2, ",");
"Vous vous situez dans la tranche " & message & ". "Votre impôt estimé est de " & impôtStr & "."
Remarque
Les variables servent à simplifier la logique de calcul. Deux expressions sont exécutées quand l'une des conditions est remplie ; l'une affecte une valeur à la variable "impôt" et l'autre affecte une valeur à la variable
"message". Il est souvent utile que plusieurs expressions soient exécutées en tant que résultat d'une condition.
820
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.7.2.2.12.1.1 Regroupement des expressions (syntaxe
Crystal)
L'expression If est une expression. En d'autres termes, elle est évaluée sous la forme d'une valeur d'un type donné. S'il n'y a pas de clause Else et que la condition n'est pas vraie, la valeur est la valeur par défaut du type. Par exemple :
If Length ({Employee.First Name}) < 5 Then
"short"
L'expression If ci-dessus renvoie une valeur de chaîne. La valeur de la chaîne est "court" si le prénom de l'employé comporte moins de 5 lettres ou la chaîne vide "" dans le cas contraire.
Observez la formule :
If Year({Orders.Order Date}) >= 1995 Then
{Orders.Order Date}
Pour les dates de commande antérieures à 1995, l'expression If ci-dessus renvoie la valeur de type date/heure nulle. C'est une valeur de type date/heure et non une valeur de date puisque {Commandes.Date de commande} est un champ de base de données de type date/heure. SAP Crystal Reports n'imprime pas cette valeur nulle et, ainsi, si la formule ci-dessus est utilisée dans un rapport, le champ de formule sera vierge pour les dates de commande antérieures à 1995. Il en va de même pour les valeurs d'heure et de date nulles.
Voici un exemple illustrant l'utilisation de parenthèses pour que le résultat d'une condition If débouche sur l'exécution de plusieurs expressions. Une société facture des frais de port de 5 % pour les commandes livrées sous trois jours, et de 2 % dans les autres cas. Elle souhaite imprimer des messages tels que "Frais de port pour expédition express : 100,00 €" ou "Frais de port pour expédition ordinaire : 20,00 €".
Local StringVar message;
Local CurrencyVar ship;
If {Orders.Ship Date} - {Orders.Order Date} <= 3 Then
(
message := "Rush";
//Un point-virgule à la fin de la ligne suivante est facultatif.
ship := {Orders.Order Amount} * 0.05
) //Vous ne pouvez pas placer de point-virgule ici.
Else
(
message := "Regular";
ship := {Orders.Order Amount} * 0.02;
);
//Le point-virgule précédent est nécessaire pour séparer l'expression If de l'expression finale ci-dessous.
message & " shipping is " & CStr (ship)
Lorsque des expressions sont groupées à l'aide de parenthèses, le groupe tout entier est considéré comme une seule expression, et sa valeur et son type sont ceux de l'expression finale entre parenthèses.
//L'expression de tout le groupe entre parenthèses est de type monétaire.
(
//La première expression à l'intérieur des parenthèses est de type chaîne.
message := "Rush";
//La deuxième et dernière expression à l'intérieur des parenthèses est de type monétaire.
ship := {Orders.Order Amount} * 0.05;
)
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
821
Ainsi, par exemple, la formule suivante produit une erreur. C'est parce que la partie Then de l'expression If renvoie une valeur monétaire alors que la partie Else renvoie une valeur de chaîne. Ce n'est pas autorisé, car l'expression If est une expression et en tant que telle doit toujours renvoyer une valeur d'un seul type.
Local StringVar message;
Local CurrencyVar ship;
If {Orders.Ship Date} - {Orders.Order Date} <= 3 Then
(
message := "Rush";
ship := {Orders.Order Amount} * 0.05
)
Else
(
//Les 2 lignes suivantes ont été interverties.
ship := {Orders.Order Amount} * 0.02;
message := "Regular";
); message & " shipping is " & CStr (ship)
Un moyen de mettre au point la formule erronée sans avoir à se préoccuper de l'ordre de l'expression consiste simplement à faire en sorte que l'expression If renvoie une valeur constante du même type dans chaque branche.
Par exemple, l'expression If renvoie maintenant la valeur numérique 0 :
Local StringVar message;
Local CurrencyVar ship;
If {Orders.Ship Date} - {Orders.Order Date} <= 3 Then
(
message := "Rush";
ship := {Orders.Order Amount} * 0.05;
0
)
Else
(
ship := {Orders.Order Amount} * 0.02;
message := "Regular";
0
); message & " shipping is " & CStr (ship)
1.7.2.2.12.2 Expressions Select (syntaxe Crystal)
L'expression Select est semblable à une expression If. Quelquefois, cependant, vous pourrez écrire des formules plus claires et moins répétitives à l'aide de l'expression Select. Par exemple, pour évaluer le champ {Clients.Fax} afin de déterminer si l'indicatif correspond à l'état de Washington (206, 360, 509) ou de la Colombie-Britannique au Canada (604, 250) :
Select {Customer.Fax}[1 To 3]
Case "604", "250" :
"BC"
Case "206", "509", "360" :
"WA"
Default :
"";
L'expression située à droite du mot clé Select est appelée condition Select. Dans l'exemple ci-dessus, il s'agit de
{Clients.Fax}[1 To 3]. L'expression Select essaie de trouver le premier cas qui correspond à la condition Select, puis exécute l'expression qui suit le signe deux-points pour ce cas. Le cas par défaut est pris en compte si aucun
822
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
des cas précédents ne correspond à la condition Select. Notez qu'il y a également un signe deux-points après la valeur par défaut.
Local StringVar areaCode := {Customer.Fax}[1 To 3];
If areaCode In ["604", "250"] Then
"BC"
Else If areaCode In ["206", "509", "360"] Then
"WA"
Else
"";
Cette formule groupe le nombre de nominations aux Oscars reçues par un film dans l'une des catégories faible, moyen, élevé ou très élevé et montre dans le processus certaines des possibilités pour les listes d'expressions qui suivent les intitulés des cas.
Select {movie.NOM}
Case 1,2,3, Is < 1 :
(
10 + 20;
"low"
)
Case 4 To 6, 7, 8, 9 :
"medium"
Case 10 :
"high"
Default :
"extreme"
La clause par défaut de l'expression Select est facultative. Si la clause par défaut est absente et qu'il n'y a aucune correspondance pour chacun des cas, l'expression Select renvoie la valeur par défaut pour son type d'expression.
Par exemple, si dans l'exemple ci-dessus la clause par défaut avait été omise et {movie.NOM} = 11, la chaîne vide
"" aurait été renvoyée. L'expression Select est une expression, et les mêmes commentaires que ceux faits dans la section Détails supplémentaires sur les expressions If s'appliquent aussi.
1.7.2.2.12.3 Boucles For (syntaxe Crystal)
Les boucles For vous permettent d'évaluer une suite d'expressions un certain nombre de fois. Le fonctionnement n'est donc pas le même que pour les expressions If et Select que le programme rencontrera au plus une fois pendant l'évaluation de la formule.
Les boucles For sont préférables lorsque vous connaissez à l'avance combien de fois l'expression doit être
évaluée.
Exemple
Utilisation d'une boucle For
Supposons que vous vouliez inverser la chaîne {Clients.Nom du client}. Par exemple, "Cyclistes urbains" devient "sniabru setsilcyC".
Local StringVar str := "";
Local NumberVar strLen :=
Length ({Customer.Customer Name});
Local NumberVar i;
For i := 1 To strLen Do
(
Local NumberVar charPos := strLen - i + 1;
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
823
str := str + {Customer.Customer Name}[charPos]
); str
Observez le mode de fonctionnement de cette formule en supposant que la valeur actuelle du champ
{Clients.Nom du client} soit "Air propre". La longueur de "Air propre" est assignée à la variable strLen, à savoir
10. Il s'agit d'une variable de comptage de boucle For car sa valeur change à chaque itération de la boucle For.
En d'autres termes, elle est utilisée pour compter les itérations de la boucle. La boucle For va exécuter 7 itérations. La première fois, i est égal à 1, puis i est égal à 2, puis i est égal à 3, et ainsi de suite, jusqu'à ce que i soit égal à 7. Au cours de la première itération, le dixième caractère de {Clients.Nom du client} est affecté à la variable chaîne vide str. Ainsi, str est égal à "e" après la première itération. Au cours de la deuxième itération, le neuvième caractère de {Clients.Nom du client} est ajouté à str dont la valeur est désormais "er". Cela se poursuit au-delà de la dixième itération, str est égale à "erporp riA", c'est-à-dire la chaîne inversée.
Exemple
Utilisation d'une boucle For et d'une clause Step
Voici une version plus simple de la formule ci-dessus qui utilise une clause Step avec un pas négatif (step) égal
à -1. Dans le cas de l'exemple de "Air propre", i est égal à 10 dans la première itération, à 9 dans la deuxième, à 8 dans la troisième, et ainsi de suite, jusqu'à ce que i soit égal à 1 dans la dernière itération.
Local StringVar str := "";
Local NumberVar strLen :=
Length ({Customer.Customer Name});
Local NumberVar i;
For i := strLen To 1 Step -1 Do
(
str := str + {Customer.Customer Name}[i]
); str
Exemple
Utilisation de StrReverse
La version la plus simple consiste à utiliser la fonction intégrée StrReverse :
StrReverse ({Customer.Customer Name})
Les fonctions intégrées de chaîne dans SAP Crystal Reports peuvent manipuler de nombreuses applications de traitement de chaîne qui le seraient habituellement au moyen de boucles For ou d'autres types de boucles.
Cependant, les boucles For apportent la plus grande souplesse en matière de traitement des chaînes et
également de la puissance dans le traitement des tableaux, ce qui peut s'avérer essentiel si les fonctions intégrées ne couvrent pas l'application envisagée.
1.7.2.2.12.3.1 Exemples de boucles For (syntaxe Crystal)
Voici un exemple plus achevé des capacités de traitement de chaîne de SAP Crystal Reports. Le mode de cryptage César est un code simple qui est traditionnellement attribué à Jules César. Dans ce code, chaque lettre d'un mot est remplacée par la lettre qui est située 5 caractères plus loin dans l'alphabet. Par exemple, "Rive"
824
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
devient "Wnaj". Notez que "v" est remplacé par "a" ; puisqu'il n'y a pas 5 caractères après le "v" dans l'alphabet, on recommence à partir du début.
Voici une formule qui applique le mode de cryptage de César au champ {Clients.Nom du client} de la base de données Xtreme.mdb.
Local StringVar inString := {Customer.Customer Name};
Local NumberVar shift := 5;
Local StringVar outString := "";
Local NumberVar i;
For i := 1 To Length(inString) Do
(
Local StringVar inC := inString [i];
Local StringVar outC;
Local BooleanVar isChar :=
LowerCase(inC) In "a" To "z";
Local BooleanVar isUCaseChar :=
isChar And (UpperCase (inC) = inC);
inC := LCase(inC);
If isChar Then
(
Local NumberVar offset :=
(Asc(inC) + shift - Asc("a")) Mod
(Asc("z") - Asc("a") + 1);
outC := Chr(offset + Asc("a"));
If isUCaseChar Then outC := UpperCase(outC)
)
Else
outC := inC;
outString := outString + outC
); outString
Dans l'exemple ci-dessus, une expression If est imbriquée dans le bloc d'expressions de la boucle For. Cette expression If est chargée des détails précis relatifs au décalage d'un seul caractère. Par exemple, les lettres sont traitées différemment de la ponctuation et des espaces. En particulier, la ponctuation et les caractères ne sont pas codés. Une remarque générale à ce point est que les structures de contrôle peuvent être imbriquées dans d'autres structures de contrôle et que plusieurs expressions peuvent être incluses dans les blocs d'expressions entre parenthèses des autres structures de contrôle.
1.7.2.2.12.3.2 Sortie de boucles For (syntaxe Crystal)
Vous pouvez sortir d'une boucle For à l'aide de la clause Exit For. Dans l'exemple suivant, le nom "Fred" est recherché dans le tableau global de noms. Si le nom est trouvé, l'indice du nom est renvoyé dans le tableau. Sinon, la valeur renvoyée est -1.
Par exemple, si le tableau de noms est :
["Frank", "Helen", "Fred", "Linda"]
La formule renvoie la valeur 3.
Global StringVar Array names;
//Le tableau de noms a été initialisé et rempli dans d'autres formules.
Local NumberVar i;
Local NumberVar result := -1;
//La fonction UBound renvoie la taille de son argument de tableau.
For i := 1 to UBound (names) Do
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
825
(
If names [i] = "Fred" Then
(
result := i;
Exit For
)
); result
Lorsqu'elle est considérée comme une expression, la boucle For renvoie toujours la valeur booléenne True (Vrai).
Ainsi, vous ne voudrez presque jamais qu'une boucle For soit la dernière expression dans une formule, puisque dans ce cas, la formule affichera seulement la valeur True plutôt que le résultat attendu.
1.7.2.2.12.4 Boucles While (syntaxe Crystal)
Une boucle While peut être utilisée pour exécuter indéfiniment un bloc défini d'instructions.
Deux types de boucles While
Table 23 :
Type de boucle
While ... Do
Do ... While
Explication
La boucle While ... Do évalue la condi tion ; si celle-ci est vraie, l'expression qui suit Do est également évaluée.
Exemple
While condition Do
expression
Après ce premier passage, la condition est de nouveau évaluée et, si celle-ci est vraie, l'expression qui suit Do est de nou veau évaluée.
Le processus se répète jusqu'à ce que la condition soit fausse.
La boucle Do ... While évalue l'expression une fois, quelle qu'elle soit.
La condition est ensuite évaluée et, si celle-ci est vraie, l'expression est de nou veau évaluée. Ce processus se poursuit jusqu'à ce que la condition soit fausse.
Do
expression
While condition
Remarque
Les boucles While acceptent l'instruction Exit While qui assure une sortie immédiate de la boucle. Son utilisation est analogue à celle de l'instruction Exit For dans les boucles For. comme pour la boucle For, la boucle While considérée comme une expression renvoie toujours la valeur booléenne True (Vrai).
Exemple de boucle While ... Do
Dans l'exemple suivant, la première occurrence d'un chiffre est recherchée dans une chaîne d'entrée. Si un chiffre est trouvé, c'est la position du chiffre qui est renvoyée ; sinon c'est la valeur -1. Dans ce cas, la chaîne d'entrée est
826
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
définie explicitement comme une constante chaîne, mais elle pourrait également être définie comme égale à un champ de base de données de type chaîne.
Par exemple, pour la chaîne d'entrée, "Les 7 nains", la formule renvoie 5, qui est la position du chiffre 7.
Local StringVar inString := "The 7 Dwarves";
Local NumberVar strLen := Length (inString);
Local NumberVar result := -1;
Local NumberVar i := 1;
While i <= strLen And result = -1 Do
(
Local StringVar c := inString [i];
If NumericText (c) Then
result := i;
i := i + 1;
); result
1.7.2.2.12.5 Eviter les boucles infinies (syntaxe Crystal)
Il existe un mécanisme de sécurité pour éviter le blocage du traitement d'un rapport à cause d'une boucle infinie.
Pour chaque évaluation de formule, le nombre maximum d'évaluations de condition de boucle est de 100 000. Par exemple :
Local NumberVar i := 1;
While i <= 200000 Do
(
If i > {movie.STARS} Then
Exit While;
i := i + 1
);
20
Si {movie.STARS} est supérieur à 100 000, la condition de boucle (i <= 200000) sera évaluée un plus grand nombre de fois que le maximum autorisé et un message d'erreur s'affichera. Sinon la boucle est correcte.
Remarque
Le mécanisme de sécurité s'applique au niveau de la formule, et non pour chaque boucle individuelle. Par exemple :
Local NumberVar i := 1;
For i := 1 To 40000 Do
(
Sin (i);
);
While i <= 70000 Do
(
i := i + 1;
)
La formule ci-dessus déclenche aussi le mécanisme de sécurité puisque le nombre de 100 000 fait référence au nombre total d'évaluations de condition de boucle de la formule et cette formule comportera 40001 +70001
évaluations de ce type.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
827
1.7.2.3 Formules restrictives de taille
Pour information, voici les limites de dimensionnement du langage de formule :
● La longueur maximale d'une constante chaîne, d'une valeur de chaîne contenue dans une variable chaîne, d'une valeur de chaîne renvoyée par une fonction ou un élément chaîne d'un tableau de chaînes est de 65 534 caractères.
● La taille maximale d'un tableau est de 1 000 éléments.
● Le nombre maximal d'arguments pour une fonction est de 1 000. Cela s'applique aux fonctions qui peuvent avoir un nombre illimité d'arguments, par exemple Choose.
● Le nombre maximal d'évaluations de condition de boucle par évaluation de formule est de 100 000.
● Les fonctions date-heure basées sur Visual Basic acceptent des dates comprises entre l'année 100 et l'année
9999. Les fonctions traditionnelles de SAP Crystal Reports acceptent les dates comprises entre l'année 1 et l'année 9999.
1.7.3 Interface utilisateur - Référence
Cette section décrit les boîtes de dialogue disponibles dans SAP Crystal Reports. Ces rubriques apparaissent lorsque vous appuyez sur la touche F1 ou lorsque vous cliquez sur Aide (le bouton ?) dans une boîte de dialogue ou une fenêtre SAP Crystal Reports.
1.7.3.1 Boîtes de dialogue SAP Crystal Reports
Cette section décrit les boîtes de dialogue disponibles dans SAP Crystal Reports. Ces rubriques apparaissent lorsque vous appuyez sur la touche F1 ou lorsque vous cliquez sur Aide (le bouton ?) dans une boîte de dialogue ou une fenêtre SAP Crystal Reports.
1.7.3.1.1 Boîte de dialogue Ajouter une commande au rapport
Utilisez cette boîte de dialogue pour écrire votre propre commande SQL (requête) qui sera représentée dans
SAP Crystal Reports sous la forme d'un objet table.
Cette boîte de dialogue s'affiche lorsque vous cliquez deux fois sur Ajouter une commande dans l'Expert Base de données.
Requête SQL Saisissez le texte de votre commande SQL dans cette zone.
Liste des paramètres Créez, supprimez ou modifiez les paramètres de votre commande SQL dans cette zone.
Lorsque vous cliquez sur Créer ou Modifier, la boîte de dialogue Paramètre de commande s'ouvre.
828
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Informations associées
Définition des tables virtuelles basée sur une commande/requête SQL [page 647]
Boîte de dialogue Expert Base de données [page 964]
Boîte de dialogue Paramètre de commande [page 851]
1.7.3.1.2 Boîte de dialogue Parcourir et Coller les données
Utilisez la boîte de dialogue Parcourir et Coller les données pour afficher l'aperçu du type de données, de la longueur et du contenu d'un champ et coller une valeur dans vos critères de formules ou de sélection.
Cette boîte de dialogue s'affiche lorsque vous cliquez sur le bouton Parcourir les données de
dialogue.
Type
Longueur
Zone de défilement
Le type de données du champ (chaîne, nombre, etc.).
La longueur de champ définie pour le type de données spécifié.
Une liste de valeurs de champ s'affiche dans la zone de défilement.
Lorsque vous parcourez un champ, les 500 premières valeurs uniques de celui-ci s'affichent par défaut. Vous pouvez modifier cette procédure pour le rapport visualisé en désactivant l'option
Sélectionner des données distinctes pour la recherche dans la boîte de dialogue Options du rapport.
Si cette option n'est pas sélectionnée, les valeurs uniques des 500 premiers enregistrements sont renvoyées.
Remarque
La plupart des serveurs SQL ne prenant pas en charge la sélection d'enregistrements distincts pour les types de données longs tels que les champs mémo et les champs BLOB, la sélection et la recherche d'enregistrements distincts ne sont pas prises en charge pour ces champs.
Coller les données
Cliquez sur le bouton Coller les données pour coller la valeur dans votre formule.
Si vous ne réussissez pas à vous connecter à une base de données indisponible ou protégée par un mot de passe, vous pouvez parcourir les données enregistrées.
Informations associées
Boîte de dialogue Options du rapport [page 921]
Accès aux données et ajout des données [page 643]
Exécution des calculs dans un rapport [page 700]
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
829
1.7.3.1.3 Boîte de dialogue Parcourir les données
Utilisez la boîte de dialogue Parcourir les données pour afficher l'aperçu du type de données, de la longueur et du contenu d'un champ.
Cette boîte de dialogue s'affiche lorsque vous cliquez avec le bouton droit de la souris sur un champ de base de données de l'Explorateur de champs et que vous sélectionnez Parcourir les données de champ, ou lorsque vous cliquez sur le bouton Parcourir les données d'une boîte de dialogue. La source du champ (alias) et son nom s'affichent comme titre de la boîte de dialogue.
Conseil
Pour afficher l'Explorateur de champs, cliquez sur le menu
Crystal Reports
, puis cliquez sur
Explorateur de champs
.
Type
Longueur
Zone de défilement
Le type de données du champ (chaîne, nombre, etc.).
La longueur de champ définie pour le type de données spécifié.
Une liste de valeurs de champ s'affiche dans la zone de défilement.
Lorsque vous parcourez un champ, les 500 premières valeurs uniques de celui-ci s'affichent par défaut. Vous pouvez modifier cette procédure pour le rapport visualisé en désactivant l'option
Sélectionner des données distinctes pour la recherche dans la boîte de dialogue Options du rapport.
Si cette option n'est pas sélectionnée, les valeurs uniques des 500 premiers enregistrements sont renvoyées.
Remarque
La plupart des serveurs SQL ne prenant pas en charge la sélection d'enregistrements distincts pour les types de données longs tels que les champs mémo et les champs BLOB, la sélection et la recherche d'enregistrements distincts ne sont pas prises en charge pour ces champs.
Si vous ne réussissez pas à vous connecter à une base de données indisponible ou protégée par un mot de passe, vous pouvez parcourir les données enregistrées.
Informations associées
Boîte de dialogue Options du rapport [page 921]
Explorateur de champs [page 632]
Accès aux données et ajout des données [page 643]
Objets champ et texte [page 651]
830
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.7.3.1.4 Boîte de dialogue Changer les options de groupe
Utilisez la boîte de dialogue Changer les options de groupe pour modifier un groupe existant. Cette boîte de dialogue s'affiche lorsque vous cliquez sur le bouton Options de la boîte de dialogue Expert Groupe.
Pour en savoir plus, voir
Boîte de dialogue Insérer un groupe [page 906]
. Cette boîte de dialogue a la même fonction.
Informations associées
Boîte de dialogue Expert Groupe [page 970]
1.7.3.1.5 Boîte de dialogue Modification de la formule de sélection d'enregistrements
Cette boîte de dialogue s'affiche lorsque SAP Crystal Reports détecte une modification de votre formule de sélection d'enregistrements du rapport.
Utiliser les données enregistrées
Actualiser les données
Cliquez sur cette option pour exécuter le rapport avec les données actuelles (ce qui signifie que les nouvelles données ne sont pas extraites de la base de données).
Cliquez sur cette option pour exécuter le rapport avec les données actuelles de la base de données.
Informations associées
Sélection des enregistrements [page 665]
1.7.3.1.6 Boîte de dialogue Options du diagramme
Utilisez la boîte de dialogue Options du diagramme pour modifier la mise en forme, la disposition et l'apparence générales d'un diagramme. Cette boîte de dialogue s'affiche lorsque vous cliquez avec le bouton droit de la souris sur un diagramme dans un rapport, pointez sur Options du diagramme, puis cliquez sur Général.
1.7.3.1.6.1 Onglet Général (Options du diagramme)
L'onglet Général vous permet de modifier la mise en forme générale du diagramme. Les options disponibles de l'onglet varient en fonction du type de diagramme utilisé dans le rapport.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
831
Général
Utiliser la profondeur
Profondeur
Sens cochez ou décochez cette case pour créer un effet de profondeur ou un diagramme complètement plat. Cette option n'est pas disponible pour les diagrammes 3D.
Lorsque l'option Utiliser la profondeur est sélectionnée, cette glissière permet de spécifier la profondeur à appliquer à la trame et aux colonnes du diagramme.
lorsque l'option Utiliser la profondeur est sélectionnée, utilisez ce curseur pour spécifier le sens dans lequel appliquer la profondeur.
Diagrammes en barres, de Gantt, à axe numérique, en radar, boursiers et à colonnes 3D
Chevauchement utilisez ce curseur pour modifier la façon dont les barres de chaque catégorie se chevauchent. A -100, les barres de chaque groupe se chevauchent. A +100, elles sont aussi éloignées que possible, sans pour autant chevaucher la catégorie suivante. Cette option n'est pas disponible pour les diagrammes boursiers et à colonnes 3D.
Largeur de l'espace utilisez ce curseur pour modifier l'espacement entre les groupes de barres dans chaque catégorie. Les plus grandes valeurs augmentent la distance entre chaque groupe de barres, Les plus petites valeurs diminuent la distance entre chaque groupe.
Forme des colonnes Choisissez une option dans cette zone de liste pour modifier la forme de chaque colonne.
Ce champ est désactivé si la case à cocher Utiliser la profondeur est activée.
Diagrammes en bulles
Taille utilisez ce curseur pour modifier la taille de tous les marqueurs dans un diagramme à bulles.
Forme Choisissez une option dans cette zone de liste pour modifier la forme des marqueurs (rectangle, cercle, plus, étoile, etc.). Cette sélection permet également de modifier la forme des marqueurs dans la zone de légende du diagramme si cette dernière est affichée.
Diagrammes à colonnes
Chevauchement utilisez ce curseur pour modifier la façon dont les barres de chaque catégorie se chevauchent. A -100, les colonnes à l'intérieur de chaque groupe se chevauchent. A
+100, les colonnes sont aussi éloignées que possible les unes des autres sans chevaucher la catégorie voisine. Cette option n'est pas disponible pour les vrais diagrammes à colonnes 3D.
832
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Largeur de l'espace Cette glissière permet de modifier l'espace entre les groupes de colonnes dans chaque catégorie. Les valeurs les plus grandes augmentent la distance entre chaque groupe de colonnes, tandis que les valeurs les plus petites diminuent la distance entre chaque groupe.
Forme des colonnes Choisissez une option dans cette zone de liste pour modifier la forme des colonnes
(rectangle, cercle, étoile, plus, etc.). Pour les vrais diagrammes à colonnes 3D, vous pouvez sélectionner Colonne rectangulaire, Colonne circulaire, Cône/Pyramide, Cube flottant ou Sphère flottante. Ce champ est désactivé/grisé si la case Utiliser la profondeur est cochée.
Afficher les lignes de série
Pour les diagrammes à colonnes empilées et en pourcentage uniquement, cochez cette case pour afficher ou masquer une ligne reliant chaque série de colonnes dans le diagramme.
Entonnoirs
Inclinaison
Largeur de l'entonnoir
Hauteur de l'entonnoir
Détacher
Restaurer l'entonnoir utilisez ce curseur pour incliner le diagramme de type entonnoir. Les valeurs inférieures donnent un entonnoir plat (vu de face), la valeur maximale incline le diagramme pour afficher une ouverture ovale.
utilisez ce curseur pour modifier la largeur de la base de l'entonnoir. Les valeurs supérieures augmentent la largeur de la base de l'entonnoir et les valeurs inférieures la réduisent jusqu'à obtenir un point.
utilisez ce curseur pour modifier la hauteur de l'entonnoir. Les valeurs supérieures donnent à l'entonnoir une apparence écrasée alors que les valeurs inférieures donnent un entonnoir plus haut.
cette option permet de détacher chaque secteur de données et de donner à l'entonnoir une apparence creuse. Utilisez ce curseur pour déterminer la distance entre chaque secteur détaché.
si vous avez modifié les options de mise en forme du diagramme de type entonnoir, sélectionnez ce bouton pour restaurer les valeurs initiales des différentes options.
Jauges
Angle de début réglez l'angle de manière à augmenter ou réduire la longueur de l'arc de cercle. Si l'angle de début est égal à 0 et que l'angle de fin est égal à 180, on obtient un demi-cercle.
Angle de fin réglez l'angle de manière à augmenter ou réduire la longueur de l'arc de cercle.
Epaisseur du cercle utilisez ce curseur correspondant à cette option pour modifier l'épaisseur du contour de la jauge. Vous voudrez sans doute augmenter l'épaisseur du cercle si vous ajoutez des
Bandes de qualité à votre jauge.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
833
Nombre de jauges par ligne
Trame biseautée utilisez ce curseur correspondant à cette option pour indiquer le nombre de jauges devant s'afficher sur une ligne de votre rapport.
cochez cette case pour ajouter un effet de profondeur au cadre du diagramme, de manière
à lui donner l'apparence d'un bouton. Pour que votre diagramme ait l'apparence d'un bouton, appliquez une couleur de remplissage à son arrière-plan.
Histogrammes
Largeur de l'espace
Forme des colonnes
Cette glissière permet de modifier l'espace entre les colonnes et la largeur des colonnes. Les plus grandes valeurs créent moins d'espace entre les colonnes et des colonnes plus fines. Les plus petites valeurs créent plus d'espace entre les colonnes et des colonnes plus épaisses.
Choisissez une option dans cette zone de liste pour modifier la forme de des colonnes. Ce champ est désactivé si la case à cocher Utiliser la profondeur est sélectionnée.
Diagrammes en courbes
Style des lignes
Taille
Forme choisissez dans cette liste le style de ligne que vous voulez utiliser. Les styles disponibles sont
Marqueurs et lignes, Marqueurs uniquement ou Lignes uniquement.
lorsque l'option Marqueurs et lignes ou Marqueurs uniquement est sélectionnée, utilisez ce curseur pour changer la taille des marqueurs.
Quand l'option Marqueurs et lignes ou Marqueurs uniquement est sélectionnée, choisissez une option dans cette zone de liste pour modifier la forme des marqueurs (rectangle, cercle, étoile, plus, etc.).
Diagrammes à secteurs ou en anneau
Inclinaison
Profondeur
Rotation
Détacher
Secteur par ligne
Cette glissière permet d'incliner le diagramme Les valeurs moindres donnent un diagramme plus plat (vu de face), alors que la valeur maximale inclinera le diagramme de manière à n'afficher que le bord.
Cette glissière permet de modifier l'épaisseur du diagramme
Cette glissière permet de faire pivoter le diagramme tous les secteurs d'un diagramme à secteurs ou en anneau sont détachés à partir du centre. Utilisez ce curseur pour détacher tous les secteurs du diagramme.
dans le cas de plusieurs diagrammes à secteurs, vous avez la possibilité de choisir le nombre de diagrammes à afficher sur chaque ligne. Les paramètres par défaut permettent d'afficher deux diagrammes sur chaque ligne. Utilisez ce curseur pour sélectionner le nombre de diagrammes par ligne.
834
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Taille de la perforation
Restaurer tous les secteurs si un anneau est sélectionné, utilisez ce curseur pour sélectionner la taille de la perforation
(entre 0 et 100). Si vous sélectionnez zéro, le diagramme n'est pas perforé.
si des secteurs ont été détachés ou supprimés d'un diagramme à secteurs, cliquez sur ce bouton pour les restaurer selon les paramètres par défaut.
Nuages de points
Afficher les marqueurs
Taille
Forme cochez cette case pour afficher ou masquer les marqueurs d'un diagramme de type nuage de points. Si vous masquez les marqueurs et ne sélectionnez pas l'option Relier les points de données entre eux, le diagramme de type nuage de points ne comportera aucune représentation des valeurs dans vos données.
utilisez ce curseur pour changer la taille des marqueurs du diagramme de type nuage de points. Cette option n'est disponible que si la case Afficher les marqueurs est cochée.
Choisissez une sélection dans cette zone de liste pour modifier la forme des marqueurs d'un diagramme de type nuage de points (rectangle, cercle, étoile, plus, etc.). Cette sélection permet également de modifier la forme des marqueurs dans la zone de légende si cette dernière est affichée. Cette option n'est disponible que si la case Afficher les marqueurs est cochée.
Relier les points de données entre eux cochez cette case pour afficher ou masquer une ligne de connexion entre chaque marqueur d'une série.
Informations associées
Boîte de dialogue Options du diagramme [page 831]
1.7.3.1.6.2 Onglet Disposition (Options du diagramme)
Utilisez l'onglet Disposition pour changer le type de diagramme, sélectionner un diagramme à deux axes et appliquer ou supprimer l'effet de profondeur 2.5D dans les colonnes et les cadres du diagramme.
Les descriptions contenues dans cette section s'appliquent à tous les types de diagramme, à l'exception des diagrammes à bulles, des histogrammes, des diagrammes à secteurs ou en anneau, en nuage de points, de type surface et boursiers.
Type Sélectionnez une case d'option pour changer de type de diagramme. Pour avoir un aperçu des
.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
835
Axes doubles
Cochez cette case pour créer un diagramme en aires avec deux axes numériques (Y1 et Y2). Cette option est disponible uniquement pour les diagrammes en aires regroupées ou empilées. Elle n'est pas disponible pour les diagrammes à pourcentages et en vrai 3D.
Partager les axes doubles
Lorsque la case Deux axes est cochée, la moitié des séries du diagramme est attribuée à l'axe numérique principal (Y1) et l'autre moitié à l'axe numérique secondaire (Y2). Toutes les colonnes sont cependant tracées à partir d'une ligne de base d'un axe de catégorie unique. Les séries attribuées aux axes Y1 et Y2 sont tracées sur les côtés opposés du diagramme. Cochez cette case si vous voulez diviser physiquement le diagramme et afficher les deux axes numériques séparés.
Lorsque la case Deux axes n'est pas cochée, cette case à cocher est grisée.
Entonnoirs
Entonnoir 2D Cochez cette case si vous voulez appliquer un effet aplati à l'entonnoir. Ne cochez pas cette case si vous voulez un diagramme 3D.
Diagrammes en bulles
Les options de disposition d'un diagramme en bulles peuvent être utilisées pour sélectionner un diagramme à deux axes.
Axes doubles Cochez cette case pour créer un diagramme en bulles avec deux axes numériques (Y1 et Y2).
Histogrammes
Les options de disposition d'un histogramme peuvent être utilisées pour sélectionner un histogramme vertical ou horizontal.
Type Pour modifier la disposition du diagramme, sélectionnez la case d'option Colonnes verticales ou Barres horizontales.
Diagrammes à secteurs ou en anneau
Type
Taille du diagramme proportionnelle au total
Pour modifier la disposition du diagramme, sélectionnez la case d'option Diagramme à secteurs ou Diagramme en anneau.
Cochez cette case pour que la taille de chaque diagramme à secteurs soit proportionnelle au total des valeurs dans vos données. Cette option n'est utilisée que dans le cas de plusieurs diagrammes à secteurs. Lorsque vos données comportent plus d'un groupe ou d'une colonne, un diagramme à secteurs est tracé pour chaque
836
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Diagramme circulaire
2D catégorie. Cette option permet de tracer des diagrammes proportionnels au total qu'ils représentent.
Par défaut, tous les diagrammes 2D sont présentés avec un effet profondeur 3D appliqué à la trame du diagramme. Cochez cette case si vous ne souhaitez pas appliquer cet effet profondeur 3D.
Nuages de points
Axes doubles Cochez cette case pour créer un diagramme en nuage de points avec deux axes numériques (Y1 et Y2).
Diagrammes boursiers
Style Pour modifier le style de colonne, sélectionnez Wall Street ou Bougie.
Disposition choisissez Haut Bas, Haut Bas Ouvert, Haut Bas Fermé ou Ouvert Haut Bas Fermé pour modifier les détails des données affichées par les colonnes.
Remarque
L'option que vous choisissez dans la zone Disposition dépend des données disponibles pour le diagramme boursier. Par exemple, pour utiliser Haut Bas Ouvert, vos données doivent comprendre les valeurs d'un cours d'ouverture.
Diagrammes de type surface 3D
Type Pour modifier la disposition du diagramme, sélectionnez la case d'option Surface, Surface avec côtés ou
Surface en nids d'abeilles.
Informations associées
Onglet Options Y double (Options du diagramme) [page 841]
Boîte de dialogue Options du diagramme [page 831]
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
837
1.7.3.1.6.3 Onglet Bandes de qualité (Options du diagramme)
Cette sélection est disponible uniquement pour les diagrammes de type jauge. Utilisez-la pour diviser une jauge en plusieurs segments. Une fois les segments créés, vous pouvez leur appliquer des couleurs.
Par exemple, si vous utilisez un diagramme de type jauge pour assurer le suivi des commandes par région, vous pouvez ajouter des bandes de couleur sur la jauge : rouges pour indiquer que les chiffres sont en-dessous des estimations (par exemple, 0 à 499 commandes), jaunes pour indiquer qu'ils correspondent aux estimations
(500 à 800 commandes) et verts pour indiquer qu'ils sont au-dessus des estimations (801 à 1 000 commandes).
Bande cochez cette case en regard de la bande que vous souhaitez activer. Spécifiez les valeurs minimale et maximale pour cette bande. Vous pouvez ajouter jusqu'à 5 bandes différentes à la jauge.
1.7.3.1.6.4 Onglet Coches (Options du diagramme)
Cette option est disponible uniquement pour les diagrammes boursiers. Utilisez les coches pour afficher une courte ligne horizontale partant de la droite ou de la gauche d'une barre dans un diagramme boursier. Les coches permettent de représenter des valeurs d'ouverture ou de clôture.
Longueur des coches
Hauteur des coches
Afficher la coche de fermeture
Utilisez ce curseur pour changer la longueur des coches dans un diagramme boursier.
Utilisez ce curseur pour changer la hauteur des coches dans un diagramme boursier.
Sélectionnez cette option pour inclure une coche pour les valeurs de fermeture dans votre diagramme boursier.
1.7.3.1.6.5 Onglet Etiquettes des données (Options du diagramme)
Les étiquettes de données affichent les valeurs réelles de chaque cellule du diagramme. Utilisez l'onglet
Etiquettes des données pour ajouter des étiquettes de données à votre diagramme. Les valeurs et les emplacements des étiquettes de données que vous pouvez sélectionner diffèrent légèrement selon le type de diagramme. Les étiquettes de données ne sont pas disponibles pour les diagrammes de type surface 3D.
Afficher les
étiquettes des données
Emplacement des
étiquettes vous pouvez afficher ou masquer les étiquettes de données pour toutes les séries individuelles d'une série d'un diagramme. Cochez cette case pour afficher ou masquer les
étiquettes de données pour toutes les séries d'un diagramme.
lorsque la case Afficher les étiquettes de données est cochée, sélectionnez une option de la zone de liste pour choisir l'emplacement des étiquettes de données par rapport aux colonnes. Cette option n'est pas disponible pour les diagrammes en vrai 3D.
838
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Format des
étiquettes
Pour les diagrammes de types aires, barres, colonnes et courbes, choisissez l'option
Valeur pour afficher les valeurs de la feuille de données à l'emplacement correspondant sur chaque colonne. Si l'option Etiquette est sélectionnée, les étiquettes de séries sont tracées. Si l'option Etiquette & valeur est sélectionnée, les étiquettes de séries et la valeur de la feuille de données sont affichées.
Pour les diagrammes bulle, si la valeur (X,Y) est sélectionnée, les deux premières valeurs
(position X et Y) qui définissent chaque point de données sont affichées pour chaque marqueur. Si l'option (X,Y, Taille bulle) est sélectionnée, la position X, la position Y, et les valeurs Taille sont affichées. Cette option n'est pas disponible pour les diagrammes à nuages de points et les vrais diagrammes 3D.
Afficher sous forme de pourcentage de si vous avez sélectionné un format d'étiquette Valeur ou Etiquette et valeur dans un diagramme en pourcentages ou empilé, cochez cette case pour afficher les valeurs de pourcentage de chaque colonne.
Valeurs cumulatives si vous avez sélectionné un format d'étiquette Valeur ou Etiquette et valeur dans un diagramme en pourcentages ou empilé, cochez cette case d'option pour afficher les valeurs cumulées de chaque colonne.
Valeurs absolues dans le cas d'aires en pourcentages et empilées, cochez cette case d'option pour afficher les valeurs absolues de chaque colonne. Vous devez auparavant avoir sélectionné Valeur ou Etiquette et valeur dans le champ Format des étiquettes.
Afficher le total si vous avez sélectionné Valeurs absolues, cochez cette case pour afficher la valeur totale de chaque catégorie de colonnes.
Entonnoirs
Les étiquettes de données peuvent être utilisées pour afficher les valeurs réelles de vos données. Vous pouvez afficher soit la valeur associée à chaque secteur de l'entonnoir, soit le pourcentage par rapport à l'ensemble. Vous pouvez placer ces informations sur le secteur d'entonnoir ou à l'extérieur de chaque secteur.
Afficher les valeurs
Afficher les valeurs sous forme de pourcentage
Cochez cette case afin d'afficher ou de masquer les valeurs des étiquettes de données pour chaque secteur de l'entonnoir.
si l'option Afficher les valeurs est sélectionnée, cochez la case correspondante pour afficher les valeurs des données sous forme de pourcentage du total. Ne cochez pas cette case si vous souhaitez afficher la valeur absolue qui définit chaque secteur.
Valeurs sur les secteurs d'entonnoir / Valeurs à l'extérieur des secteurs d'entonnoir
Afficher les étiquettes
Si l'option Afficher les valeurs est sélectionnée, cochez l'une de ces cases d'option pour afficher les valeurs des données sur chaque secteur d'entonnoir ou à l'extérieur de chaque secteur d'entonnoir.
Cochez cette case pour afficher ou masquer l'étiquette de séries associée à chaque secteur d'entonnoir.
Etiquettes sur les secteurs d'entonnoir / Etiquettes à
Si l'option Afficher les étiquettes est sélectionnée, cochez l'une de ces cases d'option pour afficher les étiquettes sur chaque secteur d'entonnoir ou à l'extérieur de chaque secteur d'entonnoir.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
839
l'extérieur des secteurs d'entonnoir
Afficher les traits Si l'option Afficher les valeurs et la case d'option "Etiquettes en dehors des anneaux de l'entonnoir" sont sélectionnées ou si l'option Afficher les étiquettes et la case d'option "Valeurs en dehors des anneaux de l'entonnoir" sont sélectionnées, cochez cette case pour afficher ou masquer les traits de chaque secteur d'entonnoir à la valeur des données affichées en regard.
Diagrammes à secteurs ou en anneau
Les étiquettes de données peuvent être utilisées pour afficher les valeurs réelles de vos données. Vous pouvez afficher la valeur associée à chaque secteur, ou uniquement l'étiquette de la série, ou bien encore l'étiquette de la valeur et de la série. Vous pouvez placer ces informations dans le secteur lui-même ou bien en dehors.
Remarque
Vous pouvez également afficher ou masquer et mettre en forme les étiquettes de données pour une série individuelle d'un diagramme.
Afficher les valeurs
Sur les secteurs/En dehors des secteurs
Sous forme de pourcentage
Afficher les étiquettes
Sur les secteurs/En dehors des secteurs cochez cette case pour afficher ou masquer des valeurs des étiquettes de données pour chaque secteur d'un diagramme à secteurs.
si l'option Afficher les valeurs est sélectionnée, cochez l'une des cases d'option pour afficher les étiquettes de série sur chaque secteur ou en dehors de chaque secteur.
si l'option Afficher les valeurs est sélectionnée, cochez la case correspondante pour afficher les valeurs des données sous forme de pourcentage du total. Ne cochez pas cette case si vous souhaitez afficher la valeur absolue qui définit chaque secteur.
cochez cette case pour afficher ou masquer l'étiquette de la série associée à chaque secteur.
si l'option Afficher les étiquettes est sélectionnée, cochez l'une des cases d'option pour afficher les étiquettes de série sur chaque secteur ou en dehors de chaque secteur.
Afficher les traits Si l'option Afficher les valeurs et la case d'option En dehors des secteurs sont sélectionnées ou si l'option Afficher les étiquettes et la case d'option En dehors des secteurs sont sélectionnées, cochez cette case pour afficher ou masquer les traits de chaque secteur à la valeur des données et/ou à l'étiquette de séries affichées en regard.
Etiquettes sur les côtés cochez cette case pour placer des étiquettes sur les côtés du diagramme à secteurs.
840
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.7.3.1.6.6 Onglet Nombres (Options du diagramme)
Lorsque vous activez l'affichage des étiquettes de données dans l'onglet Etiquettes des données des Options de diagramme, vous pouvez sélectionner différents types d'informations à afficher :
● Pour les diagrammes de type aire, barre, colonne, courbe, axe numérique et radar, vous pouvez sélectionner
Valeur, Etiquette ou Etiquette et valeur. Si vous avez sélectionné l'option Etiquette, le diagramme n'affiche que des étiquettes de séries et vous ne pouvez pas les mettre en forme en tant que valeurs numériques, même si ces étiquettes de séries sont des nombres. Si vous avez sélectionné l'option Valeur ou Etiquette et valeur, vous pouvez mettre en forme ces valeurs en utilisant l'onglet Nombres dans Options du diagramme.
● Pour les diagrammes en bulles, vous pouvez sélectionner l'option
Valeur (X,Y)
ou
(X,Y, Taille des bulles)
.
Seules les valeurs de Taille des bulles peuvent être mises en forme à l'aide de l'onglet Nombres dans Options du diagramme. L'option Valeur (X,Y) utilise toujours le format numérique sélectionné pour les étiquettes des axes X et Y.
● Pour les diagrammes en nuage de points, l'onglet Nombres n'est pas inclus dans la boîte de dialogue Options du diagramme. Les étiquettes de données utilisent le même format que les étiquettes des axes X et Y.
Utilisez l'onglet Nombres pour mettre en forme les nombres des étiquettes de données. Pour mettre en forme des nombres figurant sur un axe numérique (Y1, Y2 ou X), voir
Boîte de dialogue Quadrillages et échelles numériques
1.7.3.1.6.7 Onglet Options Y double (Options du diagramme)
Utilisez l'onglet Options Y double pour modifier la disposition de tout type de diagramme (sauf les diagrammes de
Gantt, jauges, en histogramme, boursiers, à secteurs et 3D) en incluant deux axes numériques : un axe primaire
(Y1) et un axe secondaire (Y2) Si vous choisissez une disposition à deux axes, vous pouvez diviser ces deux axes afin qu'ils soient tracés à partir de lignes de base physiques séparées ou bien faire en sorte que toutes les colonnes soient tracées à partir d'une ligne de base unique.
Axe primaire
(Y1)/Axe secondaire
(Y2) lorsque la case Deux axes est cochée dans l'onglet Disposition de la boîte de dialogue
Options du diagramme, le nombre de séries est automatiquement divisé, la moitié est attribuée au premier axe, l'autre moitié au deuxième axe. Sélectionnez une étiquette de séries dans la zone de liste Axe primaire (Y1) et cliquez sur le bouton [>>] pour déplacer la série vers l'Axe secondaire (Y2). Sélectionnez une étiquette de séries dans la zone de liste
Axe secondaire (Y2) et cliquez sur le bouton [<<] pour déplacer la série vers l'Axe primaire
(Y1).
Remarque
Les boutons fléchés sont inactifs tant que vous ne sélectionniez pas d'étiquette de séries.
Emplacement du partage
Lorsque les cases Axes doubles et Partager les axes doubles sont cochées dans l'onglet
Disposition de la boîte de dialogue Options du diagramme, cette glissière permet de sélectionner l'emplacement où les deux moitiés du diagramme seront divisées physiquement.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
841
Afficher le partage de l'axe cochez cette case pour afficher ou masquer la ligne de partage des axes.
1.7.3.1.6.8 Onglet Apparence (Options du diagramme)
Utilisez l'onglet Apparence pour mettre en forme la couleur des colonnes et pour modifier l'emplacement du texte de légende et de marqueur. Vous pouvez choisir la couleur des colonnes par série (aire) ou segment (catégorie).
Mode Couleur en mode de configuration normal, une colonne ou un marqueur de couleur différente est utilisé pour chaque série définie dans les données. Vous pouvez toutefois utiliser la même couleur pour toutes les colonnes d'un groupe, ou choisir la couleur en fonction de la hauteur
(ou des valeurs associées dans les données). Sélectionnez une option dans cette zone de liste. Cette option n'est pas disponible dans les diagrammes à aires, en bulles, à secteurs, en anneau et en nuage de points.
Remarque
Pour les diagrammes à courbes, les options disponibles sont Couleur par ligne (Séries) et
Couleur par segment (Groupe).
Afficher la légende
Marqueurs et texte
Disposition
Style de cadre
Relier les couleurs murales aux couleurs du sol cochez cette case pour afficher ou masquer la légende du diagramme. Si cette case n'est pas cochée, toutes les autres sélections de cette boîte de dialogue sont grisées. Cette option n'est pas disponible pour les histogrammes et les diagrammes 3D.
si l'option Afficher la légende est sélectionnée, effectuez une sélection dans cette zone de liste pour définir le contenu et le format de la zone de légende. Cette option n'est pas disponible pour les histogrammes et les diagrammes 3D.
Sélectionnez une option dans cette zone de liste pour définir l'emplacement où la zone de légende doit être tracée (marqueurs et texte) dans la trame du diagramme : légende sur le côté droit, légende sur le côté gauche ou légende au-dessous du diagramme. Cette option n'est pas disponible pour les histogrammes et les diagrammes 3D.
Sélectionnez une option dans cette zone de liste pour dessiner un cadre de texte entourant complètement la zone de la légende : aucun cadre, cadre linéaire simple, cadre linéaire double, cadre biseauté ou cadre biseauté inversé. Cette option n'est pas disponible pour les histogrammes et les diagrammes 3D.
cochez cette case pour relier les couleurs des murs d'un diagramme à colonnes 3D à celle du sol.
842
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Diagrammes de type surface 3D
Mode Couleur
Couleur par hauteur en mode de configuration normal, une colonne ou un marqueur de couleur différente est utilisé pour chaque série définie dans les données. Vous pouvez toutefois utiliser la même couleur pour toutes les colonnes d'un groupe, ou choisir la couleur en fonction de la hauteur (ou des valeurs associées dans les données). Sélectionnez une option dans cette zone de liste.
si l'option Couleur exacte par hauteur est sélectionnée dans le champ Mode Couleur, sélectionnez les onglets Remplissage pour choisir les couleurs de début et de fin des surfaces selon leur hauteur.
Relier les couleurs murales aux couleurs du sol cochez cette case pour relier les couleurs des murs à celles du sol.
Diagrammes à secteurs ou en anneau
Afficher la légende
Afficher les valeurs
Afficher les pourcentages cochez cette case pour afficher ou masquer la légende du diagramme. Si cette case n'est pas cochée, toutes les autres sélections de cette boîte de dialogue sont grisées.
cochez cette case pour ajouter des valeurs de données à votre légende.
Cochez cette case pour ajouter des pourcentages de valeur de données totale à votre légende.
Remarque
Vous pouvez ajouter des valeurs de données et des pourcentages de valeur de données totale en sélectionnant les deux options.
1.7.3.1.6.9 Onglet Statut de l'affichage (Options du diagramme)
Utilisez l'onglet Statut de l'affichage pour afficher ou masquer les objets diagramme.
Axe des groupes Cochez cette case pour afficher ou masquer l'axe des groupes et ses étiquettes.
Axe des données Cochez cette case pour afficher ou masquer l'axe des données et ses étiquettes.
Axe des données2 Si la case Deux axes a été cochée dans l'onglet Disposition de la boîte de dialogue Options du diagramme, utilisez cette case à cocher pour afficher ou masquer l'axe numérique secondaire et ses étiquettes.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
843
Axe séries
Axe des X
Quadr. princip.
Quadr. second.
Légende
Etiquettes des données
Mur gauche
Mur droit
Plancher si un diagramme en vrai 3D est sélectionné dans l'onglet Disposition de la boîte de dialogue
Options du diagramme, ou bien si un diagramme de type surface est sélectionné, cochez cette case pour afficher ou masquer les axes de série et leurs étiquettes.
Dans les histogrammes, diagrammes en bulles et en nuages de points, cochez cette case pour afficher ou masquer l'axe X et ses étiquettes.
Pour chaque axe du diagramme (axe des catégories, axe des valeurs, axe des valeurs secondaire, axe X), cochez ces cases pour afficher ou masquer le quadrillage principal sur chaque axe.
Pour chaque axe du diagramme (axe des catégories, axe des valeurs, axe des valeurs secondaire, axe X), cochez ces cases pour afficher ou masquer le quadrillage secondaire sur chaque axe.
cochez cette case pour afficher ou masquer la légende du diagramme. Cette option n'est pas disponible dans les histogrammes et les diagrammes en vrai 3D.
Cochez cette case pour afficher ou masquer les étiquettes de données pour toutes les séries d'un diagramme. Cette option n'est pas disponible dans les diagrammes en vrai 3D.
Dans les diagrammes 3D uniquement, cochez cette case pour afficher ou masquer le mur gauche du cube 3D.
Dans les diagrammes 3D uniquement, cochez cette pour afficher ou masquer le mur droit du cube 3D.
Dans les diagrammes 3D uniquement, cochez cette case pour afficher ou masquer le plancher du cube 3D.
Entonnoirs
Vous pouvez afficher ou masquer des objets diagramme dans l'onglet Statut de l'affichage de la boîte de dialogue
Options du diagramme.
Afficher le nom de l'entonnoir Cochez ou décochez cette case pour afficher ou masquer le nom de l'entonnoir.
Afficher la légende cochez cette case pour afficher ou masquer la légende du diagramme.
Etiquettes de l'entonnoir Cochez cette case pour afficher ou masquer les étiquettes de données pour chaque tranche d'un entonnoir.
Diagrammes à secteurs ou en anneau
Vous pouvez afficher ou masquer des objets diagramme dans l'onglet Statut de l'affichage de la boîte de dialogue
Options du diagramme.
Afficher le nom du diagramme dans un diagramme à secteurs, les étiquettes de la catégorie sont représentées audessous de chaque secteur. Cochez cette case pour afficher ou masquer le nom du diagramme.
844
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Afficher le total du diagramme
Afficher la légende
Etiquettes de secteur
Dans les diagrammes en anneau (à secteurs), cochez ou décochez cette case pour afficher ou masquer la valeur totale de chaque secteur.
cochez cette case pour afficher ou masquer la légende du diagramme.
Cochez cette case pour afficher ou masquer les étiquettes de données pour chaque secteur d'un diagramme à secteurs.
1.7.3.1.7 Boîte de dialogue Ordre de tri du diagramme
Utilisez la boîte de dialogue Ordre de tri du diagramme pour trier et regrouper les données de votre diagramme.
Cette boîte de dialogue s'affiche lorsque vous cliquez sur le bouton Ordre de l'onglet Données de l'Expert
Diagramme pour un diagramme avec le type de modèle Avancé.
Pour en savoir plus, voir
Boîte de dialogue Insérer un groupe [page 906]
. Cette boîte de dialogue a la même fonction.
1.7.3.1.8 Boîte de dialogue Choisir un type de diagramme
Utilisez la boîte de dialogue Choisir un type de diagramme pour modifier le type et la disposition du diagramme.
Cette boîte de dialogue s'affiche lorsque vous cliquez sur un diagramme avec le bouton droit de la souris, pointez sur Options du diagramme, puis cliquez sur Modèle.
Diagrammes en aires
Après avoir sélectionné l'option Aires sur l'onglet Collection, vous pouvez choisir l'une ou plusieurs des options suivantes :
Disposition
Axes doubles
Partager les axes doubles
Utiliser la profondeur
Sélectionnez un diagramme en aires Absolu, Empilé, Pourcentages ou Vrai 3D.
Pour les diagrammes en aires absolues et empilées, cochez cette case pour créer un diagramme en aires avec deux axes numériques. Cela vous permet de créer des diagrammes d'une série spécifique sur un premier axe et d'une autre série sur un deuxième axe.
lorsque la case Deux axes est cochée, vous pouvez diviser la série en deux axes distincts dans le diagramme en utilisant l'option Partager les axes.
Cochez cette case pour appliquer un effet de profondeur 3D à la trame et aux colonnes du diagramme. Ne cochez pas cette case si vous voulez un diagramme plat en 2D.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
845
Diagrammes en barres ou à colonnes
Après avoir sélectionné l'option Barres ou Colonnes sur l'onglet Collection, vous pouvez choisir l'une ou plusieurs des options suivantes :
Disposition
Forme des colonnes
Axes doubles
Partager les axes doubles
Utiliser la profondeur
Sélectionnez un diagramme en colonnes Regroupé, Empilé, Pourcentages ou Vrai 3D.
L'option Vrai 3D n'est pas disponible pour les diagrammes en barres.
Cliquez sur cette zone de liste pour sélectionner une forme de colonne (par exemple, pour un diagramme Colonnes en vrai 3D, vous pouvez sélectionner Colonne rectangulaire,
Colonne circulaire, Cône/Pyramide, Cube flottant ou Sphère flottante).
Pour les diagrammes Regroupé et Empilé, cochez cette case pour créer un diagramme en barres ou à colonnes avec deux axes numériques. Cela vous permet de créer des diagrammes d'une série spécifique sur un premier axe et d'une autre série sur un deuxième axe.
lorsque la case Deux axes est cochée, vous pouvez diviser la série en deux axes distincts dans le diagramme en utilisant l'option Partager les axes.
Cochez cette case pour appliquer un effet de profondeur 3D à la trame et aux colonnes du diagramme. Ne cochez pas cette case si vous voulez un diagramme plat en 2D.
Diagrammes en bulles
Après avoir sélectionné l'option Bulles sur l'onglet Collection, vous pouvez choisir l'une ou plusieurs des options suivantes :
Forme des marqueurs
Axes doubles
Sélectionnez cette zone de liste pour choisir une autre forme de marqueurs. La configuration standard dessine des marqueurs circulaires. Une fois le diagramme créé, vous pouvez sélectionner d'autres formes de marqueurs pour toutes les séries du diagramme ou certaines d'entre elles seulement.
Cochez cette case pour créer un diagramme avec deux axes numériques. Cela vous permet de créer des diagrammes d'une série spécifique sur un premier axe et d'une autre série sur un deuxième axe.
Entonnoirs
Après avoir sélectionné l'option Entonnoir sur l'onglet Collection, vous pouvez choisir l'option suivante :
Entonnoir 2D Cochez cette case si vous voulez appliquer un effet aplati à l'entonnoir. Ne cochez pas cette case si vous voulez un diagramme 3D.
846
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Diagrammes de Gantt
Après avoir sélectionné l'option De Gantt sur l'onglet Collection, vous pouvez choisir l'option suivante :
Utiliser la profondeur
Cochez cette case pour appliquer un effet de profondeur 3D à la trame et aux colonnes du diagramme. Ne cochez pas cette case si vous voulez un diagramme plat en 2D.
Jauges
Après avoir sélectionné l'option Jauge sur l'onglet Collection, vous pouvez choisir l'une ou plusieurs des options suivantes :
Angle de début réglez l'angle de manière à augmenter ou réduire la longueur de l'arc de cercle. Si l'angle de début est égal à 0 et que l'angle de fin est égal à 180, on obtient un demi-cercle.
Angle de fin réglez l'angle de manière à augmenter ou réduire la longueur de l'arc de cercle.
Epaisseur du cercle utilisez ce curseur correspondant à cette option pour modifier l'épaisseur du contour de la jauge. Vous voudrez sans doute augmenter l'épaisseur du cercle si vous avez ajouté des bandes de qualité à votre jauge.
Nombre de jauges par ligne
Trame biseautée utilisez ce curseur correspondant à cette option pour indiquer le nombre de jauges devant s'afficher sur une ligne de votre rapport.
cochez cette case pour ajouter un effet de profondeur au cadre du diagramme, de manière
à lui donner l'apparence d'un bouton. Pour que votre diagramme ait l'apparence d'un bouton, appliquez une couleur de remplissage à son arrière-plan.
Histogrammes
Après avoir sélectionné l'option Histogramme sur l'onglet Collection, vous pouvez choisir l'une ou plusieurs des options suivantes :
Disposition
Forme des marqueurs
Utiliser la profondeur
Pour les histogrammes, vous pouvez sélectionner l'option Colonnes verticales ou Barres horizontales.
Si l'option Utiliser la profondeur n'est pas sélectionnée dans le champ ci-dessous, sélectionnez cette zone de liste pour choisir une autre forme de marqueurs. La configuration standard dessine des marqueurs rectangulaires pour toutes les colonnes. Une fois le diagramme créé, vous pouvez sélectionner d'autres formes de marqueurs pour toutes les séries du diagramme ou certaines d'entre elles seulement.
Cochez cette case pour appliquer un effet de profondeur 3D à la trame et aux colonnes du diagramme. Ne cochez pas cette case si vous voulez un diagramme plat en 2D.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
847
Diagrammes en courbes
Après avoir sélectionné l'option Courbes sur l'onglet Collection, vous pouvez choisir l'une ou plusieurs des options suivantes :
Disposition
Style des lignes
Forme des marqueurs
Axes doubles
Partager les axes doubles
Utiliser la profondeur
Sélectionnez un diagramme en courbes Absolu, Empilé, Pourcentages ou Vrai 3D.
choisissez dans cette liste le style de ligne que vous voulez utiliser. Les styles disponibles sont Marqueurs et lignes, Marqueurs uniquement ou Lignes uniquement.
Si l'option Marqueurs et lignes ou Marqueurs uniquement est sélectionnée pour un diagramme en courbes Absolu, Regroupé ou Pourcentages, sélectionnez cette zone de liste pour choisir une autre forme de marqueurs. La configuration standard dessine des marqueurs rectangulaires pour toutes les colonnes. Une fois le diagramme créé, vous pouvez sélectionner d'autres formes de marqueurs pour toutes les séries du diagramme ou certaines d'entre elles seulement.
Pour les diagrammes en courbes Absolu et Empilé, cochez cette case pour créer un diagramme avec deux axes numériques. Cela vous permet de créer des diagrammes d'une série spécifique sur un premier axe et d'une autre série sur un deuxième axe.
lorsque la case Deux axes est cochée, vous pouvez diviser la série en deux axes distincts dans le diagramme en utilisant l'option Partager les axes.
Cochez cette case pour appliquer un effet de profondeur 3D à la trame et aux colonnes du diagramme. Ne cochez pas cette case si vous voulez un diagramme plat en 2D.
Diagrammes à secteurs ou en anneau
Après avoir sélectionné l'option Secteurs sur l'onglet Collection, vous pouvez choisir l'une ou plusieurs des options suivantes :
Disposition Pour les diagrammes à secteurs, sélectionnez un diagramme à secteurs ou en anneau.
Remarque
Les diagrammes en anneau sont également appelés diagrammes circulaires.
Taille du diagramme proportionnelle au total
Pour les diagrammes à plusieurs secteurs uniquement. Cochez cette case pour rendre la taille de chaque secteur proportionnelle aux autres secteurs de votre diagramme.
Diagramme circulaire
2D
Cochez cette case pour obtenir un diagramme à secteurs plat (2D). Par défaut, tous les diagrammes sont présentés avec un effet de profondeur 3D appliqué à la trame et aux colonnes du diagramme. Cochez cette case si vous ne souhaitez pas appliquer cet effet profondeur 3D.
848
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Nuages de points
Après avoir sélectionné l'option Nuage de points sur l'onglet Collection, vous pouvez choisir l'une ou plusieurs des options suivantes :
Forme des marqueurs
Relier les points de données entre eux
Axes doubles
Sélectionnez cette zone de liste pour choisir une autre forme de marqueurs. La configuration standard dessine des marqueurs rectangulaires pour toutes les colonnes.
Une fois le diagramme créé, vous pouvez sélectionner d'autres formes de marqueurs pour toutes les séries du diagramme ou certaines d'entre elles seulement.
Pour les diagrammes de type nuage de points uniquement, cochez cette case pour relier les marqueurs de nuage de points aux lignes.
Cochez cette case pour créer un diagramme de type nuage de points avec deux axes numériques. Cela vous permet de créer des diagrammes d'une série spécifique sur un premier axe et d'une autre série sur un deuxième axe.
Diagrammes boursiers
Après avoir sélectionné l'option Boursier sur l'onglet Collection, vous pouvez choisir l'une ou plusieurs des options suivantes :
Style Sélectionnez Wall Street ou Bougie comme style de diagramme.
Disposition Sélectionnez Haut Bas, Haut Bas Ouvert, Haut Bas Fermé ou Ouvert Haut Bas Fermé comme disposition de diagramme.
Axe double Cochez cette case pour créer un diagramme boursier avec deux axes numériques. Cela vous permet de créer des diagrammes d'une série spécifique sur un premier axe et d'une autre série sur un deuxième axe.
Surface
Après avoir sélectionné l'option Surface sur l'onglet Collection, vous pouvez choisir l'option suivante :
Disposition Pour les diagrammes en surface 3D, vous pouvez sélectionner Surface, Surface avec côtés ou
Surface en nids d'abeille.
Diagrammes personnalisés
Les diagrammes personnalisés sont des modèles de diagrammes créés par Crystal Decisions. Une fois que vous avez créé votre premier diagramme, vous pouvez également utiliser la fonction Enregistrer sous du menu Fichier pour créer vos propres diagrammes personnalisés (vous pouvez également utiliser l'option Enregistrer en tant que modèle dans le menu contextuel du diagramme). Les fichiers de diagramme personnalisé (.3TF) contiennent des attributs et des données qui définissent le format et l'aspect d'un diagramme.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
849
Une fois que vous avez cliqué sur l'onglet Personnalisé, vous pouvez :
● cliquer sur l'une des options de la zone de liste Catégories pour afficher les diagrammes personnalisés dans chaque catégorie ;
● cliquer sur l'image du diagramme personnalisé que vous voulez importer dans votre application ;
● cliquer sur le bouton OK pour importer le diagramme.
Informations associées
1.7.3.1.9 Boîte de dialogue Sélectionner un champ
La boîte de dialogue Choisir un champ permet de sélectionner un champ pour la sélection des enregistrements ou pour l'argument de la fonction dans l'Expert Formule.
Cette boîte de dialogue apparaît lorsque vous choisissez Expert Sélection dans le menu contextuel Rapport si aucun champ n'est sélectionné et que vous n'avez pas encore créé une formule de sélection d'enregistrements.
Elle apparaît également lorsque vous cliquez sur Choisir un autre champ dans la zone Arguments de la fonction de l'Expert Formule.
Champs Cette liste affiche les champs du rapport et les champs de la base de données disponibles dans votre rapport qui pourront être utilisés pour la sélection des enregistrements ou l'Expert Formule.
Parcourir Cliquez sur Parcourir pour parcourir les données dans le champ sélectionné.
Informations associées
Boîte de dialogue Expert Sélection [page 979]
Filtrage des données [page 665]
1.7.3.1.10 Boîte de dialogue Couleur
Utilisez cette boîte de dialogue pour spécifier la couleur que vous souhaitez utiliser dans votre rapport si l'une des valeurs par défaut ne convient pas.
La boîte de dialogue Couleur s'ouvre lorsque vous choisissez Personnalisé ou Autres dans la liste des couleurs.
Couleurs de base Cette grille affiche une palette de couleurs et d'ombrages prédéfinis. Ces options vous permettent d'utiliser des nuances de couleurs correspondant aux plages de données dans vos rapports. Par exemple, l'article qui se vend le mieux pourrait être bleu vif, tandis que les articles suivants seraient représentés par des nuances de bleu plus foncées.
850
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Couleurs personnalisées
Définir des couleurs personnalisées
Ajouter aux couleurs personnalisées
Cette grille affiche les couleurs que vous avez créées à l'aide de l'option Définir des couleurs personnalisées (tant que vous n'avez pas défini de couleurs personnalisées, la grille n'affiche que des zones exemples vides).
Cliquez sur cette option pour afficher la palette de couleurs personnalisées. Cliquez et faites glisser la souris sur les palettes de couleurs unies pour afficher un exemple de la couleur créée. Vous pouvez également définir des couleurs personnalisées en saisissant des paramètres dans les zones situées au-dessous des palettes.
Cliquez sur ce bouton pour ajouter votre nouvelle couleur à la grille de couleurs personnalisées.
Informations associées
Mise en forme des données [page 713]
1.7.3.1.11 Boîte de dialogue Paramètre de commande
La boîte de dialogue Paramètre de commande s'affiche lorsque vous cliquez sur Créer ou Modifier dans la boîte de dialogue Ajouter une commande au rapport.
Utilisez cette boîte de dialogue pour créer ou modifier les paramètres de votre commande SQL. Pour en savoir
Informations associées
Définition des paramètres [page 676]
Boîte de dialogue Ajouter une commande au rapport [page 828]
1.7.3.1.12 Boîte de dialogue Créer un champ de paramètre
Utilisez la boîte de dialogue Créer un champ de paramètre pour créer un champ de paramètre que vous pouvez utiliser dans une formule, dans une formule de sélection d'enregistrements ou dans le corps du rapport lui-même.
Cette boîte de dialogue s'affiche lorsque vous cliquez avec le bouton droit de la souris sur Champs de paramètre dans l'Explorateur de champs et cliquez sur Nouveau.
Remarque
Cette boîte de dialogue est identique à la boîte de dialogue Modifier le champ de paramètre. Cette description s'applique aux deux boîtes de dialogue.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
851
Name Saisissez dans cette zone le nom que vous souhaitez affecter au champ de paramètre. Il s'agit du nom qui apparaîtra dans la liste Champs de l'Editeur de formule et qui sera utilisé pour identifier le champ lors de son utilisation dans le rapport ou dans une formule.
Remarque
Lorsqu'un nom de champ de paramètre s'affiche, le programme met un point d'interrogation au début du nom pour l'identifier comme un champ de paramètre. Ainsi, si vous nommez le champ de paramètre "Invite 1", le nom apparaîtra dans la liste de champs de l'Editeur de formule sous la forme "?Invite1".
Texte de l'invite
Type de valeur
Saisissez dans cette zone le texte que le programme doit utiliser pour votre invite.
Sélectionnez le type de données du champ de paramètre dans cette liste.
Si vous sélectionnez Date ou Date/heure comme type de valeur du paramètre, vous pouvez modifier
les formats de date/heure par défaut dans l' Onglet Champs (Paramètres par défaut) [page 874]
de la boîte de dialogue Paramètres par défaut.
Tous les types de valeur de paramètre sauf le type booléen
Autoriser plusieurs valeurs
Valeurs discrètes
Valeur(s) de plage
Valeurs discrètes et valeurs de plage
Valeurs par défaut
Autoriser la modification des valeurs par défaut si plusieurs valeurs
Si vous cochez la case Autoriser plusieurs valeurs, vous pouvez sélectionner plusieurs valeurs par défaut pour votre champ de paramètre.
Si vous sélectionnez l'option Valeurs discrètes, vous ne pouvez choisir que des valeurs discrètes ou singulières pour votre champ de paramètre. Si vous avez sélectionné
Permettre des valeurs multiples, vous pourrez choisir plusieurs valeurs discrètes pour votre champ de paramètres, bien que celles-ci continuent de fonctionner tout à fait différemment d'une valeur de plage.
Si vous sélectionnez l'option Valeur(s) de plage, vous pouvez sélectionner une plage de valeurs pour votre champ de paramètre.
Cette option n'est disponible que si vous cochez la case Autoriser plusieurs valeurs.
Si vous sélectionnez cette option, vous pouvez sélectionner des valeurs discrètes et des valeurs de plage pour votre champ de paramètre.
Cliquez sur le bouton Valeurs par défaut pour définir les paramètres d'invite par défaut pour le champ de paramètre que vous créez.
Cette case est cochée par défaut. Lorsque cette case est cochée, vous pouvez modifier les valeurs du champ de paramètre une fois que celui-ci a été ajouté au rapport.
852
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Types de valeur de paramètre booléen
Insérer dans un groupe de paramètres
Cochez la case Insérer dans un groupe de paramètres pour ajouter le champ de paramètre booléen à un groupe. Lorsque les utilisateurs sélectionnent un groupe de paramètres booléens, ils peuvent affecter la même valeur ou une valeur différente à chaque élément du groupe (ce comportement est contrôlé par l'option Le groupe est exclusif).
Numéro de groupe Utilisez ce champ pour saisir le numéro du groupe auquel vous souhaitez ajouter le paramètre booléen actuel.
Le groupe est exclusif
Cochez cette case pour vous assurer que les utilisateurs ne peuvent choisir qu'un seul paramètre booléen d'un groupe donné qui aura la valeur True. Tous les autres paramètres du même groupe auront automatiquement la valeur False.
Si vous décochez cette case, les utilisateurs peuvent combiner des paramètres booléens de plusieurs groupes et sélectionner ceux qui auront la valeur True.
Valeurs par défaut Cliquez sur Valeurs par défaut afin de définir les paramètres d'invite par défaut pour le champ de paramètre que vous créez.
Paramètres de mise en cascade dynamiques
Les invites dynamiques et les listes de valeurs en cascade sont disponibles dans SAP Crystal Reports Developer.
Ces fonctionnalités vous permettent de remplir les listes de valeurs associées à une invite à partir d'une source de données extérieure à votre rapport. Une invite dynamique peut inclure une liste de valeurs en cascade. En d'autres termes, vous pouvez créer une invite dont la valeur finale est déterminée par une série de choix. Par exemple, les utilisateurs peuvent être invités à choisir un pays avant qu'un choix de régions apparaisse. Les utilisateurs devront alors peut-être choisir une région avant qu'un choix de villes apparaisse, etc. Par exemple, une liste de pays peut correspondre à une invite dynamique, alors qu'une liste hiérarchique de pays, régions et villes peut correspondre à une invite dynamique avec une liste de valeurs en cascade.
Remarque
La fonctionnalité de paramètres de mise en cascade dynamiques n'est pas disponible dans
SAP Crystal Reports, version développeur pour Microsoft Visual Studio, mais l'est dans l'une des versions mises à niveau.
Informations associées
Définition des paramètres [page 676]
Restriction du type et du format d'entrée dans les paramètres [page 679]
Incorporation des paramètres dans des formules [page 681]
Tutoriel : Lecture et définition des paramètres discrets [page 247]
Tutoriel : Lecture et définition des paramètres discrets [page 377]
Explorateur de champs [page 632]
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
853
Solutions de reporting de SAP BusinessObjects Business Intelligence [page 64]
1.7.3.1.13 Boîte de dialogue Créer un champ de total cumulé
Utilisez cette boîte de dialogue pour créer ou modifier des champs de total cumulé. Les totaux cumulés sont en général affichés enregistrement par enregistrement. Ils totalisent tous les enregistrements (du rapport, du groupe, etc.) jusqu'à l'enregistrement en cours (cet enregistrement compris).
Cette boîte de dialogue s'affiche lorsque vous cliquez avec le bouton droit de la souris sur Champs de total cumulé dans l'Explorateur de champs et cliquez sur Nouveau.
Remarque
Cette boîte de dialogue est la même que celle du champ Modifier le champ de total cumulé. Cette description s'applique aux deux boîtes de dialogue.
Tables et champs disponibles
Nom du total cumulé
Répertorie toutes les tables et tous les champs du rapport. Sélectionnez dans cette liste le champ que vous souhaitez résumer (le champ sur lequel un total cumulé sera basé).
Tapez le nom de votre total cumulé, par exemple, Ventes de l'année dernière, dans la zone Nom du total cumulé.
Résumé
Champ à résumer
Type de résumé
La liste Champ à résumer affiche un champ que vous sélectionnez dans la liste Tables et champs disponibles. Le total cumulé que vous créez sera basé sur le champ de la liste Champs à résumer.
Utilisez le bouton Ajouter (>) pour copier un champ de la liste Tables et champs disponibles dans la liste Champs à résumer.
Utilisez la liste Type de résumé pour sélectionner plusieurs options de résumé. Le type de résumé sélectionné détermine le calcul du total cumulé.
Remarque
Les options Type de résumé changent en fonction du champ que vous résumez.
Evaluer
Pour chaque enregistrement
Utilisez l'option Pour chaque enregistrement pour évaluer le total cumulé de chaque enregistrement dans un champ.
854
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Au changement de champ Utilisez l'option Au changement du champ pour effectuer l'évaluation du total cumulé uniquement lorsqu'un champ spécifié a été modifié.
Remarque utilisez le bouton Ajouter (>) pour copier un champ de la liste Tables et champs disponibles dans la liste Au changement de champ.
Au changement de groupe Utilisez l'option Au changement du groupe pour effectuer l'évaluation du total cumulé uniquement lorsqu'un groupe spécifié a été modifié.
Utiliser une formule Sélectionnez l'option Utiliser une formule afin d'utiliser une formule pour calculer le total cumulé.
Réinitialiser
Jamais
Au changement de champ
Utilisez l'option Jamais pour verrouiller votre champ de total cumulé. Lorsque le bouton
Jamais est sélectionné, le calcul du total cumulé sera effectué dans ce champ pour l'ensemble du rapport.
Utilisez la liste Au changement du champ pour évaluer ou réinitialiser votre total cumulé lorsqu'un champ spécifié est modifié.
Remarque utilisez le bouton Ajouter (>) pour copier un champ de la liste Tables et champs disponibles dans la liste Au changement de champ.
Au changement de groupe
Utilisez la liste Au changement du groupe pour évaluer ou réinitialiser votre total cumulé lorsqu'un champ spécifié est modifié.
Utiliser une formule Sélectionnez l'option Utiliser une formule afin que le total cumulé utilise une formule pour définir le moment de la réinitialisation.
Informations associées
Création des totaux cumulés [page 695]
Positionnement des champs de total cumulé [page 695]
Boîte de dialogue Editeur de formule [page 703]
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
855
1.7.3.1.14 Boîte de dialogue Options de groupe du tableau croisé
Utilisez la boîte de dialogue Options de groupe du tableau croisé pour créer ou modifier les options de groupe pour chaque champ de ligne ou de colonne utilisé dans le tableau croisé. Le bouton Options de groupe n'est pas disponible pour les champs résumés.
fonction.
1.7.3.1.15 Boîte de dialogue Galerie de rapports Crystal
Utilisez la Galerie de rapports Crystal pour sélectionner un Expert Rapport qui vous guide pas à pas lors de la création d'un rapport ou pour créer un rapport de toutes pièces.
Créer un document de rapport Crystal
en utilisant l'Assistant Rapport Vous guide tout au long du processus de création de rapports et ajoute vos choix au Report Designer.
à partir d'un rapport vide Ouvre le Report Designer.
à partir d'un rapport existant Crée un nouveau rapport avec la même conception qu'un autre rapport que vous spécifiez.
Choisir un expert
Standard
Tableau croisé
Etiquette de publipostage
L'Assistant de création de rapports standard vous guide pendant la création d'un rapport type.
L'Assistant de création de tableaux croisés vous guide pendant la création d'un rapport qui contient une grille synthétique.
L'Assistant de création de rapports étiquette de publipostage vous guide pendant la création d'un rapport type avec plusieurs colonnes. Il est généralement utilisé pour créer une feuille d'étiquettes d'adresses.
Informations associées
Utilisation du SAP Crystal Reports Designer incorporé [page 624]
Modèle de traitement des rapports [page 637]
856
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Assistants de création de rapports [page 940]
1.7.3.1.16 Boîte de dialogue Nom de la fonction personnalisée
Utilisez cette boîte de dialogue afin de définir le nom de votre fonction.
La boîte de dialogue Nom de la fonction personnalisée s'affiche lorsque vous sélectionnez Fonctions personnalisées du rapport dans la boîte de dialogue Atelier de formules, puis que vous cliquez sur le bouton
Nouveau.
Name Saisissez le nom de votre nouvelle fonction dans cette zone.
Remarque
Le nom d'une fonction personnalisée ne peut contenir que des nombres, des lettres et le caractère de soulignement. Ce nom ne peut pas commencer par un nombre.
Utiliser l'extracteur
Cliquez sur ce bouton si vous souhaitez utiliser la boîte de dialogue Extraire une fonction personnalisée d'une formule pour créer votre fonction.
Utiliser l'éditeur Cliquez sur ce bouton si vous souhaitez utiliser la boîte de dialogue Editeur de fonction personnalisée pour créer votre formule.
Informations associées
Boîte de dialogue Atelier de formules [page 904]
Fonctions personnalisées [page 704]
1.7.3.1.17 Boîte de dialogue Propriétés des fonctions personnalisées
Utilisez cette boîte de dialogue pour fournir des informations supplémentaires et des valeurs par défaut pour la fonction personnalisée. La boîte de dialogue Propriétés des fonctions personnalisées s'affiche lorsque vous :
● sélectionnez une fonction personnalisée existante alors que le bouton
Activer/Désactiver les propriétés
est sélectionné dans la barre d'outils
Atelier de formules
.
● cliquez sur
Saisir des informations supplémentaires
dans la boîte de dialogue
Extraire une fonction personnalisée d'une formule
.
● cliquez sur
En savoir plus
dans l'
Expert Formule
(dans ce cas, le contenu de la boîte de dialogue Propriétés des fonctions personnalisées sert uniquement de référence).
Name Pour référence uniquement. Ce champ affiche le nom défini lors de la création de la fonction personnalisée.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
857
Résumé
Catégorie
Utilisez cette zone pour ajouter des informations supplémentaires sur la fonction personnalisée afin d'identifier son objectif, son utilisation attendue, etc.
Utilisez cette zone afin de définir une catégorie pour votre fonction personnalisée. Les catégories permettent de regrouper certaines fonctions personnalisées. Elles apparaissent sous la forme de sous-dossiers dans le dossier Fonctions personnalisées du rapport de l'arborescence Atelier de formules, ainsi que dans la fenêtre Fonctions de la boîte de dialogue
Editeur de formule.
Si vous souhaitez créer des niveaux supplémentaires, utilisez une barre oblique dans la définition de la catégorie.
Référentiel Pour référence uniquement. Ce champ affiche le nom du référentiel auquel la fonction personnalisée est ou était connectée, le cas échéant. La fonction personnalisée doit être connectée au référentiel pour que ce champ contienne des informations.
Afficher dans les experts
Sélectionnez cette option si vous souhaitez que votre fonction soit affichée dans la liste
Logique de base de la fonction personnalisée de l'Expert Formule.
Auteur Utilisez ce champ pour ajouter le nom du créateur de la fonction personnalisée.
Type de renvoi Pour référence uniquement. Ce champ affiche le type de données de l'argument.
Texte de l'aide Cliquez sur ce bouton pour ouvrir la boîte de dialogue Texte de l'aide. et rédiger un message qui aidera les autres utilisateurs à utiliser cette fonction. Le texte d'aide est disponible uniquement dans cette boîte de dialogue.
Arguments
Name
Type
Les champs de cette zone affichent la définition de votre fonction personnalisée.
Pour référence uniquement. Ce champ affiche le nom de l'argument.
Description
Pour référence uniquement. Ce champ affiche le type de donnés du champ de base de données correspondant.
Ce champ permet d'ajouter une description facultative d'un argument. Cette description apparaît dans l'Expert Formule.
Valeurs par défaut
Ce champ permet de définir les valeurs par défaut d'un argument. Lorsque vous cliquez sur un champ Valeurs par défaut, la boîte de dialogue Valeurs par défaut pour s'ouvre. Les valeurs par défaut créées ici peuvent être utilisées dans l'Expert Formule.
Vous ne pouvez pas créer de valeurs par défaut pour les arguments de type plage, tableau ou tableau de plages.
Pour plus d'informations sur la création d'un ensemble de valeurs par défaut, reportez-vous à la section Définition de valeurs d'argument par défaut pour des fonctions personnalisées.
Informations associées
Fonctions personnalisées [page 704]
Boîte de dialogue Atelier de formules [page 904]
Boîte de dialogue Texte de l'aide [page 905]
Boîte de dialogue Valeurs par défaut pour [page 875]
858
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.7.3.1.18 Boîte de dialogue Styles personnalisés
Utilisez cette boîte de dialogue pour spécifier la mise en forme des champs monétaires, numériques, heure ou date de votre rapport.
Cette boîte de dialogue s'affiche lorsque vous cliquez sur Personnaliser dans l'onglet Nombre, Date ou Heure de l'Editeur de mise en forme. Il affiche les onglets suivants en fonction du type d'élément à mettre en forme.
1.7.3.1.18.1 Onglet Symbole monétaire (Styles personnalisés)
Utilisez l'onglet Symbole monétaire pour définir les options de formatage détaillé des champs monétaires de votre rapport.
Utiliser le format par défaut du système
Activer le symbole monétaire
Fixe
Cochez cette case pour utiliser le format spécifié dans vos paramètres régionaux de
Windows
Cochez cette case pour afficher les devises de vos champs monétaires.
Flottant
Un symbole par page
Emplacement
Symbole monétaire
Cliquez sur cette option pour que le programme place le symbole monétaire à l'extrémité gauche du champ. Des espaces supplémentaires seront laissés entre le symbole et la valeur monétaire si le champ est justifié à droite.
Cliquez sur cette option pour que le programme place le symbole monétaire aussi près que possible de la valeur monétaire de sorte qu'il n'y ait jamais d'espaces supplémentaires entre le symbole et le montant.
Cochez cette case pour que le programme affiche/imprime un symbole monétaire seulement une fois par page, à côté de la première valeur numérique/monétaire qui apparaît sur la page pour chaque champ. Aucun symbole monétaire n'apparaîtra à côté des autres valeurs de ce champ sur cette page.
Cette liste affiche tous les emplacements disponibles pour le symbole monétaire.
Utilisez cette zone pour saisir le symbole monétaire souhaité.
1.7.3.1.18.2 Onglet Nombre (Styles personnalisés)
Utilisez l'onglet Nombre pour définir les options de formatage détaillé des champs numériques de votre rapport.
Utiliser le format comptable
Lorsque vous sélectionnez cette option :
● le symbole négatif utilisé et sa position sont déterminés par les paramètres régionaux de
Windows (le signe moins ou des crochets)
● le tiret est choisi automatiquement pour
Afficher les valeurs zéro en tant que
(les valeurs zéro sont automatiquement représentées par des tirets ('-') dans votre rapport)
● le symbole monétaire est placé à gauche
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
859
Supprimer si zéro
Décimales
Arrondir
Négatifs
Lorsque vous cochez cette case, rien n'est imprimé dans une colonne de données du champ numérique si la valeur est zéro.
Lorsque vous définissez un format personnalisé pour un objet champ numérique, utilisez cette liste afin de définir la propriété Décimales pour cet objet. Cette option vous permet de spécifier le nombre de décimales à imprimer. Vous pouvez spécifier de 0 à 10 décimales. Lorsque vous choisissez le nombre de décimales souhaité, le programme remplace le nombre affiché comme exemple en bas de la boîte de dialogue par les résultats de votre sélection.
Lorsque vous définissez un format personnalisé pour un objet champ numérique, utilisez cette liste pour définir la propriété Arrondir pour cet objet. Cette propriété vous permet de spécifier le nombre de décimales à arrondir. Lorsque vous choisissez le nombre de décimales souhaité, le programme remplace le nombre affiché comme exemple en bas de la boîte de dialogue par les résultats de votre sélection.
Lorsque vous définissez un format personnalisé pour un objet champ numérique, cette propriété permet de spécifier la manière dont vous souhaitez que les valeurs négatives s'affichent. Les options sont les suivantes :
Table 24 :
-1.23
1.23-
(1.23)
Imprime les valeurs négatives avec un signe moins à gauche (-100,00, -225,73, -1 000
000).
Imprime les valeurs négatives avec un signe moins à droite (100,00-, 225,73-, 1 000
000.00-).
Imprime les valeurs négatives entre parenthèses [ (100,00), (225,73), (1 000 000) ].
Inverser le signe pour l'affichage
Permettre le découpage des champs
Séparateur décimal
Le programme remplace le nombre affiché comme exemple en bas de la boîte de dialogue par la propriété choisie.
Vous pouvez inverser les signes des montants de débit et de crédit dans les rapports financiers en cochant cette case.
La boîte de dialogue Autoriser le découpage des champs permet de définir si la représentation du dépassement de champ est activée pour le(s) champ(s) sélectionné(s).
● Cochez cette case pour désactiver la représentation du dépassement de champ. Cela signifie que si la valeur est trop grande pour le champ, celle-ci sera tronquée.
● Décochez cette case pour désactiver le découpage des champs et activer la représentation du dépassement de champ. Si cette case est cochée, les valeurs qui sont trop grandes pour les champs seront représentées par une chaîne de signes #.
Lorsque vous définissez un format personnalisé pour un objet champ numérique, la zone
Décimal vous permet de taper le(s) caractère(s) que vous souhaitez utiliser comme séparateur décimal. L'option par défaut est la virgule (,). Pour changer de séparateur, dans la zone modifiable, remplacez le caractère par le séparateur de votre choix. Le programme remplace le nombre affiché comme exemple en bas de la boîte de dialogue par le nombre que vous tapez.
Remarque
La zone ne s'agrandit pas lorsque vous tapez les caractères de séparation ; vous êtes limité par le nombre de caractères que contient la zone.
860
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Séparateur des milliers
Symbole
Zéro non significatif
La propriété du séparateur des milliers vous permet de choisir la manière dont vous souhaitez que les nombres supérieurs à 999 s'affichent dans vos rapports.
● Lorsque vous sélectionnez la propriété (coche), le programme insère un espace ( ) ou un autre séparateur de votre choix, comme séparateur des milliers pour les nombres supérieurs à 999. Vos nombres sont imprimés de la manière suivante : 1,000.00,
10,000.00, 999,000.00.
● Lorsque vous désélectionnez la propriété, vous désactivez le séparateur des milliers. Vos nombres sont imprimés de la manière suivante : 1000.00, 10000.00, 999000.00.
Cette zone affiche le séparateur des milliers actuel. L'option par défaut est un espace ( ). Si vous souhaitez utiliser un autre séparateur des milliers, tapez-le dans cette zone. Les modifications effectuées dans cette zone ne s'appliquent pas tant que vous ne cochez pas la case Séparateur des milliers.
Zéro non significatif permet d'inclure un zéro, si vous le souhaitez, avant le séparateur décimal dans les nombres décimaux inférieurs à un.
● Sélectionnez cette propriété pour que le programme place un zéro avant le séparateur décimal pour les nombres décimaux inférieurs à un (0,001, 0,9999, 0,755).
● Désactivez cette propriété pour ne pas avoir un zéro de tête (,001, ,999, ,755).
Afficher les valeurs NULL comme
Cette liste contient les options disponibles permettant d'afficher les valeurs de zéro (0) dans le champ sélectionné.
1.7.3.1.18.3 Onglet Date (Styles personnalisés)
Utilisez l'onglet Date pour définir les options de formatage détaillé des champs de date de votre rapport.
Type de date La boîte de dialogue Options régionales du Panneau de configuration Windows vous permet de spécifier les formats de date par défaut pour une utilisation avec tous les programmes Windows.
Vous pouvez spécifier un séparateur de mois/de jour/d'année et l'ordre dans lequel les éléments de date s'affichent. Ces boîtes de dialogue vous permettent également de spécifier un style de date court (tel que 12/24/96 ou 16 Mar, 1996) et un style de date long (tel que dimanche 21 avril,
1996).
Cette liste vous permet de :
● choisir un des deux styles par défaut
● choisir Personnalisé pour créer votre propre style dans l'Editeur de mise en forme.
Sélectionnez l'option qui vous convient. Le programme remplace la date affichée comme exemple en bas de la boîte de dialogue par le style choisi.
Type calendrier
Votre système d'exploitation peut prendre en charge plusieurs types de calendriers.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
861
Mise en forme
Mois
Jour
Si vous souhaitez créer un format personnalisé pour un objet champ de date, utilisez cette liste pour spécifier le mode d'impression/d'affichage de la partie mois de la date. Les options sont les suivantes :
Table 25 :
3
03
Mar
Mars
Imprime le mois sous une forme numérique. S'il s'agit d'un mois à un seul chiffre, celui-ci s'im prime avec un zéro non significatif.
Imprime le mois sous la forme d'un nombre. S'il s'agit d'un mois à un seul chiffre, celui-ci s'im prime avec un zéro non significatif.
Imprime le mois sous la forme d'une abréviation à trois lettres.
Affiche le nom complet du mois.
Le programme modifie la date affichée comme exemple en bas de la boîte de dialogue par votre choix.
Si vous souhaitez créer un format personnalisé pour un objet champ de date, utilisez cette liste pour spécifier le mode d'impression/d'affichage de la partie jour de la date. Les options sont les suivantes :
Table 26 :
1
01
Imprime le jour sous la forme d'un nombre. S'il s'agit d'un jour à un seul chiffre, celui-ci s'imprime avec un zéro non significatif.
Imprime le jour sous la forme d'un nombre. S'il s'agit d'un jour à un seul chiffre, celui-ci s'imprime avec un zéro non significatif.
Année
Le programme modifie la date affichée comme exemple en bas de la boîte de dialogue par votre choix.
Si vous souhaitez créer un format personnalisé pour un objet champ de date, utilisez cette liste pour spécifier le mode d'impression/d'affichage de la partie année de la date.
Table 27 :
99
1999
Imprime l'année au format court, avec deux chiffres.
Imprime l'année au format long, avec quatre chiffres.
Type
ère/ période
Le programme modifie la date affichée comme exemple en bas de la boîte de dialogue par votre choix.
Utilisez la liste Type ère/période pour sélectionner une période courte ou longue.
862
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Ordre
Options
AMJ, JMA,
MJA
Si vous souhaitez créer un format personnalisé pour un objet champ de date, utilisez ces options pour sélectionner l'ordre dans lequel vous souhaitez que les éléments de la date s'affichent. Les options sont les suivantes :
Table 28 :
MJA
JMA
AMJ
Imprime la date dans l'ordre mois, jour, année.
Imprime la date dans l'ordre jour, mois, année.
Imprime la date dans l'ordre année, mois, jour.
Le programme modifie la date affichée comme exemple en bas de la boîte de dialogue par la séquence choisie.
Jour de la semaine
Type Lorsque vous créez un format personnalisé pour un objet champ de date, si vous souhaitez que le jour (ou le nom abrégé) s'affiche avant le reste de la date, utilisez cette option pour définir le format du nom. Les options sont les suivantes :
Table 29 :
Court
Long
Aucun
Imprime le nom du jour abrégé avant la date (par exemple, Ven).
Imprime le nom complet du jour avant la date (par exemple, Vendredi).
N'imprime pas le jour avant la date.
Le programme modifie la date affichée comme exemple en bas de la boîte de dialogue par votre choix.
Si vous définissez cette propriété sur Court ou Long, vous devez spécifier le(s) caractère(s) à utiliser pour séparer le nom de la date. Cette configuration s'effectue dans la zone Séparateur.
Sép Lorsque vous créez un format personnalisé pour un objet champ de date, vous devez spécifier le(s) caractère(s) à utiliser pour séparer le nom de la date. Cette configuration s'effectue dans cette zone. Vous pouvez utiliser, dans une certaine limite, autant de caractères que vous souhaitez.
Tapez le texte que vous voulez voir apparaître. Le programme modifie la date affichée comme exemple en bas de la boîte de dialogue par la date que vous tapez.
Incl Utilisez la liste Inclus pour sélectionner les parenthèses ou les crochets comme élément inclus dans les champs date/heure de votre rapport.
Emplacement Utilisez la liste Emplacement pour sélectionner un emplacement à gauche ou à droite.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
863
Séparateurs
Lorsque vous définissez un format personnalisé pour un objet champ de date, le programme permet de spécifier, le cas échéant, les séparateurs que vous souhaitez utiliser pour séparer les éléments de date. Chaque date ayant trois éléments (AMJ, JMA ou MJA), vous pouvez spécifier deux séparateurs différents. Le premier séparateur est placé entre le premier et le deuxième élément, le deuxième séparateur est placé entre le second et le troisième
élément.
Sélectionnez cette option si vous souhaitez que les séparateurs spécifiés soient pris en compte lors du tri des champs de date.
Prendre en compte les séparateurs lors du tri des dates
Préfixe
Premier
Utilisez la zone Préfixe pour créer un préfixe pour les dates dans votre champ de date, par exemple, DATE.
Lorsque vous définissez un format personnalisé pour un objet champ de date, le programme permet de spécifier, le cas échéant, les séparateurs que vous souhaitez utiliser pour séparer les éléments de date. Chaque date ayant trois éléments (AMJ, JMA ou MJA), vous pouvez spécifier deux séparateurs différents. Le premier séparateur est placé entre le premier et le deuxième élément, le deuxième séparateur est placé entre le second et le troisième élément.
Tapez le(s) caractère(s) que vous souhaitez utiliser comme premier séparateur dans cette zone. Vous pouvez utiliser, dans une certaine limite, autant de caractères que vous souhaitez.
Par exemple :
● si vous utilisez un format court (composé uniquement de nombres), vous pouvez spécifier que les premier et deuxième séparateurs sont des barres obliques (par exemple,
25/12/96),
● si vous utilisez un format long (dans lequel le mois est affiché en toutes lettres), vous ne souhaiterez peut-être pas utiliser de séparateur entre le premier et le deuxième élément, mais insérer une virgule entre le deuxième et le troisième (par exemple, 22 mars, 1998).
Seconde
Suffixe
Lorsque vous définissez un format personnalisé pour un objet champ de date, le programme permet de spécifier, le cas échéant, les séparateurs que vous souhaitez utiliser pour séparer les éléments de date. Chaque date ayant trois éléments (AMJ, JMA ou MJA), vous pouvez spécifier deux séparateurs différents. Le premier séparateur est placé entre le premier et le deuxième élément, le deuxième séparateur est placé entre le second et le troisième élément.
Tapez le(s) caractère(s) que vous souhaitez utiliser comme deuxième séparateur dans cette zone. Vous pouvez utiliser, dans une certaine limite, autant de caractères que vous souhaitez.
Par exemple :
● si vous utilisez un format court (composé uniquement de nombres), vous pouvez spécifier que les premier et deuxième séparateurs sont des barres obliques (par exemple,
25/12/96),
● si vous utilisez un format long (dans lequel le mois est affiché en toutes lettres), vous ne souhaiterez peut-être pas utiliser de séparateur entre le premier et le deuxième élément, mais insérer une virgule entre le deuxième et le troisième (par exemple, 22 mars, 1998).
Utilisez la zone Suffixe pour créer un suffixe à la suite des dates dans votre champ de date.
864
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.7.3.1.18.4 Onglet Heure (Styles personnalisés)
Utilisez l'onglet Heure pour définir les options de formatage détaillé des champs de date de votre rapport.
Utiliser le format par défaut du système
12 heures
24 heures
00:00-11:59
12:00-23:59
Cochez cette case pour utiliser le format spécifié dans vos paramètres régionaux de
Windows
Cochez cette case pour afficher l'heure au format 12 heures.
Cochez cette case pour afficher l'heure au format 24 heures.
Utilisez cette zone pour spécifier les caractères à utiliser pour identifier l'heure entre minuit et midi si vous ne souhaitez pas utiliser l'option par défaut, AM.
Utilisez cette zone pour spécifier les caractères à utiliser pour identifier l'heure entre midi et minuit si vous ne souhaitez pas utiliser l'option par défaut, PM.
Position de symbole Utilisez la liste Position de symbole pour sélectionner la position des symboles AM ou PM dans votre champ d'heure.
Remarque
La liste Position de symbole n'est disponible que pour le format 12 heures.
Heure
Minute
Cette liste affiche tous les formats possibles pour l'affichage de l'heure. Choisissez le format souhaité. Une fois votre choix effectué, le programme remplace l'heure affichée comme exemple en bas de la boîte de dialogue par votre choix.
Cette liste affiche tous les formats possibles pour l'affichage des minutes. Choisissez le format souhaité. Une fois votre choix effectué, le programme remplace l'heure affichée comme exemple en bas de la boîte de dialogue par votre choix.
Seconde Cette liste affiche tous les formats possibles pour l'affichage des minutes. Choisissez le format souhaité. Une fois votre choix effectué, le programme remplace l'heure affichée comme exemple en bas de la boîte de dialogue par votre choix.
Séparateur hr/min Saisissez dans cette zone le(s) caractère(s) que vous souhaitez utiliser pour séparer les heures des minutes dans votre champ d'heure.
Séparateur min/sec Saisissez dans cette zone le(s) caractère(s) que vous souhaitez utiliser pour séparer les minutes des secondes dans votre champ d'heure.
1.7.3.1.18.5 Onglet Date et heure (Styles personnalisés)
Utilisez l'onglet Date et heure pour définir les options de mise en forme détaillée des champs de type date/heure de votre rapport.
Ordre Dans cette liste, sélectionnez l'ordre dans lequel vous souhaitez que les éléments de votre champ de type date/heure s'affichent. Vous pouvez sélectionner :
● Date heure (99/03/01 1:23:45AM)
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
865
● Heure date (1:23:45AM 99/03/01)
● Date (99/03/01)
● Heure (1:23:45AM)
Séparateur Tapez le(s) caractère(s) souhaité(s) pour séparer les éléments de date et d'heure de votre champ de type date/heure. Par exemple, si vous tapez un "X" dans la zone Séparateur, le champ de type date/heure s'affichera dans l'ordre Date heure de la manière suivante : 99/03/01 X 1:23:45AM
Remarque
Le séparateur n'a aucune incidence si vous sélectionnez Date ou Heure comme ordre de tri.
1.7.3.1.19 Boîte de dialogue Explorateur de données
L'Explorateur de données vous permet de sélectionner le serveur auquel vous souhaitez vous connecter ou duquel vous souhaitez vous déconnecter dans une arborescence identique à celle de l'Expert Base de données.
Connexion
Déconnexion
Vous connecte à la source de données sélectionnée dans la liste des sources de données.
Vous déconnecte de la source de données sélectionnée dans la liste des sources de données.
Ajouter aux favoris Ajoute la source de données sélectionnée à votre dossier Favoris.
Supprimer le favori Supprime la source de données sélectionnée de votre dossier Favoris.
Options Donne accès aux options que vous pouvez définir globalement dans l'onglet Base de données de la boîte de dialogue Options.
1.7.3.1.20 Boîtes de dialogue Références de connexion relatives à la source de données
Pour créer un rapport, vous devez sélectionner une source de données dans la liste des sources disponibles dans l'onglet Données (Expert Base de données). En fonction de la source de données choisie, vous devrez parfois fournir des informations supplémentaires.
Remarque
Cette boîte de dialogue est différente en fonction de la source de données à laquelle vous êtes connecté et selon que vous vous connectez via un fournisseur ou directement à la source de données.
Informations associées
Boîte de dialogue Expert Base de données [page 964]
866
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Accès aux données et ajout des données [page 643]
Création de rapports à partir de DataSets ADO.NET [page 644]
1.7.3.1.21 Boîte de dialogue Paramètres par défaut
Utilisez la boîte de dialogue Paramètres par défaut pour configurer les options de paramètres et de format du programme. Pour accéder à cette boîte de dialogue, cliquez avec le bouton droit de la souris sur le Report
Designer, pointez sur Conception, puis cliquez sur Paramètres par défaut.
Conseil
Utilisez la boîte de dialogue Paramètres par défaut pour modifier les valeurs par défaut du programme, et utilisez la boîte de dialogue Options du rapport pour modifier les options du rapport en cours.
1.7.3.1.21.1 Onglet Disposition (Paramètres par défaut)
Utilisez l'onglet Disposition pour définir les options de grille, de règle et de mise en forme de l'objet par défaut.
Options de champ
Sélectionnez la mise en forme que vous souhaitez utiliser pour afficher les champs du rapport en mode conception.
Table 30 :
Option de champ
Afficher les noms des champs
Afficher les noms d'objet
Afficher les symboles de format
Explication
Affiche le nom du champ.
Affiche le nom d'objet du champ.
Affiche le format de sortie du champ.
Exemple
ID client
PrintDate
Field1
Field2
5,555,555
01:23:45
Insérer titres de champ de détails
Insérer un nom de groupe avec le groupe
Si vous cochez cette case, le titre du champ par défaut s'affiche dans la section En-tête de page lorsque vous insérez un champ dans la section Détails. Le titre par défaut est le nom du champ, souligné. Cette case est cochée par défaut.
Si vous cochez cette case, le programme entre automatiquement le Nom de groupe dans l'En-tête de groupe lorsque vous insérez un nouveau groupe. Cette case est cochée par défaut.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
867
Options d'affichage
Afficher les règles
Afficher les sections masquées
Lorsque vous cochez cette case, la règle est affichée en mode Conception. Cette case est cochée par défaut.
Lorsque vous cochez cette case, les sections masquées et supprimées de votre rapport sont affichées en mode Conception. Les objets de rapport de ces sections apparaissent en grisé à l'arrière-plan. Cette case est cochée par défaut.
Afficher les sauts de page sur les pages larges
Lorsque vous cochez cette case, des indicateurs signalent les sauts de page sur les pages larges. Cette case est cochée par défaut.
Options de grille
Aligner sur la grille
Lorsque vous cochez cette case, les nouveaux champs de base de données que vous insérez s'alignent sur les positions de grille les plus proches. Lorsque vous la décochez, les nouveaux champs de base de données restent à l'endroit où vous les avez placés. Cette case est cochée par défaut.
Afficher la grille Lorsque vous cochez cette case, une grille s'affiche dans le Designer.
Taille de grille Cette zone vous permet de spécifier la taille de l'incrément de la grille. L'unité de mesure utilisée pour les incréments de la grille est basée sur les paramètres de la section
International du Panneau de configuration Windows.
1.7.3.1.21.2 Onglet Base de données (Paramètres par défaut)
Utilisez l'onglet Base de données pour définir les options de base de données SQL/ODBC, la méthode que vous souhaitez utiliser pour trier et afficher les noms de tables et de champs et d'autres options avancées.
Tables et champs
En définissant les options dans cette section de l'onglet Base de données, vous pouvez spécifier le texte que le programme utilisera pour les tables et les champs.
Afficher le nom
Afficher la description
Si vous sélectionnez cette option, le programme identifie les tables et les champs utilisant le nom réel, par exemple, la table Clients et le champ Nom du client. Cette case est cochée par défaut.
Si vous sélectionnez cette option, le programme identifie les tables et les champs utilisant la description que vous avez spécifiée, par exemple, la table "Nos clients" et le champ "Noms de tous nos clients".
868
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Afficher les deux
Tri alphabétique des tables
Tri alphabétique des champs
Si vous sélectionnez cette option, le programme identifie les tables et les champs utilisant le nom et la description que vous avez spécifiés, par exemple, la table "Clients -
Nos clients" et le champ "Nom du client - Noms de tous nos clients".
Lorsque vous cochez cette case, les tables s'affichent, pour l'ensemble du programme, par ordre alphabétique (pas dans l'ordre de la base de données). Cette case est cochée par défaut.
Lorsque vous cochez cette case, les champs s'affichent, pour l'ensemble du programme, par ordre alphabétique (pas dans l'ordre de la base de données). Cette case n'est pas cochée par défaut.
Options de l'Explorateur de données
Tables
Vues
Lorsque vous cochez cette case, le programme vous permet de créer des rapports dans les tables de base de données de vos sources de données SQL/ODBC. Cette case est cochée par défaut.
Lorsque vous cochez cette case, le programme vous permet de créer des rapports à partir de tables virtuelles de vos sources de données SQL/ODBC. Cette case est cochée par défaut.
Tables système Cochez cette case pour créer des rapports à partir de tables système. Ces tables ne sont en général utilisées que par l'administrateur système, mais elles sont disponibles si vous disposez des autorisations appropriées. Cette case n'est pas cochée par défaut.
Synonymes
Procédures stockées
Nom de table
LIKE
Propriétaire
LIKE
Cochez cette case pour créer des rapports à partir de tables virtuelles qui sont disponibles sur certains ordinateurs hôtes. Cette case n'est pas cochée par défaut.
Cochez cette case pour créer des rapports basés sur les résultats obtenus à partir des procédures stockées, si vous utilisez des systèmes SQL qui prennent en charge ces procédures. Cette case n'est pas cochée par défaut.
Saisissez la fonction SQL LIKE dans cette zone pour spécifier le type de nom de table que vous souhaitez afficher dans l'Expert Base de données. Utilisez le caractère de soulignement (_) et le signe de pourcentage (%) comme caractères génériques avec cette fonction. Le caractère de soulignement spécifie un caractère quelconque, alors que le signe de pourcentage spécifie une chaîne de caractères quelconque. Ainsi, JEA_ correspond uniquement à JEAN, tandis que
JEA% correspond à la fois à JEAN et à JEANNE. De même, Nom de table LIKE C% affiche uniquement les tables dont le nom commence par C.
Cette zone fonctionne de la même manière que la zone Nom de table LIKE sauf que la fonction
LIKE est utilisée ici pour sélectionner le Propriétaire (ou Créateur ou Alias) de la table, pas le nom de la table elle-même. Ainsi, Propriétaire LIKE C% affiche uniquement les tables dont le propriétaire commence par la lettre C.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
869
Options avancées
Utiliser les index ou les serveurs pour un traitement rapide
Cochez cette case pour utiliser les index/serveurs disponibles afin d'accélérer la procédure de sélection d'enregistrements. Si vous décochez cette case, la procédure de sélection d'enregistrements pourra être beaucoup plus lente. Cette case est cochée par défaut.
Remarque
Si le nom d'un index est différent de celui de la base de données qu'il répertorie, vous devez identifier l'index du programme. Cette opération s'effectue à l'aide de la boîte de dialogue Options de mise en relation.
Regrouper sur le serveur
Le serveur de base de données ne respecte pas la casse
Sélectionner des données distinctes pour la recherche
Cochez cette case pour effectuer le regroupement sur le serveur (traitement côté serveur). Le traitement côté serveur vous permet de configurer un rapport qui accomplit la plupart de son traitement sur le serveur et ne passe que les détails pertinents à votre ordinateur. Le traitement côté serveur vous offre quelques bénéfices :
● moins de temps connecté au serveur ;
● moins de mémoire requise pour traiter le rapport sur votre ordinateur ;
● moins de temps de transfert du serveur au client.
Notez également que le traitement côté serveur ne fonctionne qu'avec les rapports basés sur les sources de données SQL. Vous ne pourriez pas, par exemple, utiliser le traitement côté serveur pour un rapport basé sur une requête puisque la requête n'est pas une source de données SQL.
Cette case n'est pas cochée par défaut.
Cochez cette case pour rechercher des chaînes dans vos données SQL sans respecter la casse. Par exemple, si votre rapport contient des données SQL dont la casse est mélangée (rouge, ROUGE, Rouge), la recherche de "rouge" en respectant la casse renvoie uniquement "rouge". Si vous cochez cette case, la même requête renvoie "rouge",
"ROUGE" et "Rouge" lorsque vous utilisez "rouge" comme valeur de sélection d'enregistrements. Cette case est cochée par défaut.
Lorsque vous sélectionnez cette option, les 500 premiers enregistrements distincts
(uniques) s'affichent lorsque vous parcourez le contenu d'un champ de base de données.
Si cette option n'est pas sélectionnée, les valeurs uniques des 500 premiers enregistrements sont renvoyées.
Remarque
La plupart des serveurs SQL ne prenant pas en charge la sélection d'enregistrements distincts pour les types de données longs tels que les champs mémo et les champs
BLOB, la sélection et la recherche d'enregistrements distincts ne sont pas prises en charge pour ces champs.
Vérifier lors de la première actualisation
Lorsque cette case est cochée, le rapport est actualisé avec la version actuelle de la base de données active et ses tampons d'enregistrements sont redéfinis sur la taille
870
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
d'enregistrement actuelle lors de la première actualisation réalisée par session. Cette case est cochée par défaut.
Vérifier les procédures stockées lors de la première actualisation
Lorsque cette case est cochée, le rapport est actualisé avec la version actuelle de la procédure stockée et ses tampons d'enregistrements sont redéfinis sur la taille d'enregistrement actuelle lors de la première actualisation réalisée par session. Cette case n'est pas cochée par défaut.
Vérifier une fois le pilote de base de données mis à niveau
Lorsque cette case est cochée, le rapport est actualisé avec la version actuelle de la base de données active et ses tampons d'enregistrements sont redéfinis sur la taille d'enregistrement actuelle lors du changement de pilote de base de données. Cette case est cochée par défaut.
1.7.3.1.21.3 Onglet Editeurs (Paramètres par défaut)
L'onglet Editeur permet de personnaliser les options de mise en forme pour le texte que vous créez dans des
éditeurs tels que l'Editeur de formule ou l'Editeur d'expression SQL.
Options de mise en forme
Police
Taille de la police
Taille des tabulations
Utilisez la liste Police afin de sélectionner les options de police pour un texte créé dans les
éditeurs. Les changements de police affectent tous les éléments des éditeurs.
Utilisez la liste Taille de police afin de sélectionner une taille de police pour un texte créé dans des Editeurs. Les changements de taille de police affectent tous les éléments des
éditeurs.
Entrez dans la zone Taille des tabulations le nombre d'espaces utilisés pour indiquer une
<tabulation> dans le texte.
Couleur
Elément La liste Elément contient quatre types d'éléments que vous pouvez placer dans un éditeur. En sélectionnant les éléments Commentaire ou Mot clé, vous pouvez modifier les couleurs de premier plan ou d'arrière-plan. Les éléments Texte et Sélection du texte peuvent être mis en forme uniquement pour Police, Taille de police et Taille des tabulations.
Premier plan Utilisez la liste Premier plan pour modifier la couleur du texte d'un élément de l'éditeur. Vous disposez de trois options de couleurs séparées pour chaque élément.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
871
Remarque
Les listes Premier plan et Arrière-plan deviennent actives pour les éléments Texte et Sélection du texte lorsque la case "Utiliser couleur du système Windows" n'est pas cochée.
Arrière-plan Utilisez la liste Arrière-plan pour modifier la couleur d'arrière-plan d'un élément de l'éditeur.
Vous disposez de trois options de couleurs séparées pour chaque élément, comprenant une option personnalisée qui affiche la boîte de dialogue Couleur permettant un plus grand choix pour les couleurs d'arrière-plan.
Utiliser couleur du système
Windows
Décochez cette case pour activer les listes Premier plan et Arrière-plan pour les éléments Texte et Sélection du texte.
Exemple
Cette zone présente un exemple des modifications de Police, Taille de police, Couleur de premier plan et Couleur d'arrière-plan telles qu'elles s'afficheront dans l'éditeur.
Réinitialiser tout Cliquez sur Réinitialiser tout pour remplacer toutes les modifications de mise en forme effectuées dans l'onglet Editeurs par les paramètres par défaut initiaux.
1.7.3.1.21.4 Onglet Sources de données par défaut
(Paramètres par défaut)
Répertoire des données
Parcourir
Filtre du fichier de base de données
Utilisez cette zone pour saisir le nom (et le chemin d'accès) du répertoire des données à utiliser pour le rapport. Si vous ne connaissez pas le nom complet et le chemin d'accès, cliquez sur le bouton Parcourir.
Lorsque vous cliquez sur le bouton Parcourir, la boîte de dialogue Rechercher un dossier s'affiche. Utilisez le contrôle d'arborescence pour sélectionner le dossier de votre choix.
Cliquez sur Créer un nouveau dossier pour ajouter un dossier qui n'existe pas encore. Cliquez sur OK pour revenir à l'onglet Sources de données par défaut.
Saisissez les extensions de fichier de base de données que vous souhaitez avoir comme valeur par défaut lors de la recherche de sources de données. Les extensions que vous saisissez définissent les extensions figurant dans l'option
Valeur utilisateur par défaut
du filtre
Types de fichiers
lorsque vous recherchez une source de données dans l'Expert Base de données.
872
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.7.3.1.21.5 Onglet Création de rapport (Paramètres par défaut)
Les options de création de rapport de cet onglet vous permettent d'assigner un régulateur à la sélection de données et d'indiquer si les données seront enregistrées avec votre rapport.
Attribuer la valeur par défaut aux valeurs
NULL de la base de données
Cochez cette case de manière à ce que le programme remplace les valeurs nulles de la base de données par un 0 (pour les champs numériques) ou un espace vide (pour les champs non numériques). Cette case n'est pas cochée par défaut.
Remarque
Cette option affecte uniquement les valeurs NULL se trouvant dans la base de données utilisée dans un rapport.
Attribuer la valeur par défaut aux autres valeurs NULL
Cochez cette case de manière à ce que le programme remplace les valeurs nulles ne se trouvant pas dans la base de données par un 0 (pour les champs numériques) ou un espace vide (pour les champs non numériques). Cette case n'est pas cochée par défaut.
Remarque
Cette option affecte uniquement les valeurs NULL du rapport ne se trouvant pas dans la base de données.
Toujours trier localement
Cochez cette case pour vous assurer que vos enregistrements sont triés localement, même s'ils ont été triés préalablement lors de leur extraction de votre source de données.
Supprimer les données enregistrées lors du chargement de rapports
Cochez cette case pour supprimer les données enregistrées lors du chargement de rapports. Lorsque vous ouvrez un rapport, cette fonction supprime de la base de données l'ensemble des données actuelles du rapport, de sorte que vous puissiez saisir de nouvelles données tout en conservant le format et les paramètres du rapport. Cette case n'est pas cochée par défaut.
Réimporter le sousrapport lors de l'ouverture de rapports
Afficher tous les entêtes lors de l'exploration
Cochez cette case pour réimporter les sous-rapports utilisés dans le rapport. Toutes les modifications effectuées dans le sous-rapport depuis la dernière ouverture du rapport principal seront répercutées.
Cochez cette case pour inclure dans les vues d'exploration du rapport les en-têtes de toutes les sections au-dessus des enregistrements d'exploration. Cette case n'est pas cochée par défaut.
Enregistrer l'image de l'aperçu
Utilisez cette case à cocher pour définir globalement l'option Enregistrer l'image de l'aperçu située dans la boîte de dialogue Propriétés du document.
L'option Enregistrer l'image de l'aperçu n'étant pas activée par défaut dans la boîte de dialogue Propriétés du rapport, cochez cette case afin d'enregistrer l'image de l'aperçu
(la ou miniature) pour chaque rapport que vous créez, dont vous affichez l'aperçu et que vous enregistrez.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
873
Conserver le nombre de couleurs de l'image d'origine
Sélectionnez cette option pour que les images de votre rapport conservent le nombre de couleurs d'origine lors de la visualisation. Autrement, toutes les images sont converties en un format de 8 bits par pixel avant l'affichage. L'avantage de cette option est qu'elle permet à SAP Crystal Reports de rendre des images qui sont des copies exactes des originales. Par contre, SAP Crystal Reports stockera plus d'informations sur les images, ce qui peut créer des fichiers plus volumineux et augmenter le délai de chargement des rapports.
Langage de formule Utilisez cette liste pour choisir le langage de formule que vous souhaitez utiliser. Vous pouvez choisir entre Syntaxe Crystal et Syntaxe Basic. Syntaxe Crystal est activée par défaut.
1.7.3.1.21.6 Onglet Champs (Paramètres par défaut)
Utilisez l'onglet Champs pour définir le format par défaut des champs de type chaîne, numériques, monétaires, de date, d'heure, de type date/heure et booléens. Le programme utilise les formats par défaut pour tous les objets champ qui n'ont pas un format personnalisé.
String
Number
Devise
Date
Heure
Date et heure
Booléen
Cliquez sur ce bouton afin de définir les propriétés de mise en forme par défaut pour les objets champ de type chaîne. Lorsque vous cliquez sur ce bouton, le programme affiche l'onglet Commun de l'Editeur de mise en forme.
Cliquez sur ce bouton pour définir les propriétés de mise en forme par défaut pour les objets champ numériques. Lorsque vous cliquez sur ce bouton, le programme affiche l'onglet Commun de l'Editeur de mise en forme. L'Editeur de mise en forme dispose également de l'onglet Nombre.
Cliquez sur ce bouton afin de définir les propriétés de mise en forme par défaut pour les objets champ monétaires. Lorsque vous cliquez sur ce bouton, le programme affiche l'onglet Commun de l'Editeur de mise en forme. L'Editeur de mise en forme dispose également de l'onglet Nombre.
Cliquez sur ce bouton pour définir les propriétés de mise en forme par défaut pour les objets champ de date. Lorsque vous cliquez sur ce bouton, le programme affiche l'onglet Commun de l'Editeur de mise en forme. L'Editeur de mise en forme dispose également de l'onglet Date.
Cliquez sur ce bouton pour définir les propriétés de mise en forme par défaut pour les objets champ d'heure. Lorsque vous cliquez sur ce bouton, le programme affiche l'onglet Commun de l'Editeur de mise en forme. L'Editeur de mise en forme possède également l'onglet Format.
Cliquez sur ce bouton afin de définir les propriétés de mise en forme par défaut pour les objets champ de type date/heure. Lorsque vous cliquez sur ce bouton, le programme affiche l'onglet
Commun de l'Editeur de mise en forme. L'Editeur de mise en forme dispose également de l'onglet
Date et heure.
Cliquez sur ce bouton afin de définir les propriétés de mise en forme par défaut pour les objets champ booléens. Lorsque vous cliquez sur ce bouton, le programme affiche l'onglet Commun de l'Editeur de mise en forme. L'Editeur de mise en forme possède également l'onglet Booléen.
874
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.7.3.1.21.7 Onglet Polices (Paramètres par défaut)
Utilisez l'onglet Polices pour modifier les polices d'un champ quelconque de votre rapport.
Champs Lorsque vous cliquez sur ce bouton, la boîte de dialogue Police apparaît. Vous pouvez alors définir la police de tous les champs de votre rapport.
Champs de résumé Lorsque vous cliquez sur ce bouton, la boîte de dialogue Police apparaît. Vous pouvez alors définir la police de tous les champs de résumé de votre rapport.
Champs de nom de groupe
Objets texte
Lorsque vous cliquez sur ce bouton, la boîte de dialogue Police apparaît. Vous pouvez alors définir la police de tous les champs de nom de groupe de votre rapport.
Lorsque vous cliquez sur ce bouton, la boîte de dialogue Police apparaît. Vous pouvez alors définir la police de tous les objets texte de votre rapport.
Titres des champs
Diagrammes
Lorsque vous cliquez sur ce bouton, la boîte de dialogue Police apparaît. Vous pouvez alors définir la police de tous les titres de champs de votre rapport.
Lorsque vous cliquez sur ce bouton, la boîte de dialogue Police apparaît. Vous pouvez alors définir la police de tous les diagrammes de votre rapport.
1.7.3.1.22 Boîte de dialogue Valeurs par défaut pour
La boîte de dialogue Valeurs par défaut pour s'affiche lorsque vous cliquez sur le champ Valeurs par défaut d'un argument dans la boîte de dialogue Propriétés des fonctions personnalisées.
Le nom complet de cette boîte de dialogue contient le nom et le type de l'argument sélectionné. Par exemple, si vous sélectionnez un argument DateHeure intitulé JourDansTrimestre, le nom de la boîte de dialogue est Valeurs par défaut pour JourDansTrimestre (DateHeure).
Utilisez cette boîte de dialogue pour créer un jeu de valeurs par défaut à utiliser dans l'Expert Formule.
Utilisez la liste supérieure pour créer les valeurs par défaut qui seront visibles par vos utilisateurs. Vous pouvez saisir des valeurs directement ou, comme dans le cas de valeurs de date, les sélectionner dans un calendrier ou une liste.
La liste inférieure contient les valeurs que vous avez définies, autrement dit, les valeurs que les utilisateurs pourront voir dans l'Expert Formule.
Ajouter Cliquez sur ce bouton pour ajouter des valeurs de la liste supérieure dans la liste inférieure.
Supprimer Cliquez sur ce bouton pour supprimer des valeurs de la liste inférieure.
Haut et Bas Cliquez sur ces boutons pour modifier l'ordre des valeurs dans la liste inférieure.
1.7.3.1.23 Boîte de dialogue Définir la description
Cette boîte de dialogue vous permet de définir une description pour une valeur de paramètre par défaut. Celle-ci s'affiche lorsque vous cliquez sur le bouton Définir la description de la boîte de dialogue Définir les valeurs par défaut.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
875
Saisissez la description dans cette zone, puis cliquez sur OK.
Informations associées
Boîte de dialogue Définir les valeurs par défaut [page 926]
Boîte de dialogue Créer un champ de paramètre [page 851]
1.7.3.1.24 Boîte de dialogue Définir un groupe nommé
Lorsque vous utilisez le regroupement en ordre spécifié, vous devez utiliser la boîte de dialogue Définir un groupe nommé pour créer les groupes et spécifier les valeurs dans chacun d'eux lorsque vous effectuez un regroupement dans un ordre spécifique.
Cette boîte de dialogue s'affiche lorsque vous cliquez sur le bouton Nouveau ou sur le bouton Modifier de l'onglet
Ordre spécifié des boîtes de dialogue Insérer un groupe ou de la boîte de dialogue Ordre de tri du diagramme.
Nom de groupe
Sélection de groupes
Parcourir les données
Onglets
Tapez dans cette zone le nom que vous souhaitez utiliser pour le groupe. Par défaut, le nom s'affiche dans la section En-tête de groupe.
Il existe un onglet pour le groupe nommé dans lequel vous pouvez spécifier les critères de sélection. Sélectionnez un type de critère de sélection dans la liste. Pour ajouter un autre critère de sélection, cliquez sur l'onglet Nouveau.
Choisissez les critères de groupement. En fonction de l'option choisie, vous pouvez sélectionner des données de champ dans la liste déroulante.
Cliquez sur ce bouton pour parcourir les données de champ. Vous pouvez sélectionner les données dans la boîte de dialogue qui s'ouvre et cliquer sur le bouton Coller pour coller les données dans la liste de sélection. Cliquez sur le bouton Terminé pour revenir à la boîte de dialogue Définir un groupe nommé.
Les onglets contiennent les champs dont vous utilisez les valeurs pour créer le groupe. Tous les onglets sont associés au même groupe et chaque onglet est associé à une portion spécifique de la requête utilisée pour créer le groupe. Lorsque vous cliquez sur un onglet, la portion concernée de la requête s'affiche dans la boîte de dialogue. Vous pouvez étendre la requête en cliquant sur l'onglet Nouveau.
Informations associées
Boîte de dialogue Parcourir les données [page 830]
Boîte de dialogue Ordre de tri du diagramme [page 845]
Regroupement, tri et calcul de totaux des données [page 682]
Assistants de création de rapports [page 940]
876
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.7.3.1.25 Boîte de dialogue Propriétés du document
Utilisez la boîte de dialogue Propriétés du document pour :
● ajouter des données de résumé à votre rapport (pour vous aider ainsi que les autres utilisateurs à identifier le rapport) ;
● afficher les informations statistiques que le programme génère pour chaque rapport.
Cette boîte de dialogue s'affiche lorsque vous cliquez sur un rapport avec le bouton droit de la souris, pointez sur
Rapport, puis choisissez Résumé.
1.7.3.1.25.1 Onglet Résumé (Propriétés du document)
Utilisez l'onglet Résumé pour ajouter des informations de résumé à votre fichier de rapport. Vous pouvez, ainsi que d'autres utilisateurs, utiliser ces informations pour vous aider à identifier le contenu du rapport.
Auteur
Mots clés
Commentaires
Tapez dans cette zone le(s) nom(s) de l'auteur (des auteurs).
Tapez dans cette zone les mots clés qui vous aideront à identifier le contenu du rapport.
Tapez dans cette zone les commentaires que vous souhaitez enregistrer avec le rapport.
Ces commentaires peuvent décrire le contenu du rapport, la raison de sa création, etc.
Remarque
Si vous incluez ces commentaires dans un rapport à l'aide du Champ spécial intitulé
Commentaires de rapport, seuls les 256 premiers caractères seront affichés.
Titre
Objet
Modèle
Enregistrer l'image de l'aperçu
Tapez dans cette zone le titre du rapport. Un titre saisi ici peut être ajouté au rapport à l'aide du Champ spécial intitulé Titre.
Tapez dans cette zone l'objet global du rapport.
Si vous créez le rapport en utilisant un autre rapport comme modèle, tapez le nom de ce modèle ici.
Cochez cette case si vous souhaitez créer une image de la première page du rapport de manière à la visualiser lorsque vous sélectionnez un rapport dans la boîte de dialogue
Ouvrir. Cette case n'est pas cochée par défaut.
Informations associées
Boîte de dialogue Paramètres par défaut [page 867]
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
877
1.7.3.1.25.2 Onglet Statistiques (Propriétés du document)
Utilisez l'onglet Statistiques pour afficher les informations de gestion de document que le programme génère pour le rapport.
Dernier enregistrement par
Cet onglet affiche le nom situé dans la zone Auteur de l'onglet Résumé (Propriétés du document) lors du dernier enregistrement du rapport. S'il n'y avait aucun nom lors du dernier enregistrement, la ligne est vide.
Numéro de révision Cette ligne affiche le nombre de révisions du rapport. Chaque nouveau rapport commence par un numéro de révision défini sur zéro (0). Cette valeur est incrémentée de 1 à chaque enregistrement du rapport, même si vous n'avez effectué aucune modification avant l'enregistrement.
Temps total d'édition Cette ligne affiche le nombre total de minutes depuis l'ouverture du rapport pour édition, que vous ayez, en fait, modifié le rapport ou non pendant cette période.
Remarque
Cette valeur n'est pas actualisée pendant que la boîte de dialogue est ouverte. Chaque fois que vous ouvrez la boîte de dialogue Propriétés du rapport, le programme met à jour la valeur.
Dernière impression Cette ligne affiche la date et l'heure d'impression de votre rapport.
Remarque
Cette valeur n'est pas actualisée pendant que vous exportez le rapport ou que vous en affichez un aperçu.
Créée le
Dernier enregistrement
Cette ligne affiche la date et l'heure de création initiale de votre rapport.
Cette ligne affiche la date et l'heure du dernier enregistrement de votre rapport.
Informations associées
Boîte de dialogue Paramètres par défaut [page 867]
1.7.3.1.26 Boîte de dialogue Modifier le résumé
Utilisez la boîte de dialogue Modifier le résumé pour définir ou modifier l'opération de résumé du champ sélectionné.
878
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Cette boîte de dialogue s'affiche lorsque vous sélectionnez un champ de résumé sur un rapport, que vous cliquez dessus avec le bouton droit de la souris et que vous sélectionnez la commande Changer l'opération de résumé dans le menu contextuel. Cette commande est également disponible lorsque vous :
● cliquez sur le bouton Modifier résumé d'un champ de résumé dans l'Expert Tableau croisé ;
● cliquez sur le bouton Définir l'opération de résumé dans l'onglet Données (Expert Carte) de l'Expert
Diagramme ou de l'Expert Carte.
Ce bouton est disponible pour les diagrammes et les cartes avec un type de modèle Avancé. Vous devez déplacer un champ vers la liste "valeurs" et le sélectionner pour activer le bouton.
Remarque
Les objets carte ne sont pas pris en charge dans cette version de SAP Crystal Reports.
Choisir le champ à résumer
Cette liste énumère les champs et les formules utilisés dans le rapport, ainsi que les champs disponibles dans les tables de sources de données du rapport. Sélectionnez le champ que vous souhaitez résumer.
Calculer ce résumé Cette zone de liste contient toutes les opérations de résumé que vous pouvez utiliser dans votre rapport. Sélectionnez l'opération souhaitée.
Remarque
Tous les types de résumés disponibles ne s'appliquent pas à tous les champs. Ainsi, vous ne pouvez pas calculer la somme ou la moyenne d'un champ texte, booléen, de type date/heure, d'heure ou de date.
Afficher sous forme de pourcentage de
Cochez cette case pour calculer le pourcentage total d'un groupe dans un regroupement plus large. Par exemple, vous pouvez afficher le pourcentage des ventes dans chaque ville par rapport aux ventes totales de chaque pays.
Après avoir coché la case, vous pouvez choisir le total ou le groupe sur lequel vous souhaitez baser la comparaison.
Remarque
L'option de pourcentage est disponible uniquement lorsque le résultat d'une opération de résumé est numérique.
Résumer toute la hiérarchie
Cette option vous permet de calculer un résumé dans des regroupements hiérarchiques.
Pour configurer ou modifier des options de hiérarchie pour des groupes existants, cliquez sur Options de regroupement hiérarchique du menu Rapport.
Informations associées
Boîte de dialogue Insérer un résumé [page 912]
Résumé des données regroupées [page 685]
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
879
1.7.3.1.27 Boîte de dialogue Saisir une valeur pour
Cette boîte de dialogue s'affiche lorsque vous sélectionnez l'option Saisir une valeur constante dans la liste Valeur de la zone Arguments de la fonction de l'Expert Formule.
Tous les types d'argument ne nécessitent pas l'utilisation de cette boîte de dialogue. Les arguments simples sans restrictions de mise en forme (à l'inverse des champs de date par exemple) peuvent être saisis directement.
Le nom complet de cette boîte de dialogue contient le nom et le type de l'argument sélectionné. Par exemple, si vous sélectionnez un argument de type date/heure intitulé JourDansTrimestre, le nom de la boîte de dialogue est
Saisir une valeur pour JourDansTrimestre (Date/heure).
Cette boîte de dialogue est proposée en différentes versions adaptées aux cas de figure suivants :
● la sélection d'une valeur unique,
● la sélection d'une plage de valeurs,
● la sélection d'un tableau de valeurs,
● la sélection d'un tableau de valeurs de plage.
Valeur unique
Plages de valeurs
Utilisez les options de cette boîte de dialogue pour sélectionner une valeur unique à utiliser dans votre formule. Vous pouvez créer une formule contenant une valeur telle que CDateTime (2001,
12, 07, 15, 50, 18) à l'aide de cette version de la boîte de dialogue.
Utilisez les options de cette boîte de dialogue pour sélectionner une valeur de début et de fin à utiliser comme limites de la plage de votre formule. Vous pouvez créer une formule contenant une plage telle que (10000 To 50000) à l'aide de cette version de la boîte de dialogue.
Remarque
Les options de la liste Valeur vous permettent de définir de façon plus précise comment calculer la plage de la formule. Cette liste comprend des options telles que est entre, extrémités incluses, est entre, extrémités exclues, etc.
Tableau de valeurs
Tableau de valeurs de plage
Utilisez les options de cette boîte de dialogue pour sélectionner un tableau de valeurs à utiliser dans votre formule. Vous pouvez créer une formule contenant un tableau tel que (["Canada",
"Angleterre", "Etats-Unis"]) à l'aide de cette version de la boîte de dialogue.
Utilisez les options de cette boîte de dialogue pour sélectionner un tableau de valeurs de plage à utiliser dans votre formule. Vous pouvez créer une formule contenant un tableau de valeurs de plage tel que (["AL" To "AZ", "CA" To "CT"]) à l'aide de cette version de la boîte de dialogue.
Remarque
Les options de la liste Valeur vous permettent de définir de façon plus précise comment calculer chaque plage du tableau de la formule. Cette liste comprend des options telles que est entre, extrémités incluses, est entre, extrémités exclues, etc.
880
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Informations associées
1.7.3.1.28 Boîte de dialogue Exportation
Utilisez la boîte de dialogue Exportation pour exporter votre rapport vers un fichier électronique dans un format lisible par une autre application logicielle.
Remarque
La boîte de dialogue Exportation est uniquement accessible depuis le mode d'aperçu du rapport principal. Pour accéder à cette boîte de dialogue, cliquez sur Aperçu du rapport principal dans le coin inférieur gauche de votre rapport, puis cliquez sur l'icône Exporter le rapport dans le coin supérieur gauche du rapport. (Vous pouvez
également cliquer avec le bouton droit de la souris sur le rapport et cliquer sur Exporter.)
Les formats d'exportation pris en charge par SAP Crystal Reports peuvent être classés en deux groupes : les formats d'exportation et les formats d'exportation d'enregistrements. Les formats d'exportation accordent plus d'importance à la mise en forme et à la représentation de la présentation et, par conséquent, ont tendance à produire un résultat plus précis. Les formats d'exportation d'enregistrements mettent l'accent sur les données plutôt que sur la présentation et la mise en forme.
Sélection d'un format d'exportation
SAP Crystal Reports (RPT)
SAP Crystal Reports
Read Only (RPTR)
HTML 4.0
MHTML
Microsoft Excel (97-2003)
Ce format exporte à la fois la mise en page et la mise en forme de manière à correspondre à l'apparence du rapport dans l'onglet Aperçu.
Ce format exporte (enregistre) le rapport avec les données en cours sans modifier le rapport d'origine.
Ce format exporte (enregistre) le rapport avec les données en cours sans modifier le rapport d'origine. Les rapports RPTR sont des rapports Crystal qui peuvent être visualisés avec des applications de visualiseur de rapport, mais qui ne peuvent pas être modifiés avec le SDK ni ouverts par des applications de concepteur de rapports. La définition d'un rapport RPTR ne peut pas être modifiée, ce qui signifie qu'il n'est pas possible d'utiliser ce SDK pour définir l'emplacement de la source de données d'un RPTR via le contrôleur de base de données. Il est toutefois possible d'actualiser les données d'un rapport RPTR lors de l'exécution en actualisant le rapport dans un visualiseur.
Le HTML 4.0 conserve la mise en page et la mise en forme du rapport en utilisant le DHTML.
Ce format peut être utilisé pour envoyer des fichiers HTML dans les messages
électroniques.
Ce format convertit le contenu de votre rapport en cellules Excel page par page.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
881
Microsoft Excel (97-2003)
Données uniquement
Microsoft Excel (2007)
Données uniquement
Microsoft Word (97-2003)
Microsoft Word (97-2003) -
Modifiable
Style d'enregistrement -
Colonnes avec espaces
Style d'enregistrement -
Colonnes sans espaces
Rich Text Format (RTF)
CSV (valeurs séparées par des virgules)
Texte séparé par des tabulations (TTX)
Texte
XML
Microsoft Excel Données uniquement est utile pour le transfert de données mais conserve moins d'informations de mise en forme.
Microsoft Excel Données uniquement est utile pour le transfert de données mais conserve moins d'informations de mise en forme. Cette fonctionnalité prend en charge jusqu'à 16 385 colonnes et 1 048 576 lignes dans un seul classeur.
Ce format génère un fichier RTF (Rich Text Format) qui contient du texte et des objets de dessin pour représenter les objets de rapport.
Convertit le contenu de tous les objets du rapport en lignes de texte. La mise en forme du texte est conservée, mais d'autres attributs peuvent ne pas être conservés.
Exporte les données du rapport sous forme de texte. Ce format insère des espaces entre les colonnes.
Exporte les données du rapport sous forme de texte. Ce format n'insère pas d'espaces entre les colonnes.
Génère un fichier RTF contenant des objets de type texte et dessin.
Exporte le contenu des objets du rapport sous forme d'ensemble de valeurs séparées par des séparateurs et délimiteurs.
Conserve la mise en page du rapport à quelques différences près : les objets texte sur plusieurs lignes sont exportés sur une seule ligne, toutes les valeurs de type chaîne comportent des guillemets ("") et les valeurs elles-mêmes sont séparées par des tabulations.
Génère du texte brut (sans conserver la mise en forme).
Utilisé essentiellement pour l'échange de données. Ce format génère du code
XML à l'aide du schéma XML de SAP Crystal Reports.
La destination détermine l'emplacement d'exportation de votre rapport. SAP Crystal Reports permet de choisir une destination parmi les quatre proposées.
Sélection d'une destination
Application
Fichier disque
Dossier
Exchange
MAPI
Exporte le rapport vers un fichier temporaire au format spécifié et ouvre ensuite le fichier dans l'application appropriée.
Exporte le rapport vers une disquette ou un disque spécifié.
Exporte le rapport vers un dossier Exchange. Un dossier Exchange peut contenir des notes standard (courrier), des fichiers et des instances de formulaires Exchange.
Exporte le rapport sous forme de pièce jointe de courrier électronique.
882
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Remarque
Cette option ne fonctionne que si vous avez un client installé (Microsoft Outlook, Microsoft
Mail, ou Exchange), de même qu'un compte de messagerie électronique correctement configuré.
1.7.3.1.29 Boîte de dialogue Extraire une fonction personnalisée d'une formule
La boîte de dialogue Extraire une fonction personnalisée d'une formule s'affiche (dans la boîte de dialogue Atelier de formules) lorsque vous saisissez un nom dans la boîte de dialogue Nom de la fonction personnalisée et que vous cliquez sur le bouton Utiliser l'extracteur.
Utilisez cette boîte de dialogue pour créer une fonction personnalisée à partir d'une formule de rapport existante.
La logique de la formule est ainsi migrée d'un champ de formule vers une fonction personnalisée. Vous pouvez ensuite remplacer la partie appropriée de votre formule par la nouvelle fonction personnalisée.
Formule
Nom de la fonction personnalisée
Saisir des informations supplémentaires
Type de renvoi
Résumé
Arguments
Utilisez cette liste pour choisir une formule de rapport existante sur laquelle baser votre nouvelle fonction personnalisée. Lorsque vous sélectionnez une formule, ses informations apparaissent dans différents champs de la boîte de dialogue Extraire une fonction personnalisée d'une formule.
Utilisez ce champ pour modifier le nom affecté à votre fonction personnalisée dans la boîte de dialogue Nom de la fonction personnalisée, si vous le souhaitez.
Les noms des fonctions personnalisées peuvent être alphanumériques, mais ne doivent pas contenir d'espace ni commencer par un nombre.
Cliquez sur ce bouton pour voir la boîte de dialogue Propriétés des fonctions personnalisées. Vous pouvez ajouter des informations supplémentaires, comme des valeurs d'arguments par défaut ou un texte d'aide, au cours de la définition de votre fonction personnalisée. Si vous ne le faites pas à ce moment-là, vous pouvez cliquer ultérieurement avec le bouton droit de la souris sur votre fonction personnalisée et sélectionner Propriétés.
Ce champ affiche le type de renvoi de votre fonction personnalisée. Il ne peut pas être modifié dans la mesure où le type de renvoi repose sur la formule de rapport sélectionnée dans la liste Formule.
Utilisez cette zone pour ajouter des informations supplémentaires sur la fonction personnalisée afin d'identifier son objectif, son utilisation attendue, etc.
Cette zone affiche les arguments de la formule de rapport sélectionnée dans la liste
Formule qui reposent sur des champs. Vous ne pouvez pas modifier les champs Nom du champ et Type, mais pouvez en revanche saisir le nom de l'argument et une description de celui-ci. Si vous n'affectez pas de nom à l'argument, les noms par défaut (v1, v2, v3, etc.) sont utilisés pour décrire les variables.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
883
Boutons fléchés
Texte de la formule
Modifier la formule pour utiliser une nouvelle fonction personnalisée
Utilisez le bouton fléché en regard de la zone Arguments pour changer l'ordre par défaut
(c'est-à-dire l'ordre dans lequel les champs sont utilisés dans la formule de rapport) des arguments.
Cette zone affiche la formule de rapport telle qu'elle était définie dans la boîte de dialogue Editeur de formule. Ce texte est fourni uniquement à titre indicatif et ne peut pas être modifié.
Sélectionnez cette option si vous souhaitez utiliser votre nouvelle fonction personnalisée dans la formule de rapport sur laquelle vous la basez. En d'autres termes, le texte approprié de la formule est remplacé par un appel à la fonction personnalisée, les champs utilisés dans la formule étant fournis comme valeurs d'arguments.
Informations associées
Boîte de dialogue Atelier de formules [page 904]
Boîte de dialogue Propriétés des fonctions personnalisées [page 857]
Création des fonctions personnalisées [page 706]
1.7.3.1.30 Boîte de dialogue Rechercher (Editeur de formule)
La boîte de dialogue Rechercher vous permet de rechercher le texte dans l'Editeur de formule et de le remplacer, le cas échéant. Cette boîte de dialogue s'affiche lorsque vous cliquez sur le bouton Rechercher/Remplacer de l'Editeur de formule.
Rechercher
Remplacer par
Suivant
Tout marquer
Remplacer
Remplacer tout
Rechercher
Sens
Tapez le texte que vous souhaitez rechercher, collez-le dans le Presse-papiers ou cliquez sur une entrée récente dans la liste.
Tapez le texte par lequel vous souhaitez remplacer le texte recherché.
Cliquez sur ce bouton pour rechercher et sélectionner la prochaine occurrence du texte spécifié dans la zone Rechercher.
Cliquez sur ce bouton pour marquer toutes les occurrences du texte recherché.
Cette option est disponible uniquement lorsque Modifier le texte est sélectionné.
Cliquez sur ce bouton pour rechercher le texte qui correspond au texte recherché, puis remplacez-le par le texte du champ Remplacer par.
Cette option est disponible uniquement lorsque Modifier le texte est sélectionné.
Remplace toutes les occurrences du texte recherché par le texte du champ Remplacer par.
Cette option est disponible uniquement lorsque Modifier le texte est sélectionné.
Cliquez sur une option pour spécifier le type de texte à rechercher.
Indique le sens de la recherche en commençant par la position en cours du curseur. Cliquez sur Haut pour rechercher vers le début du rapport ou sur Bas pour rechercher vers la fin du rapport.
884
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Respecter la casse
Cochez ou décochez cette case pour définir s'il faut tenir compte de la casse des lettres majuscules et minuscules dans le texte recherché.
Informations associées
Boîte de dialogue Editeur de formule [page 899]
Exécution des calculs dans un rapport [page 700]
1.7.3.1.31 Boîte de dialogue Rechercher un nom de champ
La boîte de dialogue Rechercher un nom de champ s'affiche lorsque vous choisissez Rechercher un champ dans l'onglet Champs de n'importe quel Assistant de création de rapports.
Utilisez cette boîte de dialogue pour spécifier le nom du champ que vous souhaitez rechercher.
Informations associées
Assistants de création de rapports [page 940]
1.7.3.1.32 Boîte de dialogue Police
Utilisez la boîte de dialogue Police pour modifier les polices, la taille de police, et/ou le style de police pour les champs texte et données de vos rapports.
Vous accédez à cette boîte de dialogue par le biais de l'onglet Polices de la boîte de dialogue Paramètres par défaut.
Police Répertorie les polices disponibles. Cliquez sur un nom de police pour sélectionner une autre police.
Style de police Répertorie les styles disponibles pour la police spécifiée. Cliquez sur un style de police pour sélectionner un autre style.
Taille Répertorie les tailles de caractères disponibles pour la police spécifiée. Cliquez sur une taille pour modifier la taille de la police.
Couleur
Barré
Souligné
Affiche les différentes couleurs que vous pouvez appliquer à la police. Cliquez sur Autres pour afficher la
Boîte de dialogue Couleur [page 850]
et définir d'autres couleurs de police.
Indique si la police doit apparaître barrée.
Indique si la police doit apparaître soulignée.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
885
Aperçu Affiche un exemple du texte illustrant les paramètres de police spécifiés.
1.7.3.1.33 Boîte de dialogue Editeur de mise en forme
Avec l'Editeur de mise en forme, vous pouvez modifier l'aspect des champs du rapport et d'autres objets de rapport. L'Editeur de mise en forme possède au minimum un onglet. D'autres onglets sont ajoutés à mesure que vous sélectionnez d'autres types de champs (Date/heure, Booléen, Lien hypertexte, etc.).
L'Editeur de mise en forme contient des onglets spécifiques pour le type de champ indiqué dans l'onglet Champs de la boîte de dialogue Options, ou pour le type de champ sélectionné.
Informations associées
Mise en forme des données [page 713]
1.7.3.1.33.1 Onglet Commun (Editeur de mise en forme)
Utilisez l'onglet Commun pour définir des propriétés telles que Supprimer, Alignement horizontal et Conserver l'unité de l'objet pour le champ souhaité.
Nom de l'objet
Supprimer
Alignement horizontal
Définissez le nom de l'objet que vous mettez en forme dans ce champ. Ce nom est utilisé lors de la définition des liens hypertexte Partie du rapport.
Un nom par défaut est créé pour chaque champ d'un rapport. S'il vous convient, vous pouvez ignorer ce champ.
Nom de la classe
CSS
Définissez le nom de classe de l'objet de rapport que vous mettez en forme dans ce champ.
Ce nom de classe peut être utilisé dans votre CSS pour indiquer un style unique pour l'objet de rapport sélectionné.
Vous pouvez également créer un nom conditionnel pour la classe en utilisant la boîte de dialogue Editeur de formule. Vous pouvez ainsi indiquer dans votre CSS que certaines occurrences d'un objet ont une mise en forme différente des autres.
Répéter sur les pages horizontales
Utilisez cette option pour répéter, sur chaque page horizontale supplémentaire que peut créer un tableau croisé ou une grille OLAP, un objet de rapport qui ne s'étend pas horizontalement (par exemple, des objets texte, champ, OLE, des diagrammes, des cartes, des lignes, des cadres, etc.).
Cochez cette case pour supprimer le champ sélectionné. Les valeurs de champs ne s'afficheront pas dans l'aperçu et le champ ne s'imprimera pas.
Cette liste contient les types d'alignement horizontal disponibles pour le champ (par exemple, gauche, centre et droite).
886
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Conserver l'unité de l'objet
Cochez cette case pour conserver ensemble sur la même page tous les objets d'une section donnée. S'il y a assez de place pour les conserver sur la page en cours, le programme les imprimera sur celle-ci. S'il n'y a pas assez de place, le programme les imprimera sur la page suivante.
Remarque
Si les objets sont plus grands que la page, cette propriété ne fonctionnera pas.
Fermer la bordure à chaque saut de page
Si un objet possède une bordure et s'il est réparti sur deux pages, vous disposez de deux options : mettre une bordure autour de chacune des parties de l'objet divisé ou afficher chacune d'elles avec une bordure partielle. Cochez cette case pour afficher une bordure complète.
Taille modulable Cette case à cocher est utile pour les objets qui contiennent des chaînes de longueurs variables, telles que les champs mémo.
● Cochez cette case pour agrandir verticalement le cadre de l'objet lorsque le texte de l'objet est plus grand que le cadre.
● Décochez cette case pour tronquer les données lorsque la valeur est plus grande que le cadre.
Cette option est désactivée par défaut.
Nombre maximal de lignes
Si vous avez coché la case Taille modulable, vous pouvez utiliser cette zone pour spécifier le nombre maximal de lignes permettant au programme d'élargir un cadre d'objet. Il suffit de saisir le nombre de lignes souhaité dans cette zone ou de saisir 0 (zéro) si vous ne souhaitez pas définir une limite.
Texte de l'infobulle
Pour ajouter Texte de l'inbo-bulle pour le champ sélectionné, cliquez sur le bouton Editeur de mise en forme de formule et saisissez le texte entre guillemets. Texte de l'info-bulle s'affiche lorsque vous placez le pointeur de la souris sur un champ pendant quelques secondes.
Rotation du texte Cette liste contient les options de rotation disponibles pour le champ sélectionné. Utilisez les options de rotation de texte pour aligner les champs et les objets texte verticalement dans votre document.
● Lorsque vous sélectionnez une rotation de 90 degrés, le texte se décale de 90 degrés dans le sens inverse des aiguilles d'une montre.
● Si la rotation est définie sur 0 degré, votre rapport est mis en forme horizontalement.
● En ce qui concerne la rotation des objets texte, l'option Taille modulable qui évite la troncature du texte à l'intérieur d'un objet est automatiquement désactivée. Pour en
savoir plus sur l'option Taille modulable, voir Eviter la troncature du texte [page 661] .
● Un texte mis en forme verticalement qui déborde de la page ne peut pas être affiché dans le cadre de votre rapport.
Supprimer si en double
Supprimer les lignes blanches dans les champs incorporés
Cochez cette case pour ne pas imprimer les valeurs de champ qui sont en double lors de l'impression du rapport.
Cochez cette case si vous souhaitez que le programme n'imprime pas les champs vides, autrement dit les champs pour lesquels la base de données ne renvoie aucune information.
Cette option évite l'affichage de lignes blanches dans votre rapport lorsque certains champs sont vides.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
887
Afficher la chaîne Cliquez sur le bouton de mise en forme conditionnelle pour saisir une formule qui vous permet d'afficher les champs numériques, monétaires, de date, d'heure, de type date/heure, booléens et de type chaîne sous forme de chaîne personnalisée. Ce type de mise en forme conditionnelle n'est pas limité aux champs de base de données. Vous pouvez donc l'utiliser pour les totaux cumulés, les formules, les champs de paramètre, les résumés, etc.
Supposons par exemple que vous souhaitiez utiliser une notation qui représente les millions par la lettre M et les milliers par la lettre K. Vous pouvez créer une formule Afficher la chaîne pour votre rapport en sélectionnant le champ numérique approprié et en saisissant la formule suivante dans l'Editeur de formule de mise en forme.
if CurrentFieldValue >= 1000000 then ToText(CurrentFieldValue/1000000, 2) + "M" else if CurrentFieldValue >= 1000 then ToText(CurrentFieldValue/1000, 2) + "K" else ToText(CurrentFieldValue, 2)
1.7.3.1.33.2 Onglet Booléen (Editeur de mise en forme)
Utilisez l'onglet Booléen pour sélectionner le format des valeurs de renvoi des champs booléens de votre rapport.
Texte booléen Cette liste comprend tous les formats dans lesquels les champs booléens peuvent être affichés.
Sélectionnez le format souhaité dans la zone de liste.
1.7.3.1.33.3 Onglet Bordure (Editeur de mise en forme)
Utilisez l'onglet Bordure pour mettre en forme les bordures, le fond et les ombres portées pour les champs sélectionnés de votre rapport. A l'aide des options de l'onglet Bordure, vous pouvez créer de nombreux effets qui peuvent améliorer l'aspect de votre rapport et mettre en valeur des données importantes.
Left
Right
Haut
Bas
Ajustement horizontal
Cette liste contient les différents styles de ligne disponibles. Vous disposez pour les lignes de bordure des options simple, double, discontinu et en pointillé. Sélectionnez le style souhaité pour insérer la bordure spécifiée du côté gauche du champ. La valeur par défaut est Aucun.
Cette liste contient les différents styles de ligne disponibles. Vous disposez pour les lignes de bordure des options simple, double, discontinu et en pointillé. Sélectionnez le style souhaité pour insérer la bordure spécifiée du côté droit du champ. La valeur par défaut est Aucun.
Cette liste contient les différents styles de ligne disponibles. Vous disposez pour les lignes de bordure des options simple, double, discontinu et en pointillé. Sélectionnez le style souhaité pour insérer la bordure spécifiée en haut du champ. La valeur par défaut est Aucun.
Cette liste contient les différents styles de ligne disponibles. Vous disposez pour les lignes de bordure des options simple, double, discontinu et en pointillé. Sélectionnez le style souhaité pour insérer la bordure spécifiée en bas du champ. La valeur par défaut est Aucun.
Cochez cette case pour ajuster la bordure à la taille du champ.
888
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
● Lorsque cette case est décochée, la bordure est la même pour chaque enregistrement.
● Lorsque cette case est cochée, la bordure est ajustée à chaque enregistrement.
Ombre portée Cochez cette case pour imprimer une ombre portée au-dessous et à droite du champ. Lorsque cette case à cocher est désactivée, le programme n'imprime pas d'ombre portée.
Bordure Cette liste contient les couleurs disponibles pour les bordures. Sélectionnez la couleur souhaitée dans cette liste.
Arrière-plan Cochez cette case pour modifier la couleur d'arrière-plan. Lorsque cette case est cochée, la liste qui s'affiche à droite vous permet de sélectionner une nouvelle couleur d'arrière-plan.
1.7.3.1.33.4 Onglet Cadre (Editeur de mise en forme)
Utilisez l'onglet Cadre pour modifier le fond, la bordure, la largeur et le style de votre cadre.
Bordure
Style Cette liste affiche tous les styles de lignes disponibles pour votre cadre, tels que simple, double, discontinu, etc.
Largeur Cliquez sur le bouton qui représente la largeur de ligne de bordure souhaitée. Cette option est disponible uniquement pour les lignes de bordure simples mais pas pour les lignes discontinues ou pointillées.
Couleur Cette liste présente les couleurs disponibles pour le cadre. Sélectionnez la couleur souhaitée dans cette liste.
Ombre portée Cochez cette case pour avoir une ombre portée au-dessous et à droite du cadre.
Remplissage
Couleur
Fermer la bordure à chaque saut de page
Si vous cochez cette case, la liste Couleur affiche toutes les couleurs disponibles pour remplir votre cadre.
Cochez cette case afin de reconstituer les parties du cadre pour former des cadres complets quand celui-ci est coupé par un saut de ligne. Lorsque cette propriété est sélectionnée, le programme ajoute le bas du premier cadre et le haut du second pour créer un cadre complet d'un demi-pouce sur chaque page.
Cochez cette case pour agrandir le cadre jusqu'au bas de la section.
Poursuivre jusqu'au bas de la section lors de l'impression
Supprimer Cochez cette case si vous ne souhaitez pas imprimer le cadre.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
889
Répéter sur les pages horizontales
Utilisez cette option pour répéter, sur chaque page horizontale supplémentaire que peut créer un tableau croisé ou une grille OLAP, un objet de rapport qui ne s'étend pas horizontalement (par exemple, des objets texte, champ, OLE, des diagrammes, des cartes, des lignes, des cadres, etc.).
1.7.3.1.33.5 Onglet Date (Editeur de mise en forme)
Utilisez l'onglet Date pour définir les options de mise en forme des champs de date de votre rapport.
Style A partir de cette liste prédéfinie, choisissez un style de date à appliquer au champ sélectionné dans votre rapport.
Lorsque vous choisissez Format long par défaut ou Format court par défaut, le programme utilise les formats de date à partir de la boîte de dialogue Propriétés de Paramètres régionaux du
Panneau de configuration Windows.
Personnaliser Créez un format de date personnalisé en cliquant sur le bouton Personnaliser. Votre style personnalisé s'affiche dans la liste de styles comme Style personnalisé.
Informations associées
Boîte de dialogue Editeur de mise en forme [page 886]
1.7.3.1.33.6 Onglet Date et heure (Editeur de mise en forme)
Utilisez l'onglet Date et Heure pour définir les options de mise en forme des champs de type date/heure de votre rapport.
Style A partir de cette liste prédéfinie, choisissez un style de date et heure à appliquer au champ sélectionné dans votre rapport.
Lorsque vous choisissez Format long par défaut ou Format court par défaut, le programme utilise les formats de date et heure à partir de la boîte de dialogue Propriétés de Paramètres régionaux du Panneau de configuration Windows.
Personnaliser Créez un format de date et heure personnalisé en cliquant sur le bouton Personnaliser. Votre style personnalisé s'affiche dans la liste de styles comme Style personnalisé.
1.7.3.1.33.7 Onglet Police (Editeur de mise en forme)
Utilisez l'onglet Police de l'Editeur de mise en forme pour modifier les polices, la taille de police et le style de police pour les champs texte et données de vos rapports.
890
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Si votre objet texte est en mode édition, cet onglet s'affiche dans la boîte de dialogue Mise en forme du texte.
Police
Style
Taille
Couleur
Barré
Souligné
Espacement exact des caractères
Cette liste contient toutes les polices que vous avez installées pour votre système. La police en cours est sélectionnée dans la liste.
Cette liste contient quatre attributs supplémentaires que vous pouvez assigner à la police sélectionnée. Le style en cours est sélectionné dans la liste.
Cette liste comprend les tailles de caractères courants pour la police sélectionnée. La taille de caractères en cours est sélectionnée dans la liste.
Si vous entrez votre propre taille de police, le nombre que vous tapez doit être compris entre 1 et 1638. SAP Crystal Reports arrondit automatiquement toutes les fractions au 0,5 le plus proche. Vous pouvez donc utiliser dans les rapports les tailles fractionnelles 1,5 ou 2,5 ou encore 3,5 et ainsi de suite jusqu'à 1637,5.
Sélectionnez la couleur souhaitée dans cette liste si vous souhaitez ajouter une couleur à la police.
Activez cette case à cocher pour imprimer le caractère barré selon la police de caractères.
Cochez cette case pour souligner les caractères tapés dans la police sélectionnée.
Utilisez cette option pour spécifier la valeur que chaque caractère de la police sélectionnée occupe. Cette valeur est définie comme étant la distance entre le début d'un caractère et le début du caractère suivant, mesurée en nombre de points. Lorsque vous modifiez l'espace entre les caractères, vous ne changez pas la taille de la police des caractères, mais l'espacement entre les caractères adjacents.
1.7.3.1.33.8 Onglet Lien hypertexte (Editeur de mise en forme)
Utilisez cet onglet pour créer un lien hypertexte vers un site Web, une valeur de champ, une adresse électronique, un fichier ou un autre fichier SAP Crystal Reports. Le lien hypertexte est enregistré avec votre rapport et donne aux autres utilisateurs un moyen d'afficher des informations supplémentaires.
Type de lien hypertexte
Cliquez sur le type de lien hypertexte que vous voulez créer. Les types disponibles sont :
Aucun lien hypertexte
Il s'agit de l'option par défaut. Aucun lien hypertexte n'est associé à l'objet de rapport sélectionné.
Un site Web sur
Internet
Sélectionnez cette option si vous voulez que l'objet de rapport soit relié à une adresse Web statique. Utilisez le bouton Formule pour créer une URL basée sur une valeur de champ. Ainsi, vous pouvez saisir la formule suivante si votre champ Nom du client contient des informations susceptibles de créer une série d'URL pertinentes :
"http://www." + {Customer.Customer Name} + ".com"
Valeur actuelle du champ de site Web
Sélectionnez cette option si vous voulez que le programme crée un lien hypertexte à partir du champ que vous avez sélectionné. Le champ doit
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
891
Une adresse
électronique
Un fichier
Valeur actuelle du champ d'adresse
électronique
être enregistré en tant que lien hypertexte à part entière dans votre source de données.
Sélectionnez cette option si vous voulez créer une adresse mailto à partir du champ que vous avez sélectionné. Utilisez le bouton de formule pour créer une adresse basée sur une valeur de champ.
Sélectionnez cette option pour créer un lien hypertexte vers un fichier placé sur un ordinateur spécifique ou un ordinateur en réseau. Utilisez le bouton de formule pour créer un chemin d'accès de fichier basé sur une valeur de champ.
Sélectionnez cette option si vous voulez que le programme crée un lien hypertexte de courrier électronique à partir du champ que vous avez sélectionné. Le champ doit être enregistré en tant que lien hypertexte à part entière dans votre source de données.
Les types disponibles dans la zone Visualiseur DHTML uniquement sont :
Exploration des parties du rapport
Un autre objet de rapport
Pour en savoir plus sur la manière d'utiliser cette option, voir
Implémentation de l'exploration de parties de rapport [page 723]
Pour en savoir plus sur la manière d'utiliser cette option, voir
autre objet de rapport [page 726]
.
.
Remarque
Tous les types de lien hypertexte ne sont pas disponibles à tout moment. L'objet que vous sélectionnez et son emplacement dans le rapport déterminent les types qui sont disponibles.
Informations sur les liens hypertexte
Parcourir
Conseil utile
Utilisez cette section de l'onglet pour saisir les informations appropriées sur les liens hypertexte (l'URL d'un site Web, par exemple). Les informations sur les liens hypertexte sont disponibles pour tous les types de lien hypertexte sauf pour Aucun lien hypertexte et Valeur en cours du champ.
Utilisez Parcourir pour rechercher des fichiers à l'aide de la boîte de dialogue Ouvrir. Parcourir n'est disponible que pour les types Un fichier et Un autre objet de rapport.
Utilisez ces conseils pour apprendre comment fonctionne chaque type de lien hypertexte et ce qu'il ajoutera à votre rapport.
1.7.3.1.33.9 Onglet Ligne (Editeur de mise en forme)
Utilisez l'onglet Ligne pour définir les spécifications de mise en forme d'une ligne de votre rapport.
Cet onglet s'affiche dans l'Editeur de mise en forme lorsque vous cliquez avec le bouton droit de la souris sur une ligne et que vous choisissez le format dans le menu contextuel.
Style Cette liste affiche tous les styles de ligne disponibles pour votre cadre, tels que simple, double, discontinu, etc.
892
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Largeur
Couleur
Déplacer en fin de section lors de l'impression
Cliquez sur le bouton qui représente la largeur de ligne souhaitée.
Cette liste présente les couleurs de lignes disponibles.
Cette option est généralement sélectionnée lorsque vous imprimez une ligne horizontale en regard d'un champ susceptible de générer des résultats de longueurs variables (un champ mémo, par exemple) et que ce champ est mis en forme à l'aide de l'option Taille modulable
(Onglet Commun/Editeur de mise en forme). Dans ce cas, si le programme doit agrandir la section pour contenir les résultats du champ, il déplacera la ligne en fin de section pour qu'elle reste en bas du champ.
Poursuivre jusqu'au bas de la section lors de l'impression
Cochez cette case pour que la ligne atteigne le bas de la section, quelle que soit la longueur de cette section.
Décochez cette case pour que la ligne soit toujours au même endroit dans chaque section, quelle que soit la taille de cette section.
Cette option est généralement sélectionnée lorsque vous imprimez une ligne verticale en regard d'un champ susceptible de générer des résultats de longueurs variables (un champ mémo, par exemple) et que ce champ est mis en forme à l'aide de l'option Taille modulable
(Onglet Commun/Editeur de mise en forme). Dans ce cas, si la section est agrandie afin de contenir les résultats du champ, la ligne aussi sera allongée jusqu'au bas de la section.
Cochez cette case pour que la ligne soit toujours allongée jusqu'au bas de la section quelle que soit la longueur de cette section.
Décochez cette case pour que la ligne ait toujours la même longueur dans chaque section, quelle que soit la taille de cette section.
Supprimer Cochez cette case si vous ne souhaitez pas imprimer la ligne.
Répéter sur les pages horizontales
Utilisez cette option pour répéter, sur chaque page horizontale supplémentaire que peut créer un tableau croisé ou une grille OLAP, un objet de rapport qui ne s'étend pas horizontalement (par exemple, des objets texte, champ, OLE, des diagrammes, des cartes, des lignes, des cadres, etc.).
Informations associées
Insertion des formes [page 715]
1.7.3.1.33.10 Onglet Nombre (Editeur de mise en forme)
Utilisez l'onglet Nombre pour définir les options de formatage des champs numériques ou monétaires de votre rapport.
Style A partir de cette liste prédéfinie, choisissez un style de nombre à appliquer au champ sélectionné dans votre rapport. Lorsque vous choisissez Format Nombre/devise par défaut, le programme utilise les formats numériques et monétaires à partir de la boîte de dialogue
Propriétés de Paramètres régionaux du Panneau de configuration Windows.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
893
Afficher le symbole monétaire
Fixe
Cochez cette case pour afficher les symboles monétaires de vos champs monétaires.
Flottant
Personnaliser
Cliquez sur cette option pour que le programme place le symbole monétaire à l'extrémité gauche du champ. Des espaces supplémentaires seront laissés entre le symbole et la valeur monétaire si le champ est justifié à droite.
Cliquez sur cette option pour que le programme place le symbole monétaire aussi près que possible de la valeur monétaire de sorte qu'il n'y ait jamais d'espaces supplémentaires entre le symbole et le montant.
Vous pouvez créer un format numérique ou monétaire personnalisé en cliquant sur le bouton Personnaliser. Votre style personnalisé s'affiche dans la liste de styles comme Style personnalisé.
Informations associées
Onglet Symbole monétaire (Styles personnalisés) [page 859]
Onglet Nombre (Styles personnalisés) [page 859]
1.7.3.1.33.11 Onglet Paragraphe (Editeur de mise en forme)
Utilisez l'onglet Paragraphe de l'Editeur de mise en forme pour définir les options de mise en forme des paragraphes d'un objet texte.
Retraits
Première ligne Saisissez en pouces (ou dans l'unité de mesure par défaut de votre rapport) la valeur de l'alinéa souhaité dans un paragraphe.
Gauche Saisissez en pouces (ou dans l'unité de mesure par défaut de votre rapport) la valeur du retrait souhaité par rapport à la marge gauche de la page.
Droite Saisissez en pouces (ou dans l'unité de mesure par défaut de votre rapport) la valeur du retrait souhaité par rapport à la marge droite de la page.
Espacement
Interlignage Saisissez un multiple de la taille de police que vous utilisez ou un nombre de points exact pour indiquer l'interlignage.
894
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
De Utilisez cette zone pour saisir le multiple que vous souhaitez utiliser (si vous avez sélectionné
Multiple comme Interlignage) ou le nombre de points (si vous avez sélectionné Exact comme
Interlignage).
Sens de la lecture
Gauche à droite
Droite à gauche
Sélectionnez ce bouton si le texte doit être lu de gauche à droite.
Sélectionnez ce bouton si le texte doit être lu de droite à gauche.
Alignement horizontal
Alignement Indiquez si vous souhaitez que le texte soit aligné à
Gauche
, à
Droite
ou au
Centre
de la zone de texte. Si vous souhaitez que le texte soit aligné à gauche et à droite, choisissez
Justifié
.
Interprétation du texte
Interprétation du texte
Utilisez cette liste pour sélectionner le type de données préformatées (chaîne ou champs mémo uniquement) ou texte que vous insérez dans un champ. SAP Crystal Reports extrait les informations sur la police, la taille, le style, la couleur et le paragraphe puis affiche les données ou le texte avec les attributs spécifiés.
Les options sont les suivantes :
● "Aucun" pour interpréter la chaîne ou le champ mémo ou le texte importé comme s'il contenait un texte en clair
● "Texte RTF" pour interpréter la chaîne ou le champ mémo ou le texte importé comme s'il contenait des données RTF
● "Texte HTML" pour interpréter la chaîne ou le champ mémo ou le texte importé comme s'il contenait des données HTML
1.7.3.1.33.12 Onglet Image (Editeur de mise en forme)
Utilisez l'onglet Image pour mettre en forme les graphiques bitmap.
Découper Découper signifie "couper" les parties du graphique que vous ne souhaitez pas imprimer (mais le découpage permet également d'ajouter des espaces entre le graphique et le cadre qui l'entoure).
Dans la zone de découpage, indiquez la taille de la partie que vous souhaitez couper en haut, en bas, à gauche et/ou à droite de votre graphique :
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
895
Echelle
Taille
● les nombres positifs coupent la valeur spécifiée dans le graphique
● les nombres négatifs ajoutent l'espace spécifié entre le bord extérieur du graphique et le cadre.
Remarque
Toutes les opérations de découpage commencent par le bord extérieur du graphique.
La mise à l'échelle fait référence à la longueur et la largeur d'un graphique sous forme de pourcentage de la longueur et de la largeur initiales.
Pour redimensionner le graphique sous forme de pourcentage de la hauteur et de la largeur initiales, saisissez les pourcentages de la nouvelle échelle.
Une copie de chaque graphique est stockée dans sa taille initiale. Tous les paramètres d'échelle font référence à la taille initiale.
La taille désigne la longueur et la largeur absolues (mesurées) d'un graphique.
Remarque
Lorsque vous modifiez les paramètres de taille, le programme recalcule automatiquement les paramètres d'échelle. Lorsque vous modifiez les paramètres d'échelle, le programme recalcule automatiquement les paramètres de taille. Les paramètres recalculés s'affichent lorsque vous ouvrez l'onglet Image de l'Editeur de mise en forme la fois suivante.
Taille initiale Cette zone affiche les dimensions initiales du graphique (ses dimensions lorsqu'il a été inséré dans le rapport). Le redimensionnement, la mise à l'échelle et le découpage n'affectent pas ce chiffre que vous ne pouvez pas modifier directement ; il est simplement fourni comme référence.
Réinitialiser Lorsque vous cliquez sur ce bouton, toute modification de votre graphique sera redéfinie sur les valeurs par défaut affichées dans la zone d'affichage Taille initiale.
1.7.3.1.33.13 Onglet Arrondir (Editeur de mise en forme)
Utilisez l'onglet Arrondir pour créer des cadres dotés de coins arrondis dans votre rapport. Cet onglet s'affiche dans l'Editeur de mise en forme lorsque vous cliquez avec le bouton droit de la souris sur un cadre que vous avez créé et que vous choisissez Mettre en forme dans le menu contextuel.
Curseur Déplacez le curseur vers la droite pour augmenter la courbure des coins du cadre. Le cadre que vous avez créé se transforme petit à petit en ellipse ou en cercle, suivant que vous déplacez le curseur plus ou moins vers la droite.
Une fois que vous avez créé la forme appropriée, la position du curseur est mémorisée et la forme appliquée, sauf si vous annulez vos modifications dans l'Editeur de mise en forme.
896
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.7.3.1.33.14 Onglet Sous-rapport (Editeur de mise en forme)
Utilisez l'onglet Sous-rapport pour activer ou désactiver les options Sous-rapport à la demande et Réimporter à l'ouverture.
Nom du sous-rapport Utilisez ce champ pour renommer un sous-rapport à partir du rapport dans lequel il se trouve.
Cochez cette case pour créer un lien hypertexte vers un sous-rapport.
Sous-rapport à la demande
Légende du sous-rapport
à la demande
Utilisez ce bouton de l'Atelier de formules pour créer une légende qui apparaît dans l'objet sous-rapport du rapport principal.
Légende de l'onglet
Aperçu du sous-rapport
Cliquez sur le bouton Atelier de formules pour créer une légende qui apparaîtra sur le bouton d'affichage du sous-rapport (au bas du Concepteur) lorsque vous afficherez un aperçu du rapport.
Réimporter à l'ouverture Activez cette case à cocher pour actualiser les données et la mise en forme à chaque ouverture du rapport.
Conseil
Utilisez la boîte de dialogue Paramètres par défaut pour modifier les valeurs par défaut du programme au lieu des champs individuels.
Supprimer le sousrapport vide
Nom du fichier pour le sous-rapport lié
Cochez cette case pour retirer les sous-rapports vides. Dans la mesure où les sousrapports vides sont traités comme des objets de rapport visibles, cette option est tout particulièrement utile lorsque vous souhaitez supprimer des sections de rapport vides contenant des sous-rapports vides.
Si vous disposez d'un sous-rapport lié, vous pouvez voir l'emplacement de la source de ce sous-rapport et, si nécessaire, modifier son emplacement. Avec un sousrapport incorporé, cette option n'est pas disponible.
Informations associées
Onglet Création de rapport (Paramètres par défaut) [page 873]
Insertion des sous-rapports [page 741]
Sous-rapports reliés et non reliés [page 743]
1.7.3.1.33.15 Onglet Heure (Editeur de mise en forme)
Utilisez l'onglet Heure pour définir les options de mise en forme des champs heure de votre rapport.
Style A partir de cette liste prédéfinie, choisissez un style d'heure à appliquer au champ sélectionné dans votre rapport.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
897
Lorsque vous choisissez Heure système par défaut, le programme utilise les formats heure à partir de la boîte de dialogue Propriétés de Paramètres régionaux du Panneau de configuration
Windows.
Personnaliser Créez un format d'heure personnalisé en cliquant sur le bouton Personnaliser. Votre style personnalisé s'affiche dans la liste de styles comme Style personnalisé.
1.7.3.1.34 Boîte de dialogue Mettre en forme le quadrillage
La boîte de dialogue Mettre en forme le quadrillage vous permet de contrôler l'aspect du quadrillage.
Cette boîte de dialogue s'affiche lorsque vous cliquez sur Mettre en forme le quadrillage dans l'onglet
Personnaliser le style de l'Expert Tableau croisé.
Diagramme du quadrillage Présente la disposition de la grille en fonction des paramètres en cours.
Section Grille Cliquez sur une section puis spécifiez les paramètres d'affichage de la grille.
Afficher le quadrillage Cochez ou décochez cette case pour afficher ou masquer toutes les lignes.
Options des lignes
Couleur
Style
Largeur
Dessiner
Cliquez sur une couleur pour l'élément sélectionné dans la liste Emplacement du quadrillage.
Cliquez sur un style de ligne pour l'élément sélectionné dans la liste Emplacement du quadrillage.
Cliquez sur une largeur de ligne pour l'élément sélectionné dans la liste Emplacement du quadrillage.
Cochez ou décochez cette case pour afficher ou masquer l'élément sélectionné dans la liste Emplacement du quadrillage.
Dessiner uniquement la ligne du total général
Cochez ou décochez cette case pour afficher ou masquer la ligne de total général.
Lorsque la ligne de total général s'affiche, les lignes qui apparaissent généralement à l'emplacement du quadrillage sont masquées.
Informations associées
Boîte de dialogue Expert Tableau croisé [page 960]
Assistants de création de rapports Crystal [page 635]
898
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.7.3.1.35 Boîte de dialogue Editeur de formule
L'Editeur de formule est un composant majeur de la boîte de dialogue Atelier de formules. Il peut prendre différents noms en fonction du type de formule sur lequel vous travaillez :
● Editeur de formule
● Editeur de formule de mise en forme
● Editeur de formule de sélection d'enregistrements
● Editeur de formule de sélection de groupes
● Editeur de formule de condition de total cumulé
L'Editeur de formule est identique à l'Editeur de formule personnalisée et à l'Editeur d'expression SQL. Ces
éditeurs sont inclus dans cette description.
Cette boîte de dialogue s'affiche lorsque vous modifiez un champ de formule existant ou que vous en créez un nouveau en cliquant avec le bouton droit de la souris sur Champs de formule dans l'Explorateur de champs et en sélectionnant Nouveau. Une fois que vous avez nommé votre formule, la boîte de dialogue Editeur de formule s'affiche.
Fenêtres de l'Editeur de formule
L'Editeur de formule contient quatre fenêtres principales.
Champs du rapport
Les champs du rapport contiennent tous les champs de base de données accessibles pour votre rapport. Ils contiennent également les formules et groupes déjà créés pour le rapport.
Remarque
Cette fenêtre n'apparaît pas lors de la création d'une fonction personnalisée.
Fonctions Les fonctions sont des procédures intégrées qui renvoient des valeurs. Elles permettent d'effectuer des calculs comme la moyenne, la somme, le comptage, le sinus, la suppression de blancs ou la mise en majuscules.
Remarque
Le passage de la syntaxe Crystal à la syntaxe Basic, ou vice versa, entraînera la modification de la liste de fonctions dans la fenêtre Fonctions et de la liste des opérateurs dans la fenêtre
Opérateurs. Les fonctions et les opérateurs sont différents d'une syntaxe à l'autre.
Opérateurs Les opérateurs sont en quelque sorte les "verbes" des formules. Ils décrivent une action ou une opération devant être effectuée avec deux valeurs ou plus.
Exemples d'opérateurs : addition, soustraction, inférieur à et supérieur à.
Fenêtre Texte de la formule
Cette fenêtre permet de créer ou de modifier une formule.
Vous créez une formule en cliquant deux fois sur l'un des composants répertoriés dans les arborescences de champs de rapport, de fonctions ou d'opérateurs. Lorsque vous choisissez
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
899
un composant, la syntaxe requise est également insérée. Vous pouvez également saisir une formule manuellement.
Une fois une formule créée ou modifiée, cliquez sur le bouton Vérifier pour contrôler qu'elle ne contient pas d'erreur. Cliquez sur le bouton Enregistrer pour enregistrer la formule.
Boutons de l'Atelier de formules
Les boutons de la barre d'outils générale de l'Atelier de formules ont les fonctions suivantes :
Table 31 :
Bouton Description
Ferme l'Atelier de formules après vous avoir invité à enregistrer vos modifications. Si vous enre gistrez vos modifications, il vérifie que votre formule ne contient aucune erreur.
Enregistre la formule, l'expression SQL ou la fonction personnalisée.
Crée une formule du type que vous avez sélectionné dans la liste. Permet également de créer une fonction personnalisée ou une expression SQL.
Affiche ou masque l'arborescence de l'atelier.
. Les fonctions personnalisées et les formules
(le cas échéant) s'affichent dans le mode sélectionné jusqu'à ce que vous cliquiez une nouvelle fois sur ce bouton.
Ouvre l'
Expert Formule [page 968] . Utilisez cet expert pour créer une formule à partir d'une
fonction personnalisée.
Remarque
Ce bouton n'est pas disponible lorsque vous créez une fonction personnalisée.
Ouvre l'aide en ligne pour cette boîte de dialogue.
Les boutons de la barre d'outils de l'arborescence de l'Atelier des formules ont les fonctions suivantes :
Table 32 :
Bouton Description
Permet de renommer la formule sélectionnée, la fonction personnalisée ou l'expression SQL.
Supprime la formule sélectionnée, la fonction personnalisée ou l'expression SQL.
Développe ou réduit le nœud sélectionné dans l'arborescence de l'atelier. Fonctionne également avec des sélections multiples de nœuds.
900
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Bouton Description
Dans le dossier des formules de mise en forme, affiche ou masque les nœuds correspondant aux objets rapport si aucune formule n'est associée à ces objets.
Les boutons de la barre d'outils de l'Editeur d'expression de l'Atelier de formules ont les fonctions suivantes :
Table 33 :
Bouton Description
Teste la syntaxe de la formule ou de la fonction personnalisée et identifie les erreurs de syntaxe le cas échéant.
Annule la dernière action effectuée.
Répète la dernière action.
Lorsque vous sélectionnez un champ dans une fenêtre de champs de rapport et que vous cli quez sur le bouton Parcourir les données, une boîte de dialogue contenant une liste des valeurs pour le champ sélectionné apparaît.
Visualisez les valeurs des champs sélectionnés et choisissez les valeurs individuelles que vous souhaitez insérer dans votre formule.
Remarque
Ce bouton n'est pas disponible pour les fonctions personnalisées.
Recherche un mot, un nombre ou une chaîne de formule spécifiés dans l'Editeur de formule.
Insère un signet au début d'une ligne de formule sélectionnée. Cliquez de nouveau sur le bouton pour supprimer le signet.
Accède au signet suivant.
Accède au signet précédent.
Supprime tous les signets de la formule sélectionnée.
Réorganise toutes les arborescences des champs, des fonctions et des opérateurs de rapport par ordre alphabétique.
Masque ou affiche l'arborescence de champs de rapport.
Remarque
Ce bouton n'est pas disponible pour les fonctions personnalisées.
Masque ou affiche l'arborescence des fonctions.
Masque ou affiche l'arborescence des opérateurs.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
901
Bouton Description
Vous permet de sélectionner la syntaxe Crystal ou la syntaxe Basic pour votre formule. Pour en
savoir plus, voir Formules - Référence [page 761]
.
Le passage de la syntaxe Crystal à la syntaxe Basic, ou vice versa, entraînera la modification de la liste de fonctions dans la fenêtre Fonctions et de la liste des opérateurs dans la fenêtre Opéra teurs. Les fonctions et les opérateurs sont différents d'une syntaxe à l'autre.
Met en commentaire la sélection en surbrillance d'une formule. Les lignes de commentaire ne sont pas considérées comme partie intégrante de la formule.
Touches de raccourci
Les touches de raccourci qui fonctionnent dans l'Editeur de formule sont les suivantes :
Table 34 :
Combinaisons de clavier
Alt+B
Alt+C
Alt+F
Alt+M
Alt+O
Alt+P
Alt+S
Alt+U
Ctrl+A
Ctrl+C
Ctrl+Fin
Ctrl+F
Ctrl+F2
Ctrl+Maj+F2
Ctrl+Orig
Ctrl+Flèche gauche
Ctrl+N
Ctrl+S
Ctrl+T
Ctrl+Maj+Tab
Opération effectuée
Ouvre la boîte de dialogue Parcourir pour le champ sélectionné.
Vérifie qu'il n'y a pas d'erreur dans la formule.
Ouvre ou ferme l'arborescence de champs.
Met en commentaire la ligne en cours ou supprime le marquage de mise en commentaire.
Trie le contenu des arborescences.
Ouvre ou ferme l'arborescence d'opérateurs.
Enregistre la formule sans fermer l'Editeur de formule.
Ouvre ou ferme l'arborescence de fonctions.
Sélectionne tout.
Copie.
Va à la fin de la dernière ligne de la formule.
Ouvre la boîte de dialogue Rechercher.
Définit un signet.
Efface tous les signets.
Va au début du fichier.
Va à la première lettre du mot à gauche (+Maj fera la sélection).
Ouvre la boîte de dialogue Nom de la formule ou une autre boîte de dialogue appropriée pour créer une nouvelle formule.
Enregistre la formule et ferme l'Atelier de formules.
Dirige le foyer sur la zone de liste des noms de syntaxe.
Dirige le foyer sur la zone de contrôle suivante (ordre inversé de la combinaison Ctrl-Tabula tion).
902
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Combinaisons de clavier
Ctrl+Tab
Ctrl+V
Ctrl+X
Ctrl+Z
Ctrl+Maj+Z
Ctrl+Espace
Fin
Entrée
F2
F3
Maj+F2
Opération effectuée
Dirige le foyer sur la zone de contrôle suivante.
Colle la sélection.
Coupe la sélection.
Annule une opération.
Répète une opération.
Complétion automatique de mots clés : affiche une liste des fonctions disponibles.
Va à la fin de la ligne.
Copie un objet sélectionné depuis une liste et l'insère dans la zone de texte de la formule.
Va au signet suivant.
Recherche l'occurrence suivante de l'élément tel que défini dans la boîte de dialogue Recher cher.
Va au signet précédent.
Informations associées
Exécution des calculs dans un rapport [page 700]
Tutoriel : Filtrage des données à l'aide des formules de sélection [page 282]
Boîte de dialogue Atelier de formules [page 904]
1.7.3.1.36 Boîte de dialogue Nom de la formule
Utilisez la boîte de dialogue Nom de la formule pour indiquer un nom pour votre formule ou votre fonction personnalisée.
Nouveau nom Saisissez un nom pour la formule, la fonction personnalisée, l'expression SQL ou le paramètre que vous créez.
Lorsque la formule est insérée dans le rapport, elle s'affiche sous la forme
@Nomdevotreformule si vous avez sélectionné "Afficher les noms des champs" dans la boîte de dialogue Paramètres par défaut.
Utiliser l'expert Cliquez sur le bouton Utiliser l'expert si vous souhaitez utiliser l'Expert Formule pour créer votre formule.
Utiliser l'éditeur
Cliquez sur le bouton Utiliser l'éditeur si vous souhaitez utiliser la boîte de dialogue Editeur de formule pour créer votre formule.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
903
Informations associées
Boîte de dialogue Paramètres par défaut [page 867]
Explorateur de champs [page 632]
Boîte de dialogue Nom de la fonction personnalisée [page 857]
1.7.3.1.37 Boîte de dialogue Atelier de formules
L'Atelier de formules est l'emplacement de SAP Crystal Reports dans lequel vous pouvez travailler avec tous les types de formules, de fonctions personnalisées et d'expressions SQL. Celui-ci se compose d'une barre d'outils, d'une arborescence contenant tous les types de formules pouvant être créés et modifiés, ainsi que d'une zone dans laquelle l'utilisateur définit la formule proprement dite.
Pour atteindre cette boîte de dialogue, cliquez avec le bouton droit de la souris dans le Report Designer, pointez sur Rapport, puis cliquez sur Atelier de formules.
Barre d'outils
Vue
Arborescence
Pour obtenir une description de chacun des boutons sur les diverses barres d'outils de
l'Atelier de formules, voir Boîte de dialogue Editeur de formule [page 899]
.
L'arborescence de l'atelier contient des dossiers pour chaque type de formule que vous pouvez créer dans SAP Crystal Reports. Elle inclut également des dossiers pour les fonctions personnalisées et les expressions SQL. Si l'atelier apparaît à la suite de l'utilisation d'une commande spécifique (par exemple, la commande Enregistrement du sous-menu Formules de sélection), le dossier correspondant dans l'arborescence est sélectionné et la version appropriée de l'Editeur de formule s'ouvre.
Développez l'arborescence d'un dossier pour voir les formules existantes. Vous pouvez ajouter des formules et modifier ou supprimer, au besoin, des formules existantes.
Conseil
L'arborescence de l'atelier peut être ancrée. Par défaut, elle est ancrée dans la partie gauche de l'Atelier de formules, mais vous pouvez l'ancrer manuellement à droite. En mode flottant, vous pouvez faire glisser l'arborescence vers n'importe quel emplacement de l'atelier.
Zone de définition
Utilisez la zone de définition de l'Atelier de formules pour définir ou modifier votre formule, votre fonction personnalisée ou votre expression SQL. Vous y trouverez une version de la boîte de dialogue Editeur de formule que vous utiliserez comme principal éditeur, mais pouvez
également y trouver l'Expert Formule ou l'une des boîtes de dialogue utilisées pour travailler avec des fonctions personnalisées.
Informations associées
Boîte de dialogue Editeur de formule [page 899]
Exécution des calculs dans un rapport [page 700]
904
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.7.3.1.38 Editeur de formule de nom de groupe
Cette boîte de dialogue s'affiche lorsque vous personnalisez un champ Nom de groupe. Dans la boîte de dialogue
Insérer un groupe, cliquez sur Personnaliser le champ Nom de groupe, puis sur Utiliser une formule comme nom de groupe. Cliquez sur le bouton Formule pour ouvrir l'Editeur de formule.
Informations associées
Regroupement des données [page 682]
1.7.3.1.39 Boîte de dialogue Texte de l'aide
La boîte de dialogue Texte de l'aide s'affiche lorsque vous cliquez sur le bouton Texte de l'aide dans la boîte de dialogue Propriétés des fonctions personnalisées.
Utilisez cette boîte de dialogue pour rédiger un message qui aidera les autres utilisateurs à utiliser la fonction personnalisée que vous êtes en train de créer. Le texte d'aide est disponible uniquement dans cette boîte de dialogue.
Informations associées
Boîte de dialogue Propriétés des fonctions personnalisées [page 857]
Fonctions personnalisées [page 704]
1.7.3.1.40 Boîte de dialogue Options de groupe hiérarchique
Utilisez la boîte de dialogue Options de hiérarchie pour effectuer un groupement hiérarchique des données.
Lorsque vous regroupez les données hiérarchiquement, vous effectuez un tri des informations en fonction des relations existant entre deux champs.
Cette boîte de dialogue s'affiche lorsque vous cliquez sur le Report Designer avec le bouton droit de la souris, pointez sur Rapport, puis cliquez sur Options de regroupement hiérarchique.
Groupes disponibles Sélectionnez dans la liste le groupe que vous souhaitez trier hiérarchiquement.
Tri hiérarchique des données
Cochez cette case pour effectuer un tri hiérarchique des données dans le groupe sélectionné.
Champ ID instance Pour référence uniquement. Ce champ affiche la valeur pour le groupe sélectionné dans la liste Groupes disponibles.
Champ ID parent Sélectionnez le champ selon lequel vous souhaitez organiser le champ ID instance.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
905
Champ Retrait du groupe
Par exemple, pour un rapport hiérarchique de société, sélectionnez la liste des champs de données associés aux employés.
Les champs ID instance et ID parent doivent avoir le même type. Ils doivent, par exemple,
être tous deux des chaînes (texte) ou des nombres.
Saisissez la valeur de retrait souhaitée pour chaque sous-groupe.
Remarque
Le plus haut niveau de la hiérarchie est déterminé par les groupes qui correspondent aux champs ID instance et ID parent. Si une instance de groupe n'est reliée à aucun ID parent, elle s'affiche en haut de la hiérarchie.
Informations associées
Regroupement hiérarchique des données [page 683]
Regroupement des données [page 682]
1.7.3.1.41 Boîte de dialogue Légende des index
Cette boîte de dialogue s'affiche lorsque vous cliquez sur le bouton Légende des index dans l'onglet Liens de l'Expert Base de données.
Utilisez cette boîte de dialogue pour afficher la légende des indicateurs d'index utilisés dans la zone d'affichage
Liens.
Informations associées
Onglet Liens (Expert Base de données) [page 967]
1.7.3.1.42 Boîte de dialogue Insérer un groupe
Utilisez la boîte de dialogue Insérer un groupe pour regrouper des données sans les résumer dans les groupes.
Cette boîte de dialogue s'affiche lorsque vous cliquez sur le Report Designer avec le bouton droit de la souris, pointez sur Insérer, puis cliquez sur Groupe.
Remarque
Les informations contenues dans cette section s'appliquent également aux boîtes de dialogue Changer les options de groupe, Ordre de tri du diagramme et Options de groupe du tableau croisé.
906
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.7.3.1.42.1 Onglet Commun
Utilisez l'onglet Commun pour indiquer le champ et l'ordre de tri de votre regroupement.
Champs
Ordre de tri
Options de date
Cette liste contient les champs et les formules utilisés dans votre rapport. Sélectionnez le champ que vous souhaitez utiliser pour le regroupement.
Cette liste contient quatre sens de tri. La direction du tri par défaut se fait dans l'ordre croissant. Pour changer le sens du tri, cliquez sur la zone pour afficher les options et effectuer votre sélection à partir de la liste.
Cette liste s'affiche uniquement lorsque vous travaillez avec un champ de date. Elle contient les options de regroupement par périodes spécifiques (chaque semaine, chaque mois, etc.).
1.7.3.1.42.2 Onglet Options
Cet onglet peut apparaître dans différentes boîtes de dialogue :
● Insérer un groupe (boîte de dialogue)
● Changer les options de groupe (boîte de dialogue)
● Options de groupe du tableau croisé (boîte de dialogue)
Remarque
L'onglet Options ne s'affiche pas dans la boîte de dialogue Ordre de tri du diagramme.
Personnaliser le champ du nom de groupe
Le champ Nom de groupe s'affiche dans l'arborescence des groupes et dans l'en-tête de groupe. Par défaut, le champ Nom de groupe a les mêmes valeurs que le champ de groupe. Cochez cette case pour définir le champ Nom de groupe comme :
● un champ de base de données,
● une formule de nom de groupe qui renvoie une valeur de type chaîne, afin de générer les valeurs d'un champ Nom de groupe.
Par exemple, vous pouvez effectuer un regroupement sur l'ID client, mais afficher le Nom du client en tant que nom de groupe. Pour ce faire, sélectionnez l'option Choisir un champ existant, puis sélectionnez le champ approprié dans la liste.
Vous pouvez également effectuer un regroupement sur l'ID client, mais utiliser la formule suivante pour afficher l'ID client et le Nom du client dans le nom de groupe :
ToText ({Customer.CustomerID}) + " : " + {Customer.CustomerName}
Pour ce faire, sélectionnez
Utiliser une formule comme nom de groupe
, puis cliquez sur le bouton Formule pour saisir votre formule dans l'Atelier de formules.
Remarque
L'option Personnaliser le champ de nom de groupe n'est pas disponible pour les groupes triés dans l'ordre spécifié.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
907
Une formule de nom de groupe ne peut pas contenir un champ évalué au moment de l'exécution, tel qu'un champ de total cumulé, un champ de résumé ou un autre champ
Nom de groupe.
Conserver l'unité du groupe
Cochez cette case pour ne pas répartir vos groupes sur plusieurs pages.
Remarque
Cette option n'apparaît pas pour la boîte de dialogue Options de groupe du tableau croisé.
Répéter l'en-tête de groupe sur chaque page
Si vous souhaitez répartir vos groupes sur toutes les pages, cochez cette case pour répéter l'en-tête de groupe sur chaque page.
Remarque
Cette option n'apparaît pas pour la boîte de dialogue Options de groupe du tableau croisé.
1.7.3.1.42.3 Onglet Ordre spécifié
Utilisez l'onglet Ordre spécifié pour configurer des groupes personnalisés. Les groupes personnalisés sont des groupes à forme libre qui ne sont pas forcément déclenchés par une valeur quelconque du champ. Vous définissez les groupes et vous spécifiez les valeurs individuelles correspondant à chacun d'entre eux.
Remarque
L'onglet Ordre spécifié s'affiche uniquement lorsque vous sélectionnez "dans l'ordre spécifié" comme ordre de tri dans l'onglet Commun.
Groupe nommé Utilisez cette zone pour saisir le nom que vous souhaitez attribuer à votre groupe en ordre spécifié. Vous pouvez également parcourir et sélectionner les valeurs à utiliser comme noms de groupes dans le champ de base de données.
La zone ci-dessous affiche les champs que vous avez sélectionnés et les groupes que vous avez créés en tant que groupes en ordre spécifié.
Flèche haut
Flèche bas
Nouveau
Modifier
Cliquez sur ce bouton pour faire remonter le groupe sélectionné dans la liste.
Cliquez sur ce bouton pour faire descendre le groupe sélectionné dans la liste.
Cliquez sur ce bouton pour ouvrir la boîte de dialogue Définir un groupe nommé lorsque vous pouvez créer un nouveau groupe nommé. Si vous avez saisi un nouveau nom dans la liste
Groupe nommé de l'onglet Ordre spécifié, celui-ci s'affiche comme Nom de groupe dans la boîte de dialogue Définir un groupe nommé.
Cliquez sur ce bouton pour ouvrir la boîte de dialogue Définir un groupe nommé lorsque vous pouvez modifier un groupe sélectionné dans la nouvelle liste de groupes nommés.
908
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Supprimer Cliquez sur ce bouton pour supprimer le groupe sélectionné.
1.7.3.1.42.4 Onglet Autres
Utilisez l'onglet Autres pour définir les opérations que le programme doit effectuer pour toutes les valeurs non contenues dans l'un des groupes spécifiés.
Remarque
L'onglet Autres apparaît uniquement si l'onglet Ordre spécifié est lui-même affiché.
Supprimer tous les autres
Rassembler tous les autres, sous le nom
Laisser dans leurs propres groupes
Sélectionnez cette option si vous ne souhaitez pas imprimer les champs non sélectionnés dans les groupes pour votre rapport. Si vous résumez des groupes, les valeurs des groupes rejetés ne seront ni résumées ni incluses dans le total général, le cas
échéant.
Sélectionnez cette option et saisissez un nom si vous souhaitez placer tous les champs non sélectionnés dans un groupe. Le nom par défaut pour ce groupe est Autres. Si vous résumez des groupes, les valeurs du groupe seront résumées et incluses dans le total général.
Lorsque vous cliquez sur cette option, les groupes indiqués sont affichés dans l'ordre spécifié. Les autres groupes sont affichés normalement. Si vous résumez des groupes, les valeurs du groupe seront résumées et incluses dans le total général.
1.7.3.1.43 Boîte de dialogue Insérer un objet
Utilisez cette boîte de dialogue pour insérer un objet dans votre rapport. Vous pouvez insérer un objet existant ou en créer un.
Cette boîte de dialogue s'affiche lorsque vous cliquez sur le Report Designer avec le bouton droit de la souris, pointez sur Insérer, puis cliquez sur Objet OLE.
Créer
Créer à partir d'un fichier
Cliquez sur cette option pour créer un nouvel objet et l'incorporer à votre rapport. Lorsque l'option
Créer est active, la liste Type d'objet s'affiche.
Cliquez sur cette option pour incorporer ou relier un objet qui existe déjà. Par exemple, si vous avez créé et enregistré une feuille de calcul dans Microsoft Excel et que vous souhaitez l'utiliser comme objet, cliquez sur Créer à partir d'un fichier puis sélectionnez le nom du fichier dans la zone Fichier.
Lorsque vous sélectionnez Créer à partir d'un fichier, la zone Fichier, le bouton Parcourir et la boîte de dialogue Relier s'affichent.
Type d'objet Cette zone répertorie tous les types d'objet disponibles dans votre système.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
909
Remarque
Cette liste est basée sur la base de données d'enregistrement. Lorsque des applications serveur
OLE sont installées sur votre système, elles s'enregistrent elles-mêmes avec la base de données. Si votre système comprend des applications serveur mais qu'elles n'apparaissent pas dans cette liste, il se peut que ces applications ne soient pas enregistrées correctement.
Sélectionnez le type d'objet que vous souhaitez incorporer à votre rapport.
Afficher sous forme d'icône
Indique si l'objet incorporé apparaîtra dans le rapport sous la forme d'une icône ou si le contenu réel de l'objet sera toujours visible. Notez que certaines applications n'affichent les objets que sous la forme d'icônes
Si vous sélectionnez Afficher sous forme d'icône, vous pouvez ouvrir l'objet dans votre document en cliquant deux fois sur son icône.
Informations associées
Insertion des images en arrière-plan [page 753]
Insertion des formes [page 715]
1.7.3.1.44 Boîte de dialogue Insérer un sous-rapport
Utilisez cette boîte de dialogue pour insérer un sous-rapport dans votre rapport. Lorsque cette boîte de dialogue s'affiche, vous pouvez choisir un rapport existant afin de l'insérer comme sous-rapport ou créer un rapport de toutes pièces.
Cette boîte de dialogue s'affiche lorsque vous cliquez sur le Report Designer avec le bouton droit de la souris, pointez sur Insérer, puis cliquez sur Sous-rapport.
Informations associées
Insertion des sous-rapports [page 741]
Sous-rapports reliés et non reliés [page 743]
Choix de conception pour optimiser les performances [page 760]
Assistants de création de rapports Crystal [page 635]
910
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.7.3.1.44.1 Onglet Sous-rapport (boîte de dialogue Insérer un sous-rapport)
Utilisez cette boîte de dialogue pour insérer un sous-rapport dans votre rapport. Lorsque cette boîte de dialogue s'affiche, vous pouvez choisir un rapport existant afin de l'insérer comme sous-rapport ou créer un rapport de toutes pièces.
Choisir un rapport
Crystal dans le projet
Lorsque vous choisissez cette option, la liste Nom du rapport située au-dessous de cette option est activée.
Nom du rapport
Choisir un rapport
Nom du fichier
Choisissez un rapport dans votre projet actuel afin d'en faire un sous-rapport.
Lorsque vous choisissez cette option, la boîte de dialogue Nom du fichier située audessous de cette option est activée. Saisissez le nom du rapport que vous souhaitez utiliser comme sous-rapport. Si vous ne connaissez pas le nom du rapport, cliquez sur le bouton Parcourir pour rechercher le fichier.
Saisissez le chemin d'accès complet du fichier de rapport que vous souhaitez insérer comme sous-rapport. Si vous ne connaissez pas le chemin d'accès exact, cliquez sur
Parcourir pour rechercher le fichier souhaité.
Parcourir
Créer un sousrapport à l'aide de l'Assistant de création de rapports
Nom du nouveau rapport
Cliquez sur ce bouton pour rechercher le rapport que vous souhaitez inclure comme sous-rapport. Cliquez deux fois sur le rapport ou sélectionnez Ouvrir pour accéder à la boîte de dialogue Insérer un sous-rapport. Notez que le chemin d'accès du rapport que vous venez de sélectionner est indiqué dans la zone Nom du fichier.
Lorsque vous choisissez cette option, la zone modifiable Nom du nouveau rapport située au-dessous de cette option est activée. Saisissez un nom pour le sous-rapport, puis cliquez sur le bouton Assistant de création de rapports pour créer le sous-rapport.
Saisissez le nom souhaité pour votre nouveau sous-rapport, puis cliquez sur le bouton
Assistant de création de rapports pour créer votre rapport.
Assistant de création de rapports
Cliquez sur ce bouton pour ouvrir l'Assistant de création de rapports standard. Suivez les instructions des onglets pour créer un sous-rapport.
Sous-rapport à la demande
Cochez cette case pour créer un sous-rapport à la demande. Les données d'un sousrapport à la demande ne sont pas extraites de la base de données tant que vous n'explorez pas le lien hypertexte qui le représente. Sinon, les données du sous-rapport sont collectées en même temps que celles du rapport conteneur.
Informations associées
Insertion des sous-rapports [page 741]
Sous-rapports reliés et non reliés [page 743]
Choix de conception pour optimiser les performances [page 760]
Assistants de création de rapports Crystal [page 635]
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
911
1.7.3.1.44.2 Onglet Mise en relation (Insérer un sous-rapport)
Utilisez l'onglet Mise en relation pour spécifier le champ du rapport parent qui servira de champ de mise en relation vers les données du sous-rapport.
Pour le sous-rapport
Champs disponibles
Ajouter (>)
Supprimer (<)
Utilisez cette zone de liste pour sélectionner le sous-rapport que vous souhaitez relier aux données du rapport conteneur.
Cette zone répertorie tous les champs disponibles dans le rapport conteneur auxquels vous pouvez relier votre sous-rapport.
Cliquez sur le bouton Ajouter (>) pour copier un fichier de la zone Champs disponibles vers la zone Champs auxquels relier.
Cliquez sur le bouton Supprimer (>) pour supprimer un champ de la zone Champs disponibles vers la zone Champs auxquels relier.
Champs auxquels relier le sous-rapport
Cette zone affiche les champs sélectionnés actuellement auxquels vous souhaitez relier votre rapport.
Champ de paramètre du sous-rapport à utiliser
Cette zone de liste s'affiche lorsque la zone Champs auxquels relier le sous-rapport contient au moins un nom de champ. Utilisez la zone de liste Champ de paramètre du sous-rapport à utiliser pour déterminer le champ de sous-rapport auquel le rapport conteneur et le sous-rapport sont reliés.
Sélectionner les données dans le sous-rapport en fonction du champ
Cochez cette case pour activer la liste Sélectionner les données dans le sous-rapport en fonction du champ.
Après avoir coché cette case, choisissez un champ dans la liste située au-dessous pour organiser les données du sous-rapport basées sur un champ spécifique.
Décochez cette case pour que le sous-rapport adopte l'organisation utilisée dans le rapport principal.
1.7.3.1.45 Boîte de dialogue Insérer un résumé
Utilisez la boîte de dialogue Insérer un résumé pour résumer les données dans un champ de votre rapport. Vous pouvez insérer des résumés, des sous-totaux et des totaux généraux tout en utilisant cette boîte de dialogue.
Cette boîte de dialogue s'affiche lorsque vous cliquez sur le Report Designer avec le bouton droit de la souris, pointez sur Insérer, puis cliquez sur Résumé.
Choisir le champ à résumer
Cette liste énumère les champs et les formules utilisés dans le rapport, ainsi que les champs disponibles dans les tables de sources de données du rapport. Sélectionnez le champ que vous souhaitez résumer.
Calculer ce résumé Cette zone de liste contient toutes les opérations de résumé que vous pouvez utiliser dans votre rapport. Sélectionnez l'opération souhaitée.
912
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Remarque
Tous les types de résumés disponibles ne s'appliquent pas à tous les champs. Ainsi, vous ne pouvez pas calculer la somme ou la moyenne d'un champ texte, booléen, de type date/heure, d'heure ou de date.
Emplacement du résumé
Insérer un groupe
Cette liste énumère les emplacements dans lesquels vous pouvez placer un résumé dans votre rapport. Par défaut, tout rapport peut contenir un champ de résumé dans son pied de page (il s'agit d'un total général). Si vous souhaitez ajouter un type de résumé différent, comme un sous-total, ajoutez un groupe à l'aide du bouton Insérer un groupe.
Cliquez sur ce bouton pour ajouter un groupe à votre rapport. La boîte de dialogue Insérer un groupe s'affiche. Une fois votre groupe enregistré, celui-ci apparaît dans la liste
Emplacement du résumé et peut être sélectionné.
Afficher sous forme de pourcentage de
Cochez cette case pour calculer le pourcentage total d'un groupe dans un regroupement plus large. Par exemple, vous pouvez afficher le pourcentage des ventes dans chaque ville par rapport aux ventes totales de chaque pays.
Après avoir coché la case, vous pouvez choisir le total ou le groupe sur lequel vous souhaitez baser la comparaison.
Remarque
L'option de pourcentage est disponible uniquement lorsque le résultat d'une opération de résumé est numérique.
Résumer toute la hiérarchie
Cette option vous permet de calculer un résumé dans des regroupements hiérarchiques.
Pour configurer ou modifier des options de hiérarchie pour des groupes existants, cliquez sur Options de regroupement hiérarchique du menu Rapport.
Informations associées
Boîte de dialogue Insérer un groupe [page 906]
Regroupement hiérarchique des données [page 683]
Masquage des détails dans des rapports de résumé [page 688]
Regroupement, tri et calcul de totaux des données [page 682]
1.7.3.1.46 Boîte de dialogue Options de mise en relation
Utilisez cette boîte de dialogue pour définir les types de jointures et de liens.
Cette boîte de dialogue s'affiche lorsqu'une ligne de lien est sélectionnée et que vous cliquez sur le bouton Options de mise en relation dans l'onglet Liens de l'Expert Base de données.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
913
Affichage du lien
Type de jointure
Appliquer la jointure
Type de lien
Cette zone décrit la liaison sélectionnée.
Le programme vous permet d'indiquer le type de jointure à utiliser lors de la mise en relation de tables SQL.
Le programme permet d'imposer l'utilisation de tables lorsque vous spécifiez des jointures :
Non appliquée
Lorsque vous sélectionnez cette option, le lien que vous avez créé n'est utilisé que s'il est explicitement requis par l'instruction Select. Il s'agit de l'option par défaut. Vos utilisateurs peuvent créer des rapports basés sur les tables sélectionnées sans aucune restriction (c'est-à-dire sans qu'aucune autre table ne soit imposée).
Appliquée de Lorsque vous sélectionnez cette option, si la table "vers" de la mise en relation est utilisée, le lien est appliqué. Par exemple, si vous créez un lien de Table A vers Table B en utilisant Appliquée de et que vous sélectionnez un seul champ de Table B, l'instruction Select continuera d'inclure la jointure à Table A car elle est appliquée. Inversement, le fait de sélectionner uniquement de Table A avec la même condition de jointure n'entraîne pas l'application de la jointure à Table
B.
Appliquée à Lorsque vous sélectionnez cette option, si la table "de" de la mise en relation est utilisée, le lien est appliqué. Par exemple, si vous créez un lien de Table A vers Table B en utilisant Appliquée à et que vous sélectionnez uniquement un champ de Table A, la jointure à Table B sera appliquée et l'instruction Select générée inclura les deux tables.
Appliquée des deux façons
Lorsque vous sélectionnez cette option, si la table de départ ou la table d'arrivée de la mise en relation est utilisée, le lien est appliqué.
Le programme vous permet d'indiquer le type de lien à utiliser lors de la mise en relation de tables.
Informations associées
Onglet Liens (Expert Base de données) [page 967]
Accès aux données et ajout des données [page 643]
1.7.3.1.47 Boîte de dialogue Mappage de champs
Cette boîte de dialogue est utilisée pour lier des champs de rapport à leurs champs de base de données correspondants lorsque vous modifiez la structure d'une base de données ou que vous transformez une base de données à accès aléatoire en une base de type SQL. Le processus de mappage des champs permet de vous assurer que vos rapports s'impriment avec la version actuelle de la base de données active.
Cette boîte de dialogue s'affiche si vous cliquez sur Mettre à jour dans la boîte de dialogue Définir l'emplacement de la source de données ou si la base de données a été modifiée depuis la dernière exécution du rapport.
914
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Champs démappés
(champs de rapport)
La liste Champs démappés (partie supérieure gauche) affiche les champs de rapport démappés pour lesquels le programme détecte une modification de votre base de données active.
Champs démappés
(champs de base de données)
La liste Champs démappés (partie supérieure droite) affiche les champs de base de données démappés pour lesquels le programme détecte un changement.
Carte Cliquez sur cette option pour mapper le champ de rapport sélectionné dans la liste
Champs démappés (partie supérieure gauche) vers le champ de base de données choisi dans cette liste (partie supérieure droite).
Respecter le type Lorsque vous cochez cette case, la liste Champs démappés (partie supérieure droite) affiche uniquement les noms de champs de base de données démappés du même type que le champ sélectionné dans cette liste (partie supérieure gauche). Lorsque vous la décochez, la liste Champs démappés (partie supérieure droite) affiche tous les champs de base de données démappés, quel que soit le type de champ.
La liste Champs mappés (partie inférieure gauche) affiche les noms des champs de rapport mappés. Les champs de rapport que vous mappez s'affichent dans cette liste.
Champs mappés
(Champs de rapport)
Champs mappés
(Champs de base de données)
La liste Champs mappés (partie inférieure droite) affiche les champs de base de données mappés. Les champs de base de données que vous mappez s'affichent dans cette liste.
Démapper Cliquez sur cette option pour démapper le champ de rapport sélectionné dans la liste
Champs mappés (partie supérieure gauche) du champ de base de données choisi dans cette liste (partie supérieure droite). Lorsque vous cliquez sur ce bouton, les deux champs ne sont plus mappés.
Informations associées
Accès aux données et ajout des données [page 643]
1.7.3.1.48 Boîte de dialogue Nouvelle formule de mise en forme
La boîte de dialogue Nouvelle formule de mise en forme s'affiche lorsque vous sélectionnez l'option Formule de mise en forme de la liste Nouveau dans la boîte de dialogue Atelier de formules.
Remarque
L'option Formule de mise en forme est disponible lorsque vous avez sélectionné une section ou un objet à mettre en forme dans le dossier Formules de mise en forme de l'Atelier des formules.
Utilisez cette boîte de dialogue pour déterminer le type de formule de mise en forme que vous souhaitez créer pour l'élément sélectionné (les choix varient en fonction de l'élément sélectionné dans le dossier des formules de
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
915
mise en forme de l'Atelier de formules). Par exemple pour le Pied de page, vous avez la possibilité de créer les formules de mise en forme suivantes :
● Couleur d'arrière-plan
● Réinitialiser le numéro de page après
● Supprimer (sans exploration)
● Supprimer la section vide
● Arrière-plan dans sections suivantes
Sélectionnez l'option appropriée, puis cliquez sur le bouton Utiliser l'éditeur pour créer votre formule dans la boîte de dialogue Editeur de formule.
Informations associées
Exécution des calculs dans un rapport [page 700]
Boîte de dialogue Editeur de formule [page 899]
1.7.3.1.49 Boîte de dialogue Quadrillages et échelles numériques
Utilisez la boîte de dialogue Quadrillages et échelles numériques pour mettre en forme tous les axes de votre diagramme. Cette boîte de dialogue s'affiche lorsque vous cliquez sur un diagramme avec le bouton droit de la souris, pointez sur Options du diagramme, puis cliquez sur Grille.
La boîte de dialogue Quadrillages et échelles numériques contient différentes options en fonction de l'onglet d'axe et de mise en forme sélectionné.
Les onglets situés à gauche de la boîte de dialogue indiquent les axes disponibles dans le diagramme :
● Axe des groupes
● Axe des données
● Axe des données2 (pour les diagrammes à deux axes)
● Axe des X (pour les diagrammes de type Radar, histogramme, à bulles et à nuages de points)
● Axe séries (pour les diagrammes 3D)
Lorsque vous sélectionnez un onglet d'axe, les onglets situés en haut de la boîte de dialogue changent également, de manière à représenter les options de mise en forme de chaque axe.
1.7.3.1.50 Boîte de dialogue Ordonner les liens
Cette boîte de dialogue s'affiche lorsque vous cliquez sur Ordonner les liens de l'onglet Liens de l'Expert Base de données.
916
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Utilisez cette boîte de dialogue pour indiquer l'ordre dans lequel le programme doit traiter les liens de tables. Par défaut, l'ordre de traitement correspond à l'ordre d'affichage des liens dans l'onglet Liens. Utilisez les boutons fléchés de la boîte de dialogue Ordonner les liens pour changer l'ordre par défaut.
Par exemple, si vous avez choisi les tables Credit, Customer, Orders et Orders Details de la base de données
Xtreme, l'onglet Liens affiche les tables liées dans l'ordre alphabétique.
Dans ce cas, les liens seront traités en premier entre les tables Crédits/Clients, puis entre les tables Clients/
Commandes et enfin entre les tables Commandes/Détails des commandes.
Remarque
L'utilisation d'ordres de traitement des liens différents peut conduire au renvoi de jeux de données différents.
Informations associées
Onglet Liens (Expert Base de données) [page 967]
Accès aux données et ajout des données [page 643]
1.7.3.1.51 Boîte de dialogue Mise en page
Utilisez la boîte de dialogue Mise en page pour définir les marges de page du rapport. Elle affiche les marges par défaut.
Cette boîte de dialogue s'affiche lorsque vous cliquez sur le Report Designer avec le bouton droit de la souris, pointez sur Conception, puis cliquez sur Mise en page.
Remarque
Le programme utilise les zones de non-impression établies pour votre imprimante comme marges par défaut.
Si vous définissez des marges situées à l'intérieur des zones de non-impression, certaines parties de votre rapport risquent d'être coupées.
Marge supérieure
Marge gauche
Marge inférieure
Marge droite
Utiliser les marges par défaut
Entrez la marge supérieure en pouces (ou dans la valeur par défaut définie pour votre rapport).
Entrez la marge gauche en pouces (ou dans la valeur par défaut définie pour votre rapport).
Entrez la marge inférieure en pouces (ou dans la valeur par défaut définie pour votre rapport).
Entrez la marge droite en pouces (ou dans la valeur par défaut définie pour votre rapport).
Cochez cette case pour utiliser les paramètres de marge de page par défaut.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
917
Ajuster automatiquement
Cochez cette case afin que lorsque vous imprimez votre rapport sur un papier dont la taille est différente de celle prévue pour le rapport, le programme réajuste les marges de sorte que la taille de la zone de conception du rapport ne soit pas modifiée mais soit alignée sur la page de manière à conserver les proportions que vous avez spécifiées à l'origine. Par exemple, si la nouvelle page mesure un pouce de plus que la page d'origine, ce pouce sera divisé de manière à agrandir toutes les marges dans des proportions restant fidèles à la page d'origine.
Informations associées
Détermination des caractéristiques de la zone d'impression [page 642]
Présentation des sections de rapport [page 627]
1.7.3.1.52 Boîte de dialogue Configuration de l'imprimante
Utiliser cette boîte de dialogue pour sélectionner l'imprimante, l'orientation de la page et la taille de papier que vous souhaitez utiliser pour imprimer le rapport. Si vous ne sélectionnez pas une imprimante, l'impression s'effectue avec l'imprimante par défaut de Windows.
Cette boîte de dialogue s'affiche lorsque vous cliquez sur le Report Designer avec le bouton droit de la souris, pointez sur Conception, puis cliquez sur Configuration de l'imprimante.
Aucune imprimante Activez la case à cocher Aucune imprimante lorsque l'impression n'est pas une option d'un poste de travail particulier.
Imprimante
Name Recherchez le nom de l'imprimante vers laquelle vous pouvez envoyer des rapports dans la liste
Nom.
Propriétés Cliquez sur le bouton Propriétés pour ouvrir la boîte de dialogue Propriétés de l'imprimante sélectionnée.
Papier
Taille Utilisez la liste Taille pour sélectionner les différentes options de tailles de papier ou d'enveloppe.
Source Utilisez la liste Source pour sélectionner les différentes options de source d'alimentation ou de papier.
918
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Orientation
Portrait
Paysage
Redéfinir sur les valeurs par défaut
Sélectionnez l'option Portrait pour imprimer votre rapport dans l'orientation lettre standard.
Sélectionnez l'option Paysage pour imprimer votre rapport dans l'orientation paysage.
Cliquez sur le bouton Propriétés par défaut pour définir toutes les propriétés de l'imprimante à leurs valeurs par défaut.
Informations associées
Détermination des caractéristiques de la zone d'impression [page 642]
Présentation des sections de rapport [page 627]
1.7.3.1.53 Expert Tri d'enregistrements
Utilisez l'Expert Tri d'enregistrements pour définir l'ordre de tri des enregistrements de votre rapport pour l'impression. Champ de données indiquant la procédure de tri. Vous pouvez ajouter et supprimer des champs et définir le sens du tri (ordre croissant ou décroissant) des données de votre rapport.
Cette boîte de dialogue s'affiche lorsque vous cliquez sur le Report Designer avec le bouton droit de la souris, pointez sur Rapport, puis cliquez sur Expert Tri d'enregistrements.
Champs disponibles Affiche la liste des champs actuellement dans le rapport et des champs disponibles dans les tables de source de données du rapport.
Champs sélectionnés Affiche la liste des champs actuellement triés dans le rapport.
Ajouter (>)
Supprimer (<)
Sens du tri
Ajoute le champ de rapport sélectionné à la liste Champs sélectionnés.
Supprime le champ de tri sélectionné de la liste Champs sélectionnés.
Définit le sens du tri sur Croissant ou Décroissant.
Informations associées
Regroupement, tri et calcul de totaux des données [page 682]
Masquage des détails dans des rapports de résumé [page 688]
Choix de conception pour optimiser les performances [page 760]
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
919
1.7.3.1.54 Boîte de dialogue Actualiser les données du rapport
Utilisez cette boîte de dialogue pour exécuter le rapport à l'aide des valeurs de paramètre actuelles ou pour saisir de nouvelles valeurs de paramètre.
Utiliser les valeurs de paramètre actuelles
Demander de nouvelles valeurs de paramètre
Cliquez sur cette option pour exécuter le rapport à l'aide des valeurs de paramètre actuelles.
Cliquez sur cette option si vous souhaitez exécuter le rapport avec d'autres valeurs de paramètre. Lorsque vous choisissez cette option, la boîte de dialogue Saisir des valeurs de paramètre apparaît, dans laquelle vous pouvez indiquer une valeur de paramètre spécifique ou une plage de valeurs de paramètre.
Informations associées
Définition des paramètres [page 676]
1.7.3.1.55 Boîte de dialogue Renommer la formule
Utilisez la boîte de dialogue Renommer la formule pour indiquer un nom pour la formule, l'expression SQL ou le paramètre.
Name Saisissez un nom pour la formule, l'expression SQL ou le paramètre que vous créez.
Lorsque la formule est insérée dans le rapport, elle s'affiche sous la forme @Nomdevotreformule si vous avez sélectionné "Afficher les noms des champs" dans la boîte de dialogue Paramètres par défaut.
Informations associées
Boîte de dialogue Editeur de formule [page 899]
Boîte de dialogue Paramètres par défaut [page 867]
Explorateur de champs [page 632]
1.7.3.1.56 Boîte de dialogue Renommer le paramètre
Utilisez cette boîte de dialogue pour renommer un champ de paramètre. Cette boîte de dialogue s'affiche lorsque vous cliquez avec le bouton droit de la souris sur Champs de paramètre dans l'Explorateur de champs et cliquez sur Renommer.
920
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Conseil
Pour afficher l'Explorateur de champs, cliquez sur le menu
Crystal Reports
, puis cliquez sur
Explorateur de champs
.
Name Saisissez le nouveau nom de votre champ de paramètre dans cette zone.
Informations associées
Définition des paramètres [page 676]
Incorporation des paramètres dans des formules [page 681]
Tutoriel : Lecture et définition des paramètres discrets [page 247]
Tutoriel : Lecture et définition des paramètres discrets [page 377]
Explorateur de champs [page 632]
1.7.3.1.57 Boîte de dialogue Renommer le total cumulé
Utilisez cette boîte de dialogue pour renommer un champ de total cumulé. Cette boîte de dialogue s'affiche lorsque vous cliquez avec le bouton droit de la souris sur Champs de total cumulé dans l'Explorateur de champs et cliquez sur Renommer.
Conseil
Pour afficher l'Explorateur de champs, cliquez sur le menu
Crystal Reports
, puis cliquez sur
Explorateur de champs
.
Nom Entrez le nouveau nom de votre champ de total cumulé.
Informations associées
Création des totaux cumulés [page 695]
Positionnement des champs de total cumulé [page 695]
Explorateur de champs [page 632]
1.7.3.1.58 Boîte de dialogue Options du rapport
Utilisez cette boîte de dialogue pour modifier les options du rapport en cours. Celle-ci s'affiche lorsque vous cliquez sur le Report Designer avec le bouton droit de la souris, pointez sur Rapport, puis sélectionnez Options du rapport.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
921
Voir Boîte de dialogue Paramètres par défaut [page 867]
pour modifier les valeurs par défaut du programme.
Attribuer la valeur par défaut aux valeurs
NULL de la base de données
Attribuer la valeur par défaut aux autres valeurs NULL
Afficher tous les entêtes lors de l'exploration
Toujours trier localement
Le serveur de base de données ne respecte pas la casse
Regrouper sur le serveur
Utiliser les index ou les serveurs pour un traitement rapide
Cochez cette case de manière à ce que le programme remplace les valeurs nulles de la base de données par un 0 (pour les champs numériques) ou un espace vide (pour les champs non numériques).
Cette option affecte uniquement les valeurs NULL se trouvant dans la base de données utilisée dans un rapport.
Cochez cette case de manière à ce que le programme remplace les valeurs nulles ne se trouvant pas dans la base de données par un 0 (pour les champs numériques) ou un espace vide (pour les champs non numériques).
Cette option affecte uniquement les valeurs NULL du rapport ne se trouvant pas dans la base de données.
Cochez cette case pour inclure dans les vues d'exploration du rapport les en-têtes de toutes les sections au-dessus des enregistrements d'exploration. Cette case n'est pas cochée par défaut.
Cochez cette case pour vous assurer que vos enregistrements sont triés localement, même s'ils ont été triés préalablement lors de leur extraction de votre source de données.
Cette case à cocher permet de spécifier si les données SQL utilisées dans le rapport respectent la casse. Cochez cette case si les champs contiennent des données en majuscules et en minuscules et que vous ne souhaitez pas classer les données sous cet aspect.
Les données SQL respectant la casse ne sont pas prises en charge dans la version standard 32 bits de ce programme.
Cette case est disponible uniquement si la case Utiliser les index ou les serveurs pour un traitement rapide est cochée.
Cette option n'est pas disponible pour les rapports créés à partir de données OLAP.
Cochez cette case pour effectuer le regroupement sur le serveur (traitement côté serveur). Le traitement côté serveur vous permet de configurer un rapport qui accomplit la plupart de son traitement sur le serveur et ne passe que les détails pertinents à votre ordinateur. Le traitement côté serveur vous offre quelques bénéfices :
● moins de temps connecté au serveur ;
● moins de mémoire requise pour traiter le rapport sur votre ordinateur ;
● moins de temps de transfert du serveur au client.
Notez également que le traitement côté serveur ne fonctionne qu'avec les rapports basés sur les sources de données SQL. Vous ne pourriez pas, par exemple, utiliser le traitement côté serveur pour un rapport basé sur une requête puisque la requête n'est pas une source de données SQL.
Cette case n'est pas cochée par défaut.
Cochez cette case pour utiliser les index/serveurs disponibles afin d'accélérer la procédure de sélection des enregistrements.
922
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Décochez cette case pour sélectionner les enregistrements sans l'aide des index/ serveurs spécifiés (traitement beaucoup plus lent).
Si le nom d'un index est différent de celui de la base de données qu'il répertorie, vous devez identifier l'index du programme. Cette opération s'effectue à l'aide de la boîte de dialogue Options de mise en relation, que vous pouvez ouvrir à partir de l'onglet Liens
(Expert Base de données).
Vérifier lors de la première actualisation
Vérifier les procédures stockées lors de la première actualisation
Lorsque cette case est cochée, le rapport est actualisé avec la version actuelle de la base de données active (à moins qu'il ne s'agisse d'une procédure stockée) et ses tampons d'enregistrements sont redéfinis sur la taille d'enregistrement actuelle lors de la première actualisation réalisée par session. Cette case n'est pas cochée par défaut.
Lorsque cette case est cochée, le rapport est actualisé avec la version actuelle de la procédure stockée et ses tampons d'enregistrements sont redéfinis sur la taille d'enregistrement actuelle lors de la première actualisation réalisée par session. Cette case n'est pas cochée par défaut.
Respecter l'unité des groupes sur la première page
Décochez cette case pour garantir que SAP Crystal Reports commence l'impression de votre premier groupe au niveau de la première page du rapport, même lorsque vous
avez coché la case Conserver l'unité du groupe dans Onglet Options [page 907] .
Cochez cette case ainsi que la case Conserver l'unité du groupe afin que
SAP Crystal Reports commence l'impression du premier groupe sur la seconde page du rapport lorsque le premier groupe s'étend sur plusieurs pages.
Sélectionner des enregistrements distincts
Utilisez cette option pour sélectionner uniquement les enregistrements uniques de tables SQL de votre base de données. Cochez cette case de la boîte de dialogue
Options du rapport pour définir les options du rapport en cours. Vous pouvez
également définir cette option pour tous les rapports en activant la commande
Sélectionner des enregistrements distincts dans le menu Base de données.
Cette option n'est pas disponible pour les rapports créés à partir de données OLAP.
Sélectionner des données distinctes pour la recherche
Lorsque vous parcourez un champ, les 500 premières valeurs uniques de celui-ci s'affichent par défaut. Vous pouvez modifier cette procédure pour le rapport en cours en désactivant cette option. Si cette option n'est pas sélectionnée, les valeurs uniques des 500 premiers enregistrements sont renvoyées.
La plupart des serveurs SQL ne prenant pas en charge la sélection d'enregistrements distincts pour les champs contenant des données de type long, tels que les champs mémo et les champs BLOB, la sélection et la recherche d'enregistrements distincts ne sont pas prises en charge pour ces champs.
Conserver le nombre de couleurs de l'image d'origine
Sélectionnez cette option pour que les images de votre rapport conservent le nombre de couleurs d'origine lors de l'encapsulation. Autrement, toutes les images sont converties en un format de 8 bits par pixel avant l'encapsulation.
Paramètres d'origine des parties du rapport
Si vous souhaitez utiliser des objets de ce rapport dans le contrôle
CrystalReportPartsViewer, définissez l'objet de base dans cette zone. L'objet d'origine constitue la base d'un chemin de liens hypertexte Partie du rapport ; il devient
également le premier objet du rapport qui apparaît dans le contrôle
CrystalReportPartsViewer.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
923
Coller le lien vers la partie de rapport
Nom de l'objet
Contexte de données
Affichage du rapport dans l'onglet Aperçu
Utilisez le bouton Coller le lien pour coller le nom et le contexte de données d'un objet de rapport précédemment sélectionné et copié. Les options suivantes sont associées
à ce bouton : Partie de rapport contextuelle et Partie de rapport dans l'onglet Aperçu.
Elles affectent le type de contexte de données collé.
Saisissez le nom de l'objet de rapport que vous souhaitez utiliser comme objet de base.
Indiquez le contexte des données (autrement dit, le ou les enregistrements spécifiques) que vous souhaitez utiliser dans votre objet de base.
Cette zone de liste vous permet de sélectionner le niveau d'agrandissement par défaut pour l'affichage des rapports dans l'onglet Aperçu.
● "Pleine page" vous permet d'afficher votre rapport au niveau d'agrandissement le plus élevé pour faciliter la lecture. La page est plus grande que l'onglet Aperçu VGA standard. Lorsque vous redimensionnez l'onglet Aperçu, les dimensions du rapport ne changent pas. Ce qui change, c'est la quantité de données que vous pouvez afficher en même temps. Vous pouvez avoir besoin des barres de défilement pour visualiser toutes les sections de votre rapport.
● "Ajuster à la largeur" permet d'ajuster la largeur du rapport à celle de l'onglet
Aperçu. Lorsque vous redimensionnez l'onglet Aperçu (dans une certaine limite), l'image de la page est également redimensionnée. Pour obtenir une plus grande image, vous pouvez agrandir la fenêtre.
● "Ajuster à la page" permet d'ajuster la largeur et la longueur du rapport pour vous permettre d'afficher la page entière dans l'onglet Aperçu. Lorsque vous redimensionnez l'onglet Aperçu (dans une certaine limite), l'image de la page est
également redimensionnée. Pour obtenir une plus grande image, vous pouvez agrandir la fenêtre.
Informations associées
Boîte de dialogue Paramètres par défaut [page 867]
Présentation générale des parties de rapport [page 720]
Optimisation des performances des rapports [page 758]
1.7.3.1.59 Boîte de dialogue Champs de mappage des parties du rapport
Cette boîte de dialogue s'ouvre lorsque vous créez un lien hypertexte de type Un autre objet de rapport et choisissez l'option Partie de rapport dans l'onglet Conception (ou, si vous choisissez l'option Partie de rapport pour un objet copié depuis l'onglet Conception d'un rapport) et que les rapports source et cible possèdent des structures de données différentes. Chaque champ figurant dans la zone Champs démappés représente un groupe dans votre rapport source. Utilisez cette boîte de dialogue pour mapper ces groupes aux champs de votre rapport cible.
924
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Champs démappés
Champs du rapport
Carte
La liste Champs démappés contient les groupes démappés de votre rapport source.
La liste Champs du rapport contient les champs de base de données de votre rapport cible, pouvant être mappés.
Cliquez sur Carte pour mapper le groupe sélectionné dans la liste Champs démappés au champ de base de données sélectionné dans la liste Champs du rapport. Lorsque vous cliquez sur ce bouton, le groupe et le champ sélectionnés sont mappés, et tous deux sont déplacés vers la zone Champs mappés.
Champs d'origine La liste Champs d'origine contient les groupes du rapport source, que vous avez mappés.
Champs mappés La liste Champs mappés contient les champs de base de données de votre rapport cible, que vous avez mappés.
Démapper Cliquez sur Démapper pour démapper les groupes et le champ de rapport sélectionnés dans la zone Champs mappés. Une fois que vous avez cliqué sur ce bouton, les groupes et les champs sélectionnés ne sont plus mappés.
Informations associées
Présentation générale des parties de rapport [page 720]
Implémentation de l'exploration de parties de rapport [page 723]
1.7.3.1.60 Boîte de dialogue Définir la classe CSS
Utilisez cette boîte de dialogue pour appliquer une mise en forme aux rapports utilisant les classes dans une feuille de style en cascade (CSS). Cette boîte de dialogue s'affiche lorsque vous cliquez sur le Report Designer avec le bouton droit de la souris et sélectionnez Définir la classe de style.
Remarque
Cette boîte de dialogue n'affecte la sortie du rapport que si ce dernier est converti au format HTML et que la classe est définie dans le fichier .aspx du projet.
Portée d'objet
Nom de la classe
CSS
Sélectionnez les objets ou sections auxquels vous souhaitez appliquer cette classe lorsque le rapport est converti au format HTML.
Entrez le nom de la classe. Lorsque le rapport est converti en format HTML, le nom de la classe sera attaché à tous les objets ou sections définis dans le champ Portée d'objet.
Informations associées
Mise en forme de rapports à l'aide de feuilles de style en cascade [page 719]
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
925
1.7.3.1.61 Boîte de dialogue Définir l'emplacement de la source de données
Utilisez cette boîte de dialogue pour choisir une nouvelle base de données ou un nouvel emplacement pour la base de données utilisée dans le rapport. Pour ouvrir cette boîte de dialogue, cliquez avec le bouton droit de la souris sur le dossier Champs de base de données de l'Explorateur de champs et cliquez sur Définir l'emplacement de la source de données.
Conseil
Pour afficher l'Explorateur de champs, cliquez sur le menu
Crystal Reports
, puis cliquez sur
Explorateur de champs
.
Source de données actuelle
Cette liste affiche la base de données et les tables actuellement utilisées dans le rapport. Le rapport principal est affiché comme entité racine.
Remarque
● Tous les sous-rapports sont placés sous un nœud de sorte que leurs sources de données soient regroupées. Une source de données utilisée dans plusieurs sous-rapports est identifiée par une icône différente au niveau de la source de données.
● Si une table est utilisée dans plusieurs sous-rapports, mais sous des noms d'alias différents, le nom réel de la table est ajouté à la suite du nom d'alias.
Lorsque vous développez le nœud Propriétés d'une source de données ou d'une table, des informations détaillées sur cet élément s'affichent. Certaines propriétés du nœud Propriétés, comme Nom de la base de données, sont associées à des options de menu contextuel.
Remplacer par
Cette liste affiche les même options que l'onglet Données de l'Expert Base de données. Voir
Onglet Données (Expert Base de données) [page 965] pour en savoir plus sur la sélection
d'une nouvelle source de données ou d'une nouvelle table.
Mettre à jour Cliquez sur ce bouton pour mettre à jour les informations de la nouvelle source de données dans la liste Source de données actuelle. Si la nouvelle source de données est différente de celle que vous remplacez, la boîte de dialogue Mappage de champs s'affiche.
Informations associées
Boîte de dialogue Mappage de champs [page 914]
Accès aux données et ajout des données [page 643]
1.7.3.1.62 Boîte de dialogue Définir les valeurs par défaut
Utilisez la boîte de dialogue Définir les valeurs par défaut pour spécifier les valeurs d'invite par défaut qui doivent apparaître dans votre champ de paramètre.
926
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Cette boîte de dialogue s'affiche lorsque vous cliquez sur Définir des valeurs par défaut dans la boîte de dialogue
Créer un champ de paramètre ou dans la boîte de dialogue Modifier le champ de paramètre.
Sélectionner dans base de données
Parcourir la table Utilisez cette liste pour choisir la table à parcourir pour les champs/valeurs à utiliser afin de modifier les valeurs par défaut de votre champ de paramètre.
Parcourir le champ Utilisez cette liste pour choisir le champ à parcourir pour les champs/valeurs à utiliser afin de modifier les valeurs par défaut de votre champ de paramètre.
Sélectionnez ou saisissez une valeur
Utilisez cette zone pour saisir des valeurs dans la liste Valeurs par défaut. Vous pouvez taper de nouvelles valeurs dans cette zone et appuyer sur le bouton Ajouter (>) ou vous pouvez sélectionner une valeur de la liste
"Sélectionnez ou saisissez une valeur" (qui sera ensuite placée dans cette zone), puis appuyer sur le bouton
Ajouter (>).
Ajouter (>)
Ajouter tout (>>)
Utilisez le bouton Ajouter pour déplacer des valeurs de la zone Sélectionnez ou saisissez une valeur vers la liste Valeurs par défaut.
Utilisez le bouton Ajouter tout pour déplacer toutes les valeurs de la zone Sélectionnez ou saisissez une valeur vers la liste Valeurs par défaut.
Supprimer (<)
Supprimer tout
(<<)
Utilisez ce bouton pour supprimer une valeur de la liste Valeurs par défaut.
Utilisez ce bouton pour supprimer toutes les valeurs de la liste Valeurs par défaut.
Valeurs par défaut Utilisez cette zone de liste pour créer une liste de valeurs par défaut pour le champ de paramètre que vous créez. Les éléments sélectionnés pour la liste déroulante Valeurs par défaut peuvent représenter un sous-ensemble des éléments que vous avez choisis dans les listes Table à parcourir et Champ à parcourir.
Boutons fléchés d'ordre
Importer
Exporter
Définir la description
Utilisez ces boutons pour déplacer une valeur vers le haut ou vers le bas dans la liste déroulante Valeurs par défaut.
Cliquez sur ce bouton pour importer un fichier texte contenant une liste de sélection de valeurs de paramètre.
Cliquez sur ce bouton pour exporter une liste de sélection de valeurs de paramètre vers un fichier texte.
Utilisez cette option pour ajouter une description pour toute valeur de la liste déroulante
Valeurs par défaut. Cliquez sur ce bouton pour ouvrir la boîte de dialogue Définir la description.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
927
Options
Limite de longueur
Longueur min.
Longueur max.
Masque d'édition
En cochant cette case pour une valeur de type chaîne, vous pouvez déterminer la longueur minimale ou maximale d'une valeur saisie dans la boîte de dialogue Saisir des valeurs de paramètre. Cette case n'est pas cochée par défaut.
Utilisez la zone Longueur min. pour définir le nombre minimal de caractères que peut contenir votre champ de paramètre de valeur chaîne.
Utilisez la zone Longueur min. pour définir le nombre maximal de caractères que peut contenir votre champ de paramètre de valeur chaîne.
Pour un champ de paramètre de type chaîne, vous pouvez choisir d'entrer un masque d'édition dans la zone Masque d'édition plutôt que de spécifier une plage. Un masque d'édition peut être constitué d'un ensemble de caractères utilisés pour restreindre les valeurs pouvant être saisies comme valeurs de paramètres (il permet aussi de restreindre les valeurs pouvant être saisies comme valeurs d'invite par défaut).
Remarque
Lorsque vous saisissez un masque d'édition, les options de longueur deviennent inactives.
Affichage
Ordre
Trier selon
Utilisez la liste déroulante Affichage pour sélectionner la manière d'afficher les valeurs par défaut dans la boîte de dialogue Saisir des valeurs de paramètre. Si vous sélectionnez Valeur et description, les valeurs par défaut sont affichées comme valeurs avec les descriptions correspondantes. Si vous sélectionnez Description, seules les descriptions des valeurs sont affichées.
Dans la liste Ordre, vous pouvez spécifier si vous souhaitez que les valeurs par défaut soient triées. Le tri peut se faire par ordre alphabétique croissant, par ordre alphabétique décroissant, par ordre numérique croissant, par ordre numérique décroissant, par ordre DateHeure croissant, par ordre DateHeure décroissant.
Dans la zone de liste Trier selon, vous pouvez spécifier s'il faut trier les valeurs par défaut selon la valeur ou selon la description.
Remarque
Si vous appliquez un tri numérique à une valeur ou une description alphabétique, les valeurs par défaut ne seront pas triées.
Informations associées
Définition des paramètres [page 676]
Boîte de dialogue Créer un champ de paramètre [page 851]
Restriction du type et du format d'entrée dans les paramètres [page 679]
928
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.7.3.1.63 Boîte de dialogue Définir la date et l'heure d'impression
Utilisez cette boîte de dialogue pour définir la date et l'heure d'impression de votre rapport. Vous pouvez choisir la date et l'heure courantes ou spécifier une autre date et une autre heure.
Cette boîte de dialogue s'affiche lorsque vous cliquez sur le Report Designer avec le bouton droit de la souris, pointez sur Rapport, puis sélectionnez Définir la date et l'heure d'impression.
La date et l'heure d'aujourd'hui
Autre
Date
Heure
Cochez cette case pour utiliser la date et l'heure d'aujourd'hui comme date de votre rapport.
Cochez cette case pour utiliser une autre date que celle d'aujourd'hui. Lorsque vous cochez cette case, les zones modifiables Année, Mois et Jour sont activées aux emplacements où vous pouvez spécifier la date d'impression souhaitée.
Utilisez la liste déroulante Date pour sélectionner la date d'impression.
Utilisez la zone de liste Heure pour sélectionner l'heure d'impression.
Informations associées
Boîte de dialogue Paramètres par défaut [page 867]
1.7.3.1.64 Boîte de dialogue Afficher la requête SQL
Cette boîte de dialogue affiche la requête SQL que le programme envoie à votre serveur SQL. Cette boîte de dialogue s'affiche lorsque vous cliquez sur le Report Designer avec le bouton droit de la souris, pointez sur Base de données, puis cliquez sur Afficher la requête SQL.
SELECT
FROM
WHERE
SELECT répertorie tous les champs utilisés dans le rapport, y compris les champs utilisés dans les formules, les totaux, l'ordre de tri, la formule de sélection et les plages.
FROM répertorie toutes les tables utilisées dans le rapport et chaque nom de table est suivi d'un nom d'alias.
WHERE spécifie tous les liens entre les tables et les plages de champs pour le rapport.
ORDER BY ORDER BY trie les données par ordre alphabétique ou numérique croissant ou décroissant.
Informations associées
Sélection des enregistrements [page 665]
Empilage de la sélection d'enregistrements sur le serveur de base de données [page 666]
Définition des tables virtuelles basée sur une commande/requête SQL [page 647]
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
929
1.7.3.1.65 Boîte de dialogue Nom de l'expression SQL
Utilisez cette boîte de dialogue pour saisir un nom pour un champ d'expression SQL que vous créez. Cette boîte de dialogue s'affiche lorsque vous cliquez avec le bouton droit de la souris sur Champs d'expression SQL dans l'Explorateur de champs et sélectionnez Nouveau.
Conseil
Pour afficher l'Explorateur de champs, cliquez sur le menu
Crystal Reports
, puis cliquez sur
Explorateur de champs
.
Name Utilisez cette boîte de dialogue pour saisir un nom pour un champ d'expression SQL que vous créez.
Cliquez ensuite sur OK pour ouvrir l'Editeur d'expression SQL. Vous pouvez utiliser celui-ci pour entrer les expressions SQL.
Informations associées
Boîte de dialogue Editeur de formule [page 899]
Empilage de la sélection d'enregistrements sur le serveur de base de données [page 666]
1.7.3.1.66 Boîte de dialogue Liens du sous-rapport
Utilisez la boîte de dialogue Liens du sous-rapport pour spécifier le champ du rapport parent qui servira de champ de mise en relation vers les données du sous-rapport.
Cette boîte de dialogue s'affiche lorsque vous cliquez sur l'objet sous-rapport avec le bouton droit de la souris et choisissez la commande Changer les liens du sous-rapport.
Pour le sous-rapport
Champs disponibles
Ajouter (>)
Supprimer (<)
Champs auxquels relier le sous-rapport
Utilisez cette zone de liste pour sélectionner le sous-rapport que vous souhaitez relier aux données du rapport conteneur. Cette liste déroulante n'est active que si vous disposez de plusieurs sous-rapports.
Cette zone répertorie tous les champs disponibles dans le rapport conteneur auxquels vous pouvez relier votre sous-rapport.
Cliquez sur le bouton Ajouter (>) pour copier un fichier de la zone Champs disponibles vers la zone Champs auxquels relier.
Cliquez sur le bouton Supprimer (>) pour supprimer un champ de la zone Champs disponibles vers la zone Champs auxquels relier.
Cette zone affiche les champs sélectionnés actuellement auxquels vous souhaitez relier votre rapport.
930
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Champ de paramètre du sous-rapport à utiliser
Cette zone de liste s'affiche lorsque la zone Champs auxquels relier le sous-rapport contient au moins un nom de champ. Utilisez la zone de liste Champ de paramètre du sous-rapport à utiliser pour déterminer le champ de sous-rapport auquel le rapport conteneur et le sous-rapport sont reliés.
Sélectionner les données dans le sous-rapport en fonction du champ
Cochez cette case pour activer la liste Sélectionner les données dans le sous-rapport en fonction du champ.
Après avoir coché cette case, choisissez un champ dans la liste située au-dessous pour organiser les données du sous-rapport basées sur un champ spécifique.
Décochez cette case pour que le sous-rapport adopte l'organisation utilisée dans le rapport principal.
Informations associées
Insertion des sous-rapports [page 741]
1.7.3.1.67 Boîte de dialogue Mise en forme du texte
Utilisez cette boîte de dialogue pour modifier les types/styles de police, mettre en forme les paragraphes et définir les tabulations pour un objet texte. Elle apparaît lorsque vous modifiez un objet texte en sélectionnant le texte de l'objet, puis en cliquant avec le bouton droit de la souris sur le texte sélectionné et en choisissant Mettre en forme le texte.
1.7.3.1.67.1 Onglet Paragraphe (Mise en forme du texte)
Utilisez l'onglet Paragraphe afin de définir les options de mise en forme des paragraphes d'un objet texte.
Retraits
Première ligne Saisissez en pouces (ou dans l'unité de mesure par défaut de votre rapport) la valeur de l'alinéa souhaité dans un paragraphe.
Gauche Saisissez en pouces (ou dans l'unité de mesure par défaut de votre rapport) la valeur du retrait souhaité par rapport à la marge gauche de la page.
Droite Saisissez en pouces (ou dans l'unité de mesure par défaut de votre rapport) la valeur du retrait souhaité par rapport à la marge droite de la page.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
931
Espacement
Interlignage Saisissez un multiple de la taille de police que vous utilisez ou un nombre de points exact pour indiquer l'interlignage.
De Utilisez cette zone pour saisir le multiple que vous souhaitez utiliser (si vous avez sélectionné
Multiple comme Interlignage) ou le nombre de points (si vous avez sélectionné Exact comme
Interlignage).
Sens de la lecture
Gauche à droite
Droite à gauche
Sélectionnez ce bouton si le texte doit être lu de gauche à droite.
Sélectionnez ce bouton si le texte doit être lu de droite à gauche.
Alignement horizontal
Alignement Sélectionnez l'option d'alignement souhaitée pour votre paragraphe dans cette liste déroulante.
Les quatre options disponibles sont les suivantes : gauche, droite, centre et justifié.
Informations associées
Objets champ et texte [page 651]
1.7.3.1.67.2 Onglet Tabulation (Mise en forme du texte)
Utilisez l'onglet Tabulation pour définir, supprimer, modifier et éditer les tabulations dans un objet texte.
Position du taquet Entrez la position de taquet souhaitée dans cette zone. Les positions de taquet sont mesurées en pouces.
Alignement Sélectionnez, parmi les quatre options d'alignement, la position de taquet souhaitée : gauche, droite, centre et décimal.
Définir
Supprimer
Cliquez sur ce bouton pour définir une tabulation, après avoir saisi une valeur dans la zone
Position du taquet.
Lorsque vous cliquez sur ce bouton, toutes les positions de taquets sélectionnées sont supprimées.
932
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Tout supprimer Lorsque vous cliquez sur ce bouton, toutes les positions de taquets définies sont supprimées.
Informations associées
Boîte de dialogue Editeur de mise en forme [page 886]
Objets champ et texte [page 651]
1.7.3.1.68 Boîte de dialogue Titres
Utilisez la boîte de dialogue Titres pour ajouter, modifier ou supprimer un Titre, un Sous-titre, une Note en bas de page, un Titre de groupe, un Titre d'axe de données, un Titre d'axe de données2 et un Titre d'axe de série dans votre diagramme.
Cette boîte de dialogue s'affiche lorsque vous cliquez sur un diagramme avec le bouton droit de la souris, pointez sur Options du diagramme, puis sélectionnez Titres.
Titre
Sous-titre
Note de bas de page
Titre d'axe des séries
Par défaut, le titre du diagramme est placé au centre de la partie supérieure de votre diagramme
Par défaut, les sous-titres sont placés en haut, directement sous le titre du diagramme.
Par défaut, la note de bas de page est placée dans le coin inférieur droit de votre diagramme.
Dans les diagrammes 3D, les étiquettes de séries qui sont affichées normalement dans la zone de légende sont tracées le long de l'axe secondaire du groupe. Par défaut, les
étiquettes de séries sont placées dans la partie inférieure gauche du cube 3D. Ajoutez le titre de l'axe de la série pour décrire en détail les informations qui sont représentées sur cet axe.
Titre du groupe Ajoute un titre à l'axe du groupe de votre diagramme. Le titre du groupe est placé juste audessus, au-dessous ou à côté des étiquettes de l'axe du groupe.
Titre des données Ajoute un titre à l'axe primaire des données (Y1) de votre diagramme :
Titre des données2
Dans les diagrammes à axe double et bipolaires, l'axe primaire des données (Y1) affiche certains groupes de votre feuille de données et l'axe secondaire des données (Y2) trace d'autres groupes de données. Ajoute un titre à l'axe Y2 pour expliquer quels éléments sont tracés sur cet axe.
1.7.3.1.69 Paramètres 3D
Cette section décrit les options disponibles dans la boîte de dialogue Choisir un angle de visualisation. Utilisez cette boîte de dialogue pour définir les angles de visualisation dans vos diagrammes 3D.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
933
A propos des paramètres 3D
La boîte de dialogue Angles de visualisation 3D vous permet de choisir parmi plusieurs options d'angles prédéfinis. Vous pouvez non seulement effectuer un panoramique de votre diagramme 3D, le faire pivoter ou le déplacer à n'importe quel endroit de l'écran, mais vous pouvez aussi régler l'épaisseur des murs de la trame ainsi que les étirer et les réduire. La boîte de dialogue Angles de visualisation 3D vous permet de faire des présentations très créatives de vos diagrammes 3D. Outre les angles de visualisation des diagrammes 3D, vous utilisez également ces fonctionnalités dans les diagrammes 3D avancés.
1.7.3.1.69.1 Choix d'un angle de visualisation
La boîte de dialogue Choisir un angle de visualisation présente une image de tous les angles de visualisation définis. Elle peut contenir plus ou moins d'images d'angles de visualisation selon les sélections précédemment effectuées dans la section Options avancées de la boîte de dialogue.
1.7.3.1.69.1.1 Pour sélectionner un angle de visualisation défini
Procédure
1. Sélectionnez une image d'angle de visualisation.
2. Cliquez sur le bouton
OK
pour appliquer l'angle de visualisation au diagramme 3D, puis quittez pour revenir à la boîte de dialogue Choisir un angle de visualisation.
3. Cliquez sur le bouton
Options avancées
pour afficher d'autres sélections d'angle de visualisation.
934
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.7.3.1.69.2 Options avancées d'angle de visualisation
Pour commencer, cliquez sur le bouton Options avancées dans la boîte de dialogue Choisir un angle de visualisation.
Options
● Cliquez sur le bouton
Prédéfinitions
pour fermer la section des options avancées de la boîte de dialogue
Choisir un angle de visualisation
.
● A l'aide des boutons fléchés situés sous l'image d'angle de visualisation, faites défiler les différents angles de visualisation et sélectionnez-les dans la partie gauche de la boîte de dialogue. Les boutons double flèche gauche [<<] et double flèche droite [>>] permettent de faire défiler en continu la liste des angles de visualisation. Les boutons flèche simple gauche [<] et flèche simple droite [>] permettent de passer à l'angle de visualisation suivant de la liste. Le bouton carré entre les boutons fléchés permet de mettre fin au défilement continu.
● Utilisez les onglets Faire pivoter, Panoramique, Murs et Déplacer pour modifier un angle de visualisation. Voir
Rotation d'un diagramme 3D [page 935] ,
Panoramique d'un diagramme 3D [page 937] ,
Murs d'un diagramme 3D [page 938]
et Déplacement d'un diagramme 3D [page 939] .
● Après avoir modifié ou créé un angle de visualisation, cliquez sur le bouton Enregistrer pour enregistrer cet angle de visualisation sous le nom du fichier d'angle de visualisation existant.
● Cliquez sur le bouton
Enregistrer sous
pour enregistrer le nouvel angle de visualisation sous un nouveau nom.
● Cliquez sur le bouton
Renommer
pour changer le nom d'un fichier d'angle de visualisation.
● Cliquez sur le bouton
Supprimer
pour supprimer un fichier d'angle de visualisation existant.
● Cliquez sur le bouton
Dupliquer
pour créer un autre fichier d'angle de visualisation qui est le doublon d'un autre angle.
● Cliquez sur le bouton
OK
pour appliquer l'angle de visualisation à votre diagramme et fermer cette boîte de dialogue. Lorsque vous cliquez sur ce bouton, une invite vous propose d'enregistrer toutes les modifications apportées à un angle de visualisation. Vous pouvez enregistrer les modifications apportées à un angle de visualisation existant ou bien créer un angle de visualisation qui apparaîtra dans la boîte de dialogue Choisir un angle de visualisation la prochaine fois que vous sélectionnerez l'option de paramètres 3D.
● Cliquez sur le bouton
Annuler
pour fermer la boîte de dialogue sans modifier le diagramme.
1.7.3.1.69.3 Rotation d'un diagramme 3D
Vous pouvez utiliser l'onglet Faire pivoter dans la section Options avancées de la boîte de dialogue Choisir un angle de visualisation pour faire pivoter un diagramme 3D dans le sens de votre choix.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
935
1.7.3.1.69.3.1 Pour faire pivoter un diagramme 3D
Procédure
1. Cliquez sur le bouton
Options avancées
dans la boîte de dialogue Choisir un angle de visualisation.
2. Sélectionnez l'onglet
Faire pivoter
dans la section Options avancées de la boîte de dialogue Choisir un angle de visualisation.
Lorsque l'onglet Faire pivoter est sélectionné dans la section Options avancées de la boîte de dialogue Choisir un angle de visualisation, vous pouvez faire pivoter le diagramme 3D de plusieurs manières :
○ Cliquez sur les onglets de flèches de direction X, Y et Z.
X permet de faire pivoter le diagramme de la gauche vers la droite et inversement, Y du haut vers le bas et inversement, et Z d'un côté vers l'autre. Lorsque vous faites pivoter un diagramme avec les options X, Y ou Z, les flèches de l'orbite de rotation s'éclairent.
Les flèches de l'orbite de rotation correspondent aux rotations X, Y et Z. Les flèches gauche et droite correspondent à la direction X. Les flèches montante et descendante correspondent à la direction Y. Les flèches centrales correspondent à la direction Z. Vous pouvez utiliser les flèches de l'orbite de rotation pour faire pivoter un diagramme. Il suffit de cliquer sur les flèches. Elles permettent de faire pivoter le diagramme de la même façon que les boutons fléchés gauche-droite X, Y et Z.
○ Utilisez la fenêtre d'affichage de l'angle de visualisation 3D des Options avancées.
Cliquez et faites glisser le curseur de la souris dans cette fenêtre pour faire pivoter le diagramme 3D.
936
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.7.3.1.69.4 Panoramique d'un diagramme 3D
Vous pouvez utiliser l'onglet Panoramique dans la section Options avancées de la boîte de dialogue Choisir un angle de visualisation pour effectuer un panoramique et un zoom d'un diagramme 3D dans la trame du diagramme. Vous pouvez déplacer le diagramme de gauche à droite ou de haut en bas dans la trame du
.
1.7.3.1.69.4.1 Pour faire un panoramique d'un diagramme 3D
Procédure
1. Cliquez sur le bouton
Options avancées
dans la boîte de dialogue Choisir un angle de visualisation.
2. Sélectionnez l'onglet
Panoramique
dans la section Options avancées de la boîte de dialogue Choisir un angle de visualisation.
Lorsque l'onglet Panoramique est sélectionné dans la section Options avancées de la boîte de dialogue
Choisir un angle de visualisation, vous pouvez effectuer un panoramique et un zoom du diagramme 3D de plusieurs manières :
○ Cliquez sur les onglets de flèches X, Y et Zoom.
X permet d'effectuer un panoramique de la gauche vers la droite et inversement, Y du haut vers le bas et inversement et Zoom permet d'effectuer un zoom vers l'avant ou vers l'arrière.
○ Utilisez ces flèches pour effectuer un panoramique du diagramme 3D dans les directions X et Y.
○ Utilisez la fenêtre d'affichage de l'angle de visualisation 3D des Options avancées.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
937
Cliquez et faites glisser le curseur de la souris dans cette fenêtre pour effectuer un panoramique du diagramme 3D.
1.7.3.1.69.5 Murs d'un diagramme 3D
Utilisez l'onglet Murs dans la section Options avancées de la boîte de dialogue Choisir un angle de visualisation pour augmenter ou diminuer l'épaisseur des murs d'un diagramme 3D. Vous pouvez utiliser l'onglet Murs de la section Options avancées de la boîte de dialogue Choisir un angle de visualisation pour modifier les murs d'un diagramme 3D.
1.7.3.1.69.5.1 Pour modifier l'épaisseur des murs d'un diagramme 3D
Procédure
1. Cliquez sur le bouton
Options avancées
dans la boîte de dialogue Choisir un angle de visualisation.
2. Sélectionnez l'onglet
Murs
dans la section Options avancées de la boîte de dialogue Choisir un angle de visualisation.
Lorsque l'onglet Murs est sélectionné dans la section Options avancées de la boîte de dialogue Choisir un angle de visualisation, vous pouvez modifier la taille des murs d'un diagramme 3D de plusieurs manières :
○ Utilisez les options X, Y et Z des zones Longueur et Epaisseur pour augmenter ou diminuer la longueur et l'épaisseur des murs.
X permet de contrôler la longueur et l'épaisseur le long de l'axe des X, Y, la longueur et l'épaisseur le long de l'axe des Y et Z, la longueur et l'épaisseur le long de l'axe des Z.
Lorsque vous sélectionnez Relier, les options Y et Z sont grisées dans la zone Longueur ou Epaisseur.
Lorsque vous sélectionnez Relier, les modifications apportées à X sont dupliquées pour Y et Z.
○ Utilisez les flèches du diagramme dans l'onglet Murs pour modifier la longueur et l'épaisseur des murs d'un diagramme 3D.
Les flèches du diagramme correspondent aux flèches de longueur et d'épaisseur X, Y et Z.
938
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Les flèches supérieures gauches correspondent à l'épaisseur du mur X. Les flèches inférieures centrales correspondent à l'épaisseur du mur Y. Les flèches supérieures droites correspondent à l'épaisseur du mur Z. Les flèches inférieures droites correspondent à la longueur du mur X. Les flèches centrales supérieures correspondent à la longueur du mur Y. Les flèches inférieures gauches correspondent à la longueur du mur Z.
○ Utilisez la fenêtre d'affichage de l'angle de visualisation 3D des Options avancées.
Cliquez et faites glisser le curseur de la souris dans cette fenêtre pour modifier la longueur et l'épaisseur des murs d'un diagramme 3D.
1.7.3.1.69.6 Déplacement d'un diagramme 3D
Utilisez l'onglet Déplacer dans la section Options avancées de la boîte de dialogue Choisir un angle de visualisation pour accentuer le déplacement et définir la perspective d'un diagramme 3D dans la trame du diagramme. Vous pouvez déplacer le diagramme le long des axes X, Y et Z dans la trame du diagramme. Pour déplacer le
diagramme de gauche à droite ou de haut en bas, voir Panoramique d'un diagramme 3D [page 937]
.
1.7.3.1.69.6.1 Pour déplacer un diagramme 3D
Procédure
1. Cliquez sur le bouton
Options avancées
dans la boîte de dialogue Choisir un angle de visualisation.
2. Sélectionnez l'onglet
Déplacer
dans la section Options avancées de la boîte de dialogue Choisir un angle de visualisation.
Lorsque l'onglet Déplacer est sélectionné dans la section Options avancées de la boîte de dialogue Choisir un angle de visualisation, vous pouvez déplacer le diagramme 3D de plusieurs manières :
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
939
○ Utilisez les onglets de flèches X, Y, Z et Perspective pour déplacer et modifier la perspective du diagramme.
X permet de déplacer le diagramme 3D du coin inférieur droit vers le coin supérieur gauche, Y de haut en bas et inversement et Z du coin supérieur droit vers le coin inférieur gauche.
○ Utilisez ces flèches pour déplacer le diagramme dans les directions X, Y et Z.
Les flèches gauche et droite correspondent à X. Les flèches montante et descendante correspondent à Y.
Les flèches centrales plus petites correspondent à Z.
○ Utilisez la fenêtre d'affichage de l'angle de visualisation 3D des Options avancées.
Cliquez et faites glisser le curseur de la souris dans cette fenêtre pour déplacer le diagramme 3D dans la trame du diagramme.
1.7.3.2 Assistants et experts de SAP Crystal Reports
SAP Crystal Reports intègre un certain nombre d'experts et d'assistants qui vous aident, étape par étape, à créer différents types de rapports, préparer des diagrammes, définir le format général de votre rapport, relier des bases de données associées, sélectionner des enregistrements et des groupes à insérer dans le rapport et regrouper des fichiers à inclure lors de la distribution de votre rapport.
Il vous suffit de vous conformer aux instructions des boîtes de dialogue ou des onglets qui s'affichent et de vous laisser guider tout au long des procédures avec un minimum d'effort qui, sans l'aide de l'expert, seraient très complexes.
1.7.3.2.1 Assistants de création de rapports
L'Assistant de création de rapports vous guide tout au long de la création d'un nouveau rapport. Cette boîte de dialogue s'affiche lorsque vous créez un rapport Crystal et que vous choisissez l'option "en utilisant l'Assistant de création de rapports" dans la boîte de dialogue Galerie de rapports Crystal.
Les Assistants de création de rapports suivants sont inclus dans SAP Crystal Reports :
● Standard
940
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
● Tableau croisé
● Etiquette de publipostage
Chaque assistant de ce type est composé de plusieurs écrans contenant chacun des instructions détaillées que vous suivez pour procéder à la création du rapport spécifié. Les assistants de création de tableaux croisés et d'étiquettes de publipostage possèdent des écrans propres à leur type de rapport.
Informations associées
Assistant de création de rapports étiquette de publipostage [page 637]
Assistant de création de tableaux croisés [page 636]
Assistant de création de rapports standard [page 636]
Conception de nouveaux rapports [page 639]
1.7.3.2.1.1 Ecran Données (Assistant de création de rapports)
L'écran Données s'affiche dans l'Assistant de création de rapports lorsque vous sélectionnez l'un des assistants dans la boîte de dialogue Galerie de rapports Crystal, à la création d'un rapport.
Utilisez l'écran Données pour sélectionner la source de données et les tables de votre nouveau rapport.
Sources de données disponibles
Sélectionnez la source de données dans l'arborescence des sources de données disponibles. Pour en savoir plus sur la manière d'utiliser cette liste, voir
(Expert Base de données) [page 965]
.
Tables sélectionnées Une fois que vous avez sélectionné une source de données, utilisez la flèche > pour ajouter les tables que vous souhaitez utiliser dans votre rapport.
Informations associées
Accès aux données et ajout des données [page 643]
Ecran Mise en relation (Assistant de création de rapports) [page 941]
1.7.3.2.1.2 Ecran Mise en relation (Assistant de création de rapports)
Utilisez l'écran Mise en relation pour relier des tables dans votre nouveau rapport. L'écran Mise en relation s'affiche dans l'Assistant de création de rapports lorsque vous avez sélectionné au moins deux tables dans l'
Données (Assistant de création de rapports) [page 941] .
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
941
Les fonctions de cet onglet sont les mêmes que celles de l'
Onglet Liens (Expert Base de données) [page 967] de
la boîte de dialogue Expert Base de données.
1.7.3.2.1.3 Ecran Champs (Assistant de création de rapports)
Utilisez l'écran Champs pour sélectionner les champs que vous souhaitez inclure dans votre rapport.
Champs disponibles
Parcourir les données
Rechercher un champ
Boutons fléchés d'ajout ou de suppression
Champs à afficher
Boutons fléchés vers le bas ou vers le haut
Cette liste contient tous les champs que vous pouvez utiliser dans votre rapport.
Cliquez sur ce bouton pour parcourir les données contenues dans le champ sélectionné dans la liste Champs disponibles.
Cliquez sur ce bouton pour saisir le nom d'un champ à rechercher dans la liste
Champs disponibles.
Utilisez la flèche > située en regard de la liste Champs à afficher pour ajouter des champs de la liste déroulante Champs disponibles. Utilisez les flèches < pour supprimer des champs ajoutés. Les flèches doubles permettent d'ajouter ou de supprimer tous les champs.
Cette liste contient tous les champs de rapport actifs dans votre rapport.
Utilisez les flèches vers le haut et vers le bas situées en regard de la liste Champs à afficher pour modifier l'ordre des champs ajoutés à partir de la liste Champs disponibles.
Informations associées
Boîte de dialogue Rechercher un nom de champ [page 885]
Objets champ et texte [page 651]
1.7.3.2.1.4 Ecran Regroupement (Assistant de création de rapports)
Utilisez l'écran Regroupement pour spécifier les modalités de regroupement des champs dans votre rapport. La création d'un groupe est une étape facultative de l'assistant.
Champs disponibles
Cette liste contient tous les champs que vous pouvez utiliser dans votre rapport. La liste est basée sur les champs que vous avez choisis dans l'écran Champs (Assistant de création de rapports) et sur les tables sélectionnées dans l'écran Données (Assistant de création de rapports).
942
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Parcourir les données
Rechercher un champ
Boutons fléchés d'ajout ou de suppression
Regrouper par
Cliquez sur ce bouton pour parcourir les données contenues dans le champ sélectionné dans la liste Champs disponibles.
Cliquez sur ce bouton pour saisir le nom d'un champ à rechercher dans la liste Champs disponibles.
Utilisez la flèche > située en regard de la liste déroulante Regrouper par pour ajouter des champs de la liste déroulante Champs disponibles. Utilisez les flèches < pour supprimer des champs ajoutés. Les flèches doubles permettent d'ajouter ou de supprimer tous les champs.
Cette liste répertorie tous les champs à regrouper. Les champs sont ajoutés hiérarchiquement. Cette hiérarchie établit l'ordre dans lequel les groupes apparaîtront dans le rapport. Vous pouvez modifier l'ordre de la hiérarchie à l'aide des boutons fléchés vers le haut et vers le bas.
Vous pouvez également définir l'ordre de tri de chaque champ que vous ajoutez à la liste
Regrouper par. Sélectionnez un ordre de tri dans la liste adjacente :
● Cliquez sur l'ordre croissant pour trier par ordre croissant (A à Z, 1 à 9) les valeurs du champ sélectionné dans la liste Regrouper par.
● Cliquez sur l'ordre décroissant pour trier par ordre décroissant (Z à A, 9 à 1) les valeurs du champ sélectionné dans la liste Regrouper par.
Boutons fléchés vers le bas ou vers le haut
Utilisez les flèches vers le haut et vers le bas situées en regard de la liste Regrouper par pour modifier l'ordre des champs ajoutés à partir de la liste Champs disponibles.
1.7.3.2.1.5 Ecran Résumés (Assistant de création de rapports)
Utilisez l'écran Résumés pour choisir les champs qui représenteront des sous-totaux, des totaux, etc. Cet écran
[page 942] . La création d'un champ de résumé est une étape facultative de l'assistant.
Champs disponibles Cette liste contient tous les champs de rapport disponibles pour le calcul des totaux dans votre rapport.
Parcourir les données Cliquez sur ce bouton pour parcourir les données contenues dans le champ sélectionné dans la liste Champs disponibles.
Rechercher un champ Cliquez sur ce bouton pour saisir le nom d'un champ à rechercher dans la liste Champs disponibles.
Champs résumés Cette liste contient tous les champs de total actuellement utilisés dans votre rapport.
Boutons fléchés d'ajout ou de suppression
Utilisez la flèche > située en regard de la liste déroulante Champs de résumé pour ajouter des champs de la liste déroulante Champs disponibles. Utilisez les flèches < pour supprimer des champs ajoutés. Les flèches doubles permettent d'ajouter ou de supprimer tous les champs.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
943
Options de résumé Cliquez sur une option de résumé pour le champ sélectionné dans la liste Résumé. Ces options vous permettent de calculer le total d'un champ, de calculer le nombre d'entrées, etc.
Informations associées
Masquage des détails dans des rapports de résumé [page 688]
Choix de conception pour optimiser les performances [page 760]
1.7.3.2.1.6 Ecran Tri de groupes (Assistant de création de rapports)
Utilisez l'écran Tri de groupes pour trier des groupes créés dans l'écran Regroupement. Vous pouvez trier tous les groupes ou uniquement les 5 premiers ou derniers groupes. Lorsque vous triez les 5 premiers ou derniers groupes, vous pouvez également choisir le champ résumé sur lequel vous souhaitez baser le tri.
et un résumé dans l'
Ecran Résumés (Assistant de création de rapports) [page 943]
. La création d'un tri de groupes est une étape facultative de l'assistant.
Groupe à trier
Options de tri des groupes
Comparaison des valeurs de résumé
Sélectionnez le groupe à trier dans une liste de groupes créée dans l'écran
Regroupement.
Sélectionnez une option de tri de groupes.
Si vous choisissez l'option 5 premiers groupes ou 5 derniers groupes, votre rapport affiche les données uniquement pour ces groupes. Aucun autre groupe n'apparaît dans votre rapport.
Si vous avez choisi l'option 5 premiers groupes ou 5 derniers groupes comme option de tri de votre groupe, vous devez sélectionner un champ résumé comme base de votre tri. Les options proposées dans cette liste déroulante correspondent aux résumés que vous avez créés dans l'écran Résumés.
Informations associées
Regroupement, tri et calcul de totaux des données [page 682]
944
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.7.3.2.1.7 Ecran Diagramme (Assistant de création de rapports)
Utilisez l'écran Diagramme pour insérer un graphe ou un diagramme dans votre rapport. Cet écran est légèrement différent dans les autres assistants de création de rapports, à l'exception de l'Assistant de création d'étiquettes de publipostage.
Dans l'Assistant de création de rapports standard, l'écran Diagramme n'apparaît que si vous avez spécifié un
groupe dans l' Ecran Regroupement (Assistant de création de rapports) [page 942]
dans tous les assistants.
Types de diagramme
Cliquez sur le type de diagramme que vous souhaitez ajouter à votre rapport. Vous disposez de trois options :
● Diagramme en barres
● Diagramme en courbes
● Diagramme à secteurs
Titre du diagramme Ajoutez un titre à votre diagramme.
Au changement de Sélectionnez le champ de groupe que vous souhaitez utiliser comme condition pour tracer des valeurs dans votre graphique ou votre diagramme. Des points seront tracés à chaque modification de la valeur du champ. Vous pouvez choisir l'un des groupes créés dans l'
Ecran Regroupement (Assistant de création de rapports) [page 942]
.
Subdivisé par Utilisez cette liste pour choisir la ligne ou la colonne secondaire sur laquelle baser votre diagramme. Cliquez sur cette liste pour afficher tous les champs de ligne/colonne de votre rapport que vous pouvez choisir.
Afficher le résumé Utilisez cette liste pour sélectionner le champ de résumé dont vous souhaitez afficher les
valeurs dans votre graphique. Vous pouvez choisir l'un des groupes créés dans l' Ecran
Résumés (Assistant de création de rapports) [page 943] .
Informations associées
Modèles de diagrammes [page 731]
1.7.3.2.1.8 Ecran Sélection d'enregistrements (Assistant de création de rapports)
Utilisez l'écran Sélection d'enregistrements pour choisir les champs qui permettront de sélectionner (ou de filtrer) les enregistrements dans votre rapport. Une sélection de ce type permet de restreindre la quantité de données dans votre rapport et d'augmenter la vitesse de traitement. La création d'une sélection d'enregistrements est une
étape facultative de l'assistant.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
945
Champs disponibles
Champs de filtre
Boutons fléchés d'ajout ou de suppression
Options de sélection
Cette liste contient les champs de rapport que vous pouvez actuellement sélectionner dans votre rapport.
Cette liste contient les champs actuellement sélectionnés en tant que filtre pour votre rapport.
Utilisez la flèche > située en regard de la liste déroulante Champs de filtres pour ajouter des champs de la liste déroulante Champs disponibles. Utilisez les flèches < pour supprimer des champs ajoutés.
Lorsque vous ajoutez un champ, une liste d'options de sélection s'affiche sous la liste
Champs de filtre. Les options de la liste sont dynamiques et varient selon le champ sélectionné.
● Utilisez les zones de liste qui s'affichent pour sélectionner la condition qui permet de compléter au mieux la phrase suivante :
"Je voudrais sélectionner tous les enregistrements dans lesquels la valeur du champ sélectionné est"
● Les options de sélection vous permettent de créer une sélection d'enregistrements semblable à la suivante :
"Je voudrais sélectionner tous les enregistrements dans lesquels la valeur du champ
Ventes est comprise entre 10 000 et 20 000".
Informations associées
Filtrage des données [page 665]
1.7.3.2.1.9 Style de rapport (Assistant de création de rapports)
Utilisez l'écran Style de rapport pour sélectionner un modèle de mise en forme prédéfini à appliquer à votre rapport. L'ajout d'un style est une étape facultative de l'assistant.
Styles disponibles Cette zone affiche les styles que vous pouvez utiliser dans votre rapport. Sélectionnez le style de votre choix dans la liste.
Aperçu Cette zone affiche un exemple du style sélectionné dans la zone Styles disponibles.
Informations associées
Mise en forme absolue [page 714]
Mise en forme conditionnelle [page 716]
Mise en forme des sections de rapport [page 632]
946
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.7.3.2.1.10 Ecran Tableau croisé (Assistant de création de tableaux croisés)
Utilisez l'écran Tableau croisé pour créer et mettre en forme un objet tableau croisé dans votre rapport. Cet écran n'apparaît que dans l'Assistant de création de tableaux croisés.
Champs disponibles
Cette liste contient toutes les tables et tous les champs activés dans votre rapport.
Sélectionnez le champ que vous souhaitez utiliser et faites-le glisser vers la liste appropriée ou cliquez sur le bouton fléché correspondant. Répétez l'opération pour ajouter d'autres champs.
Parcourir les données
Rechercher un champ
Cliquez sur le bouton Parcourir les données pour afficher les valeurs d'un champ sélectionné dans la liste Champs disponibles.
Cliquez sur ce bouton pour saisir le nom d'un champ à rechercher dans la liste Champs disponibles.
Boutons fléchés d'ajout ou de suppression
Utilisez les flèches > situées en regard de chaque liste pour ajouter des champs de la liste déroulante Champs disponibles. Utilisez les flèches < pour supprimer des champs ajoutés.
Boutons fléchés vers le bas ou vers le haut
Utilisez les flèches vers le haut et vers le bas situées en regard de chaque liste pour modifier l'ordre des champs ajoutés à partir de la liste Champs disponibles.
Colonnes Cette liste répertorie les champs que vous avez sélectionnés comme en-têtes de colonne pour votre tableau croisé. S'il y a plusieurs en-têtes de colonne, ceux-ci seront affichés dans votre rapport dans l'ordre de cette liste.
Pour ajouter un en-tête de colonne à cette liste, sélectionnez un champ dans la liste déroulante Champs disponibles, puis faites-le glisser dans la liste ou cliquez sur la flèche > située en regard de la liste déroulante Colonnes.
Lignes
Champs de résumé
Si vous sélectionnez un champ de date ou booléen, la liste adjacente devient accessible et inclut des options qui s'appliquent à ce type de champ. Par exemple, si vous choisissez un champ de date, vous pouvez notamment sélectionner pour chaque jour, pour chaque semaine, pour chaque quinzaine, etc.
Cette liste répertorie les champs que vous avez sélectionnés comme en-têtes de ligne pour votre tableau croisé. S'il y a plusieurs en-têtes de ligne, ceux-ci seront affichés dans votre rapport dans l'ordre de la liste.
Pour ajouter un en-tête de ligne à cette liste, sélectionnez un champ dans la liste déroulante
Champs disponibles, puis faites-le glisser dans la liste ou cliquez sur la flèche > située en regard de la liste déroulante Lignes.
Si vous sélectionnez un champ de date ou booléen, la liste adjacente devient accessible et inclut des options qui s'appliquent à ce type de champ. Par exemple, si vous choisissez un champ booléen, vous pouvez notamment sélectionner à chaque changement, lors du changement en oui, lors du changement en non, etc.
Cette liste répertorie les champs que vous avez sélectionnés comme en-têtes de champ de résumé pour votre tableau croisé. S'il y a plusieurs en-têtes de champ résumé, ceux-ci seront affichés dans votre rapport dans l'ordre de la liste.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
947
Pour ajouter un en-tête de champ de résumé à cette liste, sélectionnez un champ dans la liste déroulante Champs disponibles, puis faites-le glisser dans la liste ou cliquez sur la flèche > située en regard de la liste déroulante Champs de résumé.
Si vous ajoutez votre champ de résumé, la liste adjacente devient accessible et inclut des options de résumé. Sélectionnez le type de résumé que vous souhaitez appliquer au champ.
Informations associées
Objets tableau croisé [page 744]
1.7.3.2.1.11 Ecran Style du quadrillage (Assistant de création de tableaux croisés)
Utilisez l'écran Style du quadrillage pour sélectionner un style prédéfini pour votre tableau croisé.
Styles disponibles
Aperçu avant impression
Cette zone contient les styles de mise en forme que vous pouvez utiliser pour votre tableau croisé. Sélectionnez le style de votre choix dans la liste.
Cette zone affiche un exemple du style sélectionné dans la liste Styles disponibles.
Informations associées
Mise en forme absolue [page 714]
Mise en forme conditionnelle [page 716]
Mise en forme des sections de rapport [page 632]
1.7.3.2.1.12 Ecran Etiquette (Assistant de création de rapports étiquette de publipostage)
Utilisez l'écran Etiquette pour définir les options de vos étiquettes de publipostage. Cet écran vous permet d'imprimer des données sur pratiquement tous les types d'étiquettes disponibles dans le commerce pour les imprimantes ligne par ligne (matricielles) ou page par page (laser ou à jet d'encre). Sélectionnez les paramètres et les commandes de mise en forme de cet onglet pour peaufiner l'impression de vos étiquettes en fonction de vos besoins.
Type d'étiquette
Vous pouvez définir votre propre type d'étiquette en sélectionnant Etiquette définie par l'utilisateur dans cette liste. Pour vous faciliter la tâche, vous pouvez toutefois utiliser les
948
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Taille de l'étiquette
Espacement entre les
étiquettes modèles prédéfinis que propose le programme pour de nombreux autres types d'étiquettes.
Vous trouverez la liste de ces étiquettes dans la liste Type d'étiquette de publipostage.
Lorsque vous choisissez un modèle d'étiquette prédéfini, le programme définit automatiquement les spécifications de l'étiquette concernée.
Ces zones modifiables permettent de spécifier les dimensions (hauteur et largeur) d'une
étiquette. Ces informations se trouvent généralement sur l'emballage des étiquettes. Il vous suffit de saisir les valeurs de hauteur et de largeur dans les zones modifiables appropriées.
L'unité de mesure utilisée dans la boîte de dialogue (pouce ou centimètre) correspond à celle définie dans Options régionales du Panneau de configuration Windows.
Ces zones modifiables permettent de spécifier la zone vide (espacement, reliure, etc.) entre les
étiquettes. Il suffit de mesurer les espacements, puis de saisir les valeurs horizontale et verticale dans les zones modifiables appropriées.
Horizontal Il s'agit de l'espacement horizontal entre les étiquettes sur la page. Lorsque la page ne contient qu'une seule étiquette, il n'y a pas d'espacement horizontal.
Vertical Il s'agit de l'espacement vertical entre les étiquettes sur la page.
Remarque
L'unité de mesure utilisée dans la boîte de dialogue (pouce ou centimètre) correspond à celle définie dans Options régionales du Panneau de configuration
Windows.
Marges de la page
Ces zones modifiables permettent de définir les marges du haut, du bas, de gauche et de droite de votre page. Il vous suffit de mesurer les marges et de saisir les valeurs dans les zones modifiables appropriées.
Remarque
● Toutes les marges sont calculées à partir du bord du papier. Par exemple, un paramètre de .5 pouce permet de définir une marge d'un demi-pouce.
● Vous ne pouvez pas définir le format du papier au moyen des marges ; pour ce faire, vous devez utiliser la liste déroulante Format dans la boîte de dialogue Configuration de l'imprimante.
● L'unité de mesure utilisée dans la boîte de dialogue (pouce ou centimètre) correspond à celle définie dans Options régionales du Panneau de configuration Windows.
Sens de l'impression
Nombre d'étiquettes
La section Sens de l'impression permet de spécifier le chemin suivi par le programme, lors de l'impression des données sur vos étiquettes.
Horizontalement, puis verticalement
Verticalement, puis horizontalement
Imprime les données de gauche à droite sur la première ligne des
étiquettes, puis sur la deuxième, etc.
Imprime les données de haut en bas dans la première colonne d'étiquettes, puis dans la deuxième, etc.
Cette zone d'informations affiche le nombre maximal d'étiquettes censées être imprimées horizontalement et verticalement sur la page en fonction des paramètres que vous avez définis
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
949
dans les zones modifiables Marges, Taille de l'étiquette de publipostage et Espacement entre les étiquettes et du format de papier utilisé (sélectionné dans le Panneau de configuration
Windows).
Remarque
● Le programme affiche uniquement le nombre d'étiquettes complètes censées être imprimées. Par exemple, s'il détermine qu'il existe un espace suffisant pour imprimer
2,75 étiquettes sur la page, il affiche 2 comme paramètre Horizontalement/page et imprime uniquement deux étiquettes sur la page.
● Si vous souhaitez imprimer horizontalement un nombre d'étiquettes inférieur à celui calculé (moins de colonnes), augmentez la taille de la marge de droite, de la marge de gauche et de l'espacement horizontal jusqu'à ce que la zone Horizontalement/page affiche le nombre souhaité.
Informations associées
Assistants de création de rapports [page 940]
1.7.3.2.2 Boîte de dialogue Expert Mise en forme de la couleur du diagramme
L'Expert Mise en forme de la couleur du diagramme s'affiche lorsque vous cliquez sur le bouton Mise en forme
dans la zone "Couleur du diagramme" de l' Onglet Options (Expert Diagramme) [page 957]
. L'expert vous permet d'appliquer une couleur de façon conditionnelle en fonction des champs de valeurs du diagramme.
Appliquez une couleur à l'élément sélectionné en spécifiant une condition.
La boîte de dialogue se compose de deux zones : la zone Liste d'éléments affiche les conditions de formule et la zone Editeur d'éléments vous permet de créer ces conditions.
Remarque
● Si vous utilisez un diagramme en courbes, celui-ci doit disposer de marqueurs de données pour que vous puissiez visualiser la mise en forme conditionnelle.
● Un diagramme en aires doit avoir deux valeurs "Au changement de" pour que la mise en forme conditionnelle apparaisse.
● Après avoir appliqué la mise en forme conditionnelle, vous devez sélectionner "Couleur par groupe" dans l'onglet Apparence de la boîte de dialogue Options du diagramme pour pouvoir visualiser votre mise en forme. Pour définir cette option, cliquez avec le bouton droit de la souris sur votre diagramme, pointez sur
Options du diagramme dans le menu contextuel, puis sélectionnez Général dans le sous-menu qui s'affiche. Cette remarque s'applique aux diagrammes à courbes, à colonnes 3D et à surface 3D qui présentent un champ "Au changement de", ainsi qu'aux diagrammes à barres, à axe numérique, à surface
3D, de type radar, boursier et jauge possédant deux résumés.
950
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Liste d'éléments
Priorité
Nouveau
Supprimer
La Liste d'éléments affiche les conditions de formule de couleur du diagramme créées pour le champ actuellement sélectionné.
Utilisez les boutons Priorité de la Liste d'éléments de l'Expert Mise en forme de la couleur du diagramme pour définir les priorités des formules.
Cliquez sur ce bouton pour créer une formule possédant les valeurs par défaut.
Utilisez le bouton Supprimer pour ignorer les formules de mise en forme de la couleur du diagramme non voulues pour le champ actuellement sélectionné.
La valeur
Comparaison
Utilisez cette liste pour sélectionner le champ sur lequel baser la condition. En d'autres termes, choisissez un champ pour X dans la phrase suivante : "Si la valeur du champ X remplit la condition A, appliquer alors la couleur sélectionnée".
Dans cette liste, sélectionnez un type comparaison pour votre formule conditionnelle.
Cette phrase comparative sert d'opérateur dans votre formule conditionnelle.
Valeurs de champ Saisissez dans cette zone la valeur que vous souhaitez appliquer à la mise en forme de la couleur. Par exemple, pour appliquer la couleur rouge lorsque la valeur est égale à
25 000 $, saisissez la valeur 25 000 dans cette zone.
Mettre en forme la couleur
Si le champ sélectionné dans la liste déroulante "Valeur de" n'est pas numérique, vous pouvez alors effectuer une sélection dans une liste de valeurs.
Utilisez cette liste pour sélectionner une couleur pour la valeur de champ que vous souhaitez appliquer à la mise en forme conditionnelle de la couleur.
Informations associées
Insertion des diagrammes [page 730]
Modèles de diagrammes [page 731]
1.7.3.2.3 Expert Diagramme
Utilisez l'Expert Diagramme pour préparer les diagrammes que vous souhaitez insérer dans votre rapport.
Lorsque l'Expert Diagramme apparaît, l'onglet Type est activé.
1.7.3.2.3.1 Onglet Type (Expert Diagramme)
L'onglet Type propose quinze types de diagramme à insérer dans un rapport. Cliquez sur le bouton du type de diagramme voulu pour que Crystal Reports commence la construction d'un diagramme de ce type que vous pouvez, le cas échéant, personnaliser davantage.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
951
Définir automatiquement les options du diagramme
Cochez cette case pour que l'Expert Diagramme utilise les options par défaut des onglets Axes et Options. Vérifiez que cette case n'est pas cochée si vous souhaitez personnaliser certaines propriétés du diagramme, telles que l'échelle des axes, la légende et les points de données.
Les paramètres suivants ont des valeurs par défaut lorsque la case "Définir automatiquement les options du diagramme" est cochée :
● Valeurs des données
● Nombre de divisions
● Points de données
● Personnaliser les paramètres
● Légende
Type de diagramme
Vertical/Horizontal
Utilisez la liste déroulante Type de diagramme pour sélectionner le type de diagramme voulu. Une fois le type de diagramme sélectionné, vous pouvez utiliser les boutons situés à droite de la liste déroulante pour sélectionner le format du type de diagramme
à utiliser.
Utilisez les boutons d'option Vertical et Horizontal pour spécifier si le diagramme doit représenter les valeurs croissantes à la verticale ou à l'horizontale.
Ces options ne sont disponibles que pour les types de diagramme en barres, en courbes et en aires.
Informations associées
Modèles de diagrammes [page 731]
1.7.3.2.3.2 Onglet Données (Expert Diagramme)
Emplacement
La section Emplacement permet de déterminer l'endroit exact où vous souhaitez placer le diagramme dans votre rapport, ainsi que sa fréquence d'affichage dans le rapport.
Placer le diagramme
Utilisez cette liste pour choisir la section de rapport dans laquelle vous souhaitez placer le diagramme. Votre diagramme peut figurer une fois par rapport ou une fois par groupe (la section de groupe contenant le champ de synthèse sur lequel le diagramme est basé).
Remarque
L'emplacement choisi pour le diagramme affecte la manière dont les données du diagramme peuvent être subdivisées.
952
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
En-tête/pied de page
Utilisez les boutons de l'option En-tête/pied de page pour afficher un diagramme dans la section En-tête de groupe ou dans la section Pied de page de groupe d'un rapport. Si le diagramme figure une fois par rapport, le choix effectué dans En-tête/pied de page place ce diagramme dans la section En-tête du rapport ou dans la section Pied de page du rapport.
Disposition
La section Mise en page permet de déterminer la mise en page réelle du diagramme, selon les données qu'il contient. Il y a quatre options :
● Affichage de l'option Avancé
● Affichage de l'option Groupe
● Affichage de l'option Tableau croisé
● Affichage de l'option OLAP
Affichage de l'option Avancé
Champs disponibles
Cette liste répertorie l'ensemble des champs que vous pouvez utiliser dans votre diagramme.
Cliquez sur le bouton Ajouter (>) pour transférer le ou les champs sélectionnés de la liste déroulante Champs disponibles vers la liste déroulante Au changement de. Cliquez sur le bouton Supprimer (<) pour supprimer le ou les champs sélectionnés de la liste déroulante Au changement de.
Parcourir Cliquez sur ce bouton pour parcourir les valeurs pour le champ sélectionné dans la liste
Champs disponibles.
Au changement de
Utilisez les options de cette liste pour déterminer les valeurs que vous souhaitez afficher dans votre diagramme.
● Choisissez cette option pour afficher des valeurs résumées correspondant au champ sélectionné pour la zone située sous la liste.
Par exemple, si vous choisissez "Pays", vous obtiendrez des valeurs résumées pour chaque pays.
● Sélectionnez "Pour chaque enregistrement" afin d'afficher des valeurs pour chaque enregistrement de votre rapport.
Remarque
Cette option ne vous oblige pas à sélectionner un champ pour la zone située sous la liste.
● Choisissez "Tous les enregistrements" pour afficher une valeur résumée correspondant au total général de tous les enregistrements de votre rapport.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
953
Remarque
Cette option ne vous oblige pas à sélectionner un champ pour la zone située sous la liste.
Ordre
N premiers
Afficher les valeurs
Ne pas résumer les valeurs
Si vous devez choisir un champ pour la zone située sous la liste "Au changement de", utilisez les boutons fléchés pour ajouter ou supprimer des champs sélectionnés dans la liste Champs disponibles.
Cliquez sur le bouton Ordre pour modifier l'ordre de tri du champ sélectionné. Lorsque vous cliquez sur ce bouton, la
Boîte de dialogue Ordre de tri du diagramme [page 845]
s'affiche.
Ce bouton est actif à condition qu'un seul et unique champ ait été sélectionné dans la liste déroulante "Au changement de".
Cliquez sur le bouton N premiers pour trier le champ sélectionné selon des valeurs N premiers,
N derniers ou Tout trier. Lorsque vous cliquez sur ce bouton, l'Expert N premiers/Tri de groupes apparaît.
Ce bouton est actif à condition qu'un seul et unique champ ait été sélectionné dans la liste déroulante "Au changement de".
Cette liste déroulante affiche le champ choisi comme valeur pour votre diagramme. Des points seront tracés pour ces valeurs sur le diagramme à chaque modification de la condition sélectionnée dans la liste déroulante "Au changement de". Par exemple, si vous créez un diagramme sur la base des ventes de l'année précédente de tous vos clients, vous sélectionnerez le champ Nom du client comme condition et le champ Ventes de l'année dernière comme valeur. Chaque fois que le Nom du client change, un point est tracé, selon la valeur de ses ventes de l'année précédente.
Utilisez les boutons fléchés pour ajouter ou supprimer les champs sélectionnés dans la liste
Afficher les valeurs. Cliquez sur la flèche double pour supprimer tous les champs de la liste
Afficher les valeurs.
Utilisez la case à cocher Ne pas résumer les valeurs pour définir si Crystal Reports doit automatiquement résumer les valeurs qui apparaissent dans le diagramme.
Remarque
Cette option n'est disponible que pour les champs de formule.
Définir l'opération de résumé
● Si vous cochez cette case, le programme ne résumera pas les valeurs.
● Si vous la décochez, le programme résumera les valeurs de la carte et le bouton Définir l'opération de résumé s'activera. Le programme ajoute un champ de résumé à la liste
Valeurs de carte.
Utilisez ce bouton afin de configurer ou modifier l'opération de résumé pour le champ sélectionné. Lorsque vous cliquez sur ce bouton, la
Boîte de dialogue Modifier le résumé [page
878] s'affiche. Ce bouton est actif à condition que vous ayez désactivé l'option Ne pas résumer
les valeurs et que vous ayez sélectionné un champ dans la liste Valeurs de carte.
954
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Affichage de l'option Groupe
Au changement de
Afficher
Sélectionnez le champ que vous voulez utiliser comme condition pour tracer des valeurs dans votre diagramme. Des points seront tracés à chaque modification de la valeur du champ de condition.
Utilisez cette liste pour sélectionner le champ de résumé dont vous souhaitez afficher les valeurs dans votre graphique. Utilisez la boîte de dialogue Insérer un résumé pour créer un champ de résumé.
Affichage de l'option Tableau croisé
Au changement de Sélectionnez le champ que vous voulez utiliser comme condition pour tracer des valeurs dans votre diagramme. Des points seront tracés à chaque modification de la valeur du champ de condition.
Subdivisé par
Afficher
Utilisez cette liste pour choisir la ligne ou la colonne secondaire sur laquelle baser votre diagramme. Lorsque vous cliquez sur cette zone, une liste complète s'affiche, répertoriant des champs de ligne/colonne dans votre rapport que vous pouvez choisir le cas échéant.
Utilisez cette liste pour sélectionner le champ de résumé dont vous souhaitez afficher les valeurs dans votre graphique.
Affichage de l'option OLAP
Le modèle OLAP vous permet de tracer le diagramme sur une grille OLAP.
Remarque
Les objets grille OLAP ne sont pas pris en charge dans cette version de SAP Crystal Reports. L'affichage des options OLAP est désactivé.
Informations associées
Sélection des groupes N premiers ou N derniers [page 688]
1.7.3.2.3.3 Onglet Axes (Expert Diagramme)
L'onglet Axes permet de définir les propriétés de chacun des axes de votre diagramme. Il change selon le type de diagramme que vous créez.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
955
Sélectionnez "Définir automatiquement les options du diagramme" dans l'onglet Type si vous souhaitez que l'Expert Diagramme utilise les options par défaut des onglets Axes et Options.
Afficher le quadrillage
Utilisez la grille pour ajouter des lignes à votre diagramme. Par exemple, avec un diagramme en barres, vous pouvez ajouter des lignes horizontales pour chaque valeur de l'axe vertical.
Principal Utilisez les cases à cocher Principal afin de déterminer l'affichage des principaux repères pour les axes du diagramme. Selon le type de diagramme que vous créez, il peut y avoir une case à cocher
Principal pour les axes Groupe, Série, Données et/ou Données2.
● Cochez une case Principal pour afficher le repère de l'axe correspondant.
● Décochez une case Principal pour masquer le repère de l'axe correspondant.
Secondaire Utilisez les cases à cocher Secondaire afin de déterminer l'affichage des repères secondaires pour les axes du diagramme. Selon le type de diagramme que vous créez, il peut y avoir une case à cocher Secondaire pour les axes Groupe, Série, Données et/ou Données2.
● Cochez une case Secondaire pour afficher le repère de l'axe correspondant.
● Décochez une case Secondaire pour masquer le repère de l'axe correspondant.
Valeurs des données
Echelle automatique
Plage automatique
Min
Lorsque vous cochez la case Echelle automatique, le nombre d'étiquettes est ajusté pour un meilleur affichage sur l'axe Données.
Lorsque vous cochez la case Plage automatique, une plage par défaut est affectée aux valeurs de données pour l'axe correspondant.
Utilisez la zone de texte Minimale pour saisir une plage minimale pour les valeurs de données sur l'axe Données correspondant. Il y a une zone de texte Minimale pour l'axe Données et il peut y en avoir une autre pour l'axe Données2. La deuxième zone de texte Minimale est active uniquement si le diagramme est de type tableau croisé ou OLAP.
Si la case Plage automatique correspondante est cochée, la zone de texte Minimale est inactive.
Remarque
Les objets grille OLAP ne sont pas pris en charge dans cette version de SAP Crystal Reports.
Max Utilisez la zone de texte Maximale pour saisir une plage maximale pour les valeurs de données sur l'axe Données correspondant. Il y a une zone de texte Maximale pour l'axe Données et il peut y en avoir une autre pour l'axe Données2. La deuxième zone de texte Maximale est active uniquement si le diagramme est de type tableau croisé ou OLAP.
Si la case Plage automatique correspondante est cochée, la zone de texte Maximale est inactive.
956
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Format numérique
Utilisez la liste Format numérique pour sélectionner le format numérique des valeurs de données sur l'axe Données correspondant. Il y a une liste Format numérique pour l'axe Données
(y) et il peut y en avoir une autre pour l'axe Données2. La deuxième liste Format numérique est active uniquement si le diagramme est de type tableau croisé ou OLAP.
Si la case Plage automatique correspondante est cochée, la liste Format numérique est inactive.
Nombre de divisions
Automatique Si vous sélectionnez l'option Automatique, le programme définit automatiquement le nombre de divisions pour l'axe Données correspondant. Il y a une option Automatique pour l'axe Données et il peut y en avoir une autre pour l'axe Données2. La deuxième option Automatique est active uniquement si le diagramme est de type tableau croisé ou OLAP.
Remarque
Les objets grille OLAP ne sont pas pris en charge dans cette version de SAP Crystal Reports.
Manuel Utilisez l'option Manuel pour définir manuellement le nombre de divisions pour l'axe des données correspondant. Il y a une option Manuel pour l'axe Données et il peut y en avoir une autre pour l'axe Données2. La deuxième option Manuel est active uniquement si le diagramme est de type tableau croisé ou OLAP.
Lorsque vous cliquez sur la case d'option Manuel, la zone modifiable avoisinante devient active.
Utilisez cette zone modifiable pour saisir le nombre de divisions.
Informations associées
Onglet Texte (Expert Diagramme) [page 959]
1.7.3.2.3.4 Onglet Options (Expert Diagramme)
L'onglet Options vous offre divers choix d'affichage pour votre diagramme.
Sélectionnez "Définir automatiquement les options du diagramme" dans l'onglet Type si vous souhaitez que l'Expert Diagramme utilise les options par défaut des onglets Axes et Options.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
957
Couleur du diagramme
Utilisez les cases d'option Couleur du diagramme pour spécifier si le diagramme sera en couleur ou en noir et blanc.
Points de données
Utilisez les cases d'option Points de données pour spécifier le type d'étiquette qui apparaîtra pour chaque élément de données (c'est-à-dire pour chaque valeur du diagramme). Vous pouvez cliquer sur Aucun, Afficher étiquette ou
Afficher valeur. Si vous cliquez sur l'option Afficher valeur, la liste déroulante Format de nombres deviendra active. Utilisez la liste déroulante Format de nombres pour sélectionner le format des valeurs de votre diagramme.
Personnaliser les paramètres
Arrière-plan transparent Lorsque vous cochez cette case, l'arrière-plan du diagramme devient transparent.
Les objets placés derrière lui sont alors visibles.
Taille des marqueurs Utilisez cette liste déroulante pour spécifier la taille des marqueurs de votre diagramme en lignes.
Forme des marqueurs
Angle de visualisation
Utilisez cette liste déroulante pour spécifier la forme des marqueurs de votre diagramme en lignes.
Utilisez cette liste pour spécifier l'angle depuis lequel le diagramme est visualisé
(Angle standard, D'en haut, etc.).
Taille des secteurs
Taille des barres
Détacher un secteur du diagramme
Utilisez cette liste déroulante pour sélectionner la taille des secteurs de votre diagramme à secteurs (Minimum, Petit, Moyen, Grand ou Maximum).
Utilisez cette liste déroulante pour sélectionner la taille des barres de votre diagramme en barres (Minimum, Petit, Moyen, Grand ou Maximum).
Lorsque vous activez cette case à cocher, un secteur se détache de votre diagramme. Vous pouvez cliquer sur les options Le plus petit secteur ou Le plus grand secteur pour préciser quel secteur vous souhaitez détacher.
Légende
Afficher la légende Si cette case à cocher est active, la légende de votre diagramme est affichée. Si la coche n'est pas visible, l'option n'est pas sélectionnée et aucune légende n'apparaît dans votre diagramme. Cette option est sélectionnée par défaut.
958
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Emplacement
Disposition
Utilisez la liste déroulante Emplacement pour spécifier l'endroit où vous voulez insérer la légende du diagramme (coin supérieur droit, à droite, à gauche, etc.).
Cette liste est active uniquement si la case à cocher Afficher la légende l'est aussi.
Utilisez cette liste déroulante pour afficher des valeurs en pourcentages, des valeurs réelles, ou les deux, ou encore aucune valeur quelle qu'elle soit.
Informations associées
Boîte de dialogue Options du diagramme [page 831]
1.7.3.2.3.5 Onglet Texte (Expert Diagramme)
L'onglet Texte vous permet de spécifier des titres, des notes en base de page et des titres d'axe pour un diagramme.
Titres
Texte automatique Si ces cases sont cochées, des titres de diagramme sont générés automatiquement. Si elles sont décochées, vous pouvez préciser les titres du diagramme manuellement.
Titre Tapez un titre pour le diagramme dans cette zone de texte. Le titre figurera juste audessus du diagramme.
Sous-titre Tapez un sous-titre pour le diagramme dans cette zone de texte. Le sous-titre figurera juste en dessous du titre et au-dessus du diagramme (entre les deux).
Note de bas de page Tapez du texte pour une note de bas de page dans cette zone de texte. La note de bas de page figurera juste en dessous du diagramme dans le rapport.
Titre du groupe Tapez un titre pour l'axe des x du diagramme dans cette zone de texte.
Titre des données Tapez un titre pour l'axe des y du diagramme dans cette zone de texte.
Titre des données2 Tapez un titre pour le deuxième axe des y du diagramme dans cette zone de texte (dans le cas d'un diagramme de type tableau croisé ou OLAP).
Titre des séries Tapez le titre des séries du diagramme dans cette zone de texte.
Mise en forme
Utilisez cette liste pour sélectionner le texte correspondant aux options de police que vous définissez.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
959
Police Cliquez sur le bouton Police afin de définir les options de police pour le texte sélectionné dans la zone de liste Mise en forme. Lorsque vous cliquez sur ce bouton, la boîte de dialogue Police apparaît.
Informations associées
Boîte de dialogue Police [page 885]
1.7.3.2.4 Boîte de dialogue Expert Tableau croisé
Utilisez l'Expert Tableau croisé pour créer rapidement et facilement un tableau croisé. Les tableaux croisés sont utilisés dans les rapports afin de présenter des données résumées dans une structure de lignes/colonnes semblable à celle d'une feuille de calcul. Ces rapports sont faciles à lire et particulièrement utiles pour effectuer des comparaisons rapides et identifier les tendances.
Cette boîte de dialogue s'affiche lorsque vous cliquez sur le rapport avec le bouton droit de la souris, pointez sur
Insérer, puis cliquez sur Tableau croisé.
Informations associées
Assistants de création de rapports Crystal [page 635]
1.7.3.2.4.1 Onglet Tableau croisé (Expert Tableau croisé)
L'onglet Tableau croisé inclut les fonctionnalités de base nécessaires à la création d'un tableau croisé. Vous pouvez définir des lignes, des colonnes et des champs résumés. Cet onglet vous permet également de créer directement des groupes et des formules.
Champs disponibles
Cette liste contient toutes les tables et tous les champs activés dans votre rapport.
Sélectionnez le champ que vous voulez utiliser et faites-le glisser vers la liste appropriée ou cliquez sur le bouton Ajouter. Répétez l'opération pour ajouter d'autres champs.
Parcourir les données
Rechercher un champ
Cliquez sur le bouton Parcourir les données pour afficher les valeurs d'un champ sélectionné dans la liste Champs disponibles.
Cliquez sur ce bouton pour saisir le nom d'un champ à rechercher dans la liste Champs disponibles.
Nouvelle formule Lorsque vous cliquez sur ce bouton, la boîte de dialogue Nom de formule s'affiche. Saisissez le nom de votre nouvelle formule, puis cliquez sur OK. La boîte de dialogue Atelier de formules s'affiche et active l'Editeur de formule vous permettant de créer la nouvelle formule.
960
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Modifier la formule
Colonnes
Lignes
Lorsque vous cliquez sur ce bouton, la boîte de dialogue Atelier de formules s'affiche et active l'Editeur de formule. Utilisez cet éditeur pour modifier la formule sélectionnée. Pour que ce bouton soit activé, vous devez sélectionner un champ de formule dans l'une des listes.
Cette liste répertorie les champs que vous avez sélectionnés comme en-têtes de colonne pour votre tableau croisé. S'il y a plusieurs en-têtes de colonne, ceux-ci seront affichés dans votre rapport dans l'ordre de cette liste.
Pour ajouter un en-tête de colonne à cette liste, sélectionnez un champ dans la zone Champs disponibles, faites-le glisser dans la liste, puis cliquez sur le bouton Ajouter colonne(s).
Cette liste répertorie les champs que vous avez sélectionnés comme en-têtes de ligne pour votre tableau croisé. S'il y a plusieurs en-têtes de ligne, ceux-ci seront affichés dans votre rapport dans l'ordre de la liste.
Pour ajouter un en-tête de ligne à cette liste, sélectionnez un champ dans la zone Champs disponibles, faites-le glisser dans la liste, puis cliquez sur le bouton Ajouter ligne(s).
Champs résumés Cette liste répertorie les champs que vous avez sélectionnés comme en-têtes de champ de résumé pour votre tableau croisé. S'il y a plusieurs en-têtes de champ résumé, ceux-ci seront affichés dans votre rapport dans l'ordre de la liste.
Boutons fléchés d'ajout ou de suppression
Options de groupe
Pour ajouter un en-tête de champ résumé à cette liste, sélectionnez un champ dans la zone
Champs disponibles, faites-le glisser dans la liste, puis cliquez sur le bouton fléché en regard de la zone Champs résumés.
Utilisez les flèches > situées en regard de chaque liste pour ajouter des champs de la liste déroulante Champs disponibles. Utilisez les flèches < pour supprimer des champs ajoutés.
Modifier le résumé
Lorsque vous cliquez sur ce bouton la boîte de dialogue Options de groupe du tableau croisé s'affiche. Utilisez cette boîte de dialogue pour spécifier un groupe pour votre tableau croisé.
Les Options de groupe sont disponibles uniquement pour les lignes et les colonnes.
Lorsque vous cliquez sur ce bouton, la boîte de dialogue Modifier le résumé s'affiche. Utilisez cette boîte de dialogue pour changer le type de résumé des champs résumés du tableau croisé. L'option Modifier le résumé ne concerne que les champs résumés.
Informations associées
Boîte de dialogue Options de groupe du tableau croisé [page 856]
Boîte de dialogue Editeur de formule [page 703]
Boîte de dialogue Modifier le résumé [page 878]
Assistants de création de rapports Crystal [page 635]
1.7.3.2.4.2 Onglet Style (Expert Tableau croisé)
L'onglet Style vous permet de choisir un style prédéfini pour votre grille de tableau croisé. Lorsque vous sélectionnez un style, un exemple de celui-ci s'affiche du côté droit de l'écran.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
961
Remarque
La couleur du style que vous sélectionnez peut ne pas apparaître correctement si votre écran est réglé sur une résolution de 256 couleurs. Augmentez la résolution pour corriger ce problème.
Si vous sélectionnez un des styles de grille prédéfinis, ses paramètres s'affichent dans l'onglet Personnaliser le style. Pour créer un style personnalisé pour l'un des styles prédéfinis, sélectionnez-le et modifiez les paramètres dans l'onglet Personnaliser le style. Lorsque vous créez un style personnalisé, la nouvelle option, Personnalisé, est ajoutée à la liste dans l'onglet Style.
1.7.3.2.4.3 Onglet Personnaliser le style (Expert Tableau croisé)
Utilisez l'onglet Personnaliser le style pour mettre en forme la couleur d'arrière-plan, le quadrillage et les marges des cellules du tableau croisé.
Colonnes
Lignes
Champs résumés
Cette liste affiche les colonnes sélectionnées pour votre tableau croisé. Sélectionnez le champ pour lequel vous souhaitez personnaliser le style.
Cette liste affiche les lignes sélectionnées pour votre tableau croisé. Sélectionnez le champ pour lequel vous souhaitez personnaliser le style.
Utilisez les options de cette zone pour déterminer le mode d'affichage des différents champs résumés.
Vertical Choisissez cette option pour afficher plusieurs champs résumés sous forme de liste verticale.
● Résumé 1
● Résumé 2
● Résumé 3
Horizontal Choisissez cette option pour afficher plusieurs champs résumés sous forme de liste horizontale.
Résumé 1 -- Résumé 2 -- Résumé 3
Afficher les
étiquettes
Choisissez cette option pour afficher les noms de plusieurs champs résumés. Vous pouvez afficher des étiquettes pour les listes de résumés verticales et horizontales.
Options de groupe
Supprimer le soustotal
Utilisez cette case à cocher afin de supprimer le sous-total pour un champ sélectionné.
Vous devez d'abord sélectionner un champ dans la liste Lignes ou la liste Colonnes.
Supprimer l'étiquette
Utilisez cette case à cocher afin de supprimer le sous-total pour un champ sélectionné. Elle est inactive si la case Supprimer le sous-total n'est pas cochée.
962
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Alias pour les formules
Couleur d'arrièreplan
Saisissez un nom d'alias pour le champ de ligne ou de colonne sélectionné. Un alias raccourcit les noms de champs longs, ce qui est utile lorsque vous ferez référence à un champ dans une formule de mise en forme conditionnelle. Le nom de champ d'origine est affiché par défaut dans cette zone.
Utilisez cette liste afin de choisir une couleur pour le champ de ligne ou de colonne sélectionné.
Options de grille
Afficher les marges des cellules
Retrait des étiquettes de lignes
Cochez cette case pour effectuer un retrait des étiquettes de lignes de votre tableau croisé. Utilisez la zone Pouces pour spécifier la valeur du retrait souhaité.
Mettre en forme le quadrillage
Cochez cette case pour mettre en forme automatiquement les cellules du tableau croisé. Lorsque cette case n'est pas cochée, tout espace supplémentaire (espace vide) dans les cellules du tableau croisé est éliminé et le contenu de celles-ci est ajusté pour utiliser le moins d'espace possible dans votre rapport.
Lorsque vous cliquez sur ce bouton, la boîte de dialogue Mettre en forme le quadrillage s'affiche. Dans cette boîte de dialogue, vous pouvez choisir d'afficher le quadrillage ou pas et sélectionner la couleur, le style et la largeur de quadrillage souhaités.
Répéter les étiquettes de lignes
Garder les colonnes ensemble
Totaux de colonnes en haut
Totaux de lignes à gauche
Supprimer les lignes vides
Cochez cette case pour répéter les étiquettes de lignes sur chaque page si les tableaux croisés s'impriment sur plusieurs pages.
Cochez cette case pour conserver les colonnes ensemble sur chaque page si les tableaux croisés s'impriment sur plusieurs pages.
Cochez cette case pour afficher les totaux de colonnes en haut du tableau croisé plutôt qu'en bas (position par défaut).
Cochez cette case pour afficher les dimensions de la ligne à gauche du tableau croisé plutôt qu'à droite (position par défaut).
Cochez cette case pour supprimer les lignes vides du tableau croisé. Lorsque cette case est cochée, toute ligne dont les champs ne contiennent aucun enregistrement sera masquée.
Supprimer les colonnes vides
Cochez cette case pour supprimer les colonnes vides du tableau croisé. Lorsque cette case est cochée, toute colonne dont les champs ne contiennent aucun enregistrement sera masquée.
Supprimer les totaux de ligne
Cochez cette case pour supprimer les totaux généraux des lignes du tableau croisé.
Supprimer les totaux de colonne
Cochez cette case pour supprimer les totaux généraux des colonnes du tableau croisé.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
963
Informations associées
Boîte de dialogue Mettre en forme le quadrillage [page 898]
1.7.3.2.5 Boîte de dialogue Expert Base de données
L'Expert Base de données fournit un affichage d'arborescence intégré de toutes les sources de données que vous pouvez utiliser avec SAP Crystal Reports. Cette boîte de dialogue s'affiche lorsque vous cliquez avec le bouton droit de la souris sur Champs de base de données dans l'Explorateur de champs et sélectionnez Expert Base de données. Vous pouvez également cliquer avec le bouton droit de la souris sur le Report Designer, pointer la souris sur Base de données, puis cliquer sur Expert Base de données ou cliquer sur le bouton Expert Base de données de la barre d'outils du concepteur incorporé.
Conseil
Pour afficher l'Explorateur de champs, cliquez sur le menu
Crystal Reports
, puis cliquez sur
Explorateur de champs
.
Avec l'Expert Base de données, vous pouvez :
● créer un rapport reposant sur l'une des sources de données actuellement connectées ;
● créer un rapport reposant sur une liste personnalisée, de sources de données appelée Favoris (que vous gérez également dans l'Expert Base de données) ;
● créer un rapport reposant sur une liste de sources de données auxquelles vous avez accédé récemment
(gérée automatiquement par l'Expert Base de données) ;
● créer un rapport en effectuant une connexion à une source de données existant (par exemple, un fichier de données implanté localement, ou une source de données ODBC déjà mise en place) ;
● créer un rapport en créant d'abord une connexion (par exemple, une nouvelle source de données ODBC ou une liaison de données de fichier OLE DB) ;
● afficher des informations relatives à une connexion de base de données en cliquant avec le bouton droit de la souris sur l'icône correspondante et en sélectionnant Propriétés dans le menu contextuel.
L'Expert Base de données contient les onglets suivants :
Onglet Données Utilisez l'onglet Données pour sélectionner la source et les tables de données que vous souhaitez utiliser dans votre rapport.
Onglet Liens Utilisez l'onglet Liens pour relier deux ou plusieurs tables.
Informations associées
Accès aux données et ajout des données [page 643]
Création de rapports à partir de DataSets ADO.NET [page 644]
964
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.7.3.2.5.1 Onglet Données (Expert Base de données)
L'onglet Données fournit un affichage d'arborescence intégré de toutes les sources de données que vous pouvez utiliser avec SAP Crystal Reports. Utilisez l'onglet Données pour sélectionner la source et les tables de données que vous souhaitez utiliser dans votre rapport.
Si la base de données que vous utilisez prend en charge un langage de requête tel que SQL, vous pouvez écrire
Sources de données disponibles
Cette fenêtre de l'Expert Base de données présente un affichage de l'arborescence de sources de données possibles que vous pouvez sélectionner lors de la création d'un rapport. L'arborescence est constituée des dossiers suivants :
Données du projet
Connexions en cours
Favoris
Affiche une liste des sources de données auxquelles vous êtes actuellement connecté, ainsi que les sources de données ADO.NET ajoutées à votre projet actuel.
Affiche une liste de sources de données auxquelles vous êtes actuellement connecté.
Historique
Créer une nouvelle connexion
Affiche une liste de sources de données que vous utilisez couramment et que vous avez conservées dans votre liste Favoris.
Affiche une liste de sources de données que vous avez utilisées récemment. Les cinq dernières sources de données utilisées sont généralement affichées.
Affiche des sous-dossiers pour différentes sources de données auxquelles vous pouvez vous connecter. Certains choix récurrents sont présentés ci-dessous :
●
Access/Excel (DAO)
vous permet de vous connecter à une base de données prise en charge (Access, dBASE, Excel, Lotus, etc.). Vous pouvez créer une connexion à l'aide de l'option Etablir une nouvelle connexion.
●
Fichiers de bases de données
affiche la liste des bases de données PC standard implantées localement.
Conseil
Pour personnaliser les extensions par défaut dans la liste Types de fichier de la boîte de dialogue Ouvrir, ajoutez les extensions du champ Filtre du fichier de base de
données dans la Onglet Sources de données par défaut (Paramètres par défaut) [page
●
ODBC (RDO)
affiche une liste de sources de données ODBC que vous avez déjà configurées pour utilisation.
●
OLE DB (ADO)
montre une liste de fournisseurs OLE DB que vous avez déjà configurés pour utilisation. Vous pouvez également spécifier un fichier Microsoft Data Link à utiliser.
●
Autres sources de données
affiche une liste d'autres sources de données qui peuvent être atteintes via des pilotes natifs, tels que des définitions de champs.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
965
Les définitions de champs sont des pilotes spéciaux qui permettent de créer des rapports
à partir d'une structure seule sans données réelles. Ce pilote est inclus principalement pour la compatibilité descendante et est utilisé uniquement lors du processus de création de rapport. Lors de l'exécution, un RecordSet ou un DataSet doit être transmis à un rapport créé à partir de ce pilote.
Remarque
Les options de sources de données du dossier Créer une nouvelle connexion varient selon les composants d'accès aux données sélectionnés lors de l'installation.
Tables sélectionnées
Cette liste affiche les tables sélectionnées pour votre rapport. Si vous avez ajouté plusieurs tables, l'
(Expert Base de données) [page 967]
est ajouté dans l'Expert.
Utilisez les flèches pour ajouter ou supprimer des tables de cette liste.
Conseil
Pour modifier l'alias d'une table, sélectionnez cette table et appuyez sur F2.
Boutons et menus contextuels
Des boutons et menus contextuels sont disponibles dans l'Expert Base de données. Vous pouvez cliquer avec le bouton droit sur n'importe quel élément de l'Expert Base de données pour afficher un menu contextuel qui propose les options suivantes :
Ajouter au rapport Utilisez cette option pour ajouter à votre rapport un objet de base de données (par exemple, une table ou une procédure stockée). Cette option est également disponible en cliquant sur la flèche droite de l'Expert Base de données.
Ajouter aux favoris Utilisez cette option pour ajouter au dossier Favoris une source de données sélectionnée.
Ajouter une commande au rapport
Utilisez cette option pour ajouter une nouvelle requête SQL à votre rapport. Une fois votre requête définie dans la boîte de dialogue Ajouter une commande au rapport, elle apparaît dans la liste Tables sélectionnées.
Etablir une nouvelle connexion
Utilisez cette option pour établir une nouvelle connexion avec un fichier de base de données ou une autre source de données.
Supprimer du rapport
Propriétés
Utilisez cette option pour supprimer de votre rapport un objet de base de données (par exemple, une table ou une procédure stockée).
Utilisez cette option pour obtenir des informations détaillées sur la connexion à la base de données sélectionnée.
966
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Renommer le favori Utilisez cette option pour renommer une source de données dans le dossier Favoris.
Supprimer le favori Utilisez cette option pour supprimer une source de données du dossier Favoris.
Options Utilisez cette option pour définir les options globales qui apparaissent dans l'onglet Base de données de la boîte de dialogue Paramètres par défaut.
Actualiser
Ajouter (>)
Utilisez cette option pour actualiser la liste des sources de données disponibles dans l'Expert Base de données.
Ajoute au rapport l'objet de base de données sélectionné.
Ajouter tout (>>)
Supprimer (<)
Supprimer tout
(<<)
Ajoute au rapport tous les objets base de données sélectionnés.
Supprime du rapport l'objet de base de données sélectionné.
Supprime du rapport tous les objets de base de données sélectionnés.
Remarque
Afin d'ajouter ou de modifier un alias pour un objet de base de données, cliquez sur l'objet de base de données pour le modifier. Pour ajouter un nouveau alias à un objet de base de données, ajoutez cet objet à la table sélectionnée. En créant un alias, vous ne modifiez pas l'emplacement de la base de données. Pour modifier l'emplacement d'une
base de données, voir Pour modifier l'emplacement de la source de données [page
646] . Les modifications que vous effectuez dans cette boîte de dialogue n'affectent pas
les pseudonymes déjà utilisés dans les formules.
Informations associées
Accès aux données et ajout des données [page 643]
Création de rapports à partir de DataSets ADO.NET [page 644]
1.7.3.2.5.2 Onglet Liens (Expert Base de données)
Utilisez l'onglet Liens pour relier au moins deux tables de base de données. Lorsque vous sélectionnez plusieurs tables dans l'onglet Données, l'onglet Liens s'affiche.
Créer un lien entre deux tables permet d'établir une correspondance entre leurs enregistrements respectifs. Le moyen le plus simple de relier des tables entre elles est de sélectionner Mise en relation automatique. Cette fonction établit automatiquement les liens entre les tables basées sur les champs communs ou les relations clés
étrangères entre les tables (si votre base de données gère les clés étrangères). Vous pouvez également relier les tables de base de données manuellement.
Zone d'affichage
Liens
Cette zone affiche l'ensemble des tables qui figurent actuellement dans votre rapport, ainsi que les liens et les index.
La signification des indicateurs d'index s'affiche lorsque vous cliquez sur le bouton de légende des index.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
967
Réorganisation automatique
Mise en relation automatique
Relier
Ordonner les liens
Effacer les liens
Supprimer le lien
Options de mise en relation
Légende des index
Cliquez et faites glisser un champ d'une table vers une autre pour lier les tables manuellement. Aucune restriction n'est imposée à votre structure de mise en relation, à condition que les bases de données répondent aux exigences du fournisseur.
Lorsque vous cliquez sur ce bouton, le programme réorganise les tables afin de les placer judicieusement dans la zone d'affichage Liens.
Cliquez sur Par nom pour relier des tables en fonction de leurs noms ou sur Par clé si vous souhaitez utiliser des informations de clés étrangères.
Cliquez sur Relier pour relier les tables automatiquement. Cliquez sur ce bouton pour
établir automatiquement les liens entre les tables en fonction des champs communs ou des relations clés étrangères entre les tables (si votre base de données gère les clés
étrangères).
Si vous disposez de plusieurs liens, vous pouvez utiliser la fonction Ordonner les liens pour réorganiser les liens dans l'ordre dans lequel vous souhaitez qu'ils soient traités.
Des ordres de lien différents peuvent entraîner des requêtes différentes.
Cliquez sur ce bouton pour annuler tous les liens de tables en cours.
Cliquez sur un lien, puis sur ce bouton pour le supprimer.
Pour activer ce bouton, une ligne de lien doit avoir été préalablement sélectionnée.
Après avoir sélectionné un lien, cliquez sur ce bouton pour ouvrir la boîte de dialogue
Options de mise en relation permettant de choisir le type de jointure et le type de mise en relation.
Cliquez sur ce bouton pour ouvrir la boîte de dialogue Légende de l'index afin d'afficher la signification des indicateurs d'index utilisés dans la zone d'affichage Liens.
Informations associées
Boîte de dialogue Ordonner les liens [page 916]
Boîte de dialogue Options de mise en relation [page 913]
Boîte de dialogue Expert Base de données [page 964]
Boîte de dialogue Légende des index [page 906]
1.7.3.2.6 Expert Formule
Utilisez l'Expert Formule pour créer une formule basée sur une fonction personnalisée existante. Cet Expert s'affiche lorsque vous cliquez sur Utiliser l'expert dans la boîte de dialogue Nom de la formule ou lorsque vous sélectionnez une formule simple dans l'Atelier de formules sans cliquer sur le bouton Activer/Désactiver les propriétés.
Il s'affiche également lorsque vous modifiez un champ de formule vide ou un champ de formule qui effectue un appel simple à une fonction personnalisée.
968
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Logique de base de la fonction personnalisée
Résumé
Type de renvoi
Réinitialiser les valeurs
Informations
Arguments de la fonction
Cette liste contient toutes les fonctions personnalisées disponibles dans votre rapport
(Fonctions personnalisées du rapport). Sélectionnez une fonction personnalisée sur laquelle baser votre nouvelle formule.
Lorsque vous sélectionnez une fonction personnalisée, les zones Résumé, Type de renvoi et
Arguments de la fonction sont renseignées en fonction de la définition de la fonction.
Cette zone contient le résumé défini pour la fonction personnalisée dans la boîte de dialogue
Propriétés des fonctions personnalisées. Les informations de résumé ne sont données qu'à titre indicatif et ne peuvent pas être modifiées.
Cette zone contient le type de données renvoyé par la fonction personnalisée sélectionnée.
Les informations de cette zone ne sont données qu'à titre indicatif et ne peuvent pas être modifiées.
Cliquez sur ce bouton pour réinitialiser les valeurs saisies dans les champs Valeur de la zone
Arguments de la fonction. Si un argument possède un ensemble de valeurs par défaut, la valeur prend la première valeur par défaut. Dans le cas contraire, la valeur est réinitialisée à
Sélectionner un champ ou entrer une valeur (c'est-à-dire que la valeur n'est pas liée). Si un argument est facultatif, il a la valeur "Utiliser la valeur facultative", suivie de la valeur facultative actuelle définie dans la fonction personnalisée.
Cliquez sur ce bouton pour afficher davantage d'informations sur la fonction personnalisée sélectionnée.
Cette zone contient les arguments définis pour la fonction personnalisée. La plupart des informations de cette zone n'est donnée qu'à titre indicatif et ne peut pas être modifiée.
Cependant, spécifiez dans le champ Valeur la valeur de l'argument pour la formule que vous créez. Vous pouvez saisir une valeur directement ou cliquer sur le champ Valeur, puis effectuer une sélection dans la liste qui s'affiche. Vous disposez de plusieurs valeurs possibles (les choix proposés sont propres au type de données de l'argument) :
● Un ensemble de valeurs par défaut créées dans la boîte de dialogue Propriétés des fonctions personnalisées. Vous pouvez enregistrer la formule sans sélectionner de valeur. Dans ce cas, la première valeur par défaut est utilisée.
● Une valeur facultative spécifiée dans la fonction personnalisée. Ce choix se présente sous la forme du texte Utiliser la valeur facultative, suivi de la valeur facultative actuelle définie dans la fonction personnalisée. Vous pouvez enregistrer la formule sans sélectionner de valeur. Dans ce cas, la valeur facultative est utilisée.
● Un champ du même type que celui de l'argument sélectionné (cela signifie que si l'argument est de type chaîne, vous pouvez choisir un champ de ce type). Le champ doit
être utilisé dans le rapport en cours pour apparaître dans cette liste.
● True ou False pour les arguments de type Booléen.
● Un champ de formule ou une expression SQL qui renvoie un type correspondant à celui de l'argument sélectionné. La formule ou l'expression doit figurer dans la boîte de dialogue Atelier de formules, mais ne doit pas nécessairement être utilisée dans le rapport pour apparaître dans cette liste.
● Un total cumulé dont le type du champ de résumé correspond à celui de l'argument sélectionné. Le total cumulé doit figurer dans l'Explorateur de champs, mais ne doit pas nécessairement être utilisé dans le rapport pour apparaître dans cette liste.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
969
● Un champ de paramètre dont le type de valeur correspond à celui de l'argument sélectionné. Le paramètre doit figurer dans l'Explorateur de champs, mais ne doit pas nécessairement être utilisé dans le rapport pour apparaître dans cette liste.
● Un nom de groupe. Le groupe doit figurer dans le rapport en cours pour apparaître dans cette liste.
● Une valeur constante. Pour certains types, tels que les chaînes ou les nombres, vous pouvez saisir directement une valeur constante simple. Pour d'autres types qui nécessitent une mise en forme spécifique, tels que la date, la date et l'heure, etc., une version de la boîte de dialogue Entrer une valeur pour s'affiche, dans laquelle vous pouvez choisir une valeur ou une plage.
● Un autre champ. Cliquez sur Choisir un autre champ pour afficher la boîte de dialogue
Choisir un champ, qui ne contient que les champs du rapport et de la base de données dont le type correspond à celui de l'argument sélectionné.
Informations associées
Fonctions personnalisées [page 704]
Boîte de dialogue Editeur de formule [page 899]
1.7.3.2.7 Boîte de dialogue Expert Groupe
Utilisez l'Expert Groupe pour spécifier les modalités de regroupement des champs dans votre rapport. Utilisez
également la boîte de dialogue pour repositionner les groupes et modifier les critères utilisés pour déclencher et trier les groupes. Cette boîte de dialogue s'affiche lorsque vous cliquez avec le bouton droit de la souris sur un Entête de groupe dans le Report Designer ou sur un Nom de groupe dans l'Explorateur de champs et que vous sélectionnez Expert Groupe, ou lorsque vous cliquez avec le bouton droit de la souris dans le Report Designer, que vous pointez sur Rapport et que vous choisissez Expert Groupe.
Conseil
Pour afficher l'Explorateur de champs, cliquez sur le menu
Crystal Reports
, puis cliquez sur
Explorateur de champs
.
Champs disponibles
Parcourir les données
Rechercher un champ
Cette liste répertorie l'ensemble des champs que vous pouvez utiliser dans le regroupement. La liste est basée sur les champs de rapport que vous avez choisi dans l'Explorateur de champs et les tables que vous avez sélectionnées dans l'onglet Données de l'Expert Base de données.
Cliquez sur ce bouton pour parcourir les données contenues dans le champ sélectionné dans la liste Champs disponibles.
Cliquez sur ce bouton pour saisir le nom d'un champ à rechercher dans la liste Champs disponibles.
970
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Boutons fléchés d'ajout ou de suppression
Regrouper par
Utilisez la flèche > située en regard de la liste déroulante Regrouper par pour ajouter des champs de la liste déroulante Champs disponibles. Utilisez les flèches < pour supprimer des champs ajoutés. Les flèches doubles permettent d'ajouter ou de supprimer tous les champs.
Cette liste répertorie tous les champs à regrouper. Les champs sont ajoutés hiérarchiquement. Cette hiérarchie établit l'ordre dans lequel les groupes apparaîtront dans le rapport.
Lorsque vous saisissez un groupe, celui-ci s'affiche directement au-dessus et au-dessous de la section Détails. Lorsque vous ajoutez un deuxième groupe, celui-ci s'affiche entre la section Détails et le premier groupe. Le troisième groupe s'affiche entre la section Détails et le deuxième groupe, etc. Ainsi, lorsque vous affichez le Report Designer, l'en-tête de groupe du premier groupe est l'en-tête supérieur et le pied de page de groupe du premier groupe est l'en-tête inférieur.
La liste Regrouper par affiche les groupes dans l'ordre des pieds de page de groupe, le dernier groupe de la liste étant le premier groupe, l'avant-dernier groupe, le second, etc.
Lorsque vous sélectionnez un groupe de cette liste, le programme active les boutons qui correspondent au groupe sélectionné.
Boutons fléchés vers le bas ou vers le haut
Options
Utilisez les flèches vers le haut et vers le bas situées en regard de la liste Regrouper par pour modifier l'ordre des champs ajoutés à partir de la liste Champs disponibles.
Lorsque vous cliquez sur ce bouton la boîte de dialogue Changer les options de groupe s'affiche. Cette boîte de dialogue permet de modifier les critères utilisés pour déclencher et trier les groupes.
Informations associées
Boîte de dialogue Changer les options de groupe [page 831]
1.7.3.2.8 Boîte de dialogue Expert Tri de groupes
Utilisez l'Expert Tri de groupes pour identifier les premiers ou derniers groupes (les régions possédant le plus petit/grand nombre de clients d'un rapport client, par exemple). Vous pouvez également identifier les pourcentages supérieurs ou inférieurs.
Cette boîte de dialogue s'affiche lorsque vous cliquez sur le Report Designer avec le bouton droit de la souris, pointez sur Rapport, puis cliquez sur Expert Tri de groupes.
Remarque
.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
971
Pour ce groupe, trier Utilisez cette liste pour choisir l'une des options de tri suivantes pour votre groupe :
● Aucun tri
● Tout
● N premiers
● N derniers
● Premiers en pourcentage
● Derniers en pourcentage
Selon l'option que vous choisissez, l'Expert présente des fonctions différentes.
en fonction de
N
Pourcentage
Cette liste affiche une liste de champs de résumé contenus dans votre rapport.
Sélectionnez dans cette liste le champ pour lequel vous souhaitez choisir des valeurs ou des pourcentages supérieurs ou inférieurs. Lorsque Tout est sélectionné, utilisez la zone de défilement qui se trouve en dessous de la liste déroulante "basé sur" pour visualiser les champs choisis pour le tri.
Saisissez dans cette zone modifiable le nombre de valeurs supérieures ou inférieures
(sachant que N est le nombre de valeurs) que vous souhaitez sélectionner.
Saisissez dans cette zone modifiable le pourcentage des valeurs supérieures ou inférieures que vous souhaitez sélectionner.
Inclure les autres enregistrements sous le nom
Sélectionnez cette option si vous souhaitez inclure l'ensemble des champs qui ne correspondent pas à votre sélection de valeurs supérieures ou inférieures sous un nom de groupe donné. Saisissez le nom de groupe sous lequel vous souhaitez voir apparaître ces champs.
Inclure les valeurs
égales
Sélectionnez cette option pour intégrer les groupes dont les valeurs résumées sont
égales.
Informations associées
Regroupement, tri et calcul de totaux des données [page 682]
Sélection des groupes N premiers ou N derniers [page 688]
1.7.3.2.9 Expert Mise en relief (boîte de dialogue)
L'Expert Mise en relief vous permet d'appliquer une mise en forme conditionnelle à tous les types de champs de rapport (champs Nombre, Devise, Chaîne, Booléen, Date, Heure et Date/heure). Grâce à cet expert, vous mettez en forme le champ sélectionné en spécifiant une condition basée sur la valeur de ce champ ou d'un autre champ de rapport. En d'autres termes, l'expert vous permet de créer la formule suivante : Si la valeur du champ X répond
à la condition A, appliquer alors la mise en forme spécifiée au champ sélectionné dans le rapport.
Cette boîte de dialogue s'affiche lorsque vous cliquez avec le bouton droit de la souris sur un objet champ monétaire ou numérique et que vous sélectionnez Expert Mise en relief dans le menu contextuel.
972
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Liste d'éléments
Cette liste répertorie les formules de mise en relief qui ont servi à la création du champ actuellement sélectionné.
Priorité Utilisez les boutons Priorité dans la zone Liste Eléments de l'Expert Mise en relief pour définir les priorités de vos formules.
Nouveau Utilisez le bouton Nouveau pour ajouter une nouvelle formule de mise en relief. Après avoir cliqué sur Nouveau, spécifiez les valeurs de la formule dans l'Editeur d'éléments.
Supprimer Utilisez le bouton Supprimer afin de supprimer les formules de mise en relief non voulues pour le champ actuellement sélectionné.
Editeur d'éléments
L'Editeur d'éléments permet de définir la formule. L'Editeur d'éléments comprend une zone d'exemple qui permet de visualiser les spécifications de mise en forme appliquées.
La valeur Utilisez la première liste déroulante pour choisir le champ auquel la formule de mise en relief doit s'appliquer.
Utilisez la deuxième liste déroulante pour spécifier les modalités. L'option par défaut est "est
égal à".
Utilisez la troisième liste déroulante pour entrer la valeur monétaire ou numérique à laquelle vous voulez appliquer des conditions de mise en relief.
Style de police Utilisez cette liste déroulante afin de sélectionner un style de police pour la valeur monétaire ou numérique à laquelle vous souhaitez appliquer une condition de mise en relief.
Couleur de la police
Arrière-plan
Utilisez cette liste déroulante afin de sélectionner une couleur de police pour la valeur monétaire ou numérique à laquelle vous souhaitez appliquer une condition de mise en relief.
Utilisez cette liste déroulante afin de sélectionner une couleur d'arrière-plan pour la valeur monétaire ou numérique à laquelle vous souhaitez appliquer une condition de mise en relief.
Bordure
Exemple
Utilisez cette liste déroulante afin de sélectionner un style de bordure pour la valeur monétaire ou numérique à laquelle vous souhaitez appliquer une condition de mise en relief.
Affiche un exemple qui reflète les paramètres sélectionnés dans l'Expert Mise en relief.
Informations associées
Mise en forme conditionnelle [page 716]
Boîte de dialogue Editeur de mise en forme [page 886]
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
973
1.7.3.2.10 Expert Section
Utilisez l'Expert Section pour modifier la mise en forme de sections entières de votre rapport. Cette boîte de dialogue s'affiche lorsque vous cliquez sur le Report Designer avec le bouton droit de la souris, puis sélectionnez
Expert Section, ou lorsque vous cliquez sur le Report Designer avec le bouton droit de la souris, pointez sur
Insérer, puis cliquez sur Section.
Conseil
Dans SAP Crystal Reports 2008, vous pouvez accéder à l'Expert Section en cliquant sur le bouton Expert
Section dans le concepteur incorporé.
Sections
Insérer
Supprimer
Fusionner
Boutons fléchés
Cette zone répertorie l'ensemble des sections contenues dans le rapport en cours. Lorsque vous mettez en surbrillance l'une des sections dans cette liste, le programme affiche les boutons de la boîte de dialogue correspondant aux actions que vous pouvez accomplir et aux propriétés que vous pouvez définir pour la section sélectionnée.
Utilisez ce bouton pour insérer une nouvelle section de rapport de même type juste en dessous de la section mise en surbrillance dans la liste Sections.
Utilisez ce bouton pour supprimer la section mise en surbrillance dans la zone de liste Sections.
Vous ne pouvez pas supprimer les sections d'origine. Vous ne pouvez supprimer que les sections qui ont été ajoutées.
Utilisez ce bouton pour fusionner la section en cours avec la section associée qui apparaît juste en dessous d'elle.
Remarque
Vous ne pouvez pas fusionner des sections de types différents, comme par exemple, une section Détails et une section En-tête de groupe.
Utilisez ces boutons pour déplacer une section vers le haut ou vers le bas par rapport aux autres sections de même type.
Remarque
Vous ne pouvez pas déplacer une section par rapport à une section de type différent.
Informations associées
Présentation des sections de rapport [page 627]
Mise en forme des sections de rapport [page 632]
974
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
1.7.3.2.10.1 Onglet Commun (Expert Section)
Utilisez l'onglet Commun pour définir les propriétés de type : visible, nouvelle page avant, conserver ensemble, etc. d'une section quelconque.
Masquer (avec exploration)
Supprimer (sans exploration)
Cochez cette case pour que la section ne soit pas imprimée, mais que son contenu soit disponible pour des besoins d'exploration.
Cochez cette case pour que la section ne soit pas imprimée et que son contenu ne soit pas disponible même pour des besoins d'exploration.
Imprimer en bas de la page
Cette case à cocher permet d'imprimer les valeurs de groupe en bas de la page (les détails sont imprimés à la position habituelle). Cette option est utile lors de l'impression de factures ou d'autres rapports pour lesquels un seul groupe (par exemple, des éléments de ligne groupés par numéro de commande) doit figurer sur une page, tandis que la valeur de ce groupe (sous-total, champ de résumé, etc.) doit être imprimée en bas de page.
Nouvelle page avant
Cette option de mise en forme est disponible pour les sections En-tête de groupe et Pied de page de groupe et Détails. Lorsque vous cochez cette case, le programme insère un saut de page avant d'imprimer la section. Le saut de page précède donc :
● le groupe (si l'option est utilisée avec une section Pied de page de groupe)
● chaque enregistrement de rapport (si l'option est utilisée avec une section Détails).
L'en-tête et le pied de page figurent sur chaque page. Si une section Pied de page de groupe comporte un champ de sous-total ou de résumé, vous pouvez cocher la case
Nouvelle page avant de manière à placer ces valeurs sur les pages qui suivent la valeur totalisée.
Nouvelle page après
Lorsque cette case est cochée, le programme insère un saut de page après avoir imprimé la section.
● L'en-tête et le pied de page figurent sur chaque page.
● Cochez la case Nouvelle page après dans la section Pied de page de groupe pour imprimer chaque groupe sur une page distincte.
Réinitialiser le numéro de page après
Conserver l'unité
Redéfinissez le numéro de la page sur un (1) pour la page suivante, après l'impression d'un total de groupe. Lorsque cette option est utilisée avec l'option Imprimer en bas de la page, le programme imprime un seul groupe par page, la valeur du groupe en bas de la page, puis redéfinit le numéro de la page sur 1 pour la page suivante. Cette option est utile chaque fois que vous imprimez plusieurs rapports à partir d'un même fichier (des factures, par exemple) et que vous souhaitez que la numérotation de chaque rapport commence à la page 1.
Lorsque cette case est cochée, le programme fait en sorte de garder toutes les lignes de la section ensemble, sur la page en cours (s'il y a suffisamment d'espace) ou sur la page suivante (dans le cas contraire).
Dans le cas d'une liste de clients par exemple, les données relatives à un client (obtenues à partir d'un seul enregistrement ou d'enregistrements reliés) peuvent occuper plusieurs lignes. Si le saut de page standard intervient au sein des données relatives à un client, les données seront réparties sur deux pages. Toutefois, en cochant la case Conserver l'unité, vous demandez au programme d'insérer le saut de page avant le début de l'enregistrement afin que toutes les données à imprimer soient regroupées sur la page suivante.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
975
Remarque
Cette option n'est pas disponible pour les champs de chaînes à lignes multiples ou les champs mémos. Un saut de page peut se produire au milieu d'un champ à plusieurs lignes.
Supprimer la section vide
Arrière-plan dans sections suivantes
Mettre en forme avec plusieurs colonnes
Garder le pied de page minimal
Lorsque vous cochez cette case, le programme masque la section de rapport si elle est vide
(et l'imprime dans le cas contraire).
Cochez cette case si vous voulez que l'objet sélectionné mette en arrière-plan les sections suivantes au moment de l'impression.
Cochez cette case pour faire apparaître l'onglet
Mise en page
.
Emplacements relatifs
Cette option permet de réduire l'espace réservé aux sections Pied de page, ce qui optimise l'espace disponible pour les données du rapport. Cette option affecte uniquement les pieds de page comportant plusieurs sections.
Par défaut, SAP Crystal Reports réserve un espace en bas de page pour les sections Pied de page. Cet espace est réservé, que les sections Pied de page soient supprimées de façon conditionnelle ou non. Normalement, l'espace réservé équivaut à la hauteur combinée de toutes les sections Pied de page qui sont affichées ou supprimées de façon conditionnelle.
Vous pouvez, cependant, optimiser l'espace réservé. Pour ce faire, supprimez conditionnellement les pieds de page voulus. Ensuite, sélectionnez Pied de page dans la zone Sections de l'Expert Section, puis sélectionnez l'option Garder le pied de page minimal dans l'onglet Commun de l'Expert. Ainsi, SAP Crystal Reports réserve uniquement un espace correspondant à la section Pied de page la plus haute.
Cette option vous permet de verrouiller l'emplacement relatif d'un objet de rapport à côté d'un objet grille dans une section. Par exemple, si vous placez un objet texte un centimètre
à droite d'un objet tableau croisé, lors de la génération d'un rapport, le programme déplacera l'objet texte vers la droite pour qu'un espace d'un centimètre soit conservé quelle que soit la largeur de l'objet tableau croisé.
● Seul le verrouillage horizontal est possible. Si vous devez conserver un positionnement vertical relatif, créez une section de rapport.
● Une fois que les emplacements relatifs sont sélectionnés pour une section, vous ne pouvez plus y faire glisser d'objets vers de nouveaux emplacements.
● Le positionnement relatif ne s'applique qu'aux objets placés à droite des objets grille
(c'est-à-dire aux objets qui peuvent s'agrandir horizontalement).
Informations associées
Présentation des sections de rapport [page 627]
Détermination des caractéristiques de la zone d'impression [page 642]
Modèle de traitement des rapports [page 637]
Insertion des images en arrière-plan [page 753]
976
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Onglet Disposition (Expert Section) [page 977]
1.7.3.2.10.2 Onglet Couleur (Expert Section)
Utilisez l'onglet Couleur pour définir la couleur d'arrière-plan de la section choisie.
Couleur d'arrière-plan Cochez cette case, puis choisissez une couleur dans la zone de liste qui s'affiche si vous voulez ajouter une couleur d'arrière-plan à la section sélectionnée.
Formule conditionnelle Cliquez sur ce bouton si vous souhaitez configurer une formule conditionnelle pour la propriété correspondante.
Informations associées
Boîte de dialogue Editeur de formule [page 899]
1.7.3.2.10.3 Onglet Disposition (Expert Section)
L'onglet Disposition apparaît lorsque vous avez sélectionné la section Détails et que vous avez coché la case
Mettre en forme avec plusieurs colonnes dans l'onglet Commun.
Utilisez l'onglet Disposition pour définir le rapport sous un format à plusieurs colonnes. Autrement dit, plutôt que d'imprimer les données de haut en bas sur la page, vous pouvez définir plusieurs colonnes dans lesquelles le programme placera ensuite les données. Vous pouvez également imprimer vos données de gauche à droite, avec un premier enregistrement dans une colonne, un deuxième dans une autre colonne, puis un troisième, etc. La boîte de dialogue est constituée de quatre zones.
Taille des détails Cette zone permet de spécifier les dimensions (hauteur et largeur) d'un détail. Déterminez la largeur désirée de chaque détail (en fonction du nombre de caractères, de la taille de police, etc.) et saisissez cette valeur dans la zone modifiable Largeur.
Déterminez la hauteur désirée de chaque détail (en fonction du nombre de lignes du détail, de la taille de police, etc.) et saisissez cette valeur dans la zone modifiable Hauteur.
Espace entre les détails
Cette zone permet de spécifier l'espace vide (espacement) entre les détails. "Horizontal" signifie que les espacements entre les détails sont placés horizontalement sur la page et
"Vertical" signifie que les espacements entre les détails sont placés verticalement sur la page.
Sens de l'impression
Déterminez les espacements que vous souhaitez autoriser. Saisissez l'espacement horizontal dans la zone modifiable Horizontal et l'espacement vertical dans la zone modifiable Vertical.
Spécifiez dans cette zone le chemin emprunté par le programme pour imprimer les détails sur une page du rapport. Les options sont les suivantes :
Horizontalement, puis verticalement
Imprime les détails de gauche à droite dans les colonnes : un détail dans la première colonne, un autre dans la deuxième colonne, etc.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
977
Verticalement, puis horizontalement
Lorsque toutes les colonnes possèdent un détail, le programme se déplace verticalement dans la page et imprime un deuxième détail dans la première colonne, puis un autre dans la deuxième colonne, etc.
Imprime les détails d'abord de haut en bas dans la première colonne, puis dans la deuxième colonne, etc.
Mettre en forme les groupes à plusieurs colonnes
Cochez cette case pour que le programme dispose les groupes en colonnes en fonction de la largeur, de l'espacement et du sens d'impression spécifiés pour la section sélectionnée.
Informations associées
Présentation des sections de rapport [page 627]
Détermination des caractéristiques de la zone d'impression [page 642]
1.7.3.2.10.4 Onglet Pagination (Expert Section)
Utilisez l'onglet Pagination pour définir des propriétés telles que numéros de page, orientation, etc., pour une section donnée.
Nouvelle page avant
Cette option de mise en forme est disponible pour les sections En-tête de groupe et Pied de page de groupe et Détails. Lorsque vous cochez cette case, le programme insère un saut de page avant d'imprimer la section. Le saut de page précède donc :
● le groupe (si l'option est utilisée avec une section Pied de page de groupe)
● chaque enregistrement de rapport (si l'option est utilisée avec une section Détails).
L'en-tête et le pied de page figurent sur chaque page. Si une section Pied de page de groupe comporte un champ de sous-total ou de résumé, vous pouvez cocher la case Nouvelle page avant de manière à placer ces valeurs sur les pages qui suivent la valeur totalisée.
Nouvelle page après
Lorsque cette case est cochée, le programme insère un saut de page après avoir imprimé la section.
● L'en-tête et le pied de page figurent sur chaque page.
● Cochez la case Nouvelle page après dans la section Pied de page de groupe pour imprimer chaque groupe sur une page distincte.
Réinitialiser le numéro de page après
Redéfinissez le numéro de la page sur un (1) pour la page suivante, après l'impression d'un total de groupe. Lorsque cette option est utilisée avec l'option Imprimer en bas de la page, le programme imprime un seul groupe par page, la valeur du groupe en bas de la page, puis redéfinit le numéro de la page sur 1 pour la page suivante. Cette option est utile chaque fois que vous imprimez plusieurs rapports à partir d'un même fichier (des factures, par exemple) et que vous souhaitez que la numérotation de chaque rapport commence à la page 1.
978
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Orientation Vous permet de définir l'orientation de page pour chaque section du rapport, à l'exception de l'en-tête de page et du pied de page. Le paramètre par défaut est identique à l'orientation de page du rapport dans la boîte de dialogue Mise en page.
Remarque
Une fois le paramètre par défaut modifié, l'orientation de page de la section n'est pas affectée par les changements apportés ultérieurement à l'orientation de page du rapport.
1.7.3.2.11 Boîte de dialogue Expert Sélection
Utilisez l'Expert Sélection pour sélectionner les enregistrements ou les groupes que vous souhaitez inclure dans votre rapport (si vous ne souhaitez pas tous les inclure). Lorsque vous utilisez l'Expert Sélection, le programme génère automatiquement une formule de sélection d'enregistrements ou de groupes.
Pour accéder aux options Expert Sélection, cliquez sur le Report Designer avec le bouton droit de la souris, pointez la souris sur Rapport, puis cliquez sur Expert Sélection ou cliquez sur le bouton Expert Sélection dans la barre d'outils de Crystal Reports.
SAP Crystal Reports 2008 a ajouté une nouvelle option à l'Expert Sélection : la formule de sélection de données enregistrées. Cette option permet aux utilisateurs d'afficher un sous-ensemble de données enregistré dans un rapport. Lorsque le rapport est actualisé, le filtre SavedDataFilter empêche les données enregistrées d'être ignorées et n'appelle pas la base de données pour actualiser ces données. Une formule de sélection de données enregistrées utilise la même syntaxe qu'une formule de sélection d'enregistrements.
Conseil
Cet expert permet de définir des critères de sélection relativement complexes. Toutefois, si vous souhaitez disposer d'un meilleur contrôle sur la formule créée, utilisez l'Editeur de formule.
Paramètres de recherche
Nouveau
Supprimer
Parcourir
Utilisez les zones de liste afin de sélectionner la condition qui complète le mieux cette phrase :
"Je voudrais sélectionner tous les enregistrements dans lesquels la valeur du champ sélectionné est".
Vous pouvez choisir entre des conditions principales, des conditions de date et des conditions booléennes, selon le type de champ sélectionné.
Cliquez sur l'onglet ou le bouton Nouvelle pour créer une nouvelle formule de sélection.
Lorsque vous cliquez sur cet onglet, la boîte de dialogue Sélectionner un champ apparaît dans laquelle vous sélectionnez un champ pour créer la formule de sélection.
Cliquez sur ce bouton pour supprimer la formule de sélection en cours, ainsi que les onglets associés.
Le bouton Parcourir vous aide à sélectionner les valeurs qui définissent votre formule de sélection. Lorsque vous cliquez sur ce bouton, le programme affiche une liste de valeurs de champ contenues dans la base de données. Si la valeur voulue figure dans la liste, sélectionnez-la et cliquez sur le bouton Coller les données. Le programme insère
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
979
la valeur sélectionnée dans la zone de texte active (la zone de texte contenant le point d'insertion).
Remarque
Si vous avez besoin de sélectionner plusieurs valeurs (par exemple, pour inclure des enregistrements dans lesquels la valeur de champ est à choisir parmi trois valeurs), le point d'insertion est automatiquement positionné dans la zone de texte suivante dès qu'il a fini de coller les données dans la zone où il se trouve.
Afficher/Masquer la formule
Sélection d'enregistrements/
Sélection de groupes
Editeur de formule
Les critères de sélection d'enregistrements que vous saisissez via l'expert génèrent automatiquement une formule de sélection d'enregistrements. Vous pouvez réviser et modifier cette formule en cliquant sur le bouton Afficher. Lorsque vous cliquez sur ce bouton, l'expert s'agrandit pour afficher la formule. Une fois la révision/les modifications effectuées, cliquez sur le bouton Masquer pour cacher la formule de l'écran. L'Expert Sélection est automatiquement mis à jour chaque fois que vous apportez des modifications à la formule.
Sélectionnez l'option Sélection d'enregistrements pour créer une formule de sélection d'enregistrements.
Sélectionnez l'option Sélection de groupes pour créer un formule de sélection de groupes.
Lorsque vous cliquez sur ce bouton, l'Editeur de formule apparaît avec votre formule de sélection contenue dans la zone de texte Formule.
Informations associées
Empilage de la sélection d'enregistrements sur le serveur de base de données [page 666]
Boîte de dialogue Editeur de formule [page 899]
1.8 Glossaire
Contrôle CrystalReportViewer Classe permettant d'afficher des rapports.
Contrôle
CrystalReportPartsViewer champ de base de données
Classe permettant d'afficher des parties de rapport, telles que des objets diagramme, texte ou champ.
Champ SAP Crystal Reports représentant une colonne de données spécifique dans une base de données.
exploration Permet de modifier l'affichage des données dans un rapport pour savoir plus précisément d'où elles proviennent ("exploration avant") ou pour en avoir une vision plus claire en regroupant des ensembles de données ("exploration arrière").
980
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
rapport incorporé rapport géré filtre champ de formule données hiérarchiques rapport non incorporé champ de paramètre invite de paramètre
Report Application Server partie du rapport source du rapport
.rpt
.rptr
Rapport qui a été importé ou créé dans un projet Visual Studio 2005.
Lorsqu'un rapport est incorporé dans un projet, une classe wrapper est automatiquement générée pour ce rapport. Lorsque le projet est compilé, le rapport et sa classe wrapper sont incorporés dans l'assembly, comme pour n'importe quelle autre ressource du projet.
Fichier de rapport Crystal situé dans le référentiel CMS de BusinessObjects
Enterprise et accessible par programmation via une instance de la classe
InfoObject.
Expression limitant les données renvoyées.
Champ SAP Crystal Reports stockant une expression exécutable. Une formule peut être une combinaison d'opérations, de valeurs numériques et de champs.
Données contenant plusieurs paramètres avec une relation parent-enfant.
Rapport externe au projet Visual Studio 2005. Sont inclus les rapports situés sur le disque dur avec un chemin d'accès au répertoire de fichiers, les rapports exposés en tant que service Web de rapport et les rapports faisant partie d'un groupe de rapports exposés via Crystal Services
Champ SAP Crystal Reports représentant une valeur dynamique. L'utilisateur renseigne la valeur avec un paramètre au moment de l'exécution. Il existe deux types de paramètres, discrets et limités. Les paramètres discrets correspondent à une valeur unique alors que les paramètres limités correspondent à une plage de valeurs situées entre une limite inférieure et une limite supérieure. Un paramètre auquel sont attribuées plusieurs valeurs peut
être à la fois discret et limité. Outre ces deux types, les paramètres peuvent
être statiques, dynamiques ou interactifs. Les valeurs de paramètres statiques sont stockées dans le rapport. Les valeurs de paramètres dynamiques sont extraites d'une source de données extérieure au rapport. Un paramètre interactif peut être manipulé au moment de l'exécution.
Invite de l'interface utilisateur permettant de définir une valeur pour les paramètres du rapport.
Vaste ensemble de services de reporting basés sur le serveur permettant d'intégrer étroitement le reporting dans les applications Web personnalisées.
RAS offre un ensemble de services de base axés sur le traitement des rapports, l'intégration des applications et la modification des rapports au moment de l'exécution.
Objet de rapport affiché seul dans un visualiseur sans le reste de la page du rapport.
Une source de rapport est un objet utilisé par le visualiseur pour accéder aux propriétés d'un rapport. Fournit au visualiseur les moyens d'interroger des données du rapport, des informations de page et d'autres informations internes du rapport.
Format de fichier d'un rapport Crystal. Les rapports sont enregistrés par défaut sous forme de fichiers .rpt.
Format de fichier d'un rapport Crystal en lecture seule. Ce rapport est doté des mêmes propriétés qu'un rapport standard, sauf qu'il ne peut pas être modifié
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
981
données enregistrées formule de sélection champ spécial sous-rapport
Bibliothèque de fonctions définies par l'utilisateur (UFL) rapport non géré ni ouvert dans un programme de concepteur. Il peut uniquement être affiché dans le visualiseur de SAP Crystal Reports.
Données actuelles d'un rapport. Elles peuvent être enregistrées lors de l'enregistrement du rapport. Sinon, elles sont ignorées lors de l'actualisation ou de la fermeture du rapport.
Formule indiquant les enregistrements ou les groupes d'enregistrements à inclure dans le rapport. Les trois formules de sélection suivantes peuvent être utilisées pour filtrer les données : formules de sélection de groupes, d'enregistrements ou de données enregistrées. La formule de sélection de groupes indique les enregistrements qui seront affichés. La formule de sélection d'enregistrements indique les enregistrements qui formeront les données enregistrées. La formule de sélection de données enregistrées indique un sous-ensemble des données enregistrées dans un rapport.
Champ contenant des informations spécifiques au rapport telles que nombre de pages, données et durée.
Un sous-rapport est un rapport autonome ou lié qui se trouve dans le rapport principal. Permet d'extraire des informations, de définir les options génériques de mise en forme héritées du rapport et d'ouvrir le sous-rapport comme un rapport.
Bibliothèque de fonctions créée par un développeur pour répondre à un besoin spécifique.
Fichier de rapport Crystal situé dans un système de fichiers local et accessible par programmation via un chemin de fichier.
982
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Guide du développeur du SAP SDK Crystal Reports .NET
Importantes clauses de limitation de responsabilité
Ce document est purement informatif. Les informations contenues dans ce document peuvent être modifiées sans préavis et SAP ne garantit pas qu'elles soient exemptes d'erreurs. SAP EXCLUT TOUTES LES GARANTIES, EXPRESSES OU IMPLICITES, DE QUALITÉ MARCHANDE, OU D'ADÉQUATION À UN USAGE PARTICULIER.
Exemples de code source
Le code et les lignes ou chaînes de code ("Code") inclus dans la présente documentation ne sont que des exemples et ne doivent en aucun cas être utilisés dans un environnement productif. Le Code est utilisé uniquement pour mieux expliquer et visualiser les règles de syntaxe de certains codages. SAP ne sera pas tenu responsable des erreurs ou dommages causés par l'utilisation de ce Code, sauf si de tels dommages étaient causés par SAP intentionnellement ou par négligence grave.
Accessibilité
Les informations contenues dans la documentation SAP représentent la vision actuelle de SAP concernant les critères d'accessibilité, à la date de publication de ladite documentation, et ne peuvent en aucun cas être considérées comme juridiquement contraignantes pour garantir l'accessibilité aux produits logiciels. SAP se dégage de toute responsabilité au regard du présent document et aucune obligation contractuelle d'aucune sorte ne saurait être formée directement ou indirectement par le présent document.
Langage non discriminatoire
Dans la mesure du possible, la documentation SAP est non discriminatoire au titre du genre féminin ou masculin. Selon le contexte, le texte s'adresse au lecteur en utilisant le pronom "vous" ou un substantif neutre (tel que "commercial" ou "jour ouvrable"). Lorsque le texte se réfère à des hommes et des femmes, que la troisième personne du singulier ne peut pas être évitée ou qu'un substantif neutre n'existe pas, SAP se réserve le droit d'utiliser la forme masculine du nom ou du pronom. Ceci permet d'assurer la bonne compréhension de la documentation.
Hyperliens Internet
La documentation SAP peut contenir des hyperliens vers Internet. Lesdits hyperliens sont utilisés pour indiquer où trouver l'information. SAP ne garantit pas la disponibilité et l'exactitude des informations ou leur capacité à répondre à un but précis. SAP ne saurait être tenu responsable des dommages causés par l'utilisation desdites informations sauf si de tels dommages étaient causés par une négligence grave ou une faute intentionnelle de SAP. Pour en savoir plus sur la classification des liens, voir : http://help.sap.com/disclaimer .
SAP Crystal Report pour le Guide du développeur de SAP SDK Visual Studio .NET
Importantes clauses de limitation de responsabilité
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
983
www.sap.com/contactsap
© 2015 SAP SE ou société affiliée SAP. Tous droits réservés.
Toute reproduction ou communication de la présente publication, même partielle, par quelque procédé et à quelque fin que ce soit, est interdite sans l'autorisation expresse et préalable de SAP SE ou d'une société affiliée SAP. Les informations du présent document sont susceptibles d’être modifiées sans préavis.
Certains logiciels commercialisés par SAP SE et ses distributeurs contiennent des composants logiciels qui sont la propriété d'éditeurs tiers. Les spécifications des produits peuvent varier d’un pays à l’autre.
Les informations du présent document sont fournies par SAP SE ou par une société affiliée SAP uniquement à titre informatif, sans engagement ni garantie d'aucune sorte. SAP SE ou ses sociétés affiliées ne pourront en aucun cas être tenues responsables des erreurs ou omissions relatives à ces informations. Les seules garanties fournies pour les produits et les services de SAP SE ou d'une société affiliée SAP sont celles énoncées expressément à titre de garantie accompagnant, le cas échéant, lesdits produits et services. Aucune des informations contenues dans le présent document ne saurait constituer une garantie supplémentaire.
SAP et tous les autres produits et services SAP mentionnés dans ce document, ainsi que leurs logos respectifs, sont des marques commerciales ou des marques déposées de SAP SE (ou d'une société affiliée SAP) en Allemagne ainsi que dans d'autres pays.
Tous les autres noms de produit et service mentionnés sont des marques commerciales de leurs sociétés respectives.
Pour plus d'informations sur les marques déposées, voir http:// www.sap.com/corporate-en/legal/copyright/index.epx
.

公開リンクが更新されました
あなたのチャットの公開リンクが更新されました。