Passer un document Crystal Report en mode DATASET
Cette fonctionnalité est disponible à partir de la révision 04.16.14.
Comment migrer un document avec mise en forme Crystal Reports du mode XML historiques au mode Dataset ?
Comment activer le mode Dataset sur les documents Crystal Reports existants en 04.16.14 ?
En bref-en vidéo
En version longue
Une nouvelle information a été ajoutée sur la définition des sources de données Diapason pour utiliser le mode Dataset.
Onglet Caractéristiques
Données XML ? : Fonctionnement par Fichier XML ?
Zone Logique indiquant si la communication avec Crystal Reports® se fait par fichier XML ou par Dataset (Données en Mémoire).
Le mode « XML » est le mode de communication historique mais est moins performant que le mode « Dataset ».
En création sa valeur est par défaut à Non.
Les principales différences entre le mode « XML » et le mode « Dataset » pour le paramétrage des rapports Crystal Reports® se situent sur la gestion des formats dans Crystal Reports® :
Format Date : En mode Dataset le format est transformé en « Datetime » dans la source de données Crystal Reports®, il est nécessaire de formater les champs en fonction de ce format particulier dans Crystal Reports® sinon l’affichage défaut de Crystal Reports® est « JJ/MM/AAAA hh:mm:ss » au lieu de « JJ/MM/AAAA » pour l’ancien Format « Date »
Format Alpha : Les formats définis dans Diapason (par exemple « C/10 ») ne sont plus interprétés par Crystal Reports® c’est-à -dire que Crystal Reports® ne tronquera plus au format défini sur le champ dans Diapason.
Remarques:
Par défaut lors du changement de version sa valeur est à Oui sur l’ensemble des sources de données existantes.
Après avoir migrer une édition Crystal Reports® du mode « XML » vers le mode « Dataset », il est nécessaire de lancer l’action « Génération Source de données » depuis les rapports utilisant la source de données courante.
Lors de mise à jour de ce champ, si la source de données contient un Champ « Date », une alerte prévient qu’une modification du rapport Crystal Reports® peut être nécessaire pour mettre à jour le format d’affichage des champs de type « Date ».
Procédure de migration d’une source de données en mode XML vers un mode Dataset
Les principales différences entre le mode « XML » et le mode « Dataset » sont :
Format des champs « Date » Diapason sont au format « Datetime » dans Crystal Reports® : nécessite un formatage différent du format « Date » en mode « XML ».
Les liens avec les fichiers XML et XSD pour la conception et le débogage sont gérés en chemins relatifs : ceci permet une portabilité plus simple pour la conception et le déploiement d’un rapport Crystal Reports®
Exemple avec un document de test :
-Document Avant Migration :
-Document après migration sans interventions :
Il est donc nécessaire dans ce cas de suivre la procédure ci-dessous :
Etape 1 : DĂ©sactivation du mode XML dans Diapason
Aller sur la définition de la sources de données que vous souhaitez basculer et décocher « Données XML ».
A la validation de la fiche, une alerte s’affichera si votre source de données contient au moins un champ au format Date :
Etape 2 : Synchronisation du rapport Depuis Diapason
Pour chaque rapport utilisant votre source de données, lancer l’action « Synchronisation source de données » :
SĂ©lectionner votre serveur de service P17 et valider :
Refaire la synchronisation pour chaque Rapport Diapason utilisant votre source de données.
Etape 3 (si Utilisation de champ de type Date dans les sources de données) : Mise à jour de la mise en forme des dates dans le rapport et dans les formules du fichier
Aller dans le répertoire des rapports sur votre serveur de service et ouvrir le rapport Crystal Reports® lié.
Identifier les champs aux format Date qui sont utilisés dans votre rapport à partir de l’explorateur de champ (coche verte sur les champs) :
Plusieurs cas sont à gérer :
➡️ Cas 1 : le champ est utilisé directement dans le document
Sélectionner le champ dans le rapport, Action « Mettre en Forme le champ … »
Sur l’onglet « Date et Heure » sélectionner le format que vous souhaitez
➡️ Cas 2 : le champ est concaténé dans une zone caractère
Dans ce cas il faut d’abord convertir le champ au format caractère en utilisant un champ de formule, puis il faut remplacer l’utilisation du champ date par ce nouveau champ :
Exemple de formule pour convertir le champ au format Datetime en chaine de caractère :
IF ISNULL({DATA_DIAPASON/ENTETE.jour}) THEN "" ELSE Cstr(CDate ({DATA_DIAPASON/ENTETE.jour}))
Ensuite remplacer l’utilisation du champ Date par le nouveau champ de formule.
➡️ Cas 3 :le champ est utilisé dans une formule
Depuis l’explorateur de champ, Lancer l’action « Rechercher dans les formules … »
et convertir le format Datetime au format Date comme au point 2 :
Etape 4 : test du résultat
Sur un document utilisant votre rapport, lancer l’action « Test Edition (F11) »
Cas de la création d’un nouveau rapport