We use an MSAS datasource and your Fields dialog to define our slice, including filters. Applying filters is a two step process:
This makes two passes over the data. Is there any way to eliminate a pass? Do you have any suggestions? For example:
Thanks for your help.
Hello,
Thank you for writing to us.
At the moment Flexmonster doesn't support defining Filters in the Field List and pausing updates until the slice is completely defined.
The reason for this is that members of selected fields are loaded only after the changes in the Field List are applied.
Our team kindly suggests implementing your own Field List supporting the needed behavior.
Flexmonster provides a list of API calls that can be used for adding functionality to your Field List.
For more details about how a custom Field List can be created, please see the following thread: https://www.flexmonster.com/question/prevent-to-modify-fields-options/
Adding a filter option during field selection can be implemented in case you decide to create a custom Field List.
The general idea lies in the following steps:
1) Create your Filter pop-up window. Add "Apply" and "Cancel" buttons to it.
2) Add a button in the desired place for opening the Filter pop-up for the specific field.
3) Upon opening the Filter pop-up, get all members of the needed field with the getMembers() API call and display them in the Filter pop-up.
It is important to keep in mind that for OLAP data sources the callbackHandler needs to be specified, for example:
flexmonster.getMembers('[Product].[Product Categories]', '', 'onGetMembers');
function onGetMembers(members) {
for (var i = 0; i < members.length; i++) {
console.log(members[i]);
}
}
If data load is in progress and callbackHandler
is not set an empty array will be returned.
4) Save the applied by user Filter settings in the form of the Filter object.
5) Construct the slice object by specifying the selected fields and their filter settings in the rows, columns, measures, and reportFilters sections.
An important remark is that the selected filter settings should be specified in the filter
parameter for each prefiltered field in the rows, columns, measures, and reportFilters sections accordingly.
When the user applies the Field List configurations, pass the constructed slice
object to the runQuery() API call in order for the desired changes to come into effect:
flexmonster.runQuery(newSlice);
You are welcome to contact us in case of questions.
Best Regards,
Vera
Hi Vera,
Thanks. This is great information. I will look into this when I get some time.