Getting all the drill filter values in WebI report

I am working on XI R2 WebI. In my report i have 7 drill filters. The DrillFilter function in WebI returns the selected drill filter value. If we don’t select any value the function will not return any thing. But if we don’t select any thing i need all the values in the drill filter.

Below is sample code i am using…

=If(Length(DrillFilters([Entity Name]))=0;{here i need all the drill filter values};DrillFilters([Entity Name]))

Please suggest how to do…


praveen11k :india: (BOB member since 2006-05-22)

Praveen11k:

The DrillFilters() function is not very user friendly (IMHO). Here is how I handle it:

=If (Substr(DrillFilters();1;1)>" ";" <Title1> / <Title2> / <Title3>: "+Trim(DrillFilters(" / "));"")

The “”, title2, title3, etc are manually placed by me to show the possible outcomes of the user selecting an item(s) in the order that the objects appear in the Drill Filter panel. I’ll admit that this can look dorky if the user only selects one of the multiple items they are permitted to drillfilter on. There is more to DrillFilter() but you’ll have to read the help documentation under “Inserting the Drill Filters Cell” (the easiest way to get to this is to click on the “Variable Editor” icon, then choose “DrillFilters”, then click on the help for this item, once the help page appears, follow the link for “Inserting the Drill Filters Cell”). If you read through the second section it describes a method for putting DrillFlter on your report via the pre-canned capability under Templates, but the net result is still no capability to caption dynamically when there are more than one item being used (like if drillfilter(1) then “Title1”, if drillfilter(2) then “Title2”, if drillfilter(1) and drillfilter(2) then “Title1: " +[obj]+” Title2: "+[obj2], etc, etc.

If someone out there knows how to crack this nut completely, I’ll be all ears too.

thanks,
John


jsanzone :us: (BOB member since 2006-09-12)

The sample code you are trying to work out reads good. The watch out criteria you have is this definiton cant go in a free standing cell.

=If (Length(DrillFilters([Director]))=0;[Director];DrillFilters([Director]))

If you want to display this data as a header on top of the report you may want to insert this object defintion in a horizontal table and do some formatting.
Playing this object definition in a free standing cell would throw #MULTIVALUE error if no drill filter is applied.


KhoushikTTT :us: (BOB member since 2005-02-24)

Thanks for the replies. Let me explain the exact requirement.

We have one Parent report with 4 prompts. This report has 7 drill filters. There is a Hyperlink in this report. Upon clicking the link a child report will be opened with all the four prompt values. I have implemented this using opendocument syntax and it is working fine.

Now the issue is user wants to invoke the child report using the drill filter values that are selected at that point. Out of the 7 drill filter, if the user selects one drill filter we can capture the value of that drill filter using the webi DrillFilters function. If he doesn’t select any value in the drill filter i need to get all the values in the drill filter to pass it to opendoc url. For example out of 7 drill filters if user selects 3 drill filter valuess, i need to pass 3 values for that filter and all the values in the other 4 drill filters to the URL. Hope i am clear. Please share your thoughts this.


praveen11k :india: (BOB member since 2006-05-22)

Praveenk11:

In its basic form, you have a limited capability in bringing out information from the drill filter resuts:

DrillFilters(" / ")

The only option to use is the delimeter (as specified above, it is " / "). So, as far as I can see, you will have to parse (via pos function and the delimiter) to determine the values chosen, then use that info to populate the lsS= parameter of opendocument to achieve your objective.

Thanks,
John


jsanzone :us: (BOB member since 2006-09-12)

Thanks for the reply John…

We can find out the selected values of drill filters by using the DrillFilter funtion. The problem is if the user doesn’t select any value i need to pass all the values in the drill filter. How to do this… :hb: :hb:


praveen11k :india: (BOB member since 2006-05-22)