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 11/07/2005, 11h09   #1
Invité de passage
 
Inscription : mai 2004
Messages : 16
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 16
Points : 3
Points : 3
Par défaut [CR9] jointure externe et filtre sur un champs

bonjour à tous en ce beau Lundi de Juillet où on est obligé de travailler :'(

voila mon soucis

je fais une jointurne externe sur une table, jusque là tout va bien

pour chaque personne de la table Personne, il peut exister ou non un enregistrement dans la table Facture.

Dans la table Facture, j'ai un champs Facturedate.

je veux pouvoir recuperer les lignes correspondant à la table Personne même si il n'y a pas de ligne correspondante au ID de la personne dans la table Facture.

Or, je souhaiterais aussi faire un filtre sur Facturedate et c'est la que ca se complique.

Comme la ligne correspondante dans la table Facture n'existe pas, mon filtre sur facturedate est prise en compte et annule la selection de l'enregistrement dans la table Personne.

Je voudrais donc savoir s'il est possible d'ecrire une formule du style:

facturedate>=today or facturedate is null

merci.
d@rthwing est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2005, 12h16   #2
cdu
Membre actif
 
Inscription : août 2004
Messages : 196
Détails du profil
Informations forums :
Inscription : août 2004
Messages : 196
Points : 179
Points : 179
bonjour,

il y a effectivement une fonction Isnull qui te permet de tester si un enregistrement existe ou non.

cependant, ce genre de formule ne sera pas comprise par ta base de données, en conséquence ta base de données n'appliquera pas la formule de sélection et renverra toutes les données à crystal qui s'occupera de la sélection. Ce n'est pas trés efficace au niveau du volume de données qui transite. Mais chacun voit midi à sa porte.
Tu peux contourner le probléme en mettant une partie de ta formule de sélection dans la sélection de groupe, ou dans la formule de suppression de section.

voila..
cdu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2005, 14h27   #3
Invité de passage
 
Inscription : mai 2004
Messages : 16
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 16
Points : 3
Points : 3
j'ai effectivement testé la fonction isnull mais le résultat était le même, l'enregistrement n'est pas pris en compte.

j'ai contourner le problème pour le moment en faisant un sous état, mais j'aimerais optimiser un maximum.

je ne vois pas trop comment faire ca dans la formule de selection de groupe ou de suppression de section....?

merci
d@rthwing est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2005, 14h51   #4
Modérateur
 
Avatar de L.nico
 
Homme Nicolas LAURET
Chef de projet en SSII
Inscription : novembre 2003
Messages : 1 024
Détails du profil
Informations personnelles :
Nom : Homme Nicolas LAURET
Localisation : France, Bas Rhin (Alsace)

Informations professionnelles :
Activité : Chef de projet en SSII
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2003
Messages : 1 024
Points : 1 744
Points : 1 744
Bonjour
mais tu pourrais modifier directement la requête SQL de crystal
et ajouter ta clause OR dans la relation des tables !!
Je crois avoir déjà fait une opération de ce genre là dans un de mes etats
pour la relation justement
Menu Base de données --> afficher une requête SQL !!
Modifier la requête puis faire OK !!

Attention !!
Seul souci toujours réinitialiser la requête lors de l'ajout de nouvelles tables à ton état,
sinon elles ne sont pas prises en compte !!
__________________
Modérateur Business Intelligence / Windev

A lire avant de poster
Si vous avez obtenu la réponse à votre question alors cliquez sur le bouton
L.nico est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2005, 15h02   #5
Invité de passage
 
Inscription : mai 2004
Messages : 16
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 16
Points : 3
Points : 3
le soucis c'est que j'arrive à afficher la requête mais je ne peux pas la modifier

il y a qu'un bouton "ok" quand je fais afficher la requête sql...

any clues?
d@rthwing est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2005, 15h53   #6
cdu
Membre actif
 
Inscription : août 2004
Messages : 196
Détails du profil
Informations forums :
Inscription : août 2004
Messages : 196
Points : 179
Points : 179
1) quand tu affiche la requete sql tu retrouves les selections que tu mets dans ta ta selection d'enregistrement, plus les tris

2)pour ne pas passer par les sous-états, tu rejoutes une formule de suppression pour les sections qui affichent/utilisent des champs de la table facture par exemple supprimer si IsNull(Facture.numFact)
cdu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2005, 16h13   #7
Invité de passage
 
Inscription : mai 2004
Messages : 16
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 16
Points : 3
Points : 3
Donc si j'ai bien compris :

j'utilise l'expert selection
j'affiche la formule
et si je rajoute :

Code :
1
2
3
4
5
6
 
....
AND
iif(isnull({table_facture.facturedate}),true,{table_facture.facturedate}>={?today})
AND
....
je devrais avoir toutes les personnes avec ou sans facture

...
d@rthwing est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2005, 16h25   #8
Modérateur
 
Avatar de L.nico
 
Homme Nicolas LAURET
Chef de projet en SSII
Inscription : novembre 2003
Messages : 1 024
Détails du profil
Informations personnelles :
Nom : Homme Nicolas LAURET
Localisation : France, Bas Rhin (Alsace)

Informations professionnelles :
Activité : Chef de projet en SSII
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2003
Messages : 1 024
Points : 1 744
Points : 1 744
Citation:
Envoyé par d@rthwing
le soucis c'est que j'arrive à afficher la requête mais je ne peux pas la modifier

il y a qu'un bouton "ok" quand je fais afficher la requête sql...

any clues?
Tu pointes sur quel type de base de données ??
Pour ma part je travaille avec des bases SQL Server et je n'ai aucun problème pour modifier la requête !!
__________________
Modérateur Business Intelligence / Windev

A lire avant de poster
Si vous avez obtenu la réponse à votre question alors cliquez sur le bouton
L.nico est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2005, 16h36   #9
Invité de passage
 
Inscription : mai 2004
Messages : 16
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 16
Points : 3
Points : 3
je suis sous oracle 8i
d@rthwing est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2005, 16h37   #10
Modérateur
 
Avatar de L.nico
 
Homme Nicolas LAURET
Chef de projet en SSII
Inscription : novembre 2003
Messages : 1 024
Détails du profil
Informations personnelles :
Nom : Homme Nicolas LAURET
Localisation : France, Bas Rhin (Alsace)

Informations professionnelles :
Activité : Chef de projet en SSII
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2003
Messages : 1 024
Points : 1 744
Points : 1 744
Ca devrait marcher, tu modifies le contenu puis tu fais OK !! non ??
__________________
Modérateur Business Intelligence / Windev

A lire avant de poster
Si vous avez obtenu la réponse à votre question alors cliquez sur le bouton
L.nico est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2005, 16h51   #11
Invité de passage
 
Inscription : mai 2004
Messages : 16
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 16
Points : 3
Points : 3
Non je ne peux pas, il me permet juste de visualiser la requête, je peux faire aucune action dessus...
d@rthwing est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2005, 18h12   #12
Modérateur
 
Avatar de L.nico
 
Homme Nicolas LAURET
Chef de projet en SSII
Inscription : novembre 2003
Messages : 1 024
Détails du profil
Informations personnelles :
Nom : Homme Nicolas LAURET
Localisation : France, Bas Rhin (Alsace)

Informations professionnelles :
Activité : Chef de projet en SSII
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2003
Messages : 1 024
Points : 1 744
Points : 1 744
Alors il faut en déduire que ma solution ne fonctionne qu'avec les
etats qui pointe sur une base de type SQL Server car :
Access : Impossible d'afficher la requête SQL
SQL Server : pas de problème
Oracle : Requête affichée non modifiable !!

Désolé
__________________
Modérateur Business Intelligence / Windev

A lire avant de poster
Si vous avez obtenu la réponse à votre question alors cliquez sur le bouton
L.nico est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2005, 09h33   #13
Membre confirmé
 
Inscription : mai 2002
Messages : 246
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 246
Points : 256
Points : 256
Envoyer un message via MSN à Machuet
En effet avec Oracle on ne peut pas modifier la requête sql aussi avec la 9i
Machuet est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h15.


 
 
 
 
Partenaires

Hébergement Web