Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > Crystal Reports > Formules
Formules Forum sur l'utilisation des formules sous Crystal reports
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 04/03/2008, 14h51   #1
Membre régulier
 
Inscription : janvier 2006
Messages : 483
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 483
Points : 80
Points : 80
Par défaut [CR ?] Formule pour couleur de remplissage d'un champ

Bonjour,
mon soucis concerne la couleur de remplissage d'un champ.
Je voudrais une couleur de fond s'il a une donnée et une couleur s'il est vide.
Quel serait la formule ?
Merci d'avance
leloup84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/03/2008, 15h06   #2
Membre confirmé
 
Développeur informatique
Inscription : mars 2008
Messages : 155
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : mars 2008
Messages : 155
Points : 280
Points : 280
Je n'ai que CR en version anglaise, mais je vais essayer d'être le plus claire possible.
1. Click droit sur le champ que tu veux "customiser".
2. Choisis "Format Field" (2ème point de menu)
3. Clique sur "Border" (2ème tab)
Dans le cadre "Couleur", tu coches l'option "Background" et tu cliques sur le bouton de formule.
La formule devrait ressembler à
if trim({TABLE1.field1}) = "" then crGreen
else cr...
La formule doit renvoyer une des constantes suivantes:
  • Color (red, green, blue)
  • crBlack
  • crMaroon
  • crGreen
  • crOlive
  • crNavy
  • crPurple
  • crTeal
  • crSilver
  • crRed
  • crLime
  • crYellow
  • crBlue
  • crFuchsia
  • crAqua
  • crWhite
  • crNoColor

J'espère que c'est ça dont tu as besoin...

Bàt

Anne-Ca
AnneCa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/03/2008, 15h15   #3
Invité régulier
 
Inscription : août 2007
Messages : 14
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 14
Points : 7
Points : 7
Bonjour,
1.click droit sur le champ que tu veux personalisé
2. selectionne l'englet Bordure
3. coche la case Arrière-plan puis click sur le buton formule
4. dans l'editeur tu aura :
// Cette formule de mise en forme conditionnelle doit renvoyer un(e) des Constantes de couleur suivant(e)s :
//
// Color (red, green, blue)
// crBlack
// crMaroon
// crGreen
// crOlive
// crNavy
// crPurple
// crTeal
// crSilver
// crRed
// crLime
// crYellow
// crBlue
// crFuchsia
// crAqua
// crWhite
// crNoColor
//
4. ajout une ligne de ce genre :
if {@Champ} = "valeur" then color(xx,xx,xx) else color(yy,yy,yy)
oradotnet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/03/2008, 15h16   #4
Membre régulier
 
Inscription : janvier 2006
Messages : 483
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 483
Points : 80
Points : 80
Code :
1
2
3
4
IF(NOT isnull({@Lundi1}))then
crgreen
else
crred
Voilà ce que j'ai mis.
Il me met bien les champs non vide en vert mais les autres ne sont pas mis en rouge. Il reste sans couleur.
Comment cela se fait-il ?
leloup84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/03/2008, 15h19   #5
Membre confirmé
 
Développeur informatique
Inscription : mars 2008
Messages : 155
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : mars 2008
Messages : 155
Points : 280
Points : 280
As-tu essayé de combiner les 2 conditions (être null et être non blanc)?

IF(NOT isnull({@Lundi1})) and trim({@Lundi1}) <> "" then
crgreen
else
crred

Bàt

Anne-Ca
AnneCa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/03/2008, 15h23   #6
Membre régulier
 
Inscription : janvier 2006
Messages : 483
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 483
Points : 80
Points : 80
non çà ne change rien mes autres champs ne se mettent toujours pas en rouge.
leloup84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/03/2008, 15h47   #7
Membre expérimenté
 
Avatar de kikidrome
 
Inscription : décembre 2004
Messages : 841
Détails du profil
Informations personnelles :
Localisation : France, Drôme (Rhône Alpes)

Informations forums :
Inscription : décembre 2004
Messages : 841
Points : 563
Points : 563
Citation:
Envoyé par leloup84 Voir le message
non çà ne change rien mes autres champs ne se mettent toujours pas en rouge.
bizarre... je viens de tester sur un rapport et çà marche bien..
__________________
Les paysages sont plus beaux quand on transpire.
Olaf Candau
kikidrome est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/03/2008, 15h55   #8
Membre régulier
 
Inscription : janvier 2006
Messages : 483
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 483
Points : 80
Points : 80
Oui mais mes champs ont peut être un truc spéciale que je ne vois pas
leloup84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/03/2008, 15h58   #9
Inactif
 
Avatar de Aitone
 
Inscription : novembre 2006
Messages : 3 569
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 3 569
Points : 3 291
Points : 3 291
Citation:
Envoyé par AnneCa Voir le message
As-tu essayé de combiner les 2 conditions (être null et être non blanc)?

IF(NOT isnull({@Lundi1})) and trim({@Lundi1}) <> "" then
crgreen
else
crred

Bàt

Anne-Ca
à essayer avec or à la place du and
Code :
1
2
3
4
IF(NOT isnull({@Lundi1})) OR trim({@Lundi1}) <> "" then
crgreen
else
crred
Aitone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/03/2008, 15h59   #10
Membre confirmé
 
Développeur informatique
Inscription : mars 2008
Messages : 155
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : mars 2008
Messages : 155
Points : 280
Points : 280
Je pense avoit trouvé quelque chose... mais je n'ai pas vraiment d'explication logique

Onglet Bordure
1. Mettre un style de ligne (simple) pour les 4 (gauche-droite-haut-bas)
2.Dans le cadre couleur
a) Bordure: blanc
b) Arrière-plan: Cocher + formule
3. OK + rafraîchir rapport

Ca donne quoi??
AnneCa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/03/2008, 16h15   #11
Membre régulier
 
Inscription : janvier 2006
Messages : 483
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 483
Points : 80
Points : 80
Rien de mieux
leloup84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/03/2008, 16h18   #12
Inactif
 
Avatar de Aitone
 
Inscription : novembre 2006
Messages : 3 569
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 3 569
Points : 3 291
Points : 3 291
Citation:
Envoyé par leloup84 Voir le message
Rien de mieux
t'as testé avec le OR ? ?
Aitone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/03/2008, 16h22   #13
Membre régulier
 
Inscription : janvier 2006
Messages : 483
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 483
Points : 80
Points : 80
oui
leloup84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/03/2008, 16h22   #14
Membre confirmé
 
Développeur informatique
Inscription : mars 2008
Messages : 155
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : mars 2008
Messages : 155
Points : 280
Points : 280
Suppose que c'est le champ1 de TABLE1 que tu veux afficher.
Au lieu d'afficher champ1 directement dans le rapport, tu fabriques d'abord une formule @Champ1.

if trim({TABLE1.CHAMP1}) = '' or isnull({TABLE1.CHAMP1})
then ' ' else {TABLE1.CHAMP1}

Tu intègres cette formule à la place de champ1 et tu formate le champ formule comme suit
Onglet Bordure
Dans le cadre couleur
a) Bordure: blanc
b) Arrière-plan: Cocher + formule = if Trim({@Champ1}) = '' then crxxx else crxxx
3. OK + rafraîchir rapport
AnneCa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/03/2008, 08h27   #15
Membre régulier
 
Inscription : janvier 2006
Messages : 483
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 483
Points : 80
Points : 80
Ok merci AnneCa.
Avec ta dernière solution que je viens d'essayer cela fonctionne.
Il faut bien que je fabrique d'abord une formule.
Merci encore
leloup84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h32.


 
 
 
 
Partenaires

Hébergement Web