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 06/11/2007, 16h53   #1
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
Par défaut [CR XI] Condition ou dans une sélection

Bonjour à tous.

Voici mon problème, j'ai une table comportant des dates de ventes et des dates d'annulation de ventes.

J'ai créé deux champs paramètres pour récuperer une date de début et une date de fin pour la sélection de mes enregistrements.

Quand avec l'expert de sélection je lui indique de sélectioner toutes les ventes comprises entre le (date de début) et le (date de fin), ca marche.
Si je fait la même chose avec les annulations, car marche aussi.

Si je veux les enregistrements ayant une date de vente et une date d'annulation comprises dans l'intervale sélectionné ca marche, j'utilise la condition 'and', aucun problème.

Par contre si je veux les enregistrement ayant une date de vente ou une date d'annulation comprises dans l'interval sélectionné, ca ne marche pas, j'utilise la condition 'or'.

Pourquoi la condition or ne semble pas fonctionner ?

Voici la formule utilsée qui ne marche pas :

Code :
1
2
3
({Vente.rcSignature}  >= {?Datedeb} AND {Vente.rcSignature} <= {?DateFin}
 OR 
{Vente.rcAnnulation} >= {?Datedeb} AND {Vente.rcAnnulation} <= {?DateFin})
Coocky10 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/11/2007, 09h24   #2
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
Je ne comprend pas pourquoi cela ne fonctionne pas.
Au pire, créés deux autres paramètres pour les annulations
Aitone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/11/2007, 10h18   #3
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
J'ai surtout l'impression que la condition ou ne fonctionne pas dans une sélection d'enregistrement.

J'ai tester cela :

Code :
1
2
{Vente.rcAnnulation} = Date (2006, 06, 16) OR
{Vente.rcSignature} IN {?Datedeb} TO {?DateFin}
Avec cette formule j'ai uniquement une ligne celle correspondant à l'annulation du 16/06/2006

En inverssant ma formule

Code :
1
2
{Vente.rcSignature} IN {?Datedeb} TO {?DateFin} OR
{Vente.rcAnnulation} = Date (2006, 06, 16)
J'ai uniquement les ventes comprisent dans les dates choisis et ma ligne d'annulation du 16/06/2006 n'apparait plus.

En clair la condition OU n'est jamais prise en compte, d'ailleur quand j'utilise l'expert de sélection et que je fait nouveau, il rajoute systématiquement la condition AND, mais ne propose pas d'autre type de condition.

Si vous pouviez me confirmer cela, est ce que ca marche pour vous ce genre de condition dans la sélection ?
Coocky10 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/11/2007, 11h02   #4
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
Il faudrait réessayer avec ton premier code mais en rajoutant des parenthèses :
Code :
1
2
3
(({Vente.rcSignature}  >= {?Datedeb} AND {Vente.rcSignature} <= {?DateFin})
 OR 
({Vente.rcAnnulation} >= {?Datedeb} AND {Vente.rcAnnulation} <= {?DateFin}))
Aitone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/11/2007, 11h31   #5
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
Et bien non cela ne change rien du tout.

Code :
1
2
3
(({Vente.rcSignature}  >= {?Datedeb} AND {Vente.rcSignature} <= {?DateFin})
 OR 
({Vente.rcAnnulation} >= {?Datedeb} AND {Vente.rcAnnulation} <= {?DateFin}))
Dans ce cas je n'ai que les enregistrements concernant la première condition

J'inversse ma formule :
Code :
1
2
3
(({Vente.rcAnnulation} >= {?Datedeb} AND {Vente.rcAnnulation} <= {?DateFin})
OR
({Vente.rcSignature}  >= {?Datedeb} AND {Vente.rcSignature} <= {?DateFin}))
idem je n'ai que les enregistrements concernant la première condition.

Mais jamais les enregistrements concernant la premiere ou la deuxième condition ensemble.

J'ai fait l'essai en créant une table Accès, j'ai la même chose la condition OU n'est pas prise en compte.
Coocky10 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/11/2007, 17h03   #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
Juste pour information, est ce que vous utilisez la fonction OU dans vos formules de sélection ? et si oui est ce que cela marche pour vous ?

merci pour vos réponses.
Coocky10 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/11/2007, 11h51   #7
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 information et pour ceux que cela intéresse.

J'ai créer la requête SQL en aval par le biais d'une commande et là étrangement avec la même requête, ma condition OU est bien prise en compte.

Code :
1
2
3
4
5
6
7
8
9
10
11
 
SELECT "Vente"."NomProgramme", "Vente"."NomCommercial", "Vente"."rcSignature", "Vente"."TypeContrat", "Vente"."Montant", "Vente"."rcAnnulation"
FROM "Vente" "Vente" 
WHERE 
(
("Vente"."rcSignature" >= {?Datedeb} AND 
 "Vente"."rcSignature" <= {?Datefin})
OR 
("Vente"."rcAnnulation" >= {?Datedeb} AND 
 "Vente"."rcAnnulation" <= {?Datefin})
)
et voici la requête crée par CR en automatique qui ne marche pas.

Code :
1
2
3
4
5
6
7
8
9
10
11
 
SELECT "Vente"."NomProgramme", "Vente"."NomCommercial", "Vente"."rcSignature", "Vente"."TypeContrat", "Vente"."Montant", "Vente"."rcAnnulation"
FROM   "Vente" "Vente"
WHERE  
(
("Vente"."rcSignature">={d '2006-01-01'} AND 
"Vente"."rcSignature"<={d '2006-12-31'}) 
OR 
("Vente"."rcAnnulation">={d '2006-01-01'} AND 
"Vente"."rcAnnulation"<={d '2006-12-31'})
)
J'avoue que je vois pas bien la différence....
Coocky10 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 12h14.


 
 
 
 
Partenaires

Hébergement Web