|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : mai 2006 Messages : 15 ![]() |
Bonjour,
Je souhaite construire une invite permettant aux utilisateurs d'entrer un paramètre qui servira dans mon état pour des calculs. J'ai donc essayé de créer un objet dans mon univers à l'aide de la fonction @Prompt mais ça ne marche pas. Mon objet ne fait référence à aucune table puisque l'objet doit être défini par l'utilisateur. Auriez-vous une idéé? Merci d'avance finesse20 |
|
|
00
|
|
|
#2 |
|
Membre émérite
![]() Inscription : septembre 2006 Messages : 815 ![]() |
en effet c'est un problème redondant ça....
.... il te faudrait une condition prédéfinie avec un @prompt (cherche dans le forum à condition prédéfinie ou à @prompt j'ai laissé du code à ce sujet) ..le problème est que ta condition prédéfinie doit obligatoirement porter sur un table.champs ou objet existant dans ton univers. ... Et il faut je suppose que la selection d'une valeur pour cet invite n'ai pas d'impact sur le résultat de la requete, sinon tu ferai une invite classique. 1-il faut donc créer un alias d'une table isolé du reste du modèle. 2- créer un objet pour cette table <valeur> 3- créer une condition prédéfinie <c_valeur>pour cet objet @Select(MA_Classe\valeur) IN @Prompt ('Choix valeur', 'A', 'MA_Classe\valeur', MULTI, FREE) ) La liste de valeurs possible sera ici celle de l'objet Ma_classe\valeur, donc si tu veux la modifier il faut modifier la liste de valeur de l'objet ajouté 4- faire ta requete classique et ajouter l'objet <valeur> et la condition prédéfinie <c_valeur> Si tu regarde le SQL, BO doit avoir généré 2 requetes séparées car l'alias ajouté est isolé du modèle. ensuite tu peux utiliser ce qui est saisie dans l'invite pour un calcul par exemple : =10*EnNombre(RéponseUtilisateur ("Requête 1 avec BEACHFR" , "Choix valeur")) Ce n'est pas très pratique, car l'utilisateur est obligé d'ajouter à la fois un objet et une condition....mais s'il s'agit d'un rapport ponctuel ça peut faire l'affaire... |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : mai 2006 Messages : 15 ![]() |
merci de ta réponse bastoonet.
Tu as parfaitement cerné mon problème. Je vais donc suivre tes conseils en créant un alias de table. |
|
|
00
|
|
|
#4 |
|
Membre du Club
![]() Inscription : février 2007 Messages : 89 ![]() |
Bonjour,
je ne suis pas sur que tout ca soit nécessaire. Si ton objet n'est pas lié à une table tu auras un avertissement dans le designer mais ce ne sera pas une erreur. Dans ton rapport l'objet (non lié) ne posera pas de pb à condition qu'il n'est pas le seul objet de ta requête. |
|
|
00
|
|
|
#5 |
|
Membre émérite
![]() Inscription : septembre 2006 Messages : 815 ![]() |
...oui la partie sur la fonction prédéfinie n'est pas obligatoire....tu peux le faire dans l'éditeur de requete à partir de l'objet que tu as ajouté....
...mais tout bon Designer...avait bien sûr compris cela.... |
|
|
00
|
|
|
#6 |
|
Membre du Club
![]() Inscription : février 2007 Messages : 89 ![]() |
je comprend pas pourquoi tu veux mettre une condition prédéfinie?
|
|
|
00
|
|
|
#7 |
|
Membre émérite
![]() Inscription : septembre 2006 Messages : 815 ![]() |
Bah parce que je croyais que les utilisateurs allaient créer eu même les rapports (vu que BO sert à ça)
...ça évite de se retaper la condition à chaque fois....et en plus on peut mettre une description qui définie comment utiliser la condition (par exemple dans notre cas qu'il faut ajouter également l'objet correspondant à la condition....sinon on se retrouve avec une belle erreur car on aura comme SQL (select from table where @prompt(etc etc...) avec rien dans le select.. |
|
|
00
|
|
|
#8 |
|
Invité de passage
![]() Inscription : mai 2006 Messages : 15 ![]() |
Ca y est mon problème est réglé.
J'ai tout d'abord créé un alias de table de la façon dont me l'avait conseillé bastoonet. Mais lorsque j'ai inséré mon objet et ma condition dans la requête de mon état, une erreur intervenait : génération produit cartésien. J'ai finalement créé un objet à partir d'une table existant dans mon schéma. J'ai ensuite créé dans mon état un deuxième fournisseur de données ne contenant que mon paramètre (en résultat) avec la condition associée. et ça marche très bien. Merci de votre aide |
|
|
00
|
|
|
#9 |
|
Membre émérite
![]() Inscription : septembre 2006 Messages : 815 ![]() |
ok...
ça vient peut être des paramètre et restriction de ton univers....et également de ta base de données.... |
|
|
00
|
|
|
#10 |
|
Membre habitué
![]() Inscription : mars 2006 Messages : 111 ![]() |
Salut
Il est tout à fait possible d'avoir un @prompt qui ne pointe pas sur un objet de l'univers. Cet @prompt devra OBLIGATOIREMENT être créé sous Designer. @prompt( 'Question?', 'A', ,MONO,FREE) Tu peux si tu souhaites mettre des valeurs de choix: @prompt( 'Question?', 'A', {'choix1', 'choix2', 'choix'}, MONO, FREE) Le seul problème réside dans la condition pour créer ton prompt mais tu peux faire un truc du style objet <Mon Parametre> ('A' = @prompt( 'Question?', 'A', ,MONO,FREE) OR 'A' <> @prompt( 'Question?', 'A', ,MONO,FREE)) Ainsi dans ce cas, tu seras sûr que cela ne sera pas bloquant pour le reste de la requête J'espère t'avoir aidé Frédéric |
|
|
00
|
|
|
#11 | |
|
Membre Expert
![]() Inscription : mai 2004 Messages : 1 812 ![]() |
Si j'ai bien compris le problème, je suis plutôt d'accord avec frederic_s. En fait ce qui m'étonne c'est ça :
Citation:
__________________
Il vaut mieux monopoliser son intelligence sur des bêtises que sa bêtise sur des choses intelligentes. Mon combat pour les droits des consommateurs face aux abus des grandes marques. |
|
|
|
00
|
|
|
#12 |
|
Nouveau Membre du Club
![]() Inscription : novembre 2006 Messages : 31 ![]() |
Bonjour,
il y a plus beaucoup simple: tu mets 2 fois le même prompt dans ta condition, juste pour avoir la réponse de l'utilisateur: @Prompt('Voulez vous xxxx O/N ?',{'O','N'},,MONO,FREE) =@Prompt('Voulez vous xxxx O/N ?',{'O','N'},,MONO,FREE) c'est une condition du genre 'A'='A' qui n'impacte pas le résultat de ta requête mais qui te permet d'avoir ensuite la RéponseUtilisateur('Voulez vous xxxx O/N ?') @+ Ghy74 |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com