3 Replies Latest reply: Apr 17, 2012 10:43 AM by Pauljin Kochupyloth

# how to create Discount Range ListBox Object

Dear All.

i have fields Product FullPrice And Price, From that i have calculated Discount.

i need the discount Range in ListBox

like

0-10 %

11-20 %

21-30 % and soon.

when ever i select 0-10 %  it should show all the products details with inRange 0-10% discount.

and i don't want to do it in Edit Script.

i want to do it in Listbox Expression.

thanks,

Mukram.

• ###### how to create Discount Range ListBox Object

Have you tried using an expression like

if ((Expression)>=.00 and (Expression)<=.1,'0-10 %',

if ((Expression)>=.11 and (Expression)<=.2,'11-20 %',

if ((Expression)>=.21 and (Expression)<=.3,'21-30 %')))

• ###### how to create Discount Range ListBox Object

Hi Mukram,

If you dont want to change your script I would suggest that you make a variable which calculate your expression.

This variable then can be used in your expression.

Use CTRL + Alt + v to open your variabel overview.

Pick an name (fe VPercentage)

in your case I think it will :      FullPrice / (Price - FullPrice)

Now you can use \$(vPercentage) everywhere in your Qlikview to show the discount percentage.

That should look like:

=IF (\$(vPercentage) < 10 , '0-10%'

, IF (\$(vPercentage) >= 11 and \$(vPercentage) <= 20 , '10-20%'

, IF (\$(vPercentage) >= 21 and \$(vPercentage) <= 30 , '20-30%'

, IF (\$(vPercentage) >= 31 and \$(vPercentage) <= 40 , '30-40%'

, IF (\$(vPercentage) >= 41 and \$(vPercentage) <= 50 , '40-50%'

, IF (\$(vPercentage) >= 51 and \$(vPercentage) <= 60 , '50-60%'

, IF (\$(vPercentage) >= 61 and \$(vPercentage) <= 70 , '60-70%'

, IF (\$(vPercentage) >= 71 and \$(vPercentage) <= 80 , '70-80%'

, IF (\$(vPercentage) >= 81 and \$(vPercentage) <= 90 , '80-90%'

, IF (\$(vPercentage) >= 91  , '90 + %'

))))))))))

Hope this is helpfull for you.

Good Luck,

Dennis.

• ###### Re: how to create Discount Range ListBox Object

I strongly recommend you to do it in the Script.

Remember if you put any logical expression in the front end it will execute everytime any one interact with the application. Look at your script and sometime a small design change can help you achieve great results.

Anyway if there is absolutely no way to do in the backend , you can try creating an expression in the list box as follows

=pick(if(Price=0,10,if(Price=100,1,Ceil(1-(Price/FullPrice),0.1)*10)),'0-10','10-20','20-30','30-40','40-50','50-60','60-70','70-80','80-90','90-100')

Test the logic multiple times before you use this expression.

May be you can think along these lines to get a different expression suitable for your scenario.

The attached file contains a small example of how you can try this approach.