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.


SommaireMise en forme (18)
précédent sommaire suivant
 

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/>

Mis à jour le 13 janvier 2008 Aitone

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")
Il doit y avoir autant de xxxx que de caractères dans le champ.

Mis à jour le 13 janvier 2008 Aitone

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
Il faut concaténer ces champs pour obtenir un autre résultat.
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

Mis à jour le 13 janvier 2008 Aitone

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.

Mis à jour le 13 janvier 2008 Aitone

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

Mis à jour le 13 janvier 2008 Aitone

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

Mis à jour le 13 janvier 2008 Aitone

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
Pour la dernière page:

Code : Sélectionner tout
pagenumber<>totalpagecount

Mis à jour le 13 janvier 2008 Aitone

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"
Champs Formul2 :

Code : Sélectionner tout
" de mise en forme"
Champs Formul3 (utiliser l'option "texte HTML" pour ce champ):

Code : Sélectionner tout
"<font color='#FF8000'><b>" + {@Formul1} + "</font></b>" + {@Formul2}

Mis à jour le 13 janvier 2008 Coocky10

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

Mis à jour le 13 janvier 2008 kikidrome

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!!!

Mis à jour le 13 janvier 2008 Aitone

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})
donne ADRIEN ARTERO

lowercase: met toutes les lettres en minuscules

Code : Sélectionner tout
lowercase({nom})
donne adrien artero

propercase : met toutes les premières lettres en majuscules

Code : Sélectionner tout
propercase({nom})
donne Adrien Artero

Mis à jour le 13 janvier 2008 Aitone

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"

Mis à jour le 13 janvier 2008 Aitone

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

Mis à jour le 13 janvier 2008 Aitone

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" .

Mis à jour le 13 janvier 2008 Aitone Coocky10 kikidrome

Il faut faire un fichier « wmf » (coller l'image dans PowerPoint et faire clic droit « enregistrer en tant qu'image ») .

Mis à jour le 19 janvier 2008 kikidrome

Il faut utiliser color(... , ... , ...) avec les doses de rouge, vert et bleu (entre 0 et 255).

Code : Sélectionner tout
color (255,10,85)
Ce code donnera un rose pâle.

Mis à jour le 19 mai 2008 HULK

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
Ce code mettra une ligne sur deux en gris dans votre rapport.

Mis à jour le 19 mai 2008 HULK

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*/
De la même manière, on peut intégrer ce principe dans une formule (pour un champ concatèner à un autre par exemple).

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))

Mis à jour le 19 mai 2008 say

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 ça


Réponse à la question

Liens sous la question
précédent sommaire suivant
 

Les 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 © 2018 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.

 
Responsable bénévole de la rubrique SAP : doc malkovich -