I need to create an universe that enables the use of drop-down menus.
Indeed, in the application that already exists (not at all in BO) and that I need to replace with a BO solution, a user can create a report with a selection on up to 10 objects in a particular order : for example ‘Market Type’ (level 1)-> ‘Supplier’ (level 2) -> ‘Energy’ (level 3) -> ‘Country’, etc.
What I need is to have dynamic lists of values that are refreshed when the user selects the value of the object of upper level.
Ex : the list of values of ‘Supplier’ is not the same if ‘Market Type’=‘AJU’ or ‘CTE’.
I tried several posibilities with BO, but nothing seems to be adequate.
I tried to insert a clause Where in the objects (the Where clause concerns the object of upper level, such as
REF_TYPE_MAR.LIB_TYPE_MAR IN @Prompt('1 - Which market type?','A','MyClass\Market Type',MULTI,CONSTRAINED)
I tried the same thing in the list of values query (for each object again).
But then, if I try to edit the list of value for, let’s say, the ‘Country’, BO asks me :
-> Which Market Type?
-> Which Supplier?
-> Which Energy? That is OK, but when I try to select the Energy, I am again asked for the Supplier and Market Type… etc
I also tried whith @Select
REF_PRODUCTEUR.LIB_PRODUCTEUR IN @Select(MyClass\Supplier)
Well, I’m not sure that’s very clear (sorry), but I find it quite difficult to explain without the universe itself.
Does anyone know a way to create menus and dynamic lists of values?
try a search on ‘cascading prompt’, I think you’ll find what you need.
Well, I think you’re trying to ask that ie a customer first selects a country and the next prompt shows only the cities within that country, so the list for the second prompt depends on the answer of the first prompt.
Thanks for your answer, highandstoned: I didn’t know how that was called in English.
I found an explaination in the FAQs https://bobj-board.org/t/15227/8 but as I don’t have the Island Resort Marketing Universe, I don’t really understand what I have to do… and all the answers in the other topics on the subject send to this FAQ page
If my hierarchie is: Market Type then Supplier then Energy, in which objects do I have to insert the conditions, and concerning which other object (the one of upper or lower level?)?
just read that example, it explains it well.
The trick is to set a prompt in the LOV which you want filtered.
For your example, you need a condition with a prompt on supllier within the energy list. That way it will show first the prompt on supplier before refreshing the energy list.
Of course I read it, but I think it is what I was doing… and what doesn’t work!
I am asked several times for the choice of the ‘Market Type’ (first level) but I would like it to be automatic, and not to have to enter it several times.
What I need is the user to be asked, and only once, for all values (Market Type, Supplier, Energy…) and the LOVs to be refreshed directly.
just to be sure: the only thing that works in BO is a cascading prompt which, when used (and created properly) creates the following effect:
You have continent, country,city. I want the list of cities filtered based on the country choosen and the country list filtered based on the continent choosen.
When created and the user has a report which has a prompt on the city, the user will be asked first which continent, when supplied he will be given a list with countries to pick from and when he enters this, then the cities list will be presented.
This is the only way it works in BO, with the downside that the answer to earlier prompts can NOT be shown in reports and can NOT be used in the filter. This last aspect means that when a user selects Netherlands and then selects Harlem, he will see all results where the city is Harlem, even when Harlem is in the USA.
(the only way to prevent this last effect, is to concatenate the results)
Perhaps one mistake you made (reading your text): did you create one prompt per LOV ? So for the Energy LOV you ONLY need to create the prompt on supplier and in Supplier LOV only the prompt on market
Yes, I created one and only one prompt for each LOV, just as you described.
That’s the point: it’s not what I get. If I create a report with a prompt on City (for your example), I will then have a prompt on Country and then a prompt on Continent (not in the same order).In addition, if in the report I only set a prompt on City, I eventually get a table with all the results for this City, and there can be several Countries and Continents (BO doesn’t record the values I gave it for these variables).
It seems that I won’t be able to match the specifications.
did you set the LOV’s on autorefresh ? Otherwise, yes, you get them backwards since you then have to refresh the cities list to get the prompt for country.
Hi,
yes I had set the LOV’s on autorefresh, but it doesn’t work better.
Actually, I made further searches, and I was told that BO couldn’t solve my problem, as I want cascading prompts and the reports to be filtered on all the variable values. :?
Then, I was told to try to use either VBA (to record the values entered by the user in the prompts and filter the report with these values) or SDK.
As VBA may be simpler to implement, it may be the solution I’ll keep. Does anyone know how to code that in VBA, and if it is a good solution?