FAQ Crystal ReportsConsultez toutes les FAQ
Nombre d'auteurs : 7, nombre de questions : 43, dernière mise à jour : 10 août 2014 Ajouter une question
Cette F.A.Q. a été réalisée à partir des connaissances de membres de Developpez.com en vue de répondre à des questions fréquemment posées par les utilisateurs.
Elle traite de tout type de questions portant sur l'outil Crystal Reports.
Nous espérons que cette F.A.Q. saura répondre à un maximum de vos questions. Nous vous souhaitons une bonne lecture.
L'équipe Crystal Reports de Developpez.com.
- Comment modifier la couleur d'un champ en fonction de sa valeur ?
- Comment traduire un champ "numéro de téléphone" qui a le format 0123456789 au format 01-23-45-67-89 ?
- Comment supprimer les espaces plus ou moins grand entre mes champs ?
- Pourquoi la dernière page de mon rapport est-elle blanche ? Comment la supprimer ?
- Comment mettre mon état en format paysage ?
- Comment cacher un élément en fonction de sa valeur ?
- Comment n'afficher un en-tête ou un pied de page uniquement sur la première page ou la dernière page?
- Comment avoir plusieurs mise en forme de texte dans un champ formule ?
- Comment mettre le n° de page à gauche ou à droite ?
- Comment mettre rapidement en forme un champ par rapport à un autre champ ?
- Comment modifier l'affichage des majuscules et minuscules ?
- Comment faire pour ne pas voir la place allouée à une section quand celle-ci ne renvoie aucune valeur ?
- Comment obtenir un bon alignement horizontal ou vertical afin d'avoir un visuel présentable ?
- Comment imprimer un rapport A3 sur une imprimante A4 ?
- Comment afficher une image transparente dans un rapport ?
- Comment programmer les codes couleurs ?
- Comment colorier une zone de détails sur deux ?
- Comment gérer le nombre de décimales ?
Exemple : le champ {@resultat} est une formule qui calcule le bénéfice ou la perte d'une entreprise pour une période donnée. Le champ doit s'afficher en rouge si le résultat est négatif et en vert s'il est positif ou nul.
Il suffit de cliquer droit sur le champ, de sélectionner "Mettre en forme le champ" puis d'aller sur l'onglet "Police". Il est possible de choisir une couleur fixe pour ce champ (ne changera jamais) ou de déterminer une condition dans l'expert formule en cliquant sur le bouton "x+2". Il faut y écrire
Code : | Sélectionner tout |
1 2 3 | if {@resultat} <0 <br/> then CrRed<br/> else CrGreen<br/> |
La plupart des champs de base de données sont bruts, sans présentation. Pour les documents externes à l'entreprise, il est très utile de "remodeler" ces champs pour les rendre plus lisible.
Pour le numéro de téléphone, il faut utiliser la fonction Picture :
Code : | Sélectionner tout |
Picture({le_champ},"xx-xx-xx-xx-xx")
Souvent, il faut placer plusieurs champs côte à côte. Mais ils sont plus ou moins espacés en fonction de leur taille. Par exemple, on souhaite le nom, le prénom et la date de naissance, on obtiendra en plaçant ces champs de manière fixe :
Code : | Sélectionner tout |
1 2 3 | Durand Pierre 01/02/1980 Montmorency Phillipe 15/08/1981 Saw Tom 01/01/2000 |
Pour cela, il faut créer un champ texte et insérer les champs dedans. Il est possible d'ajouter entre les champs des séparateurs.
Ainsi :
Code : | Sélectionner tout |
1 2 3 | Durand Pierre 01/02/1980 Montmorency Phillipe 15/08/1981 Saw Tom 01/01/2000 |
Il arrive qu'à la génération du rapport, il y ait une page toute blanche en dernier.
Il faut regarder la section "Pied de page de l'état". Celle-ci n'est pas remplie mais la place qui lui est allouée est quand même sur l'état. Il faut donc diminuer, voire supprimer cette section.
Par défaut, un état Crystal Reports est en format portrait mais l'on peut avoir besoin de changer pour des raisons de présentations.
Pour cela, il suffit d'aller dans les options d'impressions et de choisi le mode Paysage
Il est souvent utile de pouvoir cacher un champ selon sa valeur.
Par exemple, pour le champ {montant}, on souhaite le cacher quand il est égal à 0.
Pour cela, il faut cliquer droit sur ce champ, puis "Mettre en forme le champ". Dans l'onglet général, il est possible de cocher supprimer mais il est également possible de mettre une formule de suppression en cliquant sur le bouton x+2 et de taper la formule
Code : | Sélectionner tout |
{montant}=0
Il y a des informations qu'on souhaite voir apparaître sur la première page mais qui peuvent paraître redondantes si elles apparaissent à toutes les pages.
Il faut donc supprimer ces informations dès la deuxième page.
Pour cela, il faut aller dans l'expert section de l'en-tête ou du pied de page puis mettre un formule de suppression :
Code : | Sélectionner tout |
pagenumber<>1
Code : | Sélectionner tout |
pagenumber<>totalpagecount
Vous désirer faire une concaténation de texte et leurs attribuer une mise en forme différente dans un champ formule.
Solution : Utiliser l'interprétation du texte en mode "texte HTML" présent dans la mise en forme du champ, et utiliser la syntaxe HTML.
Code d'exemple :
Champ Formul1 :
Code : | Sélectionner tout |
"Test"
Code : | Sélectionner tout |
" de mise en forme"
Code : | Sélectionner tout |
"<font color='#FF8000'><b>" + {@Formul1} + "</font></b>" + {@Formul2}
Mettre le champ {page N de M} dans le pied de page. Puis formule sur la mise en forme du champ :
Code : | Sélectionner tout |
If pagenumber mod 2 = 1 then crrightalign else crleftalign
Il arrive que pour une section, tous vos champs utilisent une certaine police. Ou que pour telle partie (ou tel état), tous vos champs numérique doivent comporter 4 chiffres après la virgule et il est pénible de devoir à chaque fois, faire clique droit, Mettre en forme le champ, aller dans tel ou tel onglet et faire ce que l'on souhaite.
Pour pallier cela, il suffit de mettre un premier champ en forme. Ensuite, dans les boutons disponibles, juste à côté du bouton coller, vous disposez d'un bouton avec un pinceau. En vous plaçant dessus, vous pouvez lire : "Reproduire la mise en forme".
Placez vous sur le champ déjà mis en forme, cliquez sur le bouton puis sur le champ à mettre en forme.
Et voilà, beaucoup plus rapide quand même!!!
Il arrive que la base de données renvoie un champ nom comme artero ou ARTERO. Il est de coutume que les noms s'écrivent de la sorte : Artero
Crystal met à disposition 3 formules qui modifient l'affichage des majuscules.
Nous prendrons le champ {nom}
uppercase : met toutes les lettres en majuscules
Code : | Sélectionner tout |
uppercase({nom})
lowercase: met toutes les lettres en minuscules
Code : | Sélectionner tout |
lowercase({nom})
propercase : met toutes les premières lettres en majuscules
Code : | Sélectionner tout |
propercase({nom})
C'est très simple, il suffit de faire un clic-droit sur la section puis Expert Section.
Dans l'onglet principal, cochez "Supprimer la section vide"
Lorsque l'on créé un état destiné à l'extérieur de l'entreprise, il faut respecter la charte graphique et avoir une bonne présentation.
Le problème se pose souvent quand les champs (par exemple, les intitulés que l'on a placés en en-tête de page) ne sont pas à même hauteur. Même si cela ne joue que d'un millimètre, cela donne un mauvais visuel.
Il faut pour cela se servir des repères.
En vous plaçant sur la règle à côté de la grille, vous pouvez cliquer et voir apparaître un repère (triangle gris). Celui-ci trace une ligne imaginaire et vous pouvez bloquer vos champs contre celle ligne imaginaire.
Une fois votre mise en page faite et que vous voulez gagner un peu de place, plutôt que de déplacer un à un tous les champs, vous pouvez directement déplacer ce repère qui attirera avec lui tous les champs
Faire un export PDF (ou imprimer sur une imprimante PDF) en format A3. Utiliser ensuite les paramétres de l'imprimante A4 pour faire un zoom ou utiliser l'option "Ajuster au format" .
Il faut faire un fichier « wmf » (coller l'image dans PowerPoint et faire clic droit « enregistrer en tant qu'image ») .
Il faut utiliser color(... , ... , ...) avec les doses de rouge, vert et bleu (entre 0 et 255).
Code : | Sélectionner tout |
color (255,10,85)
Il faut utiliser le mot clé recordnumber qui donne le numéro de ligne, et tester si ce numéro est pair ou impair. Faire un clic droit sur la section de détails, cliquer sur "section", onglet "couleur", cliquer sur le bouton de formule et se mettre en syntaxe Crystal.
Code : | Sélectionner tout |
IF recordnumber mod 2 = 0 then crsilver else crnocolor
De manière générale, lorsque vous avez un nombre (entier ou à virgule), Crystal Reports positionne 2 décimales, même pour les entiers (12.00). Dès lors, nous avons tous à un moment ou un autre eu besoin de formater cela correctement. Il y a plusieurs solutions qui s'appuient toutes sur le même principe. La première consiste à passer par un clic droit sur le champ
puis personnaliser le style
et placer la formule suivante:
Code : | Sélectionner tout |
1 2 3 | IF {FIELD} = round({FIELD} ,0) then 0 else IF {FIELD} = round({FIELD} ,1) then 1 else 2 /*2 chiffres après la virgule maximum*/ |
Code : | Sélectionner tout |
1 2 3 4 | ToText( {FIELD} , (IF {FIELD} = round({FIELD} ,0) then 0 else IF {FIELD} = round({FIELD} ,1) then 1 else 2)) |
Proposer une nouvelle réponse sur la FAQ
Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour çaLes sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2024 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.