Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > Business Objects > Deski
Deski Forum d'entraide Deski (client lourd)
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 20/11/2007, 17h16   #1
Invité de passage
 
Inscription : novembre 2007
Messages : 35
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 35
Points : 3
Points : 3
Par défaut [BO 6.5] - Comment utiliser les opérateurs de contextes ?

Bonjour

J'ai 2 requêtes distinctes :
Req1Fr : NomFournisseur, CA, Pays avec la clause where Pays = France
Req2HorsFr : NomFournisseur, CA, Pays avec la clause where Pays <> France

Nota (pour être explicite) : le nom du fournisseur et son pays viennent de la classe "Fournisseur", le CA de la classe "Commandes"

Si je crée un rapport1 avec uniquement NomFournisseur1 et que je demande le nombre de fournisseurs distincts (nombre(<NomFournisseur(Req1Fr)>)), j'obtiens une valeur correcte (6742).
Idem si je crée un rapport 2 basé sur la liste de fournisseurs de la Req2HorsFr, j'obtiens 993 fournisseurs

Je voudrais pouvoir faire un rapport 3 récapitulatif avec uniquement le nombre de fournisseurs en France et hors France.

Or sur mon rapport 3, si je me contente de créer une cellule avec
=Nombre(<NomFournisseur(Req1Fr)>) et une autre avec =Nombre(<NomFournisseur(Req2HorsFr)>), j'obtiens deux fois la même valeur (7722).

J'en déduis qu'il faut ajouter un opérateur de contexte, mais je n'arrive pas à trouver lequel.

Si quelqu'un a une idée...
Thomdul est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2007, 18h39   #2
Rédacteur
 
Avatar de Bruno2r
 
Bruno ROMAN-RUIZ
Inscription : décembre 2006
Messages : 2 181
Détails du profil
Informations personnelles :
Nom : Bruno ROMAN-RUIZ
Âge : 57

Informations professionnelles :
Secteur : Santé

Informations forums :
Inscription : décembre 2006
Messages : 2 181
Points : 2 717
Points : 2 717
Bonsoir Thomdul
Je ne compends pas pourquoi tu fais deux requêtes différentes !
Une requête suffit pour alimenter le cube de donnée
NomFournisseur, CA, Pays

Créer une Variable :
Menu Données /Variables
Ajouter
Nommer la variable Zone
Formule :
Code :
= Si (<Pays>="France") Alors <Pays> Sinon "Autres"
Ensuite il te suffit d'insérer une cellule avec la formule :
Code :
=Nombre(<NomFournisseur>)(<Zone>="France")
Puis une deuxième avec
Code :
=Nombre(<NomFournisseur>)(<Zone>="Autres")
__________________
Précisez la VERSION ! Règles du forum Business Objects et FAQ BO
"A vouloir repousser ses limites ... On risque d'en prendre connaissance !!!"
Bruno2r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2007, 10h18   #3
Invité de passage
 
Inscription : novembre 2007
Messages : 35
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 35
Points : 3
Points : 3
Pour des raisons de simplification de mon problème. J'ai essayé d'exprimer un cas simple qui pose un problème de contexte avec l'opérateur nombre (avec somme ça marche tout seul). Mon cas réel est plus compliqué (il me faut les fournisseurs auxquels ont commandé d'un côté -> 1 univers) et les fournisseurs que l'on a payé de l'autre (1 autre univers).
Thomdul est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2007, 12h18   #4
Rédacteur
 
Avatar de Bruno2r
 
Bruno ROMAN-RUIZ
Inscription : décembre 2006
Messages : 2 181
Détails du profil
Informations personnelles :
Nom : Bruno ROMAN-RUIZ
Âge : 57

Informations professionnelles :
Secteur : Santé

Informations forums :
Inscription : décembre 2006
Messages : 2 181
Points : 2 717
Points : 2 717
Résumons
Rapport 1 = 6742
Rapport 2 = 993

Total attendu 7735

Total obtenu 7722

Ecart 13

Je pense que ce sont 13 fournisseurs communs aux deux requêtes.
Je me doute bien qu'on ne peut pas être à la fois en France et Pas en France mais il faudrait que tu vérifies
si tu as des fournisseurs communs
si tu as des pays = null

En mettant les deux requêtes dans le même rapport 3
Tu fais l'équivalent (et sans en être prévenu par BO) :
d'un SELECT DISTINCT FOURNISSEURS parmi les 7735

C'est la même chose qu'un
Code :
1
2
3
4
5
6
7
8
9
SELECT FOURNISSEURS FROM T1
UNION
SELECT FOURNISSEUR FROM T2
Résultat 7722
 
SELECT FOURNISSEURS FROM T1
UNION ALL
SELECT FOURNISSEUR FROM T2
Résultat 7735
Pour répondre à ta question sur les frmules contextuelles

Code :
= Nombre(<Fournisseur>(<Pays> = "France")
devrait marcher très bien
__________________
Précisez la VERSION ! Règles du forum Business Objects et FAQ BO
"A vouloir repousser ses limites ... On risque d'en prendre connaissance !!!"
Bruno2r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2007, 10h38   #5
Invité de passage
 
Inscription : novembre 2007
Messages : 35
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 35
Points : 3
Points : 3
J'ai un bout de la solution mais pas tout

= Nombre(<Fournisseur> Où(<Pays> = "France")
fonctionne très bien en effet mais dans l'autre sens, c'est à dire Où(<Pays> <> "France") ? Il semble que le "où" n'accepte pas le <>
Dans la même ligne d'idée, j'aimerais faire un "où dans liste" voire un "où pas dans liste", c'est possible ?

Les exemples donnés dans l'aide en ligne BO sont très succints. Si quelqu'un a une doc un peu plus "utile", j'apprécierais.
Thomdul est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2007, 11h40   #6
Membre émérite
 
Avatar de Ayana
 
Inscription : décembre 2005
Messages : 901
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 901
Points : 900
Points : 900
Tous ceux qui sont dans tes données - tous ceux qui sont en France = tous ceux qui ne sont pas en France

__________________
--= Ayana =--
Modératrice B.I.

Règles du forum BO

Team BAB - Spécialistes BO

Rubrique BI de developpez.com
Ayana est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2007, 11h52   #7
Rédacteur
 
Avatar de Bruno2r
 
Bruno ROMAN-RUIZ
Inscription : décembre 2006
Messages : 2 181
Détails du profil
Informations personnelles :
Nom : Bruno ROMAN-RUIZ
Âge : 57

Informations professionnelles :
Secteur : Santé

Informations forums :
Inscription : décembre 2006
Messages : 2 181
Points : 2 717
Points : 2 717
Salut Thomdul
Pourrais tu relire la 1ère réponse que je t'ai faite ...
je te donnais la solution en créant une variable ramenant deux résultats possibles :
France et Autres.

Merci
__________________
Précisez la VERSION ! Règles du forum Business Objects et FAQ BO
"A vouloir repousser ses limites ... On risque d'en prendre connaissance !!!"
Bruno2r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2007, 14h37   #8
Invité de passage
 
Inscription : novembre 2007
Messages : 35
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 35
Points : 3
Points : 3
Re-bonjour

Je reviens sur ce problème après une petite absence...
La réponse de Bruno2R fonctionnel très bien avec l'opérateur Somme (le contexte est bien pris en compte et j'ai j'ai bons totaux)
mais avec Nombre, même en utilisant l'astuce de passer par une variable, ça ne fonctionne que si j'insère ma condition dans un tableau mais pas dans une cellule

Je m'explique (enfin j'essaie)
si je fais = Nombre(<Fournisseur> Où(<Pays> = "France") dans une cellule, j'obtiens n'importe quoi comme valeur
si je fais la même chose mais en insérant d'abord un tableau simple avec tous les fournisseurs, puis en remplaçant le contenu par cette même formule, j'obtiens le vrai nombre de fournisseurs.
J'en déduis que lorsque j'insère un tableau, BO me génère le contexte qui va bien et que je n'arrive pas à appliquer à ma cellule
Bon, dans le fond, j'admets que ça n'est pas gênant d'avoir le résultat dans un tableau mono-cellule mais ça ne me parait pas très propre malgré tout et puis il reste un mystère que je n'arrive pas à résoudre...
Thomdul est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2007, 15h10   #9
Rédacteur
 
Avatar de Bruno2r
 
Bruno ROMAN-RUIZ
Inscription : décembre 2006
Messages : 2 181
Détails du profil
Informations personnelles :
Nom : Bruno ROMAN-RUIZ
Âge : 57

Informations professionnelles :
Secteur : Santé

Informations forums :
Inscription : décembre 2006
Messages : 2 181
Points : 2 717
Points : 2 717
Salut

As tu essayé dans une cellule les syntaxes suivantes
Code :
1
2
= Nombre(<Fournisseur>(<Pays> = "France") Dans Bloc
= Nombre(<Fournisseur>(<Pays> = "France") Dans Corps
__________________
Précisez la VERSION ! Règles du forum Business Objects et FAQ BO
"A vouloir repousser ses limites ... On risque d'en prendre connaissance !!!"
Bruno2r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2007, 17h10   #10
Invité de passage
 
Inscription : novembre 2007
Messages : 35
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 35
Points : 3
Points : 3
hélas oui, tout, même dans Document...
Il y a moyen de visualiser le contexte exact d'un tableau ?
Thomdul est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2007, 20h06   #11
Rédacteur
 
Avatar de Bruno2r
 
Bruno ROMAN-RUIZ
Inscription : décembre 2006
Messages : 2 181
Détails du profil
Informations personnelles :
Nom : Bruno ROMAN-RUIZ
Âge : 57

Informations professionnelles :
Secteur : Santé

Informations forums :
Inscription : décembre 2006
Messages : 2 181
Points : 2 717
Points : 2 717
As tu posé un filtre sur ton tableau ?
Si c'est le cas, y a t il plusieurs tableaux sur le même rapport ?
Si oui ont ils des filtres aussi ?
Si il n'y a pas d'autres tableaux ou si il y en a mais qu'ils ont le même filtre alors
Clic droit sur le fond blanc du rapport (parmet de s'assurer que rien n'est sélectionné)
Formater les filtres
Ouvrir le dossier (+) représentant le tableau où est le fitre
Prendre la variable filtrée, la déplacer dans Global
Regarder ce qui se passe sur le résultat de cette fameuse formule.
__________________
Précisez la VERSION ! Règles du forum Business Objects et FAQ BO
"A vouloir repousser ses limites ... On risque d'en prendre connaissance !!!"
Bruno2r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2007, 10h29   #12
Invité de passage
 
Inscription : novembre 2007
Messages : 35
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 35
Points : 3
Points : 3
Bonjour

J'ai bien regardé : pas de filtre, ni sur le rapport, ni sur aucun des 4 tableaux présents dans le rapport
Thomdul est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2007, 10h42   #13
Rédacteur
 
Avatar de Bruno2r
 
Bruno ROMAN-RUIZ
Inscription : décembre 2006
Messages : 2 181
Détails du profil
Informations personnelles :
Nom : Bruno ROMAN-RUIZ
Âge : 57

Informations professionnelles :
Secteur : Santé

Informations forums :
Inscription : décembre 2006
Messages : 2 181
Points : 2 717
Points : 2 717
Citation:
Envoyé par Thomdul Voir le message
Re-bonjour

Je reviens sur ce problème après une petite absence...
La réponse de Bruno2R fonctionnel très bien avec l'opérateur Somme (le contexte est bien pris en compte et j'ai j'ai bons totaux)
mais avec Nombre, même en utilisant l'astuce de passer par une variable, ça ne fonctionne que si j'insère ma condition dans un tableau mais pas dans une cellule

Je m'explique (enfin j'essaie)
si je fais = Nombre(<Fournisseur> Où(<Pays> = "France") dans une cellule, j'obtiens n'importe quoi comme valeur
si je fais la même chose mais en insérant d'abord un tableau simple avec tous les fournisseurs, puis en remplaçant le contenu par cette même formule, j'obtiens le vrai nombre de fournisseurs.
J'en déduis que lorsque j'insère un tableau, BO me génère le contexte qui va bien et que je n'arrive pas à appliquer à ma cellule
Bon, dans le fond, j'admets que ça n'est pas gênant d'avoir le résultat dans un tableau mono-cellule mais ça ne me parait pas très propre malgré tout et puis il reste un mystère que je n'arrive pas à résoudre...
Ce qu'il te faut faire : (enfin tenter ...)
Tu fais ton tableau pour lequel le contexte va bien
Tu mets au point ta formule Nombre de ...
Méthode 1 :
tu approche le pointeur de la souris vers la barre de formule une infobulle apparait (et ne reste pas logtemps) qui te permet de voir le contexte déterminé par BO
Méthode 2 :
Tu Définis une variable avec cette formule en choisissant
Evaluer la formule dans son contexte
tu vas dans ta cellule tu y mets ta nouvelle variable.

Et tu me dis ce que ça donne ???
__________________
Précisez la VERSION ! Règles du forum Business Objects et FAQ BO
"A vouloir repousser ses limites ... On risque d'en prendre connaissance !!!"
Bruno2r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2007, 14h48   #14
Invité de passage
 
Inscription : novembre 2007
Messages : 35
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 35
Points : 3
Points : 3
J'avais essayé le coup de la variable. Ça me met le contexte "Dans Rapport".
Idem pour l'info-bulle.
Donc j'ai testé en créant une cellule avec ma formule Nombre(fournisseur) dans rapport et j'ai toujours une valeur farfelue.
Ce qui est fou, c'est que si j'insère un tableau en mettant uniquement 1 colonne avec les noms des fournisseurs et que je demande le nombre, j'ai le bon résultat (je l'ai validé en faisant un export sous xls et un comptage brut du nb de lignes !).
Si je prends la formule Nombre(fournisseur) qui a été générée automatiquement par BO et que je la copie/colle dans une nouvelle cellule, j'ai une valeur farfelue (même pas le nb de fournisseurs total).
Si je supprime de mon tableau et le titre et la cellule fournisseur, il ne me reste plus alors qu'un tableau mono-cellule avec la formule Nombre(fournisseur), là j'ai le bon résultat.
Si je fais un select count distinct nom fournisseur, j'ai le bon résultat également (ouf !).
Thomdul est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2007, 15h30   #15
Rédacteur
 
Avatar de Bruno2r
 
Bruno ROMAN-RUIZ
Inscription : décembre 2006
Messages : 2 181
Détails du profil
Informations personnelles :
Nom : Bruno ROMAN-RUIZ
Âge : 57

Informations professionnelles :
Secteur : Santé

Informations forums :
Inscription : décembre 2006
Messages : 2 181
Points : 2 717
Points : 2 717
Citation:
Si je supprime de mon tableau et le titre et la cellule fournisseur, il ne me reste plus alors qu'un tableau mono-cellule avec la formule Nombre(fournisseur), là j'ai le bon résultat.
Et ça si tu le mets en tête de rapport ça reste bon ou pas ?
__________________
Précisez la VERSION ! Règles du forum Business Objects et FAQ BO
"A vouloir repousser ses limites ... On risque d'en prendre connaissance !!!"
Bruno2r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2007, 15h36   #16
Invité de passage
 
Inscription : novembre 2007
Messages : 35
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 35
Points : 3
Points : 3
Oui, où que je le mette dans le rapport, c'est ok
Thomdul est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2007, 15h41   #17
Rédacteur
 
Avatar de Bruno2r
 
Bruno ROMAN-RUIZ
Inscription : décembre 2006
Messages : 2 181
Détails du profil
Informations personnelles :
Nom : Bruno ROMAN-RUIZ
Âge : 57

Informations professionnelles :
Secteur : Santé

Informations forums :
Inscription : décembre 2006
Messages : 2 181
Points : 2 717
Points : 2 717
Alors c'est fini ?
J'arrive pas à y croire !
me le redis et tu mets
__________________
Précisez la VERSION ! Règles du forum Business Objects et FAQ BO
"A vouloir repousser ses limites ... On risque d'en prendre connaissance !!!"
Bruno2r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2007, 15h54   #18
Invité de passage
 
Inscription : novembre 2007
Messages : 35
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 35
Points : 3
Points : 3
Ben oui mais non, en fait. Certes le résultat final est bon mais c'est toujours mon tableau mono-cellule
Ça me chiffonne d'être obligée de passer par là, je préfèrerais une cellule simple avec le bon contexte.
Tu vas dire que je suis puriste... Reste qu'il y a un truc que je ne comprends toujours pas !
Thomdul est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2007, 16h04   #19
Rédacteur
 
Avatar de Bruno2r
 
Bruno ROMAN-RUIZ
Inscription : décembre 2006
Messages : 2 181
Détails du profil
Informations personnelles :
Nom : Bruno ROMAN-RUIZ
Âge : 57

Informations professionnelles :
Secteur : Santé

Informations forums :
Inscription : décembre 2006
Messages : 2 181
Points : 2 717
Points : 2 717
Ben moi pas plus !
Surtout sans l'avoir sous les yeux.

Dernière idée :
Nouveau rapport (pas document)
Gestionnaire de rapport
Tu sélectionne tes données avec la Ctrl enfoncée
tu fais glisser sur la page
tu regardes si les syptomes persistent
__________________
Précisez la VERSION ! Règles du forum Business Objects et FAQ BO
"A vouloir repousser ses limites ... On risque d'en prendre connaissance !!!"
Bruno2r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2007, 16h12   #20
Invité de passage
 
Inscription : novembre 2007
Messages : 35
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 35
Points : 3
Points : 3
ça fait quoi exactement la touche ctrl ?
si je glisse mon fournisseur sur un nouveau rapport -> ça me crée le tableau avec la liste de tous les fournisseurs, ça c'est OK
si je crée une cellule avec le nb de fournisseurs, c'est toujours OK

Par contre, si j'insère un autre tableau avec mon autre liste de fournisseurs, là ça repart en vrille (j'ai 2 reqûetes qui me ramènent des fournisseurs : ceux qui ont commandés et ceux à qui on a facturé)
et j'aimerais avoir tout sur le même rapport (c'est sûr que si je comptabilise dans 2 rapports différents, les résultats sont bons)

Je comprends que sans les rapports sous les yeux, ça n'est pas évident, merci d'essayer en tout cas
Thomdul 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 01h06.


 
 
 
 
Partenaires

Hébergement Web