Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > Crystal Reports
Crystal Reports Forum d'entraide sur Crystal Reports. Avant de poster --> FAQ Crystal, Tutoriels Crystal
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 03/01/2008, 10h22   #1
Membre du Club
 
Inscription : novembre 2006
Messages : 226
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 226
Points : 44
Points : 44
Par défaut creer un groupe avec le reste des valeurs nulles

Bonjour
Je m'explique:
J'ai creer un groupe avec un champ d'une table (rootcause). J'ai donc 5 entetes de groupe qui contiennent la valeur de rootcause.

Mais j'aimerais rajouter dans le meme groupe, un nom qui s'appelerait "SANS" dans lequel je prend toutes les données où rootcause=' '.
J'ai voulu faire :
Code :
1
2
3
4
 
IF {Incident.RootCause}=''
then {RootCause.RootCause}="SANS"
else {RootCause.RootCause}={RootCause.RootCause}
Mais ca ne change rien...
Si vous avez une idée?
steinia est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2008, 10h57   #2
Membre habitué
 
Homme Fred
Inscription : juillet 2007
Messages : 136
Détails du profil
Informations personnelles :
Nom : Homme Fred
Âge : 38
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : juillet 2007
Messages : 136
Points : 122
Points : 122
Bonjour

As tu essayer la formule isnull ?
Coocky10 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2008, 11h16   #3
Membre du Club
 
Inscription : novembre 2006
Messages : 226
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 226
Points : 44
Points : 44
Oui mais les données ne sont en faites pas nulles, mais vides. C'est pour ca que j'ecris ca comme ceci : {Incident.RootCause}='""
steinia est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2008, 11h23   #4
Membre habitué
 
Homme Fred
Inscription : juillet 2007
Messages : 136
Détails du profil
Informations personnelles :
Nom : Homme Fred
Âge : 38
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : juillet 2007
Messages : 136
Points : 122
Points : 122
Heu mais en fait un truc que je comprend pas dans ta formule.

{RootCause.RootCause}, c'est un champ de base et non champs formule, tu ne peut donc pas lui attribuer une valeur.

Il faut creer un champs formule y écrire ceci

Code :
1
2
3
IF {Incident.RootCause}=""
then "SANS"
else {RootCause.RootCause}
Et se servir de ce champs formule pour creer ton groupe.
Coocky10 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2008, 11h40   #5
Membre du Club
 
Inscription : novembre 2006
Messages : 226
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 226
Points : 44
Points : 44
ah oui, je n'avais pas pensé à creer un nom de groupe par champ de formule comme ceci.
Merci bcp

Par contre, j'ai un autre souci qui va avec ce pb.
Il s'agit d'un pb d'architecture de base, mais je n'ai pas la main en ecriture sur la base.
En fait, je ne peux pas faire de jointure entre mes 2 tables : rootcause et incident car le champ en commun est de forme différente.
Dans la table rootcause, c'est un int et dans l'autre c'est une chaine.
Donc j'ai fait dans ma selection d'enregistrement:

Code :
IF ({Incident.RootCause}<>"") then ({RootCause.RootCauseID})=ToNumber({Incident.RootCause}) else ({Incident.RootCause}="")
Mais à priori,il ne fait pas la jointure correctement...puisqu'il m'affiche tous les noms.
Il y a t'il un autre moyen de faire une jointure si les champs ne sont pas du meme type?
steinia est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2008, 12h08   #6
Membre habitué
 
Homme Fred
Inscription : juillet 2007
Messages : 136
Détails du profil
Informations personnelles :
Nom : Homme Fred
Âge : 38
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : juillet 2007
Messages : 136
Points : 122
Points : 122
Pour une jointure sur deux type différent à mon avis il faut passer par l'écriture manuelle de la requête SQL, et faire la conversion de type en langage SQL.

En faisant base de donnée afficher la requête SQL tu aura le code SQL que créer Crystal Report au moment de la sélection.

Il faudrais ensuite écrire ta propre requête en créant une table virtuel, à partir de l'expert base de donnée et la fonction commande.

C'est un peu complexe, mais à part modifier la base, je sais pas si on peut faire autrement.
Coocky10 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2008, 14h26   #7
Membre du Club
 
Inscription : novembre 2006
Messages : 226
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 226
Points : 44
Points : 44
Oula oui en effet, ca me parait un peu complexe surtout que je viens juste de me mettre a crystal..

Je vais en parler au client..en esperant que ca ne le derange pas de modifier la structure de la base...
steinia est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2008, 14h32   #8
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
Tout dépend de la structure de ton état. Mais si sur l'une des tables, tu n'utilises pas beaucoup de champs, tu affiches ces champs via un sous-rapport et là tu fais tes liens facilement.
Cela évite de saouler ton client et qu'il lui prenne l'envie d'aller voir ailleurs...
Aitone 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 13h46.


 
 
 
 
Partenaires

Hébergement Web