Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > Business Objects > Designer
Designer Forum d'entraide Designer (création d'univers, etc.)
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 14/02/2008, 09h35   #1
Futur Membre du Club
 
Inscription : octobre 2007
Messages : 111
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 111
Points : 18
Points : 18
Par défaut [BO 5.1.6][Designer] Filtre entre 2 dates

Bonjour,

je dois réaliser un filtre entre 2 années: entre une année de debut + un mois de début et entre une année de fin + un mois de mois
sachant que cela ne doit pas dépasser 36 mois (3 ans)
J'essaie d'utilser Between mais cela ne fonctionne pas
qq'un pourrait il m'aider?
julien2602 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2008, 09h53   #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
Bonjour,
Il est totalement impossible de te répondre sans connaitre ta version
  • V5,
  • V6,
  • V Xi R2
et encore moins sans savoir si l'environnement est
  • client lourd Desk Intelligence (DeskI)
  • ou Web Intelligence (WebI)
Sinon, au sujet de ta question elle même, tu parles bien
  • d'un filtre dans le rapport
  • pas d'une condition dans ta requête
Peux tu nous le préciser ? Merci et à bientôt.
__________________
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 14/02/2008, 09h57   #3
Futur Membre du Club
 
Inscription : octobre 2007
Messages : 111
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 111
Points : 18
Points : 18
Ma version est 5.1.6
et je suis en client lourd et pas en WebI
il s'agit bien d'un filtre que je crée dans l'univers

Merci
julien2602 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2008, 10h06   #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
Merci Julien2602,
Donc tu es dans Designer en 5.1.6, pas dans BO Reporter.

Tu veux donc créer un objet filtre pour l'utilisateur qui voudra limiter son interrogation à des enregistrements pour lesquels l'écart entre AnnéeMoiDébut et AnnéeMoisFin n'excède pas 36 mois ?
C'est bien ça ?

Année Début, Mois Début, Année Fin, Mois Fin
sont bien 4 champs d'une même table ?
__________________
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 14/02/2008, 10h10   #5
Futur Membre du Club
 
Inscription : octobre 2007
Messages : 111
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 111
Points : 18
Points : 18
C'est exactement ça
c'est sur 4 champs ou plus exactement sur 2 champs car je prend Année et Mois identique pour le debut et pour la fin
on doit pouvoir laisser l'utilisateur saisir sa plage de date sans exceder 36 mois(il peut saisir sur 12 ou 24 mois s'il en a envie)

Merci
julien2602 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2008, 10h26   #6
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 julien2602 Voir le message
C'est exactement ça
c'est sur 4 champs ou plus exactement sur 2 champs car je prend Année et Mois identique pour le debut et pour la fin
Franchement là je ne comprends pas.
Dans ta table tu as quoi comme champs Date Début, Date Fin, Année, Mois...?
Citation:
on doit pouvoir laisser l'utilisateur saisir sa plage de date sans exceder 36 mois(il peut saisir sur 12 ou 24 mois s'il en a envie)

Merci
Alors maintenant tu me parles d'un Prompt (Invite) où la question sera posée à l'utilisateur sur la durée souhaitée exprimée en mois <= 36 ?
C'est un jeu de piste ton truc ...

Cette saisie de l'utilisateur doit être demandée:
  • automatiquement ?
  • ou lorsqu'il choisit d'utiliser le filtre ?
Et cette durée elle est calculée à partir de quoi ?
la date système (ex 24 mois précédant aujourd'hui ?)
Peux tu nous montrer ton SQL du filtre qui ne marche 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 14/02/2008, 10h33   #7
Futur Membre du Club
 
Inscription : octobre 2007
Messages : 111
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 111
Points : 18
Points : 18
l'utilsateur, en utilisant ce filtre devra saisir 4 champs: Année Début, Mois Début, Année Fin et Mois fin
Il se trouve que pour ces champs, c'est moi qui rajoute Début ou fin car j'ai un seul champ Année et un seul champ Mois dans ma table

je sais c'est compliqué, c'est là mon drame

ce filtre sera dans un rapport que je vais creer mais je laisse à l'utilisateur le choix des dates du rapport (d'ou le prompt) mais d'apres le cahier des charges, on ne doit pas le laisser saisir une periode de plus de 36 mois

C'est un rapport (qui contiendra ce filtre) qu'on met à disposition mais qui pourra servir à terme à d'autres rapports que l'utilisateur pourra creer lui-même
julien2602 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2008, 10h41   #8
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 julien2602 Voir le message
l'utilsateur, en utilisant ce filtre devra saisir 4 champs: Année Début, Mois Début, Année Fin et Mois fin
Il se trouve que pour ces champs, c'est moi qui rajoute Début ou fin car j'ai un seul champ Année et un seul champ Mois dans ma table

je sais c'est compliqué, c'est là mon drame

ce filtre sera dans un rapport que je vais creer mais je laisse à l'utilisateur le choix des dates du rapport (d'ou le prompt) mais d'apres le cahier des charges, on ne doit pas le laisser saisir une periode de plus de 36 mois

C'est un rapport (qui contiendra ce filtre) qu'on met à disposition mais qui pourra servir à terme à d'autres rapports que l'utilisateur pourra creer lui-même
OK !

une invite AnnéeMois de début (Ex: 200801) ?
et une invite Nb de Mois (Maximum36) ?
Ca t'irait ?
__________________
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 14/02/2008, 10h50   #9
Futur Membre du Club
 
Inscription : octobre 2007
Messages : 111
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 111
Points : 18
Points : 18
ouais, ça serait super stp

Merci
julien2602 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2008, 11h03   #10
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
une invite AnnéeMois de début (Ex: 200801)
et une invite Nb de Mois (Maximum36)

J'ai besoin de savoir si tes champs Année et Mois sont
en Numérique 2008 ; 2
ou Alphanumérique (souvent Varchar2 en Oracle) '2008' ; '02' ou '2'
__________________
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 14/02/2008, 11h10   #11
Futur Membre du Club
 
Inscription : octobre 2007
Messages : 111
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 111
Points : 18
Points : 18
c'est indiquer 1 pour janvier, 2 pour fevrier etc pour les mois
2007, 2008 etc... pour les années
julien2602 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2008, 11h57   #12
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
Il faut utiliser la @fonction : @Prompt

Code :
@Prompt(‘message’,‘type’,[lov],[MONO|MULTI],[FREE|CONSTRAINED])
dont les paramètres sont :
message le libellé de la question posée à l'utilisateur
ex : 'Quelle AnnéeMois (Ex: 200712) ?' ou 'Combien de mois (Maximum 36) ?'
type est :

* 'A' pour alphanumérique
* 'N' pour nombre
* 'D' pour Date

[lov] paramètre optionnel utilisé pour proposer une liste

* soit saisie : {12,24,36}
* soit correspondant à la liste de valeurs d'un objet : Classe\Objet exemple Classe\AnnéeMois
où ton objet AnnéeMois à créer aurait pour Select (Table.Année * 100) + Table.Mois

[MONO|MULTI] l'un ou l'autre bien entendu pour permettre la saisie d'une seule ou plusieurs valeurs
ici MONO

[FREE|CONSTRAINED] Laissant l'utilisateur libre de saisir une valeur ou l'obligeant à choisir dans la liste.

Tous les paramètres entre crochets sont optionnels mais si on ne les précise pas on doit conserver leur emplacement
Exemple :
Code :
1
2
@Prompt('Quelle AnnéeMois de début (Ex: 200712) ?',‘A’,Classe\AnnéeMois,MONO,)
@Prompt('Combien de mois (Maximum : 36) ?',‘N’,{6,12,18,24,30,36},MONO,CONSTRAINED)
  • Bien entendu tu peux mettre dans la liste toutes les valeurs de 1 à 36
  • C'est exprès que j'ai choisi un type A pour le premier et N pour le second ce sera plus simple pour la suite (passage en date pour ajout de mois)
Ce prompt pourra être utilisé dans la clause restrictive de ton filtre sur la table (limitant celle ci aux réponses fournies aux prompts)
Pour la comparaison avec l'objet crée AnnéeMois (voir plus haut) tu ne peux pas additionner bêtement le résultat des deux réponses au prompt car 200612 + 24 feraient 200638 qui n'existe pas.
Il te faudra passer par
  1. une conversion de la réponse au prompt AnnéeMois en date
  2. pour ajouter le nombre de mois
  3. convertir cette nouvelle date en AnnéeMois
Code :
1
2
3
4
5
to_char(
add_months(
to_date(@Prompt('Quelle AnnéeMois de début (Ex: 200712) ?',‘A’,Classe\AnnéeMois,MONO,),'YYYYMM'),
@Prompt('Combien de mois (Maximum : 36) ?',‘A’,{'6','12','18','24','30','36'},MONO,CONSTRAINED)),
'YYYYMM')
Et ça c'est la clause restrictive à poser sur l'objet @Selet(Classe\AnnéeMois) créé plus haut

A tester car étant à la maison en vacances (si! si!) je n'ai pas BO sous la main pour vérifier la syntaxe exact et je fais ça de mémoire ... (la pauvre !)

Tiens nous au courant ...
__________________
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 14/02/2008, 14h46   #13
Futur Membre du Club
 
Inscription : octobre 2007
Messages : 111
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 111
Points : 18
Points : 18
en fait il faudrait concatener l'année et le mois
c pas possible de laisser saisir l'année et le mois separement?
julien2602 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2008, 15h17   #14
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
Pourquoi ça te pose problème ?
De toute façon il te faudra concaténer Année et Mois
pour obtenir une date
à laquelle tu vas ajouter le nombre de mois
Maintenant si t'as un champs date ça peut le faire aussi.

Dans la mesure ou tu mets dans le libellé du message
Ex ; 200712 les utilisateurs savent le faire
Enfin c'est comme tu préfères
T'as tout les éléments pour adapter les prompts
__________________
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 14/02/2008, 15h42   #15
Futur Membre du Club
 
Inscription : octobre 2007
Messages : 111
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 111
Points : 18
Points : 18
pour l'année-mois, pas de souci, il existe deja un champ qui concatene l'année et le mois.
par contre quelle partie dois je utiliser: les 2 prompts?
tu ecris que la clause doit etre placé dans le @Selet(Classe\AnnéeMois)
dans ce que tu as mis, je ne le trouve pas!!!

dsl
julien2602 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2008, 15h50   #16
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
Quand tu crées un objet filtre dans Designer.

Il porte sur un champ d'une table

Si tu as un champs AnnéeMois ça va :
il doit être compris entre l'AnnéeMois du prompt 1
et l'AnnéeMois calculé (Ajout des x mois du prompt 2 au Prompt 1)

Si tu n'as pas de champs AnnéeMois dans la table
Tu utilises l'objet AnnéeMois créé pour la liste avec la fonction @Select ou en le sélectionnant dans le zone des objets de ta fenêtre de construction SQL
Voila
__________________
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 14/02/2008, 16h00   #17
Futur Membre du Club
 
Inscription : octobre 2007
Messages : 111
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 111
Points : 18
Points : 18
excuse moi mais je n'ai rien compris
tes 2 prompts tu dois les mettre où?
julien2602 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2008, 16h16   #18
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
Reprenons :
Tu veux faire un filtre :
Donc appliquer à un champ AnnéeMois une condition du type :
Entre AnnéeMois1 et AnnéeMois2

Alors pour décomposer :
1) Tu crées un objet AnnéeMois1 (dans une classe outils que tu pourras masquer)
SQL : le prompt 1
Code :
@Prompt('Quelle AnnéeMois de début (Ex: 200712) ?',‘A’,,)
2) Tu crées un objet AnnéeMois2
SQL : le prompt 2
Code :
1
2
3
4
5
to_char(
add_months(
to_date(@SELECT(Outils\AnnéeMois1) ,
@Prompt('Combien de mois (Maximum : 36) ?',‘N’,{6,12,18,24,30,36},MONO,CONSTRAINED)),
'YYYYMM')
Est ce que c'est plus clair ?
Je te rappelles que je fais ça de tête sans BO devant moi ...

Quelqu'un pourrait il valider ce que je dis et/ou apporter des précisions à julien2602 ?
__________________
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 14/02/2008, 17h11   #19
Membre régulier
 
Inscription : juillet 2005
Messages : 175
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 175
Points : 80
Points : 80
Salut,

Si tu crées un filtre dans l'univers alors l'utilisateur final devra penser à l'utiliser dans son rapport pour que la restriction soit réalisée. Ceci paraît évident mais il ne faut pas oublier que l'utilisateur final ne maîtrise peut-être pas complétement l'outil (le reporter) et le contexte de travail.

Est-ce que cette restriction est obligatoire ? Si c'est le cas alors je te conseille de l'imposer
  • soit en l'indiquant dans les jointures de la table concernée par le restriction
  • soit dans la clause Where de chacun des objets liés à cette table

Je préfère la première solution pour des raisons de maintenance
  • en cas de modification de la restriction alors il suffit de modifier le code des jointures et non pas l'ensemble des objets
  • en cas d'ajout d'un objet lié à cette table alors tu n'as plus à te soucier de la restriction qui est automatiquement imposée par le jointure

A+
dcollart est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2008, 17h22   #20
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 dcollart Voir le message
Salut,

Si tu crées un filtre dans l'univers alors l'utilisateur final devra penser à l'utiliser dans son rapport pour que la restriction soit réalisée. Ceci paraît évident mais il ne faut pas oublier que l'utilisateur final ne maîtrise peut-être pas complétement l'outil (le reporter) et le contexte de travail.

Est-ce que cette restriction est obligatoire ? Si c'est le cas alors je te conseille de l'imposer
  • soit en l'indiquant dans les jointures de la table concernée par le restriction
  • soit dans la clause Where de chacun des objets liés à cette table
Je préfère la première solution pour des raisons de maintenance
  • en cas de modification de la restriction alors il suffit de modifier le code des jointures et non pas l'ensemble des objets
  • en cas d'ajout d'un objet lié à cette table alors tu n'as plus à te soucier de la restriction qui est automatiquement imposée par le jointure
A+
En tous points d'accord avec toi !
Quelque soit l'utilisation du filtre qu'il en fera ...
Est ce que tu peux me dire si ce que je lui propose comme mode d'élaboration du filtre te semble correct techniquement ?
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
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h09.


 
 
 
 
Partenaires

Hébergement Web