|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
|
Futur Membre du Club
![]() Inscription : octobre 2007 Messages : 111 ![]() |
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? |
|
|
00
|
|
|
#2 |
![]() ![]() Bruno ROMAN-RUIZ Inscription : décembre 2006 Messages : 2 181 ![]() |
Bonjour,
Il est totalement impossible de te répondre sans connaitre ta version
__________________
Précisez la VERSION ! Règles du forum Business Objects et FAQ BO"A vouloir repousser ses limites ... On risque d'en prendre connaissance !!!" |
|
|
00
|
|
|
#3 |
|
Futur Membre du Club
![]() Inscription : octobre 2007 Messages : 111 ![]() |
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 |
|
|
00
|
|
|
#4 |
![]() ![]() Bruno ROMAN-RUIZ Inscription : décembre 2006 Messages : 2 181 ![]() |
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 !!!" |
|
|
00
|
|
|
#5 |
|
Futur Membre du Club
![]() Inscription : octobre 2007 Messages : 111 ![]() |
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 |
|
|
00
|
|
|
#6 | ||
![]() ![]() Bruno ROMAN-RUIZ Inscription : décembre 2006 Messages : 2 181 ![]() |
Citation:
Dans ta table tu as quoi comme champs Date Début, Date Fin, Année, Mois...? Citation:
C'est un jeu de piste ton truc ... ![]() Cette saisie de l'utilisateur doit être demandée:
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 !!!" |
||
|
|
00
|
|
|
#7 |
|
Futur Membre du Club
![]() Inscription : octobre 2007 Messages : 111 ![]() |
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 |
|
|
00
|
|
|
#8 | |
![]() ![]() Bruno ROMAN-RUIZ Inscription : décembre 2006 Messages : 2 181 ![]() |
Citation:
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 !!!" |
|
|
|
00
|
|
|
#9 |
|
Futur Membre du Club
![]() Inscription : octobre 2007 Messages : 111 ![]() |
ouais, ça serait super stp
Merci |
|
|
00
|
|
|
#10 |
![]() ![]() Bruno ROMAN-RUIZ Inscription : décembre 2006 Messages : 2 181 ![]() |
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 !!!" |
|
|
00
|
|
|
#11 |
|
Futur Membre du Club
![]() Inscription : octobre 2007 Messages : 111 ![]() |
c'est indiquer 1 pour janvier, 2 pour fevrier etc pour les mois
2007, 2008 etc... pour les années |
|
|
00
|
|
|
#12 | ||||
![]() ![]() Bruno ROMAN-RUIZ Inscription : décembre 2006 Messages : 2 181 ![]() |
Il faut utiliser la @fonction : @Prompt
Code :
@Prompt(‘message’,‘type’,[lov],[MONO|MULTI],[FREE|CONSTRAINED]) 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 :
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
Code :
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 !!!" |
||||
|
|
00
|
|
|
#13 |
|
Futur Membre du Club
![]() Inscription : octobre 2007 Messages : 111 ![]() |
en fait il faudrait concatener l'année et le mois
c pas possible de laisser saisir l'année et le mois separement? |
|
|
00
|
|
|
#14 |
![]() ![]() Bruno ROMAN-RUIZ Inscription : décembre 2006 Messages : 2 181 ![]() |
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 !!!" |
|
|
00
|
|
|
#15 |
|
Futur Membre du Club
![]() Inscription : octobre 2007 Messages : 111 ![]() |
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 |
|
|
00
|
|
|
#16 |
![]() ![]() Bruno ROMAN-RUIZ Inscription : décembre 2006 Messages : 2 181 ![]() |
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 !!!" |
|
|
00
|
|
|
#17 |
|
Futur Membre du Club
![]() Inscription : octobre 2007 Messages : 111 ![]() |
excuse moi mais je n'ai rien compris
tes 2 prompts tu dois les mettre où? |
|
|
00
|
|
|
#18 | ||
![]() ![]() Bruno ROMAN-RUIZ Inscription : décembre 2006 Messages : 2 181 ![]() |
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’,,) SQL : le prompt 2 Code :
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 !!!" |
||
|
|
00
|
|
|
#19 |
|
Membre régulier
![]() Inscription : juillet 2005 Messages : 175 ![]() |
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
Je préfère la première solution pour des raisons de maintenance
A+ |
|
|
00
|
|
|
#20 | |
![]() ![]() Bruno ROMAN-RUIZ Inscription : décembre 2006 Messages : 2 181 ![]() |
Citation:
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 !!!" |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com